The machinery halves — notes extraction, arming, monotonicity, the drill gate, the old workflow's shape pins — go where their subjects went: ceremony's test/ carries changelog.test.sh, changelog-armed.test.sh, changelog-monotonic.test.sh and drill-recorded.test.sh at the 0.1.0 pin (upstream equivalence verified per ceremony#13's rule), and the pinned actions enforce them in ci.yml. What stays, retargeted at what can still break HERE: the caller stubs' load-bearing shape (one push key, the package-json backend, CONSUMERS.md's same-tag rule across all six ceremony references), the artifact hook's install contract (asset name, staged layout, no tests, own toolchain), the drill doctrine in cast's own docs (independence + candidate-ref pinning, now against drills/README.md), and the installer's three channels, untouched. 1374 -> 418 lines; 722 tests green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.7 KiB
2.7 KiB
Changelog
History before 0.1.0 lives in git — cast has said 0.1.0 in package.json
since its first commit, but grew its release surface (this file,
cast --version, tagged releases with a prebuilt asset) on the way to
actually cutting it, and this file starts there.
Unreleased
Changed
- The release flow and labels automation now run heavy-duty/ceremony's shared machinery at 0.1.0; the prebuilt-asset build moves to the release-artifact hook (heavy-duty/ceremony#15)
0.2.0 — 2026-07-21
Added
- CI refuses a release PR with no drill record at
drills/<version>.md - An application can declare HTTP basic auth, and
applysets it (#76) cast github-app create/cast github-app registerrun the App Manifest flow (#7)
Changed
state:needs-humanis set at handoff, not by the cron (#131)- PR labels split into two axes:
state:*(whose ball) andblocker:*(what is in the way);state:needs-rebaseis retired (heavy-duty/box#138) - The
NO_API_COVERAGErow for Basic Auth now says services (#76) - Changelog entries are one line each, and the whole file now follows the rule (#136)
Removed
- BREAKING:
scripts/register-github-app.shis gone; usecast github-app register(#7)
Fixed
- Three test files from #124/#125 allocate through
tmp(), not rawmkdtempSync(#135) - A PR that deletes a shipped release heading is now CI-red (#133, heavy-duty/box#122)
- A duplicate release heading is caught even where the guard cannot see the base (#133, heavy-duty/box#143)
- A label the repo does not have no longer takes the whole label edit down with it
- An unreadable check rollup no longer reads as "nothing is failing"
state:needs-humanno longer appears on PRs a human cannot merge (#127, heavy-duty/box#136)- CI lints every tracked shell script, and proves the set is complete (#118)
- The shellcheck sweep covers extensionless scripts such as
bin/cast(#121) castno longer leaves a full repo clone in the temp dir on every run (#117)- The test suite reaps its temp directories (#117)
0.1.1 — 2026-07-19
Fixed
- The release ceremony re-arms
## Unreleased, and CI is red when it does not (#113)
0.1.0 — 2026-07-19
Fixed
- The release suite accepts the ceremony's own tree (#108)
applyno longer demands a GitHub App for a manifest that declares no applications (#103)- A manifest with no
${…}refs applies without a secret store (#104) CAST_AGE_KEY_FILE_<ENV>is settable for every environment name (#102)
Added
- Merging a release-labeled PR is the release, and the release re-arms main itself (#111)
- Tagged releases with a prebuilt dist asset, and an installer that installs them (#96)