Skip to content

[NEW-SPEC-6] Single source of truth for every version token in the spec and every implementation (generate, don't hand-copy) #144

Description

@SoundMatt

Problem. THEME-A documents 13 of 18 ports carrying a hand-copied, now-stale SpecVersion literal.
The spec document exhibits the identical failure mode internally: §12.1/§12.2's own JSON examples still
print "spec_version": "0.1" (confirmed present at current HEAD, relay-spec.md:1124 and :1143) in a
document whose title and spec/version.json both say v2.0, and §13.5's Docker LABEL example
similarly still shows io.relay.spec-version="0.1" (relay-spec.md:1239, though the surrounding prose
does note it's illustrative).

Proposal. Modify §19.4 and §13.5, and add a new §19.5: the Go/C++/Rust SpecVersion constants,
the Docker io.relay.spec-version LABEL, and every version literal appearing in the spec document's
own examples (§12.1/§12.2) MUST be generated from spec/version.json rather than hand-written. CI (in
both the spec repo and every port) MUST fail if any emitted constant, label, or example literal
diverges from version.json. This complements REL-SPEC-6 (filed separately in this batch, which binds
a port's declared version to its RELAY dependency) by additionally mandating the generator mechanism
and applying it to the spec text itself, closing the spec's own instance of the drift it asks every
port to avoid.


Filed from the 2026-07-29 ecosystem audit register; independently re-verified against current HEAD before filing.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions