From: Bryan C. Mills Date: Thu, 9 Jan 2020 14:39:48 +0000 (-0500) Subject: cmd/go/internal/modload: do not disable Query for -mod=readonly X-Git-Tag: go1.14rc1~139 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=cec535b7b747cee83b5ab285887f3fd2dcebdc1b;p=gostls13.git cmd/go/internal/modload: do not disable Query for -mod=readonly 'go list -m' allows explicit module@version arguments, which it resolves (using Query) but does not add to the build list. Similarly, 'go list -u' resolves versions without modifying the build list. These explicit operations should be allowed even when '-mod=readonly' is set. Updates #36478 'go list' and 'go mod download' do not Change-Id: I5d2735729ad573635b9c1902d5d3a8bd960b8a76 Reviewed-on: https://go-review.googlesource.com/c/go/+/214077 Run-TryBot: Bryan C. Mills TryBot-Result: Gobot Gobot Reviewed-by: Jay Conrod --- diff --git a/src/cmd/go/internal/modload/query.go b/src/cmd/go/internal/modload/query.go index 53278b9100..031e45938a 100644 --- a/src/cmd/go/internal/modload/query.go +++ b/src/cmd/go/internal/modload/query.go @@ -79,7 +79,7 @@ func queryProxy(proxy, path, query, current string, allowed func(module.Version) if current != "" && !semver.IsValid(current) { return nil, fmt.Errorf("invalid previous version %q", current) } - if cfg.BuildMod != "" && cfg.BuildMod != "mod" { + if cfg.BuildMod == "vendor" { return nil, errQueryDisabled } if allowed == nil { diff --git a/src/cmd/go/testdata/script/mod_readonly.txt b/src/cmd/go/testdata/script/mod_readonly.txt index 1d1771e9cc..77fc735d57 100644 --- a/src/cmd/go/testdata/script/mod_readonly.txt +++ b/src/cmd/go/testdata/script/mod_readonly.txt @@ -34,6 +34,11 @@ go list all go clean -modcache go list all +# -mod=readonly must not cause 'go list -m' to fail. +# (golang.org/issue/36478) +go list -m all +! stderr 'cannot query module' + # -mod=readonly should reject inconsistent go.mod files # (ones that would be rewritten). go mod edit -require rsc.io/sampler@v1.2.0