chore(release): v0.10.3 #142
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
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!142
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "release-prep/rolling"
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?
Fixed
Bug fix:
manifest-precheck.shis now remote-aware (#140).The artifact
Task 13376 (release-toolkit v0.10.2 cut re-run) failed at the manifest direct-push step with
non-fast-forwardrejection:The cut workflow on
59e02780(rolling-PR-merge SHA) substantively completed at task 13373: release-create + manifest direct-push tomain(commit8e1c952). Then it got cancelled (path-α self-cancel per #139). Operator re-ran the cancelled task → task 13376. The re-run's checkout was atGITHUB_SHA = 59e02780— the manifest at that checkout was the pre-cut state. Pre-check saw local manifest with oldlast_released_sha, said "proceed", workflow tried to push a duplicate commit on top of remote main which was already 1 commit ahead.Why the original #128/#131 design missed this
Surveyor 4a44's partial-completion matrix called out the exact scenario: "manifest pushed + release published, THEN cancelled, THEN re-run." My implementation's matrix logic was right; my source for "is manifest at HEAD_SHA?" was wrong. I chose the more-convenient source (local file at the workflow's checkout) instead of the authoritative source (remote main).
Substrate-state-care failure on my side. Banking the calibration: the authoritative source for "what is on main?" is the remote ref, not the local checkout. Local can be stale when a prior workflow ran ahead of this one's checkout.
The fix
scripts/manifest-precheck.shnow:git fetch --quiet origin main+git show "origin/main:$MANIFEST_PATH". If remote main's manifest haslast_released_sha == HEAD_SHA, outputskip(the bug case fires here cleanly).Test seam
MANIFEST_REMOTE_FIXTURE=/path/to/filelets bats simulate "remote main manifest content" — set to existing file → use as remote content; set to non-existent path → simulate "remote manifest absent".Tests
349/349 bats green (was 343; +6 new tests in
tests/manifest-precheck.bats):Plus the existing 9 tests still pass — they run in a non-git test context, so the real
git show origin/mainlookup silently fails + falls through to local, matching pre-#140 behavior. No regression.What this PR does NOT do
_release.ymlcallsmanifest-precheck.sh "$MANIFEST_PATH_INPUT" "$HEAD_SHA"unchanged; the remote-aware behavior is internal.Composition
Completes the partial-completion-matrix design point Surveyor 4a44 originally called out for #128. The matrix is finally fully covered.
Closes #140.
819e82d64af3503b556d