gta
gta copied to clipboard
Gotta test 'em all
gta
gotta test 'em all!
gta is a tool that helps you check your Go project against various versions of
its dependencies. This includes optionally running a command, like go test
,
against each combination. So it's kinda like
git-bisect, but for your deps.
gta is gps-based, and should interoperate with several different Go package managers (gb, godep, gom, gpm, and glide, though glide is likely to work best). When available, gta reads the lock file from that tool, and tries to hold constant all the versions listed there, varying only the versions of the dependency you name.
In general, gta is probably most useful for exploring a semver range you've already set in a manifest, or for simply exploring all the possible versions of a particular dependency.
In short, if you're not sure what version of a dependency you want to use, running gta might help you figure it out.
Installation
$ go get github.com/sdboyer/gta
Usage
# For now, gta must be run from a project root
$ cd $GOPATH/src/github.com/me/myproject
# Just look for valid dependency solutions for each version of the dep
$ gta github.com/somedep/tocheckitsversions
# Or, also run "go test" against each version where there's a solution
$ gta -r "go test" github.com/somedep/tocheckitsversions
See gta --help
for more information.
Notes
- This is very alpha - "release early, release often" - and while it has worked at least once, it will likely break :) Please file issues!
- The output is probably at least a little confusing right now. Issues asking questions or making suggestions about how it might be improved are PARTICULARLY welcome!
- The format of gta's
glide.yaml
file is not one your standard version of glide can read, so don't bother trying (it's based on the PR to integrate gps into glide)