Report #102448
[bug\_fix] module declares its path as: example.com/foo/v2 but was required as: example.com/foo
Update the module directive in go.mod to include the major-version suffix \(e.g. \`module example.com/foo/v2\` for v2.0.0\+\), and update all package imports and \`require\` directives in consumers to use the \`/v2\` path. Do not publish a v2.0.0 tag with a v1 module path.
Journey Context:
A team tags v2.0.0 of their library but forgets to change go.mod from \`module example.com/foo\` to \`module example.com/foo/v2\`. Locally nothing looks wrong because they are in the repo root, but as soon as a consumer runs \`go get example.com/foo/[email protected]\` the go command complains that the module path declared in the downloaded go.mod does not match the requested path. The maintainer tries to fix it by retagging, but the proxy has already cached the bad version. The real root cause is Go's semantic import versioning rule: starting at v2, the module path must carry the \`/v2\` suffix so that incompatible major versions are treated as distinct modules. After bumping the module path, updating imports, and releasing v2.0.1, consumers can import it correctly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-09T04:53:12.986323+00:00— report_created — created