- replace path comparisons with case insensitive pathEqual()
- add versionString() to debug output
- Send log output to Stderr
- re-saved deps to clean out extra stuff (see v54; godep restore; godep save -r=false; rm -rf Godeps; godep save -r). We're still using a workspace with rewrites so users of older go version can still go get this tool.
- Replace simple == with strings.EqualFold in listFiles to avoid problems with case insensitive filesystems ("Code" != "code" when doing a byte by byte comparison)
- Update some docs around vendor/
- More precise recording of dependencies. Removed recursive copying of sub directories of a package (precise vendoring). This should allow using
./...
with the go tool for compilation of project usingvendor/
. See tools#415
- Disable VendorExperiment if a godep workspace already exists.
- Trim 'rc' out of go version strings when determining major version.
- Trim 'beta' out of go version strings when determining major version.
- More verbose output on save -v.
- Add UK spelling license/licence to the pile + fix up a bunch of typos
- Clarify tag handling in docs
- Abort restore if there is no $GOPATH set.
- Dev versions of go should honor the current meaning of GO15VENDOREXPERIMENT
- Record "devel" when the release is a devel release of go (compiled from git).
- Upcase windows drive letters before comparing. Fixes #383.
- Clean package roots when attempting to find a vendor directory so we don't loop forever.
- Fixes 382
- Better error messages when parsing Godeps.json: Fixes #372
- Fix a bunch of GO15VENDOREXPERIMENT issues
- Find package directories better. Previously we used build.FindOnly which didn't work the way I expected it to (any dir would work w/o error).
- Set the VendorExperiment bool based on go version as 1.6 defaults to on.
- A bunch of extra debugging for use while sanity checking myself.
- vendor flag for test structs.
- Some tests for vendor/ stuff:
- Basic Test
- Transitive
- Transitive, across GOPATHs + collapse vendor/ directories.
- Should Fix #358
- Don't rewrite packages outside of the project. This would happen if you specified
an external package for vendoring when you ran
goodep save -r ./... github.com/some/other/package
- When downloading a dependency, create the base directory if needed.
- Record only the major go version (ex. go1.5) instead of the complete string.
- Replace
go get
, further fix up restore error handling/reporting.- Fixes #186
- Don't bother restoring/downloading if already done.
- Change up how download/restore works a little
- Try to load the package after downloading/restoring. Previously that was done too early in the process.
- make previous verbose output debug output
- report a typed error instead of a string from listPackage so it can be asserted to provide a nicer error.
- Catch go get errors that say there are no go files found. See code comment as to why.
- do all downloading during download phase.
- Fixes #358: Using wrong variable. Will add test after release.
- Fixes #356: Major performance regressions in v34
- Enable cpu profiling via flag on save.
- Cache packages by dir
- Don't do a full import pass on deps for packages in the GOROOT
- create a bit less garbage at times
- Generalize -v & -d flags
- We now use build.Context to help locate packages only and do our own parsing (via go/ast).
- Fixes reported issues caused by v33 (Removal of
go list
):- #345: Bug in godep restore
- #346: Fix loading a dot package
- #348: Godep save issue when importing lib/pq
- #350: undefined: build.MultiplePackageError
- #351: stow away helper files
- #353: cannot find package "appengine"
- Don't process imports of
.go
files tagged with theappengine
build tag.
- Don't process imports of
- Replace the use of
go list
. This is a large change although all existing tests pass.- Don't process the imports of
.go
files with theignore
build tag.
- Don't process the imports of
- Eval Symlinks in Contains() check.
- In restore, mention which package had the problem -- @shurcool
- Add
-t
flag to thegodep get
command.
- Temp work around to fix issue with LICENSE files.
- Make
version
an actual command.
- run command once during restore -v
- Better fix for the issue fixed in v25: All update paths are now path.Clean()'d
godep update package/
==godep update package
. Fixes #313
- Honor -t during update. Fixes #312
- Do not use --debug to find full revision name for mercurial repositories
- s/GOVENDOREXPERIMENT/GO15VENDOREXPERIMENT :-(
- Fix #310: Case insensitive fs issue
- Attempt to include license files when vendoring. (@client9)
- Fix conflict error message. Revisions were swapped. Also better selection of package that needs update.
- Improve error message when trying to save a conflicting revision.
- Fix for v16 bug. All vcs list commands now produce paths relative to the root of the vcs.
- Determine repo root using vcs commands and use that instead of dep.dir
- Update .travis.yml file to do releases to github
- Don't print out a workspace path when GO15VENDOREXPERIMENT is active. The vendor/ directory is not a valid workspace, so can't be added to your $GOPATH.
- Do restores in 2 separate steps, first download all deps and then check out the recorded revisions.
- Update Changelog date format
- Extract errors into separate file.
- Amend code to pass golint.
- Analyse vendored package test dependencies.
- Update documentation.
- Don't save test dependencies by default.
- Reorganize code.
- Add verbose flag.
- Skip untracked files.
- Add VCS list command.
- Revert ignoring testdata directories and instead ignore it while processing Go files and copy the whole directory unmodified.
- Fix vcs selection in restore command to work as go get does
- Remove the deprecated copy option.
- Ignore testdata directories
- Include command line packages in the set to copy
This is a simplification to how we define the behavior of the save command. Now it has two distinct package parameters, the "root set" and the "destination", and they have clearer roles. The packages listed on the command line form the root set; they and all their dependencies will be copied into the Godeps directory. Additionally, the destination (always ".") will form the initial list of "seen" import paths to exclude from copying.
In the common case, the root set is equal to the destination, so the effective behavior doesn't change. This is primarily just a simpler definition. However, if the user specifies a package on the command line that lives outside of . then that package will be copied.
As a side effect, there's a simplification to the way we add packages to the initial "seen" set. Formerly, to avoid copying dependencies unnecessarily, we would try to find the root of the VCS repo for each package in the root set, and mark the import path of the entire repo as seen. This meant for a repo at path C, if destination C/S imports C/T, we would not copy C/T into C/S/Godeps. Now we don't treat the repo root specially, and as mentioned above, the destination alone is considered seen.
This also means we don't require listed packages to be in VCS unless they're outside of the destination.
- godep version command
Output the version as well as some godep runtime information that is useful for debugging user's issues.
The version const would be bumped each time a PR is merged into master
to ensure that we'll be able to tell which version someone got when they
did a go get github.com/tools/godep
.
Many and more, see git log -p