chore(release): v0.9.0 #120
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!120
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
Rolling-PR bump-override mechanism (#107) — operator can attach
bump/patch,bump/minor, orbump/majorto the open rolling PR (release-prep/rolling) to override the auto-detected bump level. The slash separator enables Forgejo's exclusive-label group behavior: pickingbump/minorauto-removesbump/patch/bump/majorfrom the same PR — Forgejo enforces single-select at the UI/API layer.release-decide.sh's read step keeps a defense-in-depth fail-loud guard against multiple-bump-label scenarios.Scope (per operator clarification 2026-06-26): rolling-PR-only. Labels on author PRs, issues, or any other surface have no effect — release-decide reads labels only on the open
release-prep/rollingPR. Documented openly indocs/integration.mdso the scope is unambiguous for adopters.New helper
scripts/setup-bump-labels.sh— idempotent label provisioning via Forgejo API. Run once per consumer repo:FORGEJO_TOKEN=<token> scripts/setup-bump-labels.sh <owner>/<repo>. Creates the three labels with the exclusive flag set; updates existing labels to enable exclusivity if they were set up without it.Namespace shift breaks the prior
bump:patch|minor|major(colon) syntax — zero adopters at this point per operator's confirmation, so no deprecation window; the colon syntax is gone.Closes #107.
Fixed
v0.8.1 substrate sweep — three changes bundled per operator's sprint scoping decision. Closes #113 + #114.
Carry-forward fix from v0.8.0 cut:
OWNER/REPOvariables in_release.yml's manifest-update step are now derived BEFORE the path-α/γ split, not just inside the γ branch. v0.8.0's path-α direct-push cut completed successfully (manifest commite240b68landed via release-bot direct-push), but the post-step stale rolling PR cleanup (#87) crashed withOWNER: unbound variablebecause the variables were γ-scoped. The §10 "every cut surfaces a catch" pattern fires once at v0.8.0 after v0.7.0's clean cut — pattern continues at lower frequency.#113auto-assign manifest follow-up to rolling-PR merger (γ-only scope post-ADR-0007): when_release.ymlopens the manifest follow-up PR under path (γ), it now looks up the rolling PR's merger viaforgejo_find_pr_by_merge_sha(the same Layer 2 helper) + reads.merged_by.login+ assigns the manifest PR to that user. Best-effort with graceful degradation: skips self-assignment when the merger isrelease-botitself; failures don't block the cut path; the assignment is a UX touch (routes responsibility to the operator who clicked Gate-1) rather than a load-bearing mechanism.#114configurable publish mode (draftdefault vsimmediateopt-in): newpublish_modeinput on_release.yml's workflow_call (andrelease.yml's workflow_dispatch); flows through todraft-release.shvia thePUBLISH_MODEenv var.draft(default) preserves ADR-0003 Gate-3 (operator clicks Publish in the UI).immediateopts in to direct publish for high-cadence consumer scenarios.draft-release.shvalidates the input fail-loud on unknown values.forgejo_create_release_draftgained an optional 7th arg for the mode.Test coverage: 4 new bats tests in
tests/draft-release.batsfor #114 (default → draft, explicit draft, immediate, invalid fail-loud). Pre-existing 317 tests remain green (no regressions). #113 + the carry-forward fix are inline_release.ymlbash; verified via YAML lint pass + the next cut's empirical exercise.chore(release): v0.8.1to chore(release): v0.9.0788720bfd11f9bd106b8