aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/modcmd/vendor.go
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2021-04-30 00:34:54 -0400
committerBryan C. Mills <bcmills@google.com>2021-04-30 18:14:18 +0000
commiteb71887b99fa656ed627c9c1d41319b9198979c8 (patch)
tree83b356ef64337854c96b8cc63568786d7d7fb940 /src/cmd/go/internal/modcmd/vendor.go
parentc3365ad5f25043d6293f5cec1e71d1526678ac62 (diff)
downloadgo-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.go9
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 {