chore(release): v0.6.0 #90
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!90
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?
Added
v0.5.1 substrate-correction sprint — bundles the operator-actions hygiene catches surfaced during the v0.5.0 cut + the docs accuracy gap from v0.5.0's slice 5. Closes #86, #87, #64.
scripts/release-decide.sh: Layer 2 cut-safeguard now retries with backoff (closes #86). The v0.5.0 cut empirically falsified the Layer 2 timing assumption —forgejo_find_pr_by_merge_shalookup lagged ~8s behind a fresh merge, causing the protective fall-through to fire even though the merge had actually landed. Default retry budget is 3 retries × 5s = 15s wait; configurable viaLAYER2_RETRY_COUNT/LAYER2_RETRY_DELAYenv vars. After budget exhausted, falls back to "fail" (substrate-honest protective default preserved)..forgejo/workflows/_release.yml+scripts/lib/forgejo-api.sh: cut path now auto-closes any stale rolling PR after cut success (closes #87). When a Layer 2 fall-through opens a precautionary rolling PR + the cut later succeeds (manually-dispatched or via retry-resolution), the fall-through-opened PR was previously left open as confusing stale state (operator framing: "first step on the stairway to version hell"). The cleanup uses the newforgejo_close_prhelper + leaves an explanatory comment linking #87.tests/release-decide.bats: 5 new tests covering Layer-2 PASS/FAIL paths + #86 retry mechanics (closes #64). The deferred FAIL-path coverage from slice 1b is now in place — exercised via the newLAYER2_BYPASS_DRY_RUN+FORGEJO_TEST_PR_LOOKUP_FILEtest hooks. Empirically validates the retry-then-success path matches the v0.5.0 cut's surfaced race-condition shape..forgejo/workflows/_release.yml: new optionalrelease_tokensecret input enables path (α) autonomous cuts (#88). Consumers can wire a non-admin bot user's PAT (e.g.,release-botadded tomain'spush_whitelist_usernames) and the workflow uses it for all Forgejo API calls — manifest PR auto-merges via the bot's whitelist privilege; operator sees a single PR per cut. Unset → falls back tosecrets.GITHUB_TOKEN(graceful-degradation, the pre-v0.5.1 behavior).docs/integration.md§Branch protection compatibility: rewritten to reflect path (α) reality + retire the (a)-was-fictional whitelist-forgejo-actions claim. Theforgejo-actionsidentity is synthetic (uid: -2), not a real registered user — Forgejo'spush_whitelist_usernamesrejects it. Three paths now documented: (α) non-admin bot + token override (recommended), (β) admin-scope token (heavier), (γ) graceful-degradation default (no setup).AGENTS.md§8 gains a 4th empirical instance documenting the meta-lesson: verify external-system claims against the actual API/UI, not just by checking field names against documented behavior.Consumer-side
release.yml(toolkit's own): updated to passsecrets.RELEASE_TOOLKIT_TOKENasrelease_token. Operator-action prerequisite for the toolkit's autonomous-cut transition: (1) provisionrelease-botPAT, (2) store asRELEASE_TOOLKIT_TOKENrepo secret, (3) addrelease-bottomain'spush_whitelist_usernames.Closes #86 + #87 + #64.
372cb9a2bftoba10f67cadrefs/pull/N/headon auto-delete-branch merge #92