Skip to content
This repository has been archived by the owner on Mar 6, 2020. It is now read-only.

Releases: constabulary/gb

gb version 0.4.4

22 Feb 07:58
Compare
Choose a tag to compare

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 golang.org/x/net/http2/hpack 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.

gb version 0.4.3

26 Jun 04:25
Compare
Choose a tag to compare

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:

    github.com/pkg/profile 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
    github.com/pkg/profile version=1.1.0
    
    ; some other comment
    // third kind of comment
    lines starting with blank lines are also ignored
    github.com/pkg/errors version=0.7.0
    

    Full documentation is available on the getgb.io website. Updates #536

    Please leave feadback on this feature via the issue tracker.

  • gb now depends has an external dependency on github.com/pkg/errors.

gb version 0.4.2

14 Jun 07:43
Compare
Choose a tag to compare

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 code.google.com 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.

gb version 0.4.1

09 May 02:22
Compare
Choose a tag to compare

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 golang.org 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

gb version 0.4.0

21 Jan 00:13
Compare
Choose a tag to compare

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 golang.org, 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

gb version 0.3.5

16 Dec 11:06
Compare
Choose a tag to compare

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.

gb version 0.3.4

09 Dec 23:26
Compare
Choose a tag to compare

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
    /home/dfc/devel/demo6
    

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

gb version 0.3.3

02 Dec 08:18
Compare
Choose a tag to compare

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.

gb version 0.3.2

26 Nov 11:22
Compare
Choose a tag to compare

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

gb version 0.3.1

09 Nov 05:15
Compare
Choose a tag to compare

gb version 0.3.1 is a bug fix release for the 0.3.0 series.

Bug fixes (since 0.3.0)

  • Fixes a bug introduced in 0.3.0 where the name of the package being built was not printed if the compile failed, only the name of the file would be printed (this was the output of the compile process). Depending on how large you gb project was this could be mildly to seriously annoying. This bug has been fixed, the name of the package will always be printed before any compile or test output. Fixes #440