feat: directBump:false package flag + fixed-group sync-to-highest - #155
Merged
Merged
Conversation
Packages marked directBump: false only receive propagated bumps (fixed/linked group, cascade, dependency) — bumpy add/generate never select them, bump files naming them directly error at plan time, and bumpy check counts them covered when a fixed-group member is covered (pointing there when one is missing). Models platform-binary packages that version in lockstep with a core package. Fixed groups now version members from the group's highest current version, so drifted groups reconverge on the next release (with a plan warning) instead of bumping in parallel forever.
|
The changes in this PR will be included in the next version bump.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


What
Two related changes for modeling platform-specific binary packages that version in lockstep with a core package (the esbuild/napi-rs pattern):
directBump: falseper-package configA package marked
directBump: falsecan only receive propagated bumps (fixed/linked group, cascade, dependency) — never direct ones:bumpy addexcludes it from the interactive prompt,--nonegeneration, and rejects it in--packagesbumpy generatenever suggests it from commit scopes or changed filesnone) is an error at plan time, pointing at the driving packagebumpy checkcounts its changes as covered when any other fixed-group member is covered, and the missing-package output hints at the bumpable group membersTypical config:
{ "fixed": [["mycli", "@mycli/bin-*"]], "packages": { "@mycli/bin-*": { "directBump": false } } }Fixed groups sync to highest
Previously Phase B only equalized the bump type — each member bumped from its own current version, so a drifted group (botched manual publish, package added late) never reconverged. Members now version from the group's highest current version: Phase A range checks, planned versions, and bump-source reporting all use the synced target, and the plan warns when drift is detected so the version jump is explained.
Testing
directBump: falsemembers, direct-bump rejection,noneallowedtsc --noEmitclean;bumpy checkdogfooded on this repoDocs updated (configuration.md, version-propagation.md, config-schema.json, add-change skill).