Skip to content

feat: adopt RELAY spec v0.3 — version bump, topic_name, golden vector test#13

Merged
SoundMatt merged 1 commit into
mainfrom
feat/relay-v0.3
Jun 17, 2026
Merged

feat: adopt RELAY spec v0.3 — version bump, topic_name, golden vector test#13
SoundMatt merged 1 commit into
mainfrom
feat/relay-v0.3

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Summary

Adopts RELAY spec v0.3 for cpp-RCP (closes #11).

The only v0.3 breaking change (§15.7.6 — SOME/IP Meta["someip.msg_type"] becomes numeric) is SOME/IP-only. RCP's ToMessage()/FromMessage() mappings are unchanged, so adoption is a clean version bump plus the additive §14.1 option.

Changes

  • include/relay/relay.hpp

    • kRelaySpecVersion: "0.2""0.3"
    • SubscriberOptions gains std::string topic_name (§14.1, v0.3). DDS adapters route subscriptions on it; RCP and all other adapters ignore it.
  • tests/test_relay.cpp

    • Version assertion updated to "0.3"
    • Golden-vector test: pins rcp::status_to_message() to the canonical reference in RELAY spec/vectors/rcp-status.json — asserts the mapping of protocol=5, id="FrontLeft", seq=3, payload=0x01, meta["rcp.healthy"]="true" is lossless against the spec's own fixture.
    • SubscriberOptions.topic_name test (default empty; RCP adapter ignores it)

Not included (separate, larger scope)

The v0.3 CLI conformance path — building a cpp-rcp CLI with -DRELAY_BUILD_CLI=ON and running relay conform to validate version/capabilities/status JSON against the §12 schemas — is a distinct component (introduces a JSON dependency + CLI binary). Tracked for a follow-up.

Test plan

  • Local build + rcp_relay pass (golden vector + topic_name tests green)
  • CI matrix green

… vector test

Adopts RELAY spec v0.3 for cpp-RCP (closes issue #11). The v0.3 breaking change
(§15.7.6 — SOME/IP numeric msg_type) does not affect the RCP protocol, so RCP's
ToMessage()/FromMessage() mappings are unchanged.

- relay.hpp: kRelaySpecVersion "0.2" → "0.3"
- relay.hpp: SubscriberOptions gains topic_name (§14.1 additive, v0.3); DDS
  adapters route on it, RCP and all other adapters ignore it
- test_relay.cpp: assert version "0.3"; add golden-vector test pinning
  status_to_message() to RELAY spec/vectors/rcp-status.json (lossless mapping of
  protocol/id/seq/payload/meta); add SubscriberOptions.topic_name test

Note: the v0.3 CLI conformance path (`-DRELAY_BUILD_CLI=ON` + `relay conform`
schema validation, §12) is a separate larger component, not included here.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
@SoundMatt
SoundMatt merged commit d8399f9 into main Jun 17, 2026
19 checks passed
@SoundMatt
SoundMatt deleted the feat/relay-v0.3 branch June 17, 2026 03:19
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.

Adopt RELAY spec v0.3 — JSON schemas and golden vectors available

1 participant