Skip to content

Conversation

@thaJeztah
Copy link
Member

go list expects a module to be valid, which means that dependencies must either be vendored, or downloaded in the module cache. However, when working in GOPATH mode, go.mod files are ignored, which means that go list will traverse subdirectories, even if those are a separate module, and those modules may not have their dependencies present.

In our case, we try to exclude those modules from paths to be tested, but do so based on the result of go list, which already produces errors before we filter.

These errors do not impact out tests, as we don't run tests for those paths, but do produce noise in CI, which can be confusing;

go test -coverprofile=/tmp/coverage.txt $(go list ./... | grep -vE '/vendor/|/e2e/|/cmd/docker-trust')
cmd/docker-trust/internal/trust/trust.go:28:2: cannot find package "github.com/theupdateframework/notary" in any of:
    /go/src/github.com/docker/cli/vendor/github.com/theupdateframework/notary (vendor tree)
    /usr/local/go/src/github.com/theupdateframework/notary (from $GOROOT)
    /go/src/github.com/theupdateframework/notary (from $GOPATH)
cmd/docker-trust/internal/trust/trust.go:29:2: cannot find package "github.com/theupdateframework/notary/client" in any of:
    /go/src/github.com/docker/cli/vendor/github.com/theupdateframework/notary/client (vendor tree)
    /usr/local/go/src/github.com/theupdateframework/notary/client (from $GOROOT)
    /go/src/github.com/theupdateframework/notary/client (from $GOPATH)

This patch adds a symlink for go.mod and go.sum, so that listing the packages happens in go modules mode, and doesn't traverse to other modules, such as cmd/docker-trust.

  • updates 06914dd, which attempted to exclude the docker-trust plugin
  • similar to cee9ea6, which made this change for the linter.

- What I did

- How I did it

- How to verify it

- Human readable description for the release notes

- A picture of a cute animal (not mandatory but encouraged)

…modules

`go list` expects a module to be valid, which means that dependencies must
either be vendored, or downloaded in the module cache. However, when working
in GOPATH mode, `go.mod` files are ignored, which means that `go list` will
traverse subdirectories, even if those are a separate module, and those modules
may not have their dependencies present.

In our case, we try to exclude those modules from paths to be tested, but
do so based on the _result_ of `go list`, which already produces errors before
we filter.

These errors do not impact out tests, as we don't run tests for those paths,
but do produce noise in CI, which can be confusing;

    go test -coverprofile=/tmp/coverage.txt $(go list ./... | grep -vE '/vendor/|/e2e/|/cmd/docker-trust')
    cmd/docker-trust/internal/trust/trust.go:28:2: cannot find package "github.com/theupdateframework/notary" in any of:
        /go/src/github.com/docker/cli/vendor/github.com/theupdateframework/notary (vendor tree)
        /usr/local/go/src/github.com/theupdateframework/notary (from $GOROOT)
        /go/src/github.com/theupdateframework/notary (from $GOPATH)
    cmd/docker-trust/internal/trust/trust.go:29:2: cannot find package "github.com/theupdateframework/notary/client" in any of:
        /go/src/github.com/docker/cli/vendor/github.com/theupdateframework/notary/client (vendor tree)
        /usr/local/go/src/github.com/theupdateframework/notary/client (from $GOROOT)
        /go/src/github.com/theupdateframework/notary/client (from $GOPATH)

This patch adds a symlink for `go.mod` and `go.sum`, so that listing the
packages happens in go modules mode, and doesn't traverse to other modules,
such as `cmd/docker-trust`.

- updates 06914dd, which attempted to
  exclude the docker-trust plugin
- similar to cee9ea6, which made this
  change for the linter.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
@codecov-commenter
Copy link

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants