claim(M1): canonical sweep machinery built + live-proven on custom-html
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
M1 (machinery works locally, each piece proven) — code HEAD d4cc9e4, unit suite 295 passed:
- M1.1 tagged-promote gate + promote-tested-version: live proof-A wrote a fresh canonical
(commit df2e273 = the tag commit, correcting samever's main-HEAD 2b82eba); live proof-C
green-untagged → 0 promotes, canonical byte-identical (tagged-gate blocks untagged).
- M1.2 sweep_decision (version-keyed trigger) + vendored faithful recipe-mirror-sync.sh
(smoke-tested: faithful no-op main/tags push, closed merged-upstream PR #2, left PR #5);
nightly_sweep rewritten (mirror_sync -> trigger -> run_on_tag). Live SKIP demo on custom-html.
- M1.3 all 21 used-recipes enrolled. M1.4 hollow-sweep fix (CCCI_REPO=/etc/cc-ci). M1.5 weekly timer.
- M1(A) reattach: live proof-B --quick reused the retained volume green; known-good unchanged.
Evidence + verify recipes in STATUS-canon.md; reasoning in JOURNAL-canon.md; DECISIONS appended.
Gate: M1 CLAIMED, awaiting Adversary.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -7,24 +7,24 @@ pieces). M2 = proven end-to-end in real CI.
|
||||
|
||||
### M1 — machinery works locally, each piece proven
|
||||
|
||||
- [ ] **M1.1 Tagged-promote gate (§2.A).** Extend `should_promote_canonical` to ALSO require the
|
||||
- [x] **M1.1 Tagged-promote gate (§2.A).** Extend `should_promote_canonical` to ALSO require the
|
||||
tested head version corresponds to a published release tag. Add a `tagged: bool` param computed
|
||||
at the call site (`head_version in recipe_tags(recipe)`); keep the function pure. Untagged head
|
||||
→ no promote. Unit tests: enrolled+green+cold+not-ref+tagged → True; each missing condition
|
||||
(incl. untagged) → False.
|
||||
- [ ] **M1.2 Release-tag trigger + mirror-sync in the sweep (§2.C/§2.D).** New pure helper
|
||||
- [x] **M1.2 Release-tag trigger + mirror-sync in the sweep (§2.C/§2.D).** New pure helper
|
||||
`sweep_decision(recipe, latest_tag, canon_version)` → `run` | `skip:no-new-version` |
|
||||
`skip:never-released`, keyed on `version_key` (NOT commit). Wire `nightly_sweep.sweep()` to, per
|
||||
enrolled recipe: (1) faithful mirror-sync main+tags to upstream (reuse open-recipe-pr.sh
|
||||
`--reconcile-only`, vendored into the repo for reproducibility); (2) compute latest release tag
|
||||
vs canonical; (3) skip or run cold ON THE TAG (checkout tag + `CCCI_SKIP_FETCH=1`). Unit tests
|
||||
for `sweep_decision` (new tag → run; equal → skip; older/no tag → skip).
|
||||
- [ ] **M1.3 Enroll all recipes (§2.B).** Set `WARM_CANONICAL = True` in each of the 21 used-recipes
|
||||
- [x] **M1.3 Enroll all recipes (§2.B).** Set `WARM_CANONICAL = True` in each of the 21 used-recipes
|
||||
`tests/<r>/recipe_meta.py`. Leave fixtures (custom-html-*-bad, concurrency, regression) alone.
|
||||
- [ ] **M1.4 Hollow-sweep fix (root cause).** Make the deployed sweep read the REAL tests/ + run
|
||||
- [x] **M1.4 Hollow-sweep fix (root cause).** Make the deployed sweep read the REAL tests/ + run
|
||||
current code: set `CCCI_REPO=/etc/cc-ci` in the sweep service and run `nightly_sweep.py` from
|
||||
the checkout (not the store copy). Deploy procedure pulls `/etc/cc-ci` before nixos-rebuild.
|
||||
- [ ] **M1.5 Weekly timer (§2.F).** `nightly-sweep.nix` `OnCalendar` daily → weekly (one line),
|
||||
- [x] **M1.5 Weekly timer (§2.F).** `nightly-sweep.nix` `OnCalendar` daily → weekly (one line),
|
||||
`Persistent=true` (already set). Low-traffic slot.
|
||||
|
||||
### M2 — proven end-to-end in real CI
|
||||
|
||||
Reference in New Issue
Block a user