Skip to content

v1.13.0

Choose a tag to compare

@SoundMatt SoundMatt released this 27 Jul 22:57
· 39 commits to main since this release
304bb5d

Deep-audit fix pass — two live CLI conformance-gate bugs, several tooling correctness fixes, and C++/Rust language-binding parity.

P0 bugs fixed

  • relay interop with zero binaries silently PASSed / exit 0 instead of the spec-mandated exit 2
  • relay conform --strict placed after the binary path was silently dropped instead of applied (same failure class as v1.11.1's --format json bug)
  • cmd/relay's toolVersion had drifted behind SpecVersion again — bumped, now guarded by a test so it can't silently recur

P1 fixes

  • Golden error vectors (spec/vectors/errors/*.json) were unreachable through the go:embed-based API — relay interop could never exercise reject-path behavior, only the happy path
  • relay crossbar: correct per-destination converter inference, a genuinely persistent send-sink process (was one subprocess per message, contradicting spec §11.2's streaming contract), back-pressure-honoring subscribe
  • router.Router.AddSpoke/AddRoute now properly synchronized (was a real data race)
  • SOME/IP FromMessage now wraps the spec-mandated ErrMalformedMessage sentinel
  • §17 corrected to accurately state what relay conform (a black-box CLI tool) can and can't verify
  • §18.2/§18.3: added missing C++/Rust HealthProvider/MetricsProvider/Drainer bindings and SubscriberOptions routing-key fields

P2s

relay convert stdin size cap, relay trace orphaned-child-process fix, a duplicate differently-cased BackPressurePolicy removed, stale Dockerfile labels, README/ROADMAP/spec-title currency — with durable drift-guard tests added given staleness recurred across three releases running.

Process

RELAY's own CI now runs relay conform/relay interop against itself for the first time — spec §20.1 requires both of a conformant implementation.

SpecVersion = "1.13" — additive, non-breaking.

Full diff: v1.12.0...v1.13.0