All Versions
Latest Version
Avg Release Cycle
57 days
Latest Release
2606 days ago

Changelog History

  • v0.4.4 Changes

    February 22, 2017

    The 0.4 series focuses on improvements to project dependency management.

    ๐Ÿ†• New features (since 0.4.3)

    • ๐Ÿ‘€ depfile now supports tag=sometag in addition to version=semver. See #629
    • ๐Ÿ— gb now uses the go/build package for parsing source code. The previous importer introduced over the Dec 2015 break has been removed. No user visible change is expected.
    • ๐Ÿ’… @gliptak has added a bunch of code hygiene tools to the CI process, and subsequently fixed a lot of style and hygiene issues. Thanks!

    ๐Ÿ› Bug fixes (since 0.4.3)

    • ๐Ÿ“ฆ gb-vendor no longer gets tripped up when a package refers to the copy of vendored in the Go standard library after Go 1.6. Fixes #635
    • ๐Ÿ“œ gb-vendor now ignores invalid XML after tag when parsing vanity imports. Fixes #643. Thanks @seh
    • ๐Ÿ— gb now builds cgo packages correctly on distributions that default to -PIE mode. Fixes #607. Thanks @rdwilliamson
    • gb-vendor now refuses to accept more than one argument when the -all flag is used. Thanks @nubunto
    • โช gb-vendor restore now operates in parallel. Thanks @gsquire
    • โœ… gb test now works with Go 1.8. Fixes #690. Thanks to @freeformz for the test case.
  • v0.4.3 Changes

    June 26, 2016

    The 0.4 series focuses on improvements to project dependency management.

    ๐Ÿ†• New features (since 0.4.2)

    ๐Ÿš€ gb now has the ability to automatically download released dependencies.

    Briefly summarised, if a dependency is listed in $PROJECT/depfile but is not present in the users' cache, gb will attempt to fetch it.

    ๐Ÿ‘ NOTE: currently only dependencies hosted on github are fetched. Vanity import paths, bitbucket, private git repos, etc. are not yet supported.

    $PROJECT/depfile syntax

    A valid depfile lives at $PROJECT/depfile. It contains one or more lines of text. The format of the line is:

    name key=value [key=value]...

    ๐Ÿš€ name is an import path representing a remote repository. The only supported key is version, a valid version value is any SemVer 2.0.0 value. This version must match a release tag in the format

    v\<semver version\>

    For example: version=1.1.0

    ๐Ÿš€ Will fetch the github release tagged v1.1.0.

    Sample $PROJECT/depfile

    Elements can be separated by whitespace. Lines that do not begin with a letter or number are ignored. This provides a simple mechanism for commentary.

    # some comment version=1.1.0
    ; some other comment
    // third kind of comment
    lines starting with blank lines are also ignored version=0.7.0

    ๐Ÿ“š Full documentation is available on the website. Updates #536

    Please leave feadback on this feature via the issue tracker.

    gb now depends has an external dependency on

  • v0.4.2 Changes

    June 14, 2016

    The 0.4 series focuses on improvements to project dependency management.

    ๐Ÿ†• New features (since 0.4.1)

    Nope mode

    gb test has acquired a new flag, -n. Passing -n to gb test will cause the test binary to be compiled as usual, however the execution will be skipped. Nope mode is conceptually the same as gb test -run=XXX (or some other non-matching regexp) but also avoids expensive initalisation routines if your test binaries do a lot of setup work before hitting testing.main. See #599 for details.

    Please leave feadback on this feature via the issue tracker.

    ๐Ÿ› Bug fixes (since 0.4.1)

    • ๐Ÿšš gb-vendor: tests for the defunct have been removed. Fixes #594
    • ๐Ÿšš cmd/gb: removed references to the long gone -q flag. Fixes #568
    • Fixed several mis-spelling of the word dependencies. Thanks @tianon
    • โœ… cmd/gb: fixed several unit test failures when race detector support is missing. Fixes #574. Thanks @tianon
    • โœ… An incompatabliity with goconvey, and other test suites that expect boolean arguments to be passed from the Go tool to the test binary in a canonical form; -test.v=bool, for example, has been fixed. Fixes #605. Thanks to @fungl164 for the report.
  • v0.4.1 Changes

    May 09, 2016

    The 0.4 series focuses on improvements to project dependency management.

    ๐Ÿ†• New features (since 0.4.0)

    ๐Ÿš€ None. 0.4.1 is a maintenance release to pick the bug fixes since the 0.4.0 release in January.

    ๐Ÿ› Bug fixes (since 0.4.0)

    • gb-vendor, fix a bug fetching recursive dependencies using the -branch option. Thanks @FiloSottile
    • ๐Ÿš€ gb now knows all the additional architectures added to the go tool in the 1.6 release. Fixes #580
    • ๐Ÿ›  Fix a bug where gb would sometimes consider the standard library stale if it was installed via brew or the installer. Fixes #570. Thanks to @Redundancy for spotting the mistake.
    • ๐Ÿ›  Fixes a bug where cross compilation was not reliable for ARM{5,6,7} targets, thanks @tianon
  • v0.4.0 Changes

    January 21, 2016

    The 0.4 series focuses on improvements to project dependency management.

    ๐Ÿ†• New features

    ๐Ÿ— The headline feature of the 0.4 series will be adding support for an alternative mechanism to fetch, at build time, dependencies that are not vendored into the gb project.

    ๐Ÿš€ This mechanism is opt in only and is activated by the presence of a file at the root of your project, tentatively named $PROJECT/depfile. The depfile contains the missing information required to download a specific release version of a library from upstream.

    gb 0.4.0 lays most of the groundwork for implementing this feature, but not the feature itself.

    Please consult issue #536 for full details.

    gb 0.4.0 also features the following improvements.

    ๐Ÿ— In preparation for adding support for automatically downloading missing dependencies, see above, the use of go/build for package source code resolution has been replaced by a home grown version. This has solved a number of long standing issues that were caused by an impedance mismatch between gb's needs and the go/build API. Fixes #306

    ๐Ÿ“ฆ There may be some discrepancies between how packages are resolved in 0.4.0 vs 0.3.5. It is my priority to address these issues before moving on implementing #536, please raise issues if you experience difficulties.

    ๐Ÿ— As a result of moving away from the go/build package you can now create a command package called cmd, ie $PROJECT/src/cmd/main.go -- but really you shouldn't do that because the name of the binary would be $PROJECT/bin/cmd. Fixes #416

    When cross compiling, gb will always append the value of GOOS and GOARCH to the output binary. ie

    ๐Ÿง env GOOS=linux GOARCH=amd64 gb build

    Will produce $PROJECT/bin/$BINARY-linux-amd64 even if this is a linux/amd64 machine. This is important for people automating their build pipeline and rely on a predictable file name. Thanks @rafael84. Fixes #346

    ๐Ÿ— To support users who want to vendor tools to build their projects, protobufs is an example, gb will now let you build those packages if you name them explicitly. This is an exception to the rule that code in $PROJECT/vendor/src is not consider to be buildable (it is only built if referenced transitively from $PROJECT/src). See #528.

    ๐Ÿ› Bug fixes

    • ๐Ÿ— gb help {build,test} now lists -race correctly. Fixes #543
    • ๐Ÿ›  A bug relating to the hard coded name of the linker on FreeBSD has been fixed. Thanks @derekmarcotte. Fixes #506
    • โ†ช The OSX binary installer (.pkg installer) for Go 1.5 (and probably earlier) had a bug that causes the timestamps of the .a files in the distribution to be incorrect with respect to their .go source. The issue has been fixed upstream and gb has a workaround. Fixes #515
    • ๐Ÿ›  Various gb commands that shell out to the go tool, like gb generate and gb doc should now work more reliably with go installations that have modified the locations of the go tool relative to $GOROOT. This only affects users of operating system distros of Go, if you use the ones from, you can ignore this issue. Fixes #521
    • ๐Ÿ‘€ gb vendor fetch now permits ~ in import paths. Thanks @FiloSottile. See #535
    • ๐Ÿ‘€ gb generate now uses the correct operating system path separator when constructing the environment to execute go generate. Thanks @ChrisHines. See #540
  • v0.3.5 Changes

    December 16, 2015

    โœ… The 0.3 series focuses on gb test.

    ๐Ÿ†• New feature

    ๐Ÿ— The race detector is now supported by gb build and gb test. Fixes #96

    This feature is experimental, please report issues.

    ๐Ÿš€ The race detector requires that your Go installation include a race enabled runtime and stdlib. All binary releases from the Go website have this support. If you built Go from source, you may need to compile race support separately.

    ๐Ÿ‘€ Please see this faq entry for more information.

    ๐Ÿ’… gb vendor fetch now accepts packages at the root of a vanity domain. Thanks @nullstyle

    ๐Ÿ› Bug fixes

    • gb now avoids inspecting the parent of a gb project directory to see if it is a symlink. This fixes several issues where project detection would be fooled by symlinks. Fixes #422, #481.
  • v0.3.4 Changes

    December 09, 2015

    โœ… The 0.3 series focuses on gb test

    ๐Ÿ”„ Changes

    gb has a new command, env, which is an alias for info. Thanks @gosuri

    ๐Ÿ–จ gb env $VAR, now prints the name of the variable without additional adornment. Fixes #476. Thanks @gosuri

    % gb env GB_PROJECT_DIR

    ๐Ÿ› Bug fixes

    • โœ… A bug in gb test where arguments, -foo=bar were mangled when being passed to the test binary has been fixed. Fixes #349
    • ๐Ÿ“ฆ A bug where -v if present at the end of a gb test list of arguments would be parsed as a package name, not a flag, has been fixed. Fixes #473
  • v0.3.3 Changes

    December 02, 2015

    โœ… The 0.3 series focuses on gb test

    ๐Ÿ”„ Changes

    • โœ… gb should no longer leave temporary work directories in /tmp, and we have tests to prove it.
    • ๐Ÿ— gb build should now build packages with .syso files. Thanks @nbjahan
    • ๐Ÿ›  gb info now reports the $GOROOT of the Go version that built gb. This is mainly useful for debugging gb installation problems. Fixes #393
    • ๐Ÿ›  gb help info now works. Fixes #394
    • โœ… Passing -v to gb test now enables -test.v and will print the output from the test binary. Fixes #438

    ๐Ÿ› Bug fixes

    • โœ… gb test now accepts the -tags flag. Fixes #423
    • ๐Ÿ Numerous issues incorrectly quoting file paths under Windows have been fixed.
  • v0.3.2 Changes

    November 26, 2015

    โœ… The 0.3 series focuses on gb test

    ๐Ÿ”„ Changes

    ๐ŸŒฒ gb's logging has been simplified.

    ๐Ÿšš -q mode has been removed, if you want gb to be silent, pipe stdout to /dev/null.

    ๐Ÿšš -v mode has been removed, to enabled debug output, set the DEBUG environment variable. This variable takes a regex, but that isn't implement yet, so . will do.

    ๐Ÿ— env DEBUG=. gb {build,test}

    ๐Ÿง For linux builds, gb now uses travis-ci, which gives us coverage for Go 1.4, Go 1.5 and Go tip. Big thanks to @tianon for making this happen.

    ๐Ÿšฆ gb now works harder to cleanup temporary files when interrupted by a signal or C. Fixes #436.

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  gb-vendor now shows the available commands if none are given. Thanks @kalafut. Fixes #446
    • gb now always outputs the package name of a failing package before the package. Fixes #440