Skip to content

Dependent bumps are missing from changelog with workspace:/catalog:/file: versions #981

@ecraig12345

Description

@ecraig12345

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.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingv4?Consider for v4

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions