Releases: constabulary/gb
gb version 0.4.4
The 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 #629gb
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 #635gb-vendor
now ignores invalid XML after tag when parsing vanity imports. Fixes #643. Thanks @sehgb
now builds cgo packages correctly on distributions that default to-PIE
mode. Fixes #607. Thanks @rdwilliamsongb-vendor
now refuses to accept more than one argument when the-all
flag is used. Thanks @nubuntogb-vendor restore
now operates in parallel. Thanks @gsquiregb test
now works with Go 1.8. Fixes #690. Thanks to @freeformz for the test case.
gb version 0.4.3
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
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
.
gb version 0.4.2
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 init
alisation 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 defunctcode.google.com
have been removed. Fixes #594cmd/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
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
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 thego/build
API. Fixes #306There 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 #416 -
When cross compiling, gb will always append the value of
GOOS
andGOARCH
to the output binary. ieenv 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 #535gb generate
now uses the correct operating system path separator when constructing the environment to executego generate
. Thanks @ChrisHines. See #540
gb version 0.3.5
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 version 0.3.4
gb version 0.3.3
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 @nbjahangb info
now reports the$GOROOT
of the Go version that built gb. This is mainly useful for debugging gb installation problems. Fixes #393gb 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.
gb version 0.3.2
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
gb version 0.3.1
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