blob: 00419e8dd9f5c1e9e7c7ed589808269d63d24064 [file] [log] [blame] [view]
# Glide: Vendor Package Management for Go
[Glide](https://glide.sh) is a package manager for [Go](https://golang.org) that is conceptually similar to package managers for other languages such as Cargo for Rust, NPM for Node.js, Pip for Python, Bundler for Ruby, and so forth.
Glide provides the following functionality:
* Records dependency information in a `glide.yaml` file. This includes a name, version or version range, version control information for private repos or when the type cannot be detected, and more.
* Tracks the specific revision each package is locked to in a `glide.lock` file. This enables reproducibly fetching the dependency tree.
* Works with Semantic Versions and Semantic Version ranges.
* Supports Git, Bzr, HG, and SVN. These are the same version control systems supported by `go get`.
* Utilizes `vendor/` directories, known as the Vendor Experiment, so that different projects can have differing versions of the same dependencies.
* Allows for aliasing packages which is useful for working with forks.
* Import configuration from Godep, GPM, Gom, and GB.
## Installing Glide
There are a few ways to install Glide.
1. Download a [versioned release](https://github.com/Masterminds/glide/releases). Glide releases are semantically versioned.
2. Use a system package manager to install Glide. For example, using `brew install glide` can be used if you're using [Homebrew](http://brew.sh) on Mac.
3. The latest development snapshot can be installed with `go get`. For example, `go get -u github.com/Masterminds/glide`. This is not a release version.