Description
What version of Go are you using (go version
)?
$ go version go version go1.12rc1 linux/amd64
Does this issue reproduce with the latest release?
Above is release candidate.
What operating system and processor architecture are you using (go env
)?
go env
Output
$ go env go version go1.12rc1 linux/amd64 ~/src/github.com/mdempsky $ go env GOARCH="amd64" GOBIN="" GOCACHE=".../.cache/go-build" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="..." GOPROXY="" GORACE="" GOROOT=".../go" GOTMPDIR="" GOTOOLDIR=".../go/pkg/tool/linux_amd64" GCCGO="gccgo" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build909675092=/tmp/go-build -gno-record-gcc-switches"
What did you do?
Change directory into a go.mod-containing project with no requirement for "path/to/main". GO111MODULE=on go get -mod=readonly path/to/main
, where the executable at path/to/main is a tool that I want once and not as a dependency for the project, or I want as a developer and not a user of the project.
What did you expect to see?
No change to go.mod file.
What did you see instead?
Addition of "path/to/main" as a requirement in go.mod.
I understand that the docs say that 'The "go get" command remains permitted to update go.mod even with -mod=readonly;. However in this situation there should be some way of not polluting the go.mod just because I happen to be in a module.
The current behaviour is equivalent requiring that I always need to have my car keys on me in the kitchen because at one stage I thought to go and get my car keys when I was in the kitchen, or that a 40lb mallet is required in the kitchen because there was a builder there using one once.