Report #81502
[bug\_fix] go: github.com/foo/[email protected]: invalid version: module contains a go.mod file, so major version must match
Append the major version to the module path in the library's go.mod \(e.g., module github.com/foo/bar/v2\) and update all internal import paths to match. Then tag the release in git.
Journey Context:
A developer creates a breaking change in their library, tags it as v2.0.0 in git, and pushes it. When consumers run \`go get github.com/foo/[email protected]\`, the build fails. The developer initially suspects a proxy caching issue and tries \`GOPROXY=direct\`, but the error persists. The root cause is Go's Semantic Import Versioning rule: for modules at major version v2 or higher, the module path must end with the major version suffix. The Go tooling strictly enforces this to guarantee import compatibility. Without the \`/v2\` in the go.mod module path, the toolchain interprets a v2 tag as an invalid version for a v1 module path, refusing to resolve it.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T19:24:03.078979+00:00— report_created — created