gb, the project based build tool for Go
Go Other
Latest commit 137520c Dec 13, 2016 @davecheney davecheney remove fmt.Errorf
Permalink
Failed to load latest commit information.
bin Add codecov.io (#664) Dec 13, 2016
cmd Cleanup goreportcard warnings (#663) Dec 13, 2016
internal Cleanup goreportcard warnings (#663) Dec 13, 2016
test Remove internal/importer (#679) Dec 13, 2016
testdata/src tests mostly pass Dec 31, 2015
.gitignore Add gitignore May 23, 2015
.travis.yml Enable codecov.io (#683) Dec 13, 2016
LICENSE Initial commit Feb 27, 2015
README.md Add codecov.io (#664) Dec 13, 2016
action_test.go Cleanup go vet warnings (#662) Nov 20, 2016
appveyor.yml Use pkg/errors (#603) Jun 20, 2016
build.go integrate ExtraIncludes into pkg.IncludePaths (#674) Dec 12, 2016
build17_test.go Slide go/build.Package under importer.Package (#668) Nov 30, 2016
build18_test.go Slide go/build.Package under importer.Package (#668) Nov 30, 2016
build_test.go Remove internal/importer (#679) Dec 13, 2016
cgo.go Prepare the ground to remove internal/importer (#666) Nov 29, 2016
context.go Merge branch 'master' of https://github.com/constabulary/gb Dec 13, 2016
context_test.go Slide go/build.Package under importer.Package (#668) Nov 30, 2016
defaultcc.go Refactor gcc/gxx cgo invocation in gccld Sep 17, 2015
defaultcc_bsd.go Refactor gcc/gxx cgo invocation in gccld Sep 17, 2015
depfile.go Remove internal/importer (#679) Dec 13, 2016
example_test.go Rewrite gb.Project to be an interface (#614) Jun 21, 2016
executor.go Use pkg/errors (#603) Jun 20, 2016
executor_test.go Cleanup goreportcard warnings (#663) Dec 13, 2016
gb.go integrate ExtraIncludes into pkg.IncludePaths (#674) Dec 12, 2016
gb_test.go Cleanup go vet warnings (#661) Nov 20, 2016
gc.go Remove internal/importer (#679) Dec 13, 2016
goversion12.go Move loadPackage back onto *Context where it belonged. Dec 19, 2015
goversion13.go Move loadPackage back onto *Context where it belonged. Dec 19, 2015
goversion14.go Move loadPackage back onto *Context where it belonged. Dec 19, 2015
goversion15.go Move loadPackage back onto *Context where it belonged. Dec 19, 2015
goversion16.go tests mostly pass Dec 31, 2015
package.go refactor package.string and added eMode Dec 13, 2016
package_test.go remove fmt.Errorf Dec 13, 2016
project.go Unexport Package.Bindir (#676) Dec 12, 2016
project_test.go Rewrite TestStale to use temporary files (#627) Jun 28, 2016
resolver.go remove fmt.Errorf Dec 13, 2016

README.md

gb

Build status

Unix: travis-cs status

Windows: Build status

codecov.io

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.

Project based

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.

Installation

go get github.com/constabulary/gb/...

Read more

gb has its own site, getgb.io, head over there for more information.

Contributing

Contribution guidelines

We welcome pull requests, bug fixes and issue reports.

Before proposing a large change, please discuss your change by raising an issue.

Road map

Completed

  • Cross Compilation
  • Tag handling, unify -tags, ENVVARS and GOOS/GOARCH into a single format for binary names and pkg cache
  • gb test improvements, test output, test flag handling
  • Race detector support

Todo

  • 0.4 series: gb vendor updates and bug fixes
  • 0.5 series: new package resolver (replace go/build)

Big ticket items

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.