[docs] GoDoc badge, TravisCI badge, LICENSE header in README, formatting.
diff --git a/README.md b/README.md index 1782424..d54357a 100644 --- a/README.md +++ b/README.md
@@ -1,28 +1,39 @@ # gvt, the go vendoring tool +[](https://godoc.org/github.com/FiloSottile/gvt) [](https://travis-ci.org/FiloSottile/gvt) -`gvt` is a simple Go vendoring tool made for the GO15VENDOREXPERIMENT, based on [gb-vendor](https://github.com/constabulary/gb). +`gvt` is a simple Go vendoring tool made for the +[GO15VENDOREXPERIMENT](https://docs.google.com/document/d/1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo/edit), +based on [gb-vendor](https://github.com/constabulary/gb). -It lets you easily and "idiomatically" include external dependencies in your repository to get reproducible builds. +It lets you easily and "idiomatically" include external dependencies in your repository to get +reproducible builds. - * No need to learn a new tool or format! - You already know how to use `gvt`: just run `gvt fetch` when and like you would run `go get`. You can imagine what `gvt update` and `gvt delete` do. + * No need to learn a new tool or format! You already know how to use `gvt`: just run `gvt fetch` + when and like you would run `go get`. You can imagine what `gvt update` and `gvt delete` do. - * No need to change how you build your project! - `gvt` downloads packages to `./vendor/...`. With `GO15VENDOREXPERIMENT=1` the stock Go compiler will find and use those dependencies automatically (without import path or GOPATH changes). + * No need to change how you build your project! `gvt` downloads packages to `./vendor/...`. With + `GO15VENDOREXPERIMENT=1` the stock Go compiler will find and use those dependencies + automatically (without import path or GOPATH changes). - * No need to manually chase, copy or cleanup dependencies! - `gvt` works recursively as you would expect, and lets you update vendored dependencies. It also writes a manifest to `./vendor/manifest` and never touches your system GOPATH. Finally, it strips the VCS metadata so that you can commit the vendored source cleanly. + * No need to manually chase, copy or cleanup dependencies! `gvt` works recursively as you would + expect, and lets you update vendored dependencies. It also writes a manifest to + `./vendor/manifest` and never touches your system GOPATH. Finally, it strips the VCS metadata so + that you can commit the vendored source cleanly. - * No need for your users and occasional contributors to install **or even know about** gvt! - Packages whose dependencies are vendored with `gvt` are `go build`-able and `go get`-able out of the box by Go 1.5 with `GO15VENDOREXPERIMENT=1` set. + * No need for your users and occasional contributors to install **or even know about** gvt! + Packages whose dependencies are vendored with `gvt` are `go build`-able and `go get`-able out of + the box by Go 1.5 with `GO15VENDOREXPERIMENT=1` set. -*Note that projects must live within the GOPATH tree in order to be go buildable with the GO15VENDOREXPERIMENT flag.* +*Note that projects must live within the GOPATH tree in order to be go buildable with the +GO15VENDOREXPERIMENT flag.* -If you use and like (or dislike!) `gvt`, it would definitely make my day better if you dropped a line at `gvt -at- filippo.io` :) - +If you use and like (or dislike!) `gvt`, it would definitely make my day better if you dropped a +line at `gvt -at- filippo.io` :) ## Installation +With a [correctly configured](https://golang.org/doc/code.html#GOPATH) Go installation: + ``` GO15VENDOREXPERIMENT=1 go get -u github.com/FiloSottile/gvt ``` @@ -32,6 +43,7 @@ You know how to use `go get`? That's how you use `gvt fetch`. ``` +# This will fetch the dependency into the /vendor folder. $ gvt fetch github.com/fatih/color 2015/09/05 02:38:06 fetching recursive dependency github.com/mattn/go-isatty 2015/09/05 02:38:07 fetching recursive dependency github.com/shiena/ansicolor @@ -66,28 +78,32 @@ ``` -Full usage on [GoDoc ](http://godoc.org/github.com/FiloSottile/gvt) +A full set of example usage can be found on [GoDoc](https://godoc.org/github.com/FiloSottile/gvt). ## Alternative: not checking in vendored source -Some developers prefer not to check in the source of the vendored dependencies. In that case you can add lines like these to e.g. your `.gitignore` +Some developers prefer not to check in the source of the vendored dependencies. In that case you can +add lines like these to e.g. your `.gitignore` vendor/** !vendor/manifest -When you check out the source again, you can then run `gvt restore` to fetch all the dependencies at the revisions specified in the `vendor/manifest` file. +When you check out the source again, you can then run `gvt restore` to fetch all the dependencies at +the revisions specified in the `vendor/manifest` file. Please consider that this approach has the following consequences: * the package consumer will need gvt to fetch the dependencies - * the dependencies will need to remain available from the source repositories: if the original repository goes down or rewrites history, build reproducibility is lost + * the dependencies will need to remain available from the source repositories: if the original + repository goes down or rewrites history, build reproducibility is lost * `go get` won't work on your package ## Troubleshooting ### `error: tag 'fetch' not found.` -This kind of errors happens because you have an alias for `gvt` pointing to `git verify-tag`. +This error can occur because you have an alias for `gvt` pointing to `git verify-tag` (common if +using oh-my-zsh). Run this, or add it to your `~/.bashrc` / `~/.zshrc`: @@ -99,4 +115,10 @@ Make sure you set `GO15VENDOREXPERIMENT=1`. -Also note that GO15VENDOREXPERIMENT does not apply when outside the GOPATH tree. That is, your project must be somewhere in a subfolder of `$GOPATH`. +Also note that GO15VENDOREXPERIMENT does not apply when outside the GOPATH tree. That is, your +project must be somewhere in a subfolder of `$GOPATH`. + +## License + +MIT licensed. See the LICENSE file for details. +