From 9d45e833a0f78524fe45862346ddcd3682cca249 Mon Sep 17 00:00:00 2001 From: Matt <47545907+SoundMatt@users.noreply.github.com> Date: Thu, 30 Jul 2026 15:29:07 -0700 Subject: [PATCH] fix: install relay CLI from /v2 module path, pin to v2.0.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI's `go install github.com/SoundMatt/RELAY/cmd/relay@latest` used the bare (pre-v2) module path. Since RELAY v2.0.0, Go's semantic import versioning rules require the /v2 suffix for that path to resolve at all — the bare path has been silently resolving to the last v1.x tag (v1.14.0) this whole time, three spec releases behind (v1.12, v1.13, v1.14, v2.0 all shipped since), and would keep resolving there forever now that v2.x tags live under the new path (RELAY#70). Changed to `go install github.com/SoundMatt/RELAY/v2/cmd/relay@v2.0.4`, an explicit pin rather than @latest, matching this repo's existing "pin, don't float" convention for external tool checkouts (e.g. cpp-FuSa is pinned to v0.15.0 in the same workflow, #16). Verified conformance against the real RELAY v2.0.4 CLI (built the same way CI now will) before pushing: - `relay conform --strict ./build/cli/cpp-lin-cli` — PASS - `relay interop --strict --protocol LIN ./build/cli/cpp-lin-cli` — PASS, including both LIN error vectors (lin-id-overflow, lin-diagnostic-wrong-checksum). Those reject-path vectors were never actually exercised by any implementation's CI before now — RELAY v1.13 fixed a `go:embed` glob bug that had made spec/vectors/errors/* unreachable via the Vector API, so `relay interop`'s error-path comparison silently only ever ran the happy path. cpp-LIN's validate_frame() already rejects both cases correctly, so no gap. Read RELAY spec/CHANGELOG.md v1.12/v1.13/v1.14/v2.0 in full: v1.12 (add "c" as a valid CLI language) and v1.14 (RCP/DDS module-name registry) don't touch LIN or C++. v1.13's §18.2 HealthProvider/MetricsProvider/ Drainer C++ binding shapes are optional-interface documentation, not a new mandatory requirement — no code change needed. v2.0's RCP canonical-type replacement is RCP-specific, as expected, and doesn't touch LIN. No library code or test vectors changed, and no new conformance gap was found, so no version bump — consistent with this repo's precedent for pure CI-pin fixes (#16, which also didn't bump the version). Full local suite also re-run and green: 171/171 ctest, ASan+UBSan (171/171). clang-tidy/gcc-12 aren't available on this machine and weren't run locally; CI runs them natively on Ubuntu with the pinned versions this workflow already specifies. Signed-off-by: Matt <47545907+SoundMatt@users.noreply.github.com> --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9d15da1..e307b4c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -148,7 +148,7 @@ jobs: go-version: 'stable' - name: Install relay tool - run: go install github.com/SoundMatt/RELAY/cmd/relay@latest + run: go install github.com/SoundMatt/RELAY/v2/cmd/relay@v2.0.4 - name: RELAY conformance gate run: relay conform --strict ./build/cli/cpp-lin-cli