fix(release): do not update dependents when they already use "*" (#20607)
This commit is contained in:
parent
4502fb9b5a
commit
6d68236d46
@ -419,6 +419,98 @@ To fix this you will either need to add a package.json file at that location, or
|
||||
`);
|
||||
});
|
||||
|
||||
it(`should not update dependents when they are using version "*"`, async () => {
|
||||
projectGraph = createWorkspaceWithPackageDependencies(tree, {
|
||||
'my-lib': {
|
||||
projectRoot: 'libs/my-lib',
|
||||
packageName: 'my-lib',
|
||||
version: '0.0.1',
|
||||
packageJsonPath: 'libs/my-lib/package.json',
|
||||
localDependencies: [],
|
||||
},
|
||||
'project-with-dependency-on-my-pkg': {
|
||||
projectRoot: 'libs/project-with-dependency-on-my-pkg',
|
||||
packageName: 'project-with-dependency-on-my-pkg',
|
||||
version: '0.0.1',
|
||||
packageJsonPath:
|
||||
'libs/project-with-dependency-on-my-pkg/package.json',
|
||||
localDependencies: [
|
||||
{
|
||||
projectName: 'my-lib',
|
||||
dependencyCollection: 'dependencies',
|
||||
version: '*',
|
||||
},
|
||||
],
|
||||
},
|
||||
'project-with-devDependency-on-my-pkg': {
|
||||
projectRoot: 'libs/project-with-devDependency-on-my-pkg',
|
||||
packageName: 'project-with-devDependency-on-my-pkg',
|
||||
version: '0.0.1',
|
||||
packageJsonPath:
|
||||
'libs/project-with-devDependency-on-my-pkg/package.json',
|
||||
localDependencies: [
|
||||
{
|
||||
projectName: 'my-lib',
|
||||
dependencyCollection: 'devDependencies',
|
||||
version: '*',
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
expect(readJson(tree, 'libs/my-lib/package.json').version).toEqual(
|
||||
'0.0.1'
|
||||
);
|
||||
expect(
|
||||
readJson(tree, 'libs/project-with-dependency-on-my-pkg/package.json')
|
||||
.version
|
||||
).toEqual('0.0.1');
|
||||
|
||||
await releaseVersionGenerator(tree, {
|
||||
projects: Object.values(projectGraph.nodes), // version all projects
|
||||
projectGraph,
|
||||
specifier: '4.5.6', // user CLI specifier override set, no prompting should occur
|
||||
currentVersionResolver: 'disk',
|
||||
specifierSource: 'prompt',
|
||||
releaseGroup: createReleaseGroup('independent'),
|
||||
});
|
||||
|
||||
expect(readJson(tree, 'libs/my-lib/package.json'))
|
||||
.toMatchInlineSnapshot(`
|
||||
{
|
||||
"name": "my-lib",
|
||||
"version": "4.5.6",
|
||||
}
|
||||
`);
|
||||
|
||||
expect(
|
||||
readJson(tree, 'libs/project-with-dependency-on-my-pkg/package.json')
|
||||
).toMatchInlineSnapshot(`
|
||||
{
|
||||
"dependencies": {
|
||||
"my-lib": "*",
|
||||
},
|
||||
"name": "project-with-dependency-on-my-pkg",
|
||||
"version": "4.5.6",
|
||||
}
|
||||
`);
|
||||
|
||||
expect(
|
||||
readJson(
|
||||
tree,
|
||||
'libs/project-with-devDependency-on-my-pkg/package.json'
|
||||
)
|
||||
).toMatchInlineSnapshot(`
|
||||
{
|
||||
"devDependencies": {
|
||||
"my-lib": "*",
|
||||
},
|
||||
"name": "project-with-devDependency-on-my-pkg",
|
||||
"version": "4.5.6",
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
it(`should update dependents even when filtering to a subset of projects which do not include those dependents`, async () => {
|
||||
expect(readJson(tree, 'libs/my-lib/package.json').version).toEqual(
|
||||
'0.0.1'
|
||||
|
||||
@ -372,6 +372,12 @@ To fix this you will either need to add a package.json file at that location, or
|
||||
'package.json'
|
||||
),
|
||||
(json) => {
|
||||
// Do not update "*" as it already matches all possible versions including the new one
|
||||
if (
|
||||
json[dependentProject.dependencyCollection][packageName] === '*'
|
||||
) {
|
||||
return json;
|
||||
}
|
||||
json[dependentProject.dependencyCollection][packageName] =
|
||||
newVersion;
|
||||
return json;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user