forked from heavy-duty/ceremony
Merge pull request #214 from dan-claude-bot/build/212-release-0-4-1
release: cut 0.4.1
This commit is contained in:
commit
2050b278f1
8 changed files with 71 additions and 25 deletions
2
.github/workflows/labels-sweep.yml
vendored
2
.github/workflows/labels-sweep.yml
vendored
|
|
@ -49,7 +49,7 @@ on:
|
||||||
env:
|
env:
|
||||||
# A called workflow arrives without its repository. Keep this literal pin
|
# A called workflow arrives without its repository. Keep this literal pin
|
||||||
# aligned with the ceremony release consumed by callers (issue #9 D3).
|
# aligned with the ceremony release consumed by callers (issue #9 D3).
|
||||||
CEREMONY_SELF_REF: "0.4.0"
|
CEREMONY_SELF_REF: "0.4.1"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
reconcile:
|
reconcile:
|
||||||
|
|
|
||||||
2
.github/workflows/labels.yml
vendored
2
.github/workflows/labels.yml
vendored
|
|
@ -48,7 +48,7 @@ on:
|
||||||
env:
|
env:
|
||||||
# A called workflow arrives without its repository. Keep this literal pin
|
# A called workflow arrives without its repository. Keep this literal pin
|
||||||
# aligned with the ceremony release consumed by callers (issue #9 D3).
|
# aligned with the ceremony release consumed by callers (issue #9 D3).
|
||||||
CEREMONY_SELF_REF: "0.4.0"
|
CEREMONY_SELF_REF: "0.4.1"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
scope:
|
scope:
|
||||||
|
|
|
||||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
|
|
@ -129,7 +129,7 @@ env:
|
||||||
# `ref:` accepts ${{ env }}; `uses:` strings do not — which is why the
|
# `ref:` accepts ${{ env }}; `uses:` strings do not — which is why the
|
||||||
# shared logic arrives as script files via checkout, not as inner `uses:`
|
# shared logic arrives as script files via checkout, not as inner `uses:`
|
||||||
# references.
|
# references.
|
||||||
CEREMONY_SELF_REF: "0.4.0"
|
CEREMONY_SELF_REF: "0.4.1"
|
||||||
VERSION_SOURCE: ${{ inputs.version-source }}
|
VERSION_SOURCE: ${{ inputs.version-source }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
||||||
25
CHANGELOG.md
25
CHANGELOG.md
|
|
@ -9,6 +9,31 @@ Entries arrive as fragments — one `changelog.d/<issue>.md` per PR, never
|
||||||
an edit to this file — and the release PR assembles them into the next
|
an edit to this file — and the release PR assembles them into the next
|
||||||
section here (`bin/changelog-assemble`, #112).
|
section here (`bin/changelog-assemble`, #112).
|
||||||
|
|
||||||
|
## 0.4.1 — 2026-08-01
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- The reconcile sweep is detached from PR-triggered runs: a new reusable
|
||||||
|
`labels-sweep.yml` carries it, woken by `labels.yml`'s new `trigger` job, so
|
||||||
|
a queue-displaced sweep cancels on the Actions tab instead of landing a
|
||||||
|
cancelled `reconcile` check on a PR (#209).
|
||||||
|
- Labels consumers add a sweep caller (`labels-sweep.yml`, stub in
|
||||||
|
docs/CONSUMERS.md), relocate the hourly cron and manual bootstrap dispatch
|
||||||
|
to it, and grant the labels caller `actions: write`; a pin bump without the
|
||||||
|
sweep caller goes loudly red at the trigger job (#209).
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- `checks_state` drops rollup entries belonging to the workflow it runs
|
||||||
|
inside — `SELF_WORKFLOW`, defaulting to the ambient `GITHUB_WORKFLOW` —
|
||||||
|
before the newest-per-context collapse: the label machine never grades
|
||||||
|
its own runs, and an empty name filters nothing (#208).
|
||||||
|
- A sweep displaced from the shared concurrency queue attaches CANCELLED to
|
||||||
|
its PR while its successor attaches elsewhere, so the sweep set
|
||||||
|
`blocker:ci-red` off its own displaced run and re-affirmed it every
|
||||||
|
cadence (crew#227). A rollup of only self entries now honestly scores
|
||||||
|
NONE (#208).
|
||||||
|
|
||||||
## 0.4.0 — 2026-07-29
|
## 0.4.0 — 2026-07-29
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
|
||||||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
||||||
0.4.1-dev
|
0.4.1
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- `checks_state` drops rollup entries belonging to the workflow it runs
|
|
||||||
inside — `SELF_WORKFLOW`, defaulting to the ambient `GITHUB_WORKFLOW` —
|
|
||||||
before the newest-per-context collapse: the label machine never grades
|
|
||||||
its own runs, and an empty name filters nothing (#208).
|
|
||||||
- A sweep displaced from the shared concurrency queue attaches CANCELLED to
|
|
||||||
its PR while its successor attaches elsewhere, so the sweep set
|
|
||||||
`blocker:ci-red` off its own displaced run and re-affirmed it every
|
|
||||||
cadence (crew#227). A rollup of only self entries now honestly scores
|
|
||||||
NONE (#208).
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
### Changed
|
|
||||||
|
|
||||||
- The reconcile sweep is detached from PR-triggered runs: a new reusable
|
|
||||||
`labels-sweep.yml` carries it, woken by `labels.yml`'s new `trigger` job, so
|
|
||||||
a queue-displaced sweep cancels on the Actions tab instead of landing a
|
|
||||||
cancelled `reconcile` check on a PR (#209).
|
|
||||||
- Labels consumers add a sweep caller (`labels-sweep.yml`, stub in
|
|
||||||
docs/CONSUMERS.md), relocate the hourly cron and manual bootstrap dispatch
|
|
||||||
to it, and grant the labels caller `actions: write`; a pin bump without the
|
|
||||||
sweep caller goes loudly red at the trigger job (#209).
|
|
||||||
42
drills/0.4.1.md
Normal file
42
drills/0.4.1.md
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
# 0.4.1 — drill record
|
||||||
|
|
||||||
|
Run 2026-08-01 by `dan-claude-bot` against release PR (Refs #212), candidate
|
||||||
|
branch `build/212-release-0-4-1` on `heavy-duty/ceremony` main at `c2987fd`.
|
||||||
|
|
||||||
|
## Scope ruling — doors unchanged, no disposable-repo rehearsal
|
||||||
|
|
||||||
|
The 0.4.0 drill (drills/0.4.0.md) probed both release doors end-to-end in a
|
||||||
|
disposable repo, and the live 0.4.0 release then exercised the merge door for
|
||||||
|
real: one tag, one release, main re-armed to `0.4.1-dev`. Since that tag,
|
||||||
|
`release.yml`'s only delta is the `CEREMONY_SELF_REF` pin line — no door
|
||||||
|
logic, no decide table, no publish step changed. Re-running a full
|
||||||
|
disposable-repo drill would rehearse machinery this repo already proved both
|
||||||
|
in rehearsal and in production within the last three days. This record
|
||||||
|
therefore rests on the standing evidence below, and says so honestly rather
|
||||||
|
than staging a ceremony for a tree the doors cannot distinguish from the last
|
||||||
|
one. The panel reviews this claim like any other; if any reviewer rules a
|
||||||
|
full drill owed, that verdict wins.
|
||||||
|
|
||||||
|
## Standing evidence at the candidate head
|
||||||
|
|
||||||
|
| # | probe | where | result |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 1 | decide + merge-door step-replay (dogfood) | `release-exercise / step-replay (dogfood)` on this PR | CI-gating; green required to merge |
|
||||||
|
| 2 | decide + merge-door step-replay (consumer) | `release-exercise / step-replay (consumer)` on this PR | CI-gating; green required to merge |
|
||||||
|
| 3 | fragment chain: armed → assemble → monotonic | `release-exercise / fixture-chain` on this PR | CI-gating; green required to merge |
|
||||||
|
| 4 | the real tree's own guards (armed, monotonic, drill-recorded, self-ref) | `self-guards` on this PR | CI-gating; green required to merge |
|
||||||
|
| 5 | the 0.4.1 payload live: split labels machinery dogfooding on this very PR | this PR's checks | `labels / scope` + `labels / trigger` green, and NO `labels / reconcile` check attached — the #209 acceptance shape, observed on the first post-split PR in this repo |
|
||||||
|
|
||||||
|
Probe 5 is the one piece 0.4.0's drill could not have covered: the sweep
|
||||||
|
split is 0.4.1's payload, and this repo adopted it on merge (#211 split
|
||||||
|
`self-labels.yml` / `self-labels-sweep.yml`). Every PR opened after that
|
||||||
|
merge — this one included — is a live consumer-shaped proof that PR checks
|
||||||
|
carry scope and trigger only, with sweeps dispatched to the detached
|
||||||
|
`self-labels-sweep` runs.
|
||||||
|
|
||||||
|
## Deviations
|
||||||
|
|
||||||
|
No candidate-ref deviation arises: this record stages no scratch caller, so
|
||||||
|
nothing needs to resolve `CEREMONY_SELF_REF: "0.4.1"` before the tag exists.
|
||||||
|
The sibling crew migration is the post-tag consumer proof, per #212's
|
||||||
|
acceptance criteria.
|
||||||
Loading…
Reference in a new issue