diff options
author | Bryan C. Mills <bcmills@google.com> | 2021-04-30 00:34:54 -0400 |
---|---|---|
committer | Bryan C. Mills <bcmills@google.com> | 2021-04-30 18:14:18 +0000 |
commit | eb71887b99fa656ed627c9c1d41319b9198979c8 (patch) | |
tree | 83b356ef64337854c96b8cc63568786d7d7fb940 /src/cmd/go/internal/modcmd/vendor.go | |
parent | c3365ad5f25043d6293f5cec1e71d1526678ac62 (diff) | |
download | go-eb71887b99fa656ed627c9c1d41319b9198979c8.tar.gz go-eb71887b99fa656ed627c9c1d41319b9198979c8.zip |
cmd/go: prune go.mod and go.sum files from vendored dependencies
Fixes #42970
Change-Id: I79246ef7fc16ae05c8e7b40ffb239a61f6415447
Reviewed-on: https://go-review.googlesource.com/c/go/+/315410
Trust: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Michael Matloob <matloob@golang.org>
Diffstat (limited to 'src/cmd/go/internal/modcmd/vendor.go')
-rw-r--r-- | src/cmd/go/internal/modcmd/vendor.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cmd/go/internal/modcmd/vendor.go b/src/cmd/go/internal/modcmd/vendor.go index 86eab89065..8e1c0432f7 100644 --- a/src/cmd/go/internal/modcmd/vendor.go +++ b/src/cmd/go/internal/modcmd/vendor.go @@ -340,6 +340,15 @@ func matchPotentialSourceFile(dir string, info fs.DirEntry) bool { if strings.HasSuffix(info.Name(), "_test.go") { return false } + if info.Name() == "go.mod" || info.Name() == "go.sum" { + if gv := modload.ModFile().Go; gv != nil && semver.Compare("v"+gv.Version, "v1.17") >= 0 { + // As of Go 1.17, we strip go.mod and go.sum files from dependency modules. + // Otherwise, 'go' commands invoked within the vendor subtree may misidentify + // an arbitrary directory within the vendor tree as a module root. + // (See https://golang.org/issue/42970.) + return false + } + } if strings.HasSuffix(info.Name(), ".go") { f, err := fsys.Open(filepath.Join(dir, info.Name())) if err != nil { |