Skip to content

Support major version propagation to dependent packages #1819

@teneplaysofficial

Description

@teneplaysofficial

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 minor via updateInternalDependencies

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
  • updateInternalDependencies currently only supports patch and minor, not major

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

  1. Is native support for major-dependent bump propagation planned?
  2. If not, would this be an acceptable direction for a future configuration option?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions