Skip to content

cmd/go: clean doesn't respect workspace vendoringย #74337

Open
@Acedus

Description

@Acedus

Go version

go1.23.10

Output of go env in your module/workspace:

GO111MODULE='ON'
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/acedus/.cache/go-build'
GOENV='/home/acedus/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/acedus/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/acedus/go'
GOPRIVATE=''
GOPROXY='direct'
GOROOT='/usr/lib/golang'
GOSUMDB='off'
GOTMPDIR=''
GOTOOLCHAIN='local'
GOTOOLDIR='/usr/lib/golang/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.23.10'
GODEBUG=''
GOTELEMETRY='local'
GOTELEMETRYDIR='/home/acedus/.config/go/telemetry'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/home/acedus/dev/repos/kubevirt/go.mod'
GOWORK='/home/acedus/dev/repos/kubevirt/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-build3009368656=/tmp/go-build -gno-record-gcc-switches'

What did you do?

Running go clean -mod=vendor in conjunction with go workspaces fails due to inconsistent vendoring despite having run go work vendor.

It appears that go clean doesn't call modload.InitWorkfile which in turn causes the command to be oblivious to workspaces. Adding modload.InitWorkfile to runClean fixes the issue.

What did you see happen?

go clean -mod=vendor
go: inconsistent vendoring in /home/acedus/dev/repos/kubevirt:
	kubevirt.io/api: is replaced in go.mod, but not marked as replaced in vendor/modules.txt
	kubevirt.io/client-go: is replaced in go.mod, but not marked as replaced in vendor/modules.txt

	To ignore the vendor directory, use -mod=readonly or -mod=mod.
	To sync the vendor directory, run:
		go mod vendor

What did you expect to see?

go clean -mod=vendor should succeed when used in conjunction with go workspaces.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugReportIssues describing a possible bug in the Go implementation.FixPendingIssues that have a fix which has not yet been reviewed or submitted.NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions