feat(relay): adopt RELAY spec v1.10 (§13.7 + §20 continuous conformance)#34
Merged
Conversation
Uplift go-LIN from RELAY spec v1.0 to the current stable spec v1.10, closing the full chain of adoption issues (#29–#33). Dependency / spec uplift (#32): - Bump github.com/SoundMatt/RELAY v1.0.0 → v1.10.0 - SpecVersion auto-tracks relay.SpecVersion (now "1.10") - §13.7 library architecture already aligned (adapt, virtual, mock) Interop driver + crossbar spokes (#29, #31): - Add `convert --protocol LIN [--format json]` (§11.2): lin.Frame JSON on stdin → Frame.ToMessage() → relay.Message JSON on stdout, deterministic zero timestamp; ErrInvalidFrame sentinel + exit 1 on invalid input, exit 2 on bad args. relay interop now reports go-lin EQUIVALENT. - Add streaming `send --format json` NDJSON sink and `subscribe --format json` NDJSON source so go-lin is a full crossbar spoke. - Advertise convert/send/subscribe in the capabilities document. §20 continuous-conformance CI gates (#30, #33): - New relay-conform job: `relay conform --strict` against the built CLI. - New relay-interop job: `relay interop --protocol LIN`. - Expand the go-FuSa job to the full lifecycle: check, trace (-req-coverage 100), cyber, vuln, qualify (gating) + verify/tara/fmea/ release/audit-pack evidence. Functional safety: - Add REQ-ADAPT-001..005 and REQ-MOCK-001 (106 atomic ASIL-B reqs) with adapt_test.go / mock_test.go so trace reaches 100% function-annotation density as well as 100% requirement traceability. - Add TARA (ISO 21434) to the committed evidence set and to release.yml. - Remove a stray sync-conflict copy (mock/mock 2.go); ignore transient gofusa gate reports and CLI build binaries. Verified locally: build, go vet, go test -race, relay conform --strict PASS, relay interop --protocol LIN PASS (EQUIVALENT), and the full gofusa lifecycle (check/trace 100/cyber/vuln/qualify) all green. Closes #29 Closes #30 Closes #31 Closes #32 Closes #33 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Matt Jones <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.
Uplifts go-LIN from RELAY spec v1.0 to the current stable spec v1.10, closing the full chain of adoption issues.
Dependency / spec uplift (#32)
github.com/SoundMatt/RELAYv1.0.0 → v1.10.0SpecVersionauto-tracksrelay.SpecVersion(now"1.10")adapt,virtual,mock)Interop driver + crossbar spokes (#29, #31)
convert --protocol LIN [--format json](§11.2):lin.FrameJSON →Frame.ToMessage()→relay.MessageJSON, deterministic zero timestamp;ErrInvalidFrame+ exit 1 on invalid input, exit 2 on bad args.relay interop --protocol LINnow reports go-lin EQUIVALENT.send --format jsonNDJSON sink andsubscribe --format jsonNDJSON source → full crossbar spoke.convert/send/subscribeadvertised in the capabilities document.§20 continuous-conformance CI gates (#30, #33)
relay-conformjob:relay conform --strictagainst the built CLI.relay-interopjob:relay interop --protocol LIN.gofusajob expanded to the full lifecycle:check,trace -req-coverage 100,cyber,vuln,qualify(gating) +verify/tara/fmea/release/audit-packevidence.Functional safety
adapt_test.go/mock_test.go→ 100% requirement traceability and 100% function-annotation density.release.yml.mock/mock 2.go); ignore transient gofusa gate reports and CLI build binaries.Verification (local)
go build/go vet/go test -race✅relay conform --strict→ PASS ✅relay interop --protocol LIN→ PASS (EQUIVALENT) ✅gofusa check / trace -req-coverage 100 / cyber / vuln / qualify→ all green ✅Closes #29, #30, #31, #32, #33