microsoft / microsoft/beachball

Conditionally bump dependents on publish

Open
#620 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

breaking change bug
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:

  1. Current Schema
    bumpDeps: boolean = true by default

  2. Proposed Schema

      bumpDeps: boolean | {
          bumpFor?: ChangeType
      }
    

Application:

  1. bumpDeps: boolean - maintains current behavior
  2. bumpDeps: {} - same behavior as bumpDeps: true
  3. bumpDeps: { bumpFor: 'major' } - for any major change, dependents get bumped.
    • Recursion of bumping dependents stops based on the same bumpDeps rule, so only 1 depth of dependents get bumped as patch
  4. Similar outcome for bumpFor: 'minor' ... bumpFor: 'prerelease'
  5. bumpDeps: { bumpFor: 'none' } - same behavior as bumpDeps: false

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.