Summary
`go install github.com/SoundMatt/RELAY/cmd/relay@v2.0.0` fails:
```
go: github.com/SoundMatt/RELAY/cmd/relay@v2.0.0: github.com/SoundMatt/RELAY@v2.0.0: invalid version: module contains a go.mod file, so module path must match major version ("github.com/SoundMatt/RELAY/v2")
```
`go.mod`'s module path is still `github.com/SoundMatt/RELAY` (no `/v2` suffix). Per Go's semantic import versioning rules, once a tag reaches v2.0.0+, the module path itself must carry the major-version suffix, or the module becomes uninstallable via standard `go install`/`go get` tooling (short of using `GONOSUMCHECK`/replace-directive workarounds that aren't viable for a downstream CI pin). `v1.14.0` and earlier install fine; `v2.0.0` does not.
Repro
```
$ go install github.com/SoundMatt/RELAY/cmd/relay@v1.14.0
succeeds
$ go install github.com/SoundMatt/RELAY/cmd/relay@v2.0.0
go: github.com/SoundMatt/RELAY/cmd/relay@v2.0.0: github.com/SoundMatt/RELAY@v2.0.0: invalid version: module contains a go.mod file, so module path must match major version ("github.com/SoundMatt/RELAY/v2")
```
Impact
Any downstream repo (found while auditing SoundMatt/rust-CAN's CI, which pins the reference `relay` CLI for conformance/interop testing) currently cannot pin to v2.0.0 or move past v1.14.0 via ordinary `go install`. rust-CAN is pinning to v1.14.0 as a practical workaround for now (still an improvement over its previous v1.10.0 pin — includes the v1.13 golden-vector embed fix — but can't reach true "current").
Suggested fix
Either bump `go.mod`'s module path to `github.com/SoundMatt/RELAY/v2` (and update internal imports / `cmd/relay`'s own module references accordingly) to comply with Go's semantic import versioning, or re-tag if v2.0.0 was cut before this was addressed.
Summary
`go install github.com/SoundMatt/RELAY/cmd/relay@v2.0.0` fails:
```
go: github.com/SoundMatt/RELAY/cmd/relay@v2.0.0: github.com/SoundMatt/RELAY@v2.0.0: invalid version: module contains a go.mod file, so module path must match major version ("github.com/SoundMatt/RELAY/v2")
```
`go.mod`'s module path is still `github.com/SoundMatt/RELAY` (no `/v2` suffix). Per Go's semantic import versioning rules, once a tag reaches v2.0.0+, the module path itself must carry the major-version suffix, or the module becomes uninstallable via standard `go install`/`go get` tooling (short of using `GONOSUMCHECK`/replace-directive workarounds that aren't viable for a downstream CI pin). `v1.14.0` and earlier install fine; `v2.0.0` does not.
Repro
```
$ go install github.com/SoundMatt/RELAY/cmd/relay@v1.14.0
succeeds
$ go install github.com/SoundMatt/RELAY/cmd/relay@v2.0.0
go: github.com/SoundMatt/RELAY/cmd/relay@v2.0.0: github.com/SoundMatt/RELAY@v2.0.0: invalid version: module contains a go.mod file, so module path must match major version ("github.com/SoundMatt/RELAY/v2")
```
Impact
Any downstream repo (found while auditing SoundMatt/rust-CAN's CI, which pins the reference `relay` CLI for conformance/interop testing) currently cannot pin to v2.0.0 or move past v1.14.0 via ordinary `go install`. rust-CAN is pinning to v1.14.0 as a practical workaround for now (still an improvement over its previous v1.10.0 pin — includes the v1.13 golden-vector embed fix — but can't reach true "current").
Suggested fix
Either bump `go.mod`'s module path to `github.com/SoundMatt/RELAY/v2` (and update internal imports / `cmd/relay`'s own module references accordingly) to comply with Go's semantic import versioning, or re-tag if v2.0.0 was cut before this was addressed.