fix: bump CI relay pin to v2.0.4 under the new /v2 module path - #40
Merged
Conversation
The conformance-gate job installed the reference relay CLI via `go install github.com/SoundMatt/RELAY/cmd/relay@v1.11.0`, which was already four minor versions stale (v1.12–v1.14 shipped since) and, as of RELAY's v2.0 MAJOR bump, is no longer installable at all: v2.0 changed the module path to `github.com/SoundMatt/RELAY/v2` per Go's semantic import versioning rules (SoundMatt/RELAY#70), so the old import path can't resolve v2.x releases at all. Bump the pin to `github.com/SoundMatt/RELAY/v2/cmd/relay@v2.0.4`. Reviewed the intervening spec changes (CHANGELOG v1.12–v2.0) for any newly-applicable conformance requirements: - v1.12: added "c" as a valid CLI language value — not applicable, rust-LIN already reports "rust". - v1.13: fixed `relay interop`/`relay conform --strict` CLI bugs, and documented HealthProvider/MetricsProvider/Drainer for the C++/Rust bindings — these are optional, capability-declared interfaces (spec §9); rust-LIN already implements HealthProvider/MetricsProvider on VirtualBus. - v1.14: expanded the §13.7.2 module-name registry with RCP-specific module names (avtp, acf, lifecycle, regmap, discovery, request, fragment) and standardized DDS RTPS internal naming — neither applies to a LIN implementation. - v2.0: replaced RCP's canonical types with the real TC18 protocol — RCP-specific, does not touch LIN. Built the reference `relay` v2.0.4 CLI locally the same way CI now will and ran it against a release build of rust-lin: - `relay conform --strict ./target/release/rust-lin` → PASS - `relay interop --strict --protocol LIN ./target/release/rust-lin` → PASS (3/3 golden vectors EQUIVALENT) No new conformance gap, so no source changes and no crate version bump — consistent with the precedent set by the rust-FuSa CI-pin-only fix in #11, which also didn't bump the crate version. Full local verification also run and green: cargo build --release, cargo test (46 unit/integration + 2 doctests), cargo clippy -D warnings, cargo fmt --check, and the ungated rust-FuSa v0.3.10 gates (rsfusa qualify: 16/16, rsfusa release). Signed-off-by: Matt <47545907+SoundMatt@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
RELAY's conformance-gate job installed the reference
relayCLI via a hard pin:go install github.com/SoundMatt/RELAY/cmd/relay@v1.11.0. This was already four minor versions stale (v1.12, v1.13, v1.14 shipped since), and as of RELAY's v2.0 MAJOR bump today, it's no longer installable at all — v2.0 moved the module path togithub.com/SoundMatt/RELAY/v2per Go's semantic import versioning rules (SoundMatt/RELAY#70), so the old import path cannot resolve any v2.x tag.go install github.com/SoundMatt/RELAY/v2/cmd/relay@v2.0.4..github/workflows/ci.yml) referenced the old pin; no local dev docs referenced it (README/CONTRIBUTING already said "RELAY spec v2.0" from an earlier, unrelated audit pass).Conformance review (v1.11 → v2.0.4 is a real multi-version jump)
Read RELAY's
spec/CHANGELOG.mdentries for v1.12–v2.0 to check for any newly-applicable general conformance requirements:"c"as a valid CLIlanguagevalue. Not applicable; rust-LIN already reports"rust".relayCLI bugs (interopwith zero binaries,conform --strictflag placement) — CI already passes--strictbefore the binary path, so unaffected. Also documentedHealthProvider/MetricsProvider/Drainerfor the C++/Rust bindings — these are optional, capability-declared interfaces (spec §9, "Applicable to all protocols" but explicitly optional). rust-LIN'sVirtualBusalready implementsHealthProvider/MetricsProvider.avtp,acf,lifecycle,regmap,discovery,request,fragment) and standardized DDS RTPS internal naming. Neither applies to a LIN implementation.Conclusion: no new conformance gap for LIN from this version jump.
(Note: while auditing §13.7.2 I noticed the registry's
virtual(notvirtual_bus) module-naming rule already existed at v1.11.0, unchanged since — rust-LIN's module is namedvirtual_bus. This is a pre-existing structural drift unrelated to this version bump, not caught byrelay conformsince the spec explicitly documents that conform cannot verify source-level requirements. Flagging for visibility, not fixing here — out of scope for a CI-pin PR.)Verification performed
Built the reference
relayv2.0.4 CLI locally exactly as CI now will, and ran it against a release build ofrust-lin:Also ran the full local build/test suite:
cargo build --release— cleancargo test— 46 unit/integration tests + 2 doctests, all passcargo clippy --all-targets -- -D warnings— cleancargo fmt --check— cleanrsfusa qualify(16/16 cases),rsfusa release(SBOM/provenance/manifest) — both greenNo source changes were required, so no crate version bump — this mirrors the precedent set by #11 (the analogous rust-FuSa CI-pin-only fix), which also didn't bump the crate version.
Cargo.tomlstays at0.4.2.Test plan
relay conform --strictagainst a locally-built v2.0.4 CLI — PASSrelay interop --strict --protocol LINagainst a locally-built v2.0.4 CLI — PASS (3/3 golden vectors EQUIVALENT)cargo build --release,cargo test,cargo clippy -D warnings,cargo fmt --check— all green locallyqualify/releasegates — green locally.github/workflows/ci.yml) green on this PR