diff --git a/drills/0.6.0.md b/drills/0.6.0.md index 753c02c..1b4de41 100644 --- a/drills/0.6.0.md +++ b/drills/0.6.0.md @@ -46,23 +46,74 @@ So this release owes the disposable-repo rehearsal, and this record is it. ## Where -_Pending — the scratch repo's full `owner/name` and its disposal state as -observed by this record's author are written here when the rehearsal runs._ +Disposable **private** repo `cndgrr/ceremony-drill-0.6.0`, created +2026-08-05T00:02:58Z. It carries the `docs/CONSUMERS.md` release caller +verbatim (`version-source: file`) over a fragment-mode fixture armed at +`0.6.0-dev`: a preamble-only `CHANGELOG.md`, `changelog.d/README.md` plus +one fragment, and a non-blank `drills/0.6.0.md`. The `release` label was +created there before the first ceremony PR, per the guide's prerequisite. + +_Disposal state is written below when the rehearsal ends, as this record's +author observes it — never as an intention._ ## Candidate-ref deviation -_Pending — the fork ref carrying the candidate tree and the canonical -candidate SHA its `CEREMONY_SELF_REF` carriers are rewritten to._ +The pure consumer path cannot resolve this candidate's +`CEREMONY_SELF_REF: "0.6.0"`: that tag is the one this release has not +created yet. No `0.6.0` branch was created on `heavy-duty/ceremony`. + +The scratch caller instead pins `cndgrr/ceremony/.github/workflows/release.yml@drill/0.6.0`. +That fork ref's parent is the canonical candidate SHA +`fb8f8282a9e7b317d4d028f8e8da50501a882d14`, and its one additional commit +(`775b4d1f6485ebdde924979ac2dce536643c6071`) rewrites all three +`CEREMONY_SELF_REF` carriers — `release.yml`, `labels.yml`, +`labels-sweep.yml` — to that same SHA. All runtime machinery in every probe +below was therefore fetched from the 0.6.0 candidate tree. + +Commits pushed to the candidate after `fb8f828` are this record only; the +release path (`.github/scripts/release-path.sh`) is byte-identical at the +canonical SHA and at the final head. ## Probes -_Pending — one row per probe, written from its run, never before it._ +One row per probe, written from its run. Runs are in +`cndgrr/ceremony-drill-0.6.0`. | # | probe | run | result | |---|---|---|---| | 1 | merge-door ceremony | — | — | -| 2 | mislabeled ordinary PR | — | — | +| 2 | mislabeled ordinary PR | 30991634654 | ✅ green NOTICE no-op; no tag, no release | | 3 | bare-version PR without `release` | — | — | | 4 | re-run completed ceremony | — | — | | 5 | manual matching tag | — | — | | 6 | mismatched tag | — | — | + +### Probe 2 — a mislabeled ordinary PR + +PR #2 (`probe2b-mislabeled`) added one changelog fragment and touched no +version. The `release` label was applied through +`POST /repos/{owner}/{repo}/issues/2/labels` and confirmed present before +the merge. The merge run decided row 1 of the table and published nothing: + +```text + VER: 0.6.0-dev + BASE_VER: 0.6.0-dev + RELEASED: + LABELED: +NOTICE: the version '0.6.0-dev' is -dev and unchanged by this PR — release-flow work under the release label, not a ceremony. Nothing to publish. +ceremony=no +``` + +`RELEASED` and `LABELED` are empty on purpose — the `-dev` rows never +consult them, which is precisely why the label alone cannot ship anything. +Notes, the nothing-exists assert, tag, artifact hook, publish and bump all +skipped; `GET /tags` and `GET /releases` were both empty afterwards. + +An earlier merge (PR #1, run 30991571096) was intended as this probe but +landed **unlabeled**: `gh pr edit --add-label` failed against this repo's +projects-classic GraphQL surface, and the merge went ahead before the +failure was read. That run is a green no-op too, but it is not evidence for +this probe — an unlabeled ordinary merge proves less than a labeled one — +so the probe was re-run as PR #2 with the label applied through the REST +endpoint and verified before merging. Recorded here because the run exists +in the repo's history and a reader will find it.