Skip to content

Release 0.8.0

Compare
Choose a tag to compare
@mattfarina mattfarina released this 11 Dec 02:16
· 634 commits to master since this release

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. The glide install
    command installs the pinned dependencies from the glide.lock file while
    glide update updates the tree and lockfile. Most people should use glide install unless they want to intentionally updated the pinned dependencies.
    glide install is 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 get pins dependencies by default and allows a version to
    be passed in. For example, glide get github.com/Masterminds/convert#^1.0.0
    will fetch github.com/Masterminds/convert with a version of ^1.0.0.
  • Issue #155: Copying packages from the GOPATH is now opt-in.
  • Removed the pin command as it's not longer needed now that there are lockfiles.