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:
|
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.
|
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).
|
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.)
If dependencies within the repo are specified as
workspace:*,workspace:^, orworkspace:~, this causes dependent bumps to be missed from the changelog (only) because the version range doesn't change. Same withcatalog:andfile:versions.(The actual package versions are still bumped by
updateRelatedChangeType, and theworkspace:dependencies will be replaced with the current versions during publishing; theBump X to Yentries are just missing from the changelog.)BumpInfo.dependentChangedByis the property that's used to generate theBump X to Yentries. It's generated here:beachball/src/bump/setDependentVersions.ts
Lines 28 to 33 in dbdde9c
This is the bumping logic for
workspace:*/^/~ranges in dependencies. Since the string never changes, the dependent bump won't be included independentChangedByabove.beachball/src/bump/bumpMinSemverRange.ts
Lines 7 to 11 in dbdde9c
Possibly this could be fixed by passing
modifiedPackagesthrough tosetDependentVersionsand adding an extra condition to the check insetDependentVersions(for deps with those workspace versions).beachball/src/bump/bumpInPlace.ts
Lines 52 to 53 in dbdde9c
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.)