blubber
is an open source project maintained by Wikimedia Foundation's
Release Engineering Team and developed primarily to support a continuous
delivery pipeline for MediaWiki and related applications. We will, however,
consider any contribution that advances the project in a way that is valuable
to both users inside and outside of WMF and our communities.
go
>= 1.11 (>=1.12 recommended) and related tools
sudo dnf install golang golang-godoc
sudo apt install golang golang-golang-x-tools
brew install go
go version
to check the golang version.dep
for dependency management
brew install dep
gox
is used for cross-compiling binary releases. To
install gox
use go get github.com/mitchellh/gox
.Use go get
to install the source from our Git repo into src
under your
GOPATH
. By default, this will be ~/go/src
.
go get gerrit.wikimedia.org/r/blubber
Symlink it to a different directory if you'd prefer not to work from your
GOPATH
. For example:
cd ~/Projects
ln -s ~/go/src/gerrit.wikimedia.org/r/blubber
cd blubber # yay.
If you haven't already seen the README.md, check it out.
Run godoc -http :9999
and peruse the HTML generated from inline docs
at localhost:9999/pkg/gerrit.wikimedia.org/r/blubber
.
Dealing with Go project dependencies is kind of a moving target at the moment,
but for now we've opted to commit a minimal vendor
directory which contains
all the required packages. It has been automatically populated by dep ensure
according to our Gopkg.toml
and Gopkg.lock
files.
If you're not making any changes to Gopkg.toml
, adding, updating, or
removing dependencies, you should already be good to go.
If you do update Gopkg.toml
to add, update, or remove a dependency, simply
run dep ensure
after doing so, and commit the resulting
vendor
directory changes.
Tests and linters for packages/files you've changed will automatically run
when you submit your changes to Gerrit for review. You can also run them
locally using the Makefile
:
make lint # to run all linters
make unit # or all unit tests
make test # or all linters and unit tests
go test -run TestFuncName ./... # to run a single test function
Push your changes to Gerrit for review. See the guide on mediawiki.org on how to correctly prepare and submit a patch.
The release
target of the Makefile
in this repository uses gox
to
cross-compile binary releases of Blubber.
make release