Skip to content

feat: directBump:false package flag + fixed-group sync-to-highest - #155

Merged
theoephraim merged 1 commit into
mainfrom
claude/platform-binaries-versioning-864963
Aug 15, 2026
Merged

feat: directBump:false package flag + fixed-group sync-to-highest#155
theoephraim merged 1 commit into
mainfrom
claude/platform-binaries-versioning-864963

Conversation

@theoephraim

Copy link
Copy Markdown
Member

What

Two related changes for modeling platform-specific binary packages that version in lockstep with a core package (the esbuild/napi-rs pattern):

directBump: false per-package config

A package marked directBump: false can only receive propagated bumps (fixed/linked group, cascade, dependency) — never direct ones:

  • bumpy add excludes it from the interactive prompt, --none generation, and rejects it in --packages
  • bumpy generate never suggests it from commit scopes or changed files
  • a bump file that directly names it (with a type other than none) is an error at plan time, pointing at the driving package
  • bumpy check counts its changes as covered when any other fixed-group member is covered, and the missing-package output hints at the bumpable group members

Typical 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

  • New release-plan tests: drift convergence, no-drift no-warning, Phase A range checks against synced versions, group bumps flowing to directBump: false members, direct-bump rejection, none allowed
  • New check tests for the coverage-remap helper
  • 427 tests pass; tsc --noEmit clean; bumpy check dogfooded on this repo

Docs updated (configuration.md, version-propagation.md, config-schema.json, add-change skill).

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.
@github-actions

Copy link
Copy Markdown

bumpy-frog

The changes in this PR will be included in the next version bump.

minor Minor releases

  • @varlock/bumpy 1.18.1 → 1.19.0

Bump files in this PR

Click here if you want to add another bump file to this PR


This comment is maintained by bumpy.

@theoephraim
theoephraim merged commit 2e91e3a into main Aug 15, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant