Status: accepted at commit 8bb9755. This document defines the compatibility evidence that
must exist before the Rust-port plan exits. It does not turn the current
evidence-collection row into a broad support promise.
A compatibility claim names an exact KiCad release, such as
10.0.5, rather than only a major version. The row also records
each observed file-format identifier independently for PCB, footprint,
schematic, symbol-library, project JSON, worksheet, and exported netlist
inputs. A file's authored version is format evidence;
generator_version is provenance and must not be used as a
substitute.
Each promoted family has separate cells for parse/read, exact or semantic
round trip, mutation/writeback, plotter/render output, and applicable
kicad-cli acceptance. A passing parser cell does not imply that
the writer, plotter, or CLI cell passes. Every cell links to a Rack case or a
durable fixture manifest. Missing and not-applicable cells are explicit.
| KiCad release | Channel | Observed format identifiers | Current evidence | Disposition |
|---|---|---|---|---|
10.0.5 |
stable | Per-family inventory is required from the repository-local corpus before plan exit; no dates are inferred from the release number. | Windows kicad-cli version reports
10.0.5. Existing PCB save/upgrade and render-cache oracle
lanes provide operation evidence, but do not yet constitute the
complete per-family release matrix. |
Evidence collecting; not yet a complete support claim. |
| next selected nightly | nightly, opt-in | No build selected. | No nightly lane is active. | Advisory only. |
Before plan exit, the kicad-version-compatibility step must
replace every inventory placeholder for each claimed stable release with
the exact release/build identity, all encountered format identifiers, the
hashed fixture or corpus manifest, and the Rack evidence for every promoted
operation. Unknown newer forms must still demonstrate source preservation;
they are not silently promoted to typed support. Failures remain scoped to
their family and operation instead of invalidating unrelated cells.
A nightly lane is added only when an upstream format change is known to be staged or when a concrete consumer requires early validation. It pins the full build string, upstream Git revision when available, capture date, and fixture hashes. Nightly failures are visible and actionable but advisory; nightly success never expands the stable compatibility claim. When the change ships, its evidence is recaptured under the exact stable release and only then may it enter an authoritative row.
Upstream source revisions used to answer semantic questions are recorded beside the affected design or oracle and are distinct from the installed release row. Rust dependency versions, including HarfRust, ttf-parser, and Skrifa, are lockfile and dependency-review evidence; they likewise do not stand in for a KiCad release claim.