Changelog History
-
v0.4.4 Changes
February 22, 2017The 0.4 series focuses on improvements to project dependency management.
๐ New features (since 0.4.3)
- ๐
depfile
now supportstag=sometag
in addition toversion=semver
. See #629 - ๐
gb
now uses thego/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 ofgolang.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.
- ๐
-
v0.4.3 Changes
June 26, 2016The 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
syntaxA 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 supportedkey
isversion
, a validversion
value is any SemVer 2.0.0 value. This version must match a release tag in the formatv\<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
. -
v0.4.2 Changes
June 14, 2016The 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
togb test
will cause the test binary to be compiled as usual, however the execution will be skipped. Nope mode is conceptually the same asgb test -run=XXX
(or some other non-matching regexp) but also avoids expensiveinit
alisation routines if your test binaries do a lot of setup work before hittingtesting.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 defunctcode.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.
- ๐
-
v0.4.1 Changes
May 09, 2016The 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
-
v0.4.0 Changes
January 21, 2016The 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
. Thedepfile
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 thego/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 calledcmd
, 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 #416When cross compiling, gb will always append the value of
GOOS
andGOARCH
to the output binary. ie๐ง
env GOOS=linux GOARCH=amd64 gb build
Will produce
$PROJECT/bin/$BINARY-linux-amd64
even if this is alinux/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 thego
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 executego 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
-
v0.3.4 Changes
December 09, 2015 -
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
togb 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 theDEBUG
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