feat: label-based bump-control mechanism (PR labels driving SemVer bump signal) #107
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#107
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Idea
Add a label-based mechanism for signaling SemVer bump intent on a per-PR basis. Composes with the existing three mechanisms (cc-subject
!:, fragment frontmatterbreaking: true,bump_overrideworkflow input).Why this is useful
Authors who don't want to use cc
!:subject suffix and don't want to write a fragment frontmatter line could attach a label to their PR:bump/majorbump/minorfeat:)bump/patchfix:)bump/skipfeat:/fix:if needed)Composition with existing mechanisms — labels would be ADDITIVE (highest level wins):
This preserves backward compatibility — every existing mechanism still works; labels add a fourth signal source.
Substrate-state-care implications (§8 Axis A)
release-decide.shcurrently walks git log + reads fragment files. Adding label-based bump means querying Forgejo API for PR labels in the walk window — a NEW external-system dependency. Per AGENTS.md §8 Axis A (substrate-state-care for external claims), this needs:repository: read; the workflow token already has this.Open design questions
bump/*orsemver/*or something else? Match existing label patterns in frankenbit's ecosystem.bump/skipsemantics: does it override CC defaults entirely, or only the "auto-bump" decision? Edge case: afeat:PR labeledbump/skip— what's the right semantic?Implementation surface
scripts/release-decide.shscripts/lib/forgejo-api.shpr_labels(N)helpertests/release-decide.batsdocs/integration.mdADR candidate?
The label-based mechanism touches the architectural axis "how do we discover bump intent" — currently expressed via ADR-0004 (push-trigger-manifest-rolling-PR). Adding a label source might warrant an ADR-0007 amendment or a fresh ADR. Decide during design pass.
Sequencing
Substrate-stable enough for v1.0? Probably — the convergence at §10 means new feature work is safe. But this should land BEFORE v1.0 commitment because:
Target: implement in v0.7.x or v0.8.x as part of the pre-1.0 readiness sweep ([sibling tracker]).
Refs
Design correction note 2026-06-26: the original scope I filed (per-source-PR label scanning in the walk window,
bump/skipsemantics, max-wins composition) was over-engineering from misinterpreting the operator's original idea.Actual scope (per operator clarification 2026-06-26):
read_rolling_pr_bump_label)bump/patch|minor|major) to enable Forgejo's exclusive-label group behaviorbump/skip(redundant in the rolling-PR-only scope)bump:(colon) — zero adopters at the namespace shiftImplementation: PR #120. Closes this issue with the corrected scope.
Leaving this note so future readers of the tracker history don't re-derive the over-engineered design from the original tracker body.