Go dependency management tool experiment (deprecated)
See the release announcement for an overview of major changes!
NEW FEATURES:
install.sh
script. (#1533).DEPCACHEAGE
env var. (#1711).DEPPROJECTROOT
environment variable to supersede GOPATH deduction and explicitly set the current project's root (#1883).dep ensure
now explains what changes to the code or Gopkg.toml have induced solving (#1912).Gopkg.lock
, and the contents of vendor are only rewritten on change or hash mismatch (#1912).dep check
quickly reports if imports, Gopkg.toml, Gopkg.lock, and vendor are out of sync (#1932).BUG FIXES:
IMPROVEMENTS:
inputs-digest
was removed from Gopkg.lock
(#1912).Gopkg.lock
, and the contents of vendor are only rewritten on change or hash mismatch (#1912).Godeps
folder (#1822).dep status
to avoid hitting open file limits (#1923).v0.4.1 is a hotfix release that addresses a significant omission in v0.4.0: per-project pruning rules in Gopkg.toml
were not respected.
In the interest of causing minimal disruption to existing CI infrastructure, this release also restores the original behavior of dep prune
. The command is hidden, and the old behavior is still (even without the aforementioned bugfix) inferior to the new, dep ensure
-integrated pruning behavior in every way.
However, existing scripts based on dep prune
will continue to work using the old behavior, giving users an opportunity to update their scripts without causing undue pain in the process. Note that a future release of dep will remove dep prune
entirely, so fix your stuff now ?
v0.4.0 is a significant milestone for dep. It removes the dep prune
command, absorbing its behavior entirely into dep ensure
, with additional granular controls. This is an immediate boon for users' workflows, but it also unblocks the path to finishing essential parts of dep's design.
It is strongly recommended that you update your Gopkg.toml
to include the new pruning directives as soon as you update to this new version of dep. For most projects, adding this to Gopkg.toml
will be fine:
[prune]
unused-packages = true
go-tests = true
This will do everything dep prune
used to, and more, with fewer bugs.
Less verbose, but equally exciting news: dep init
now supports automated conversions from govendor
and glock
!
Finally, this release includes a new, detailed documentation site!
dep prune
into dep ensure
. (#944)DEPCACHEDIR
. (#1234)dep status
. (#1389
.exe
suffix. (#1291)-no-vendor
flag for ensure -update
. (#1361)git ls-remote
output and ignore all malformed lines. (#1379)-v
flag to ensure sub command's syntax. (#1458)Gopkg.toml
source
fields. (#1509)dep status
. (#962)NEW FEATURES:
DEPNOLOCK
environment variable.
(#1206)dep ensure -no-vendor -dry-run
now exits with an error when changes would
have to be made to Gopkg.lock
. This is useful for CI. (#1256)BUG FIXES:
vendor
symlink rather than returning an error. (#1191)status
shows incorrect reason for lock mismatch when ignoring packages.
(#1216)IMPROVEMENTS:
dep ensure -add
and -update
when lock is out-of-sync. (#1225)dep ensure -add
now concurrently fetches the source and adds the projects.
(#1218)Gopkg.toml
and Gopkg.lock
.
(#1114)dep ensure -update
now concurrently validates the passed project arguments.
Improving performance when updating dependencies with -update
. (#1175)dep status
now concurrently fetches repo info. Improving status performance.
(#1135)WIP:
Changes since v0.3.0
:
os.Chmod
failures on Windows due to long path length has been fixed (#925)version
command (#996)status
now shows the progress in verbose mode (#1009, #1037)Constraint
and Version
in status
json output (#976)status
table output now shows override constraints (#918)ensure
now has -vendor-only
mode to populate vendor/ without updating
Gopkg.lock (#954)Note that a number of these changes represent larger WIP - for example, the tree hashing, or the persistent boltdb cache: these will both be major boons to performance once complete, but the code integrated in those PRs is not in active use just yet.
v0.3.0
Better changelogs coming soon, we hope. The big change of note in this release is that dep ensure
has been significantly refactored, has several new flags, and bare dep ensure
no longer takes arguments (e.g. dep ensure github.com/pkg/errors
), as that approach has always been confusing and only a half-measure.
See dep help ensure
and dep ensure -examples
for more guidance.