Summary
Add support for linked packages: groups of packages that are versioned independently but whose version numbers are kept in sync when they change together, mirroring Changesets' linked config. This is distinct from the existing lockstep policy.
Motivation
Chronus currently supports:
- independent — every package versions on its own.
- lockstep — a group always shares one version and always bumps together.
Changesets additionally offers linked, a middle ground: packages in a linked group only get pulled up to the highest version in the group when at least one of them is being released, but unchanged members are not bumped. This is useful for families of packages that should share a version line without forcing an unrelated bump on every release.
Proposed behavior
- New version policy
type: "linked" alongside lockstep / independent in versionPolicies.
- When releasing, all changed members of a linked group are raised to the same (highest resulting) version; unchanged members stay put.
status, version, and changelog output reflect the linked grouping.
References
- Changesets
linked vs fixed config
packages/chronus/src/config/types.ts (VersionPolicy, LockstepVersionPolicy, IndependentVersionPolicy)
packages/chronus/src/release-plan/assemble-release-plan.ts
Summary
Add support for
linkedpackages: groups of packages that are versioned independently but whose version numbers are kept in sync when they change together, mirroring Changesets'linkedconfig. This is distinct from the existinglocksteppolicy.Motivation
Chronus currently supports:
Changesets additionally offers linked, a middle ground: packages in a linked group only get pulled up to the highest version in the group when at least one of them is being released, but unchanged members are not bumped. This is useful for families of packages that should share a version line without forcing an unrelated bump on every release.
Proposed behavior
type: "linked"alongsidelockstep/independentinversionPolicies.status,version, and changelog output reflect the linked grouping.References
linkedvsfixedconfigpackages/chronus/src/config/types.ts(VersionPolicy,LockstepVersionPolicy,IndependentVersionPolicy)packages/chronus/src/release-plan/assemble-release-plan.ts