Skip to content

Commit

Permalink
cmd/go: go env GOMOD should not download newer toolchain
Browse files Browse the repository at this point in the history
It is not neccessary to download a newer toolchain to display the path
to GOMOD or GOWORK.

Fixes: #61455

Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest,gotip-windows-amd64-longtest
Change-Id: I0b031651ad9bfeb5565361ecaff6908640ccf9c8
Reviewed-on: https://go-review.googlesource.com/c/go/+/581275
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
  • Loading branch information
samthanawalla committed Apr 25, 2024
1 parent 8960925 commit 8c0da42
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/cmd/go/internal/toolchain/select.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,14 @@ func Select() {
return
}

// As a special case, let "go env GOMOD" and "go env GOWORK" be handled by
// the local toolchain. Users expect to be able to look up GOMOD and GOWORK
// since the go.mod and go.work file need to be determined to determine
// the minimum toolchain. See issue #61455.
if len(os.Args) == 3 && os.Args[1] == "env" && (os.Args[2] == "GOMOD" || os.Args[2] == "GOWORK") {
return
}

// Interpret GOTOOLCHAIN to select the Go toolchain to run.
gotoolchain := cfg.Getenv("GOTOOLCHAIN")
gover.Startup.GOTOOLCHAIN = gotoolchain
Expand Down
24 changes: 24 additions & 0 deletions src/cmd/go/testdata/script/env_gomod_issue61455.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
env TESTGO_VERSION=go1.500
env TESTGO_VERSION_SWITCH=mismatch

# go env GOMOD should not trigger a toolchain download
cd $GOPATH/mod
go env GOMOD
stdout mod[/\\]go.mod
! stderr 'go: toolchain go1.500 invoked to provide go1.700'

# go env GOWORK should not trigger a toolchain download
cd $GOPATH/work
go env GOWORK
stdout work[/\\]go.work
! stderr 'go: toolchain go1.500 invoked to provide go1.700'

-- $GOPATH/mod/go.mod --
module example.com

go 1.700

-- $GOPATH/work/go.work --
module example.com

go 1.700

0 comments on commit 8c0da42

Please sign in to comment.