nitrogen has fulfilled its purpose, as a mean to provide a temporary solution to the lack of ways to manage dependencies of programs written in Go, until the release of a tool on which the community would find agreement.
With the release of Go 1.6, vendoring support is no longer considered experimental and it's the default way to handle dependencies, so the use of a dependency manager outside the Go standard tools is not necessary anymore.
nitrogen will be deprecated with the release of Go 1.6. Support for bug fixes will be provided till the release of Go 1.7, then nitrogen will be no longer maintained and this repository will be kept only for reference.
Thanks to everyone who took part, used or sent corrections to the project.
nitrogen is a simple dependency manager for Go.
It is a bash script that you should distribute with your Go package. Nitrogen leverages on the git, hg, and bzr versioning systems, so you don't need to distribute the full dependecy tree with your package, the standard gopath mechanism just works well.
Dependencies are listed in a file called 'deps' that is located in the
same directory of nitrogen (i.e. your package root directory). Dependencies
are formatted as "package version", where "package" is the name of the Go
package that you need to install (e.g "golang.org/x/crypto/blowfish") and
"version" is every suitable option for git checkout
, hg update
or
bzr revert -r
.
e.g.
code.google.com/p/go-uuid -c 35bc42037350
golang.org/x/crypto 4ed45ec682102c643324fae5dff8dab085b6c300
That's why nitrogen has a '-f' (--freeze) option.
nitrogen -f
You should find your dependencies listed in the generated 'deps' file.
To install a package with the required dependencies, download it with
go get -d PACKAGE
Then, from the package root, start nitrogen with '-i' (--install).
nitrogen -i
Nitrogen downloads the required dependencies and installs the package with dependencies at the specified versions, then it restores the dependencies back to the default (master branch or latest version) versions.
If you want to mantain the dependencies at the version required by your package, instead launch it with '-i --no-clean'
nitrogen -i --no-clean
After you have done with the work on your package, restore the depencencies at the default versions with the '-c' (--clean) option.
nitrogen -c
nitrogen is released under the MIT License.