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 versionto check the golang version.
depfor dependency management
brew install dep
goxis used for cross-compiling binary releases. To install
go get github.com/mitchellh/gox.
go get to install the source from our Git repo into
src under your
GOPATH. By default, this will be
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.
godoc -http :9999 and peruse the HTML generated from inline docs
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
ensure according to our
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
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
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.
release target of the
Makefile in this repository uses
cross-compile binary releases of Blubber.