From 26aadfa0442249d4b55d7135134eb7ec0a43a850 Mon Sep 17 00:00:00 2001 From: Joshua Crowgey Date: Thu, 13 Feb 2020 06:02:10 +0000 Subject: [PATCH] cmd/vendor: create modules.txt even for unused deps `go mod vendor` should create vendor/modules.txt even when the only deps in go.mod are unused. Fixes: #36580 Change-Id: I92a746d3f013bc2bdc3d2cec6e14b16f606c2edd GitHub-Last-Rev: ea39a1c62294f42e5e5aab049f466189de0fd42d GitHub-Pull-Request: golang/go#36920 Reviewed-on: https://go-review.googlesource.com/c/go/+/217135 Run-TryBot: Bryan C. Mills TryBot-Result: Gobot Gobot Reviewed-by: Bryan C. Mills --- src/cmd/go/internal/modcmd/vendor.go | 5 +++++ .../testdata/script/mod_vendor_unused_only.txt | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/cmd/go/testdata/script/mod_vendor_unused_only.txt diff --git a/src/cmd/go/internal/modcmd/vendor.go b/src/cmd/go/internal/modcmd/vendor.go index 0c00d1222e..8509ceb7a8 100644 --- a/src/cmd/go/internal/modcmd/vendor.go +++ b/src/cmd/go/internal/modcmd/vendor.go @@ -123,6 +123,11 @@ func runVendor(cmd *base.Command, args []string) { fmt.Fprintf(os.Stderr, "go: no dependencies to vendor\n") return } + + if err := os.MkdirAll(vdir, 0777); err != nil { + base.Fatalf("go mod vendor: %v", err) + } + if err := ioutil.WriteFile(filepath.Join(vdir, "modules.txt"), buf.Bytes(), 0666); err != nil { base.Fatalf("go mod vendor: %v", err) } diff --git a/src/cmd/go/testdata/script/mod_vendor_unused_only.txt b/src/cmd/go/testdata/script/mod_vendor_unused_only.txt new file mode 100644 index 0000000000..839c6453cf --- /dev/null +++ b/src/cmd/go/testdata/script/mod_vendor_unused_only.txt @@ -0,0 +1,17 @@ +# Ensure that we generate a vendor/modules.txt file even when the only +# requirements in go.mod are unused. Regression test for +# golang.org/issue/36580 + +env GO111MODULE=on + +go mod vendor +cmp go1.14-modules.txt vendor/modules.txt + +-- go.mod -- +module example.com/m +go 1.14 + +require example.com v1.0.0 // indirect +-- go1.14-modules.txt -- +# example.com v1.0.0 +## explicit -- 2.50.0