gb
is a proof of concept replacement build tool for the Go programming language.
I gave a talk about gb
and the rational for its creation at GDG Berlin in April 2015, video and slides.
gb
operates on the concept of a project. A gb project is a workspace for all the Go code that is required to build your project.
A gb project is a folder on disk that contains a subdirectory named src/
. That's it, no environment variables to set. For the rest of this document we'll refer to your gb
project as $PROJECT
.
You can create as many projects as you like and move between them simply by changing directories.
go get github.com/constabulary/gb/...
gb has its own site, getgb.io, head over there for more information.
- Cross Compilation
- Tag handling, unify -tags, ENVVARS and GOOS/GOARCH into a single format for binary names and pkg cache
- 0.3 series: gb test improvements, test output,
flag handling(done) - 0.4 series: gb vendor updates and bug fixes
- 0.5 series: new package resolver (replace go/build)
Big ticket items that are not on the road map yet
- Package BuildID support (make stale detection work like the Go 1.5)
gccgo
toolchain support.
We welcome pull requests, bug fixes and issue reports.
Before proposing a large change, please discuss your change by raising an issue.