Skip to content

cmd/go: go list -u -m all fails loading module retractions: module requires go >= 1.N+1 (running go 1.N) #66403

@cardil

Description

@cardil

Go version

go version go1.21.4 linux/amd64

Output of go env in your module/workspace:

go env output:
GO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/ksuszyns/.cache/go-build'
GOENV='/home/ksuszyns/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/ksuszyns/.gvm/pkgsets/go1.21.4/global/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/ksuszyns/.gvm/pkgsets/go1.21.4/global'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/home/ksuszyns/.gvm/gos/go1.21.4'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/home/ksuszyns/.gvm/gos/go1.21.4/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21.4'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/home/ksuszyns/git/ghet/go.mod'
GOWORK='/home/ksuszyns/git/ghet/go.work'
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build221871812=/tmp/go-build -gno-record-gcc-switches'

What did you do?

When a module with retractions is a dependency, and that module has a newer version, which requires a newer version of Go than it's currently running, the command: go list -u -m all fails.

Other similar issues: #45305, #41350 (although with different reasons)

Reproducer:

  1. Checkout the example https://github.com/cardil/repro-golang-66403
  2. Switch to Go < 1.22
  3. Execute go list -u -m all

What did you see happen?

The command go list -u -m all fails with:

go: loading module retractions for github.com/buildkite/agent/[email protected]: module github.com/buildkite/agent/[email protected] requires go >= 1.22 (running go 1.21.4)

What did you expect to see?

I expected to see the list of modules.

Metadata

Metadata

Assignees

Labels

GoCommandcmd/goNeedsFixThe path to resolution is known, but the work has not been done.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions