Release 0.8.0
mattfarina
released this
Assets
The 0.8.0 release of Glide brings with it some new major features. The most important of these is the glide.lock file, generated when running glide update. The glide.lock file contains the complete dependency tree and the commit id each package is pinned with. Where the glide.yaml file contains the dependencies of a project the glide.lock file, which is generated automatically, contains all the dependencies.
Instead of using glide update (or glide up) to install dependencies you should use the glide install command. This will install the dependencies and versions listed in the glide.lock file. This command is quite fast as it doesn't need to determine the dependency tree and does some actions concurrently to speed up performance. glide up should be used to update the pinned versions. When no glide.lock file is present the glide install command will perform an update.
We recommend you check the glide.lock file into your version control system.
In addition to locking by default, Glide 0.8.0 detects dependencies in dependencies not managed by a package manager (Glide, GPM, Godep, GB) and properly pins them.
This is a major step forward for Glide as you can now easily have reproducible builds while maintaining semantic version range support and usage.
- Issues #156 and #85: Added lockfile support (glide.lock). This file records
commit id pinned versions of the entire dependency tree. Theglide install
command installs the pinned dependencies from theglide.lockfile while
glide updateupdates the tree and lockfile. Most people should useglide installunless they want to intentionally updated the pinned dependencies.
glide installis able to use concurrency to more quickly install update. - Issues #33 and #159: Glide notifies if a dependency checkout has uncomitted
changes. - Issue #146: Glide scans projects not managed by a dependency manager, fetches
their dependencies, and pins them in the glide.lock file. - Issue #99: Glide
getpins dependencies by default and allows a version to
be passed in. For example,glide get github.com/Masterminds/convert#^1.0.0
will fetchgithub.com/Masterminds/convertwith a version of^1.0.0. - Issue #155: Copying packages from the
GOPATHis now opt-in. - Removed the pin command as it's not longer needed now that there are lockfiles.