-
Notifications
You must be signed in to change notification settings - Fork 746
Description
Problem
I maintain a library-style monorepo using Changesets.
Some packages are independently versioned and can receive major, minor, or patch bumps via their own changesets.
Other packages depend on these internal packages.
Current behavior
Changesets currently supports:
- Always bumping dependents as patch, or
- Enforcing a minimum bump of
minorviaupdateInternalDependencies
However, major version propagation is not supported.
For example:
- internal dependency → major
- dependent package → patch (or at most minor)
This results in incorrect semantic versioning when a breaking change is introduced in an internal dependency.
Desired behavior
Dependent packages should be bumped dynamically based on the highest bump level of their internal dependencies:
| Dependency bump | Dependent bump |
|---|---|
| major | major |
| minor | minor |
| patch | patch |
This should occur automatically during changeset version, without requiring manual changesets for each dependent package.
Why this matters
- Library monorepos often contain tightly coupled internal packages
- Breaking changes should propagate semantically to dependents
- Manually authoring changesets for dependents does not scale
updateInternalDependenciescurrently only supportspatchandminor, notmajor
Current workaround
The only way to achieve this behavior today is via custom pre-version scripts that:
- Parse existing changesets
- Compute the highest dependency bump
- Generate or adjust dependent changesets programmatically
This works, but requires maintaining custom tooling outside of Changesets.
Question
- Is native support for major-dependent bump propagation planned?
- If not, would this be an acceptable direction for a future configuration option?