The Vendor Tool for Go
go get -u github.com/kardianos/govendor
New users please read theFAQ
Package developers should read the developer guide.
For a high level overview read the whitepaper
Uses the go1.5+ vendor folder. Multiple workflows supported, single tool.
- Copy existing dependencies from$GOPATH with
govendor add/update
. - If you ignore
vendor/*/
, restore dependencies withgovendor sync
. - Pull in new dependencies or update existing dependencies directly from
remotes withgovendor fetch
. - Migrate from legacy systems with
govendor migrate
. - SupportsLinux, OS X, Windows, probably all others.
- Supports git, hg, svn, bzr(must be installed an on the PATH).
Notes
- The project must be within a $GOPATH.
- If using go1.5, ensure you
set GO15VENDOREXPERIMENT=1
.
Quick Start, also see theFAQ
Setup your project.
cd "my project in GOPATH"
govendor init
Add existing GOPATH files to vendor.
govendor add +external
View your work.
govendor list
Look at what is using a package
govendor list -v fmt
Specify a specific version or revision to fetch
govendor fetchgolang.org/x/net/context@a4bbce9fcae005b22ae5443f6af064d80a6f5a55
govendor fetch golang.org/x/net/context@v1 # Get latest v1. . tag or branch.
govendor fetch golang.org/x/net/context@=v1 # Get the tag or branch named "v1".
Update a package to latest, given any prior version constraint
govendor fetch golang.org/x/net/context
Format your repository only
govendor fmt +local
Build everything in your repository only
govendor install +local
Test your repository only
govendor test +local
Sub-commands
init Create the "vendor" folder and the "vendor.json" file.
list List and filter existing dependencies and packages.
add Add packages from $GOPATH.
update Update packages from