P13 (wave 2, order 8). docs/release-runbook.md has three parts: before the release, the release, and the rollback. The rollback was drilled first, in a sandbox with local bare repos as the remotes: a release 6.2.0 -> 6.2.1, then path A (git revert, catalog ref back to v6.2.0) and path B (a forward patch 6.2.2 that carries the revert), with the catalog's check-versions green after each. Nothing reached a real remote; the real catalog was byte-identical before and after. Measured: release-plugin.mjs refuses a ref backwards while plugin.json still says the newer version, and accepts it once the release commit is reverted. scripts/release-check.mjs decides before a release: clean tree, npm test green at HEAD, review verdict not BLOCK (K7) and covering HEAD, and a door type per delivery (### Doors in the CHANGELOG section). 0 ready, 1 not ready, 2 could not run (never green). A ready run prints the K2 command that logs the operator's yes. tests/lib/release-prose-pins.test.mjs holds every command in the rollback part to the commands the drill ran (tests/fixtures/release-drill/). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
27 lines
2 KiB
Text
27 lines
2 KiB
Text
# Commands run in the release + rollback drill (wave-2 order 8, P13), phases
|
|
# ROLLBACK A and ROLLBACK B, copied from the drill log of 2026-10-08T19:27:15Z.
|
|
# The drill ran in a sandbox: local bare repos as the remotes, a HOME of its own,
|
|
# no FORGEJO_TOKEN. Versions are written as the runbook's placeholders:
|
|
# 6.2.0 = <previous-version>, 6.2.1 = <withdrawn-version>, 6.2.2 = <next-patch>
|
|
# Commits appear as <release-commit>, <merge-commit>, <revert-commit>; the review
|
|
# file as <review.md>; drill-only helpers as <drill-helper>. [label] = the repo it ran in.
|
|
# tests/lib/release-prose-pins.test.mjs: every command in docs/release-runbook.md § 3
|
|
# must be one of these lines.
|
|
[voyage] git revert --no-edit <release-commit>
|
|
[voyage] git revert --no-edit -m 1 <merge-commit>
|
|
[voyage] node -p require('./.claude-plugin/plugin.json').version
|
|
[voyage] git push -q origin main
|
|
[catalog] node scripts/check-versions.mjs
|
|
[catalog] node scripts/release-plugin.mjs voyage --version <previous-version>
|
|
[catalog] mkdir -p "$HOME/.claude/runtime/push-approvals" && touch "$HOME/.claude/runtime/push-approvals/$(pwd | sed 's|/|_|g')"
|
|
[catalog] node scripts/release-plugin.mjs voyage --version <previous-version> --write --commit --push
|
|
[catalog] node scripts/check-versions.mjs
|
|
[sandbox] git -C $SANDBOX/remotes/catalog.git show main:.claude-plugin/marketplace.json
|
|
[voyage] node <drill-helper>/bump.mjs . <previous-version> <next-patch> $SANDBOX/section-<next-patch>.md
|
|
[voyage] git commit -q -am "chore(release): <next-patch> - withdraws <withdrawn-version>"
|
|
[voyage] node scripts/release-check.mjs --review <review.md>
|
|
[voyage] node lib/util/approval-log.mjs append --kind release --subject CHANGELOG.md --sha256-of CHANGELOG.md
|
|
[voyage] git push -q origin main
|
|
[catalog] mkdir -p "$HOME/.claude/runtime/push-approvals" && touch "$HOME/.claude/runtime/push-approvals/$(pwd | sed 's|/|_|g')"
|
|
[catalog] node scripts/release-plugin.mjs voyage --create-tag --write --commit --push
|
|
[catalog] node scripts/check-versions.mjs
|