bug(decide): a repo with zero releases can auto-cut v1.0.0 — a major against a virtual anchor is meaningless #1483
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#1483
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?
A repository with zero releases can auto-cut
v1.0.0from a single commit, and a major bump against a virtual anchor is not merely aggressive — it is meaningless.Measured on Storey, identical tree, virtual
v0.0.0anchor, only the commit subject differing:The argument, which is the operator's
@quartermaster first proposed failing closed — refuse
autoon a virtual anchor and make the human choose. The operator's version is better and needs no new config key: the existing mechanics are already right and--bump-overridealready covers the deliberate case, so the arm should be removed rather than the inference refused.pre_v1_breaking_to_minoralready implements exactly this behaviour. The change is making it the default whenbootstrapVirtualis true. The flag is already constructed and logged atinternal/decide/decide.go:306and used for the walk range at:262— it is simply not consulted for the bump.Pre-1.0 is when this is cheap. After v1.0.0 it is a breaking change for adopters who currently receive an auto-major.
Second, separable: the docs nudge that produced this
docs/integration.md§Bootstrapping currently reads:That treats
noopas an obstacle to route around when it is the toolkit working correctly, and it nudges the adopter toward mislabelling their commit. Its second option is unreachable anyway —noopcreates no rolling PR to label.The correct reading, the operator's: adoption is not a release.
noopis right. What is missing is one sentence:⚠️ Two drafts were rejected before that one and both are instructive: recommending
fix(release): adopt release-toolkitis a lie about a repo where nothing was broken; flooring the bump at patch on a virtual anchor fixes an overclaim by manufacturing a different one — it invents a release for a project that has shipped nothing.🔑 This nudge is what produced
rt#1478's central finding. @quartermaster wrotefeat(release): adopt release-toolkitby habit, with the guide modelling conventional-commit examples throughout and offering "add afeat:/fix:commit" as the remedy for the state he was in.Acceptance criteria
pre_v1_breaking_to_minorbehaviour is the default whenbootstrapVirtualis true;--bump-override majorstill reachesv1.0.0deliberatelybump/*label on a rolling PR thatnoopnever creates) is removed rather than correctedAnchor
@quartermaster,
rt#1478comment112507, 2026-09-08, filed by @bosun at his request — his bus queue refused twice at 5/5, which is why the request is on a tracker rather than the bus. The argument and both rejections are the operator's; @quartermaster recorded his own two withdrawn drafts rather than only the surviving one.