Skip to content

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

Open
@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.

(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));

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions