Change types of child packages in changelog group rollup are misleading
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- typescript
- Domain
- release
Research direction
Start with the changelog group rollup behavior described by the beachball.config.js example and compare it with the generated packages/parent/CHANGELOG.md output. Decide how child versions and change types should be represented, then verify that the parent changelog reports the dependent change accurately without labeling it as a major change.
Written by the indexing model from the issue text.
Description
Problem
Suppose there's a beachball config like this:
// beachball.config.js
module.exports = {
changelog: {
groups: [
{
masterPackageName: 'parent',
changelogPath: 'packages/parent',
include: ['packages/foo', 'packages/bar']
}
]
}
}
Assume parent depends on foo and bar, and all the packages start out at version 1.0.0.
In an extreme example, if foo bumps with { changeType: 'major', dependentChangeType: 'patch' }, the new version of foo will be 2.0.0 and parent will be 1.0.1.
But packages/parent/CHANGELOG.md will look like this:
# Change Log - parent
## 1.0.1
### Major changes
- `foo`
- some change
This is misleading because parent itself did NOT have a major change! Also, it would be helpful to list the version of foo.
Proposal
- Definitely include the new version of the other package, e.g.
foo@2.0.0. (This is unlikely to be considered a breaking change.)- Or possibly change the header to
Bump <pkg> to <version>, though that's a little weird if it's not a direct dependency
- Or possibly change the header to
- Put each child change under its
dependentChangeType(though this might be wrong for a package that isn't a direct dep ofmasterPackageName) - Maybe: prefix with the actual change type...which is maybe a bit confusing too, but the most complete option and the most helpful for anyone using the package directly (though in that case they could also look at its dedicated changelog)
## 1.0.1
### Patches
- Bump `foo` to `2.0.0`
- (major) some change
- Dominant language
- TypeScript
- Stars
- 815
- Forks
- 93
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 12
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.
More from microsoft/beachball
-
Difficulty 4/5 3-5 days Newbie friendliness 42/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Beachball v4 Openv4?
Difficulty 5/5 Over a week Newbie friendliness 20/100
-
breaking change feature v4?
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
feature
Difficulty 4/5 3-5 days Newbie friendliness 45/100
All issues in microsoft/beachball
Similar issues
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
vercel/react-tweet#225 ·