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 () => {
|
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(
|
expect(readJson(tree, 'libs/my-lib/package.json').version).toEqual(
|
||||||
'0.0.1'
|
'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'
|
'package.json'
|
||||||
),
|
),
|
||||||
(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] =
|
json[dependentProject.dependencyCollection][packageName] =
|
||||||
newVersion;
|
newVersion;
|
||||||
return json;
|
return json;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user