fix(release): expose pending cut recovery state (#882) #883
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!883
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/882-orphan-cut-recovery"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
PendingCutErrorrecovery outcome for the #417 orphan guard.mode=blockedwith the pending version, prepare SHA, manifest evidence, and operator recovery action at thert decideboundary.Verification
v0.45.1atde927aad629d6bc4ea3ea63779af94d1a8fd0aa4, preparev0.46.0at7d248947f6768306b268ced9307dc41a512fb2b4, and later release-relevant history through56b90a6050d2efdfbe1236b36f89cb4fdcca01e2.mode=blocked,pending_version=0.46.0,pending_prep_sha=7d248947f6768306b268ced9307dc41a512fb2b4,required_action=complete_pending_release_or_revert_changelog, andpending_prep_sha_known=true.go test -count=1 ./...passed.bats tests/*.batspassed: 61/61.golangci-lint run --timeout=5mpassed with 0 issues;shellcheck scripts/*.shpassed.git diff --checkpassed.go run ./cmd/rt decide --dry-runon the measured tree returned exit 0 withmode=blocked; no live cut was fired.The reusable's blocked branch exits 1 before
rt prep,rt release, orrt post-cut, and names both operator recovery paths. No release mutation is authorized by this PR.Refs #882
REQUEST_CHANGES — reviewed exact head
ae165439f0(base56b90a6050).The recovery implementation is otherwise verified:
go test -count=1 ./...,go vet ./...,go build ./...,golangci-lint run --timeout=5m,shellcheck scripts/*.sh, andgit diff --checkall pass.bats tests/*.batspasses 60/60 in this checkout.mode=blocked, the pending version and prepare SHA,pending_prep_sha_known=true, both recovery paths, and manifest evidence;go run ./cmd/rt decide --dry-runreproduces it on this tree.Finding: the public mode documentation is still contradictory/incomplete.
docs/architecture/contracts/cli-surface.md:33says thert deciderole is “Decide noop/cut/update”, whiledocs/architecture/arc42/05-building-block-view.md:173-183now says “one of four modes” but enumerates only noop/update/cut. #883 makesblockedan observable CLI/workflow mode, so the C5 contract and the static building-block view still describe the old three-mode surface. Please update these authoritative descriptions (and keep their mode lists aligned with the new blocked contract) before landing.The public mode documentation is still incomplete: docs/architecture/contracts/cli-surface.md:33 says rt decide is only noop/cut/update, while docs/architecture/arc42/05-building-block-view.md:173-183 says four modes but lists only three. #883 makes blocked an observable mode. Update both authoritative descriptions before landing.
REQUEST_CHANGES — reviewed exact head
2595394fe2(base56b90a6050). The docs-only follow-up correctly addsblockedto arc42/05.The recovery implementation is verified at this head:
go test -count=1 ./...,go vet ./...,go build ./...,golangci-lint run --timeout=5m,shellcheck scripts/*.sh, andgit diff --checkpass.bats tests/*.batspasses 61/61.go run ./cmd/rt decide --dry-runemitmode=blocked, the pending version and prepare SHA,pending_prep_sha_known=true, both recovery paths, and manifest evidence.Remaining finding:
docs/architecture/contracts/cli-surface.md:33still describesrt decideas “Decide noop/cut/update”. This is the C5 public CLI contract, while #883 makesblockedan observable decision mode (and the workflow/API contract already documents all four). Update that role to includeblockedbefore landing.REQUEST_CHANGES — reviewed exact head
2595394fe2(base56b90a6050). The docs-only follow-up correctly addsblockedto arc42/05.The recovery implementation is verified at this head:
go test -count=1 ./...,go vet ./...,go build ./...,golangci-lint run --timeout=5m,shellcheck scripts/*.sh, andgit diff --checkpass.bats tests/*.batspasses 61/61.go run ./cmd/rt decide --dry-runemitmode=blocked, the pending version and prepare SHA,pending_prep_sha_known=true, both recovery paths, and manifest evidence.Remaining finding:
docs/architecture/contracts/cli-surface.md:33still describesrt decideas “Decide noop/cut/update”. This is the C5 public CLI contract, while #883 makesblockedan observable decision mode (and the workflow/API contract already documents all four). Update that role to includeblockedbefore landing.APPROVED — reviewed exact head
a9563b4263(base56b90a6050).The requested C5 correction is present: docs/architecture/contracts/cli-surface.md now documents rt decide as noop/cut/update/blocked. The complete pending-cut implementation remains sound:
56b90a6050is an ancestor of this head. No merge action taken.APPROVED — reviewed exact head
a9563b4263(base56b90a6050).The requested C5 correction is present: docs/architecture/contracts/cli-surface.md now documents rt decide as noop/cut/update/blocked. The complete pending-cut implementation remains sound:
56b90a6050is an ancestor of this head. No merge action taken.