-
Notifications
You must be signed in to change notification settings - Fork 91
Description
If dependencies within the repo are specified as workspace:*, workspace:^, or workspace:~, this causes dependent bumps to be missed from the changelog (only) because the version range doesn't change. Same with catalog: and file: versions.
(The actual package versions are still bumped by updateRelatedChangeType, and the workspace: dependencies will be replaced with the current versions during publishing; the Bump X to Y entries are just missing from the changelog.)
BumpInfo.dependentChangedBy is the property that's used to generate the Bump X to Y entries. It's generated here:
beachball/src/bump/setDependentVersions.ts
Lines 28 to 33 in dbdde9c
| const bumpedVersionRange = bumpMinSemverRange(packageInfo.version, existingVersionRange); | |
| if (existingVersionRange !== bumpedVersionRange) { | |
| deps[dep] = bumpedVersionRange; | |
| dependentChangedBy[pkgName] ??= new Set<string>(); | |
| dependentChangedBy[pkgName].add(dep); |
This is the bumping logic for workspace:*/^/~ ranges in dependencies. Since the string never changes, the dependent bump won't be included in dependentChangedBy above.
beachball/src/bump/bumpMinSemverRange.ts
Lines 7 to 11 in dbdde9c
| if (['workspace:*', 'workspace:~', 'workspace:^'].includes(semverRange)) { | |
| // For basic workspace ranges we can just preserve current value and replace during publish | |
| // https://pnpm.io/workspaces#workspace-protocol-workspace | |
| return semverRange; | |
| } |
Possibly this could be fixed by passing modifiedPackages through to setDependentVersions and adding an extra condition to the check in setDependentVersions (for deps with those workspace versions).
beachball/src/bump/bumpInPlace.ts
Lines 52 to 53 in dbdde9c
| bumpInfo.dependentChangedBy = setDependentVersions(packageInfos, scopedPackages, options); | |
| Object.keys(bumpInfo.dependentChangedBy).forEach(pkg => modifiedPackages.add(pkg)); |
Similar questions apply for file: versions, though from comments on the implementation in #1080, it was clear that author didn't want the dependents bumped. (That specific desired behavior might be better addressed by introducing an option to handle devDependencies bumps differently.)