You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[THEME-K] External-reference interoperability testing is absent for the ecosystem's flagship protocols (RCP, LIN, SOME/IP) #125
Finding. Only the DDS, CAN, and MQTT families reportedly have genuine external-reference-
implementation interop testing (Eclipse CycloneDDS, SocketCAN/can-utils, Eclipse Mosquitto
respectively). All four RCP ports, all three LIN ports, and go-SOMEIP reportedly have none — they rely
solely on RELAY's own internal relay interop CLI, which is a cross-protocol / golden-vector
self-check against RELAY's own fixtures, and therefore structurally cannot catch a wire-format
misreading that RELAY and every port share. Worse, per the audit, every genuine external-interop job
that does exist is probe-then-skip / build-tag / #[ignore]-gated, so on a runner missing the
external tool a green check is indistinguishable from a job that executed nothing.
This is the same underlying gap as INTEROP-01/02/03/04/05 (filed separately in this same batch with
per-finding detail and recommendations); this issue exists as the umbrella tracking item tying them
together, per the audit's own framing of it as a dedicated cross-cutting pass. See those issues for
the concrete recommendations (shared TC18/LIN-stack/vsomeip harnesses, removing || true and
probe-then-skip, and adopting the MQTT family's service-container pattern).
Filed from the 2026-07-29 ecosystem audit register; independently re-verified against current HEAD before filing.
Mirrors RCP-ARCHITECTURE.md's role: written before touching any individual repo's CI, with every claim in its current-state inventory independently re-verified against the real .github/workflows/*.yml in each affected repo (RCP ×4, LIN ×3, MQTT ×2, DDS ×3, CAN ×3, SOME/IP ×1) — not taken from this audit's own text.
Two things that re-verification found the audit got wrong or missed:
MQTT's claimed "no probe-then-skip" is false — both go-mqtt and rust-MQTT gate their live-broker job behind a probe step.
go-DDS/rust-DDS's CycloneDDS probe pulls eclipse-cyclonedds/cyclonedds:latest, a Docker tag that was never published per the repos' own code comments — these jobs plausibly never execute at all, not merely "sometimes skip." cpp-DDS already fixed this by building the peer locally.
Defines four ecosystem-wide conventions resolving INTEROP-04/05/06/07 (#149, #150, #151, #152) as small, independent, low-risk PRs needing no new infrastructure — naming discipline, exit-code discipline, sequenced probe-hardening (fix the DDS image-tag bug before hardening the probe), and service-container-first applied as a principle rather than literal MQTT YAML everywhere.
Scopes but deliberately does not build INTEROP-01/02's (#147, #148) RCP/LIN external golden-vector harnesses: defines vector location, citation requirement, harness shape, and sequencing (RCP before LIN), left as its own separately-scoped, multi-session effort — authoring genuinely independent TC18/ISO-17987 vectors is a careful, slow exercise that deserves its own dedicated pass, not something to rush inside a coordinating doc.
This issue and #147-152 remain open, to be implemented as follow-on PRs against this design, per the doc's recommended shipping order (mechanical fixes first, vector harnesses last).
Activity
docs: add external-interop architecture for THEME-K (#125) (#188)
SoundMatt commentedon Aug 21, 2026
Coordinating design doc landed in #188:
docs/INTEROP-ARCHITECTURE.md.Mirrors
RCP-ARCHITECTURE.md's role: written before touching any individual repo's CI, with every claim in its current-state inventory independently re-verified against the real.github/workflows/*.ymlin each affected repo (RCP ×4, LIN ×3, MQTT ×2, DDS ×3, CAN ×3, SOME/IP ×1) — not taken from this audit's own text.Two things that re-verification found the audit got wrong or missed:
eclipse-cyclonedds/cyclonedds:latest, a Docker tag that was never published per the repos' own code comments — these jobs plausibly never execute at all, not merely "sometimes skip." cpp-DDS already fixed this by building the peer locally.Defines four ecosystem-wide conventions resolving INTEROP-04/05/06/07 (#149, #150, #151, #152) as small, independent, low-risk PRs needing no new infrastructure — naming discipline, exit-code discipline, sequenced probe-hardening (fix the DDS image-tag bug before hardening the probe), and service-container-first applied as a principle rather than literal MQTT YAML everywhere.
Scopes but deliberately does not build INTEROP-01/02's (#147, #148) RCP/LIN external golden-vector harnesses: defines vector location, citation requirement, harness shape, and sequencing (RCP before LIN), left as its own separately-scoped, multi-session effort — authoring genuinely independent TC18/ISO-17987 vectors is a careful, slow exercise that deserves its own dedicated pass, not something to rush inside a coordinating doc.
This issue and #147-152 remain open, to be implemented as follow-on PRs against this design, per the doc's recommended shipping order (mechanical fixes first, vector harnesses last).
docs: correct INTEROP-ARCHITECTURE.md's DDS framing, add hardening-re…