microsoft / microsoft/beachball
Conditionally bump dependents on publish
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 815
- Forks
- 93
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 12
Description
Bumping dependents in our monorepo causes a lot of churn for package versions. However, turning off bumpDeps is not desirable since we'd still like to keep automated synchrony of versions with bump. Presently, keeping bumpDeps is only important for us on major bumps.
Could we have a scheme for conditionally allowing bumping dependents?
Below is a proposal to improve bumpDeps configuration schema:
-
Current Schema
bumpDeps: boolean=trueby default -
Proposed Schema
bumpDeps: boolean | { bumpFor?: ChangeType }
Application:
bumpDeps: boolean- maintains current behaviorbumpDeps: {}- same behavior asbumpDeps: truebumpDeps: { bumpFor: 'major' }- for any major change, dependents get bumped.- Recursion of bumping dependents stops based on the same
bumpDepsrule, so only 1 depth of dependents get bumped aspatch
- Recursion of bumping dependents stops based on the same
- Similar outcome for
bumpFor: 'minor'...bumpFor: 'prerelease' bumpDeps: { bumpFor: 'none' }- same behavior asbumpDeps: false
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the bumpDeps configuration handling and the code that bumps dependent packages during publishing. Compare the current boolean behavior with the proposed object form and change-type rules; done means existing boolean settings remain compatible and dependent bumps can be limited by the configured change type.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- build-system, release
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100