Closed
Description
When -mod=readonly
is set, go list
should refuse to resolve missing dependencies, and normally does.
However, if the dependency can be satisfied by adding a requirement on a module mentioned in a replace
directive, the usual lookup disabled
error message is suppressed, and go list
instead fails with updates to go.mod needed
:
example.com$ go version
go version devel +150bd4ff Wed Sep 23 07:51:17 2020 +0000 linux/amd64
example.com$ go list -mod=readonly example.com/x
cannot find module providing package example.com/x: import lookup disabled by -mod=readonly
example.com$ go mod edit -replace=example.com/[email protected]=./x
example.com$ go list -mod=readonly example.com/x
go: found example.com/x in example.com/x v0.1.0
go: updates to go.mod needed, disabled by -mod=readonly
-- go.mod --
module example.com
go 1.16
-- x/go.mod --
module example.com/x
go 1.16
-- x/x.go --
package x