rfc011 conversions
Phase 1's gate, per the RFC: for each family, the generated order must equal the curated one exact-or-explained in that family's conversion PR; only then is the curated file deleted and the generated one committed with its provenance header. This ledger tracks that, family by family, in the RFC's order β so "converted" is a recorded verdict with evidence, not a memory.
A family is DONE only when all four columns are yes. Rows may only move forward; a regression (a generated order hand-edited, a drift detector disabled) reopens the row.
| # | family (curated file) | target contract | drift detector | regeneration exact-or-explained | curated file deleted |
|---|---|---|---|---|---|
| 1 | build-order-hummingbird-desktops.yml | β
gap_measurement (hummingbird) | β
gap-drift.yml propose mode (daily, revision-gated) | β generated by the engine since #415/#417; provenance header in file | n/a β the generated file IS the canonical one |
| 2 | build-order-xfce-fedora.yml | β
gap_measurement (fedora) | π gap-drift.yml exhibit mode (dispatch-only until row complete) | β known diff, pre-explained: the curated order carries xfconf + libxfce4ui because xfwl4's crates pin >= 4.21 versions Fedora 44 does not ship; closure() satisfies requirements by NAME, so regeneration emits xfwl4 alone. The conversion needs version-aware have in the engine. See manifests/xfce-fedora.yaml. | β |
| 3 | build-order-xfce.yml (EL10) | β el10 has no gap_measurement yet (needs a roots manifest + CentOS index URLs) | β | β | β |
| 4 | build-order-gnome51.yml (EL10 GNOME) | β same as above, plus native-spec payloads (never rewritten, per the RFC) | β | β | β |
| 5 | build-order.yml (converts last) | β | β | β | β |
| β | build-order-fprintd.yml, build-order-fprintd-aarch64.yml | one-off family; convert or retire during row 3 (same el10 contract) | β | β | β |
What each row needsβ
- Target contract: a
gap_measurement:block on the target inmanifests/package-factory.yaml(roots_manifest, target_index, reference_index, source_reference_index). The engine (scripts/measure-target-gap.py --target <id>) refuses to run without it, loudly, which is the point. - Drift detector: the
gap-drift.ymlpattern β compare the live index revision against the last committed measurement, re-measure only on change, open a review PR with adds/drops and provenance. Dispatch-only until the family's regeneration gate passes; a cron re-measuring an unconverted family would open PRs nobody can act on. - Regeneration exact-or-explained: run the engine, diff against the curated file, and either they match or every difference is defended in the conversion PR (a package the target now ships; a stale pin; an engine capability gap like row 2's version-awareness).
Known engine gaps this ledger has already surfacedβ
- Version-aware satisfaction (row 2, blocking):
closure()stops at any requirement the target index provides by name. xfce-fedora's whole reason to exist is>= 4.21pins against Fedora's 4.20 β name presence is exactly the wrong test there. The fix belongs in the engine (compare the requirement's version constraint against the provider's EVR), not in per-family workarounds.