-
Notifications
You must be signed in to change notification settings - Fork 451
godep tries to vendor a test dependency's dependency #494
Description
Expected behavior
I have a program which uses these packages:
go get -v ./...
github.com/pkg/errors (download)
github.com/xeipuuv/gojsonschema (download)
github.com/xeipuuv/gojsonreference (download)
github.com/xeipuuv/gojsonpointer (download)
github.com/pkg/errors
github.com/xeipuuv/gojsonpointer
github.com/xeipuuv/gojsonreference
github.com/Azure/custom-script-extension-linux/blobutil
github.com/Azure/custom-script-extension-linux/preprocess
github.com/xeipuuv/gojsonschema
github.com/Azure/custom-script-extension-linux/download
github.com/Azure/custom-script-extension-linux
# github.com/Azure/custom-script-extension-linux
runtime.main: call to external function main.main
runtime.main: main.main: not defined
runtime.main: undefined: main.main
However I use github.com/stretchr/testify/require
in my tests. Since it is a test depencency, it does not show up in go get ./...
.
Problem: Even though testify/require is a library, they have a vendor/
directory (https://github.com/stretchr/testify), IMO it is a bad mistake, but it shouldn't be affecting me in this case.
So, when I run godep save
, I don't expect any packages related to this test dependency (or its dependencies) to be even considered.
Actual behavior
Now I run godep save -v
which tells me:
godep: Go Version: go1.6
godep: No old Godeps.json found.
godep: Finding dependencies for [.]
godep: Found package: github.com/Azure/custom-script-extension-linux
godep: Deps: bytes encoding/json errors fmt github.com/pkg/errors github.com/xeipuuv/gojsonpointer github.com/xeipuuv/gojsonreference github.com/xeipuuv/gojsonschema io io/ioutil log math net net/http net/url os path path/filepath reflect regexp runtime strconv strings time unicode/utf8
godep: Computing new Godeps.json file
godep: Package (github.com/stretchr/testify/require) not found
Then I go get github.com/stretchr/testify/require
, then run it again:
godep: Go Version: go1.6
godep: No old Godeps.json found.
godep: Finding dependencies for [.]
godep: Found package: github.com/Azure/custom-script-extension-linux
godep: Deps: bytes encoding/json errors fmt github.com/pkg/errors github.com/xeipuuv/gojsonpointer github.com/xeipuuv/gojsonreference github.com/xeipuuv/gojsonschema io io/ioutil log math net net/http net/url os path path/filepath reflect regexp runtime strconv strings time unicode/utf8
godep: Computing new Godeps.json file
godep: Package (github.com/davecgh/go-spew/spew) not found
Now it is complaining about github.com/davecgh/go-spew/spew
which is a dependency of github.com/stretchr/testify/require
and vendored under its vendor/
$ tree -d $GOPATH/src/github.com/stretchr/testify
/Users/alp/workspace/gopath-custom-script-extension-linux/src/github.com/stretchr/testify
├── Godeps
├── _codegen
├── assert
├── http
├── mock
├── require
├── suite
└── vendor
└── github.com
├── davecgh
│ └── go-spew
│ └── spew
├── pmezard
│ └── go-difflib
│ └── difflib
└── stretchr
└── objx
└── codegen
But this should not be godep's concern because it is not supposed to do anything for test dependencies, am I right?
Steps to reproduce behavior
Described above.
godep version
output
godep v74 (darwin/amd64/go1.6.2)
go version
output
go version go1.6.2 darwin/amd64
Contents of Godeps.json file
N/A