Go Versioning Packager
Switch branches/tags
Nothing to show
Pull request Compare This branch is 49 commits behind pote:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Go Versioning Packager Build Status

gvp stands for Go Versioning Packager and is based on gst, a similar tool that provides dependency isolation for Ruby gems.

The tool modifies your GOPATH to point to a local .godeps/ directory so that you can keep the dependencies of your project isolated there, it also modifies GOBIN and PATH to include the new GOPATH/bin directory.

gvp is a companion tool to gpm, the Go Package Manager.

Example usage: Go Dependency Management and Vendoring with gpm + gvp:

gpm + gvp usage

Install via Homebrew

$ brew install gvp

Install in *nix

$ git clone https://github.com/pote/gvp.git && cd gvp
$ git checkout v0.0.3 # You can ignore this part if you want to install HEAD.
$ ./configure
$ make install


Since gvp is a script and runs in a child environment of your shell, the latter will not take the env changes unless you source them.

$ gvp init
$ source gvp in
$ source gvp out


init    Creates the .godeps directory
in      Modifies GOPATH, GOBIN and PATH to use the .godeps
out     Restores the previous GOPATH, GOBIN and PATH.
version   outputs version information.
help      prints this message.


Dependencies of multiple Go projects are by far easier to handle in isolation, using plain gpm to handle your dependencies means that you are forced to run it again every time you work on a new project, this can get old quickly.

Using gvp can greatly simplify your workflow, by isolating your Go project dependencies you only need to run source gvp in in order to be back in the work environment of your application, this means that there will never be Go packages installed in your system which will conflict in versioning across your different projects.

If for some reason you need to ship your repository with its dependencies included this is also of help, but including a Godeps file to use with gpm will probably be your best option.