Skip to content

fix: bump CI relay pin to v2.0.4 under the new /v2 module path - #40

Merged
SoundMatt merged 1 commit into
mainfrom
fix/relay-cli-pin-v2.0.4
Jul 30, 2026
Merged

fix: bump CI relay pin to v2.0.4 under the new /v2 module path#40
SoundMatt merged 1 commit into
mainfrom
fix/relay-cli-pin-v2.0.4

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Summary

RELAY's conformance-gate job installed the reference relay CLI 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 to github.com/SoundMatt/RELAY/v2 per Go's semantic import versioning rules (SoundMatt/RELAY#70), so the old import path cannot resolve any v2.x tag.

  • Bumped the pin to go install github.com/SoundMatt/RELAY/v2/cmd/relay@v2.0.4.
  • Only one workflow (.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.md entries for v1.12–v2.0 to check for any newly-applicable general conformance requirements:

  • v1.12 — added "c" as a valid CLI language value. Not applicable; rust-LIN already reports "rust".
  • v1.13 — fixed two relay CLI bugs (interop with zero binaries, conform --strict flag placement) — CI already passes --strict before the binary path, so unaffected. Also documented HealthProvider/MetricsProvider/Drainer for the C++/Rust bindings — these are optional, capability-declared interfaces (spec §9, "Applicable to all protocols" but explicitly optional). rust-LIN's VirtualBus already implements HealthProvider/MetricsProvider.
  • 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 OPEN Alliance TC18 protocol. RCP-specific, breaking change does not touch LIN.

Conclusion: no new conformance gap for LIN from this version jump.

(Note: while auditing §13.7.2 I noticed the registry's virtual (not virtual_bus) module-naming rule already existed at v1.11.0, unchanged since — rust-LIN's module is named virtual_bus. This is a pre-existing structural drift unrelated to this version bump, not caught by relay conform since 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 relay v2.0.4 CLI locally exactly as CI now will, and ran it against a release build of rust-lin:

$ relay conform --strict ./target/release/rust-lin
PASS  §12.1  conforms to RELAY version document schema
PASS  §12.2  conforms to RELAY capabilities document schema
PASS  §12.3  conforms to RELAY status document schema
RESULT: PASS

$ relay interop --strict --protocol LIN ./target/release/rust-lin
lin-diagnostic-wrong-checksum (LIN): relay=EQUIVALENT, rust-lin=EQUIVALENT
lin-frame (LIN): relay=EQUIVALENT, rust-lin=EQUIVALENT
lin-id-overflow (LIN): relay=EQUIVALENT, rust-lin=EQUIVALENT
RESULT: PASS

Also ran the full local build/test suite:

  • cargo build --release — clean
  • cargo test — 46 unit/integration tests + 2 doctests, all pass
  • cargo clippy --all-targets -- -D warnings — clean
  • cargo fmt --check — clean
  • rust-FuSa v0.3.10 ungated gates: rsfusa qualify (16/16 cases), rsfusa release (SBOM/provenance/manifest) — both green

No 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.toml stays at 0.4.2.

Test plan

  • relay conform --strict against a locally-built v2.0.4 CLI — PASS
  • relay interop --strict --protocol LIN against 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 locally
  • rust-FuSa qualify/release gates — green locally
  • CI conformance job (.github/workflows/ci.yml) green on this PR

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>
@SoundMatt
SoundMatt merged commit 0674e3c into main Jul 30, 2026
7 checks passed
@SoundMatt
SoundMatt deleted the fix/relay-cli-pin-v2.0.4 branch July 30, 2026 22:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant