Skip to content

Commit 0840c21

Browse files
authored
Clean up the repo-scripts bump-decoupled-local-dependencies action. (#5418)
* Move files around in repo-toolbox. * Don't bump allowed alternative dependencies. * Include @rushstack/set-webpack-public-path-plugin@^4.1.16 in common-versions.json.
1 parent 03af7f2 commit 0840c21

File tree

6 files changed

+29
-12
lines changed

6 files changed

+29
-12
lines changed

common/config/subspaces/default/common-versions.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@
143143
"@rushstack/eslint-config": [
144144
// This is used by the ESLint 7 build tests
145145
"3.7.1"
146+
],
147+
"@rushstack/set-webpack-public-path-plugin": [
148+
// This is used by the webpack 4 localization plugin tests
149+
"^4.1.16"
146150
]
147151
}
148152
}

repo-scripts/repo-toolbox/src/ToolboxCommandLine.ts renamed to repo-scripts/repo-toolbox/src/cli/ToolboxCommandLine.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
import { CommandLineParser } from '@rushstack/ts-command-line';
55

6-
import { ReadmeAction } from './ReadmeAction';
7-
import { RecordVersionsAction } from './RecordVersionsAction';
8-
import { BumpCyclicsAction } from './BumpCyclicsAction';
6+
import { ReadmeAction } from './actions/ReadmeAction';
7+
import { RecordVersionsAction } from './actions/RecordVersionsAction';
8+
import { BumpDecoupledLocalDependencies } from './actions/BumpDecoupledLocalDependencies';
99

1010
export class ToolboxCommandLine extends CommandLineParser {
1111
public constructor() {
@@ -16,6 +16,6 @@ export class ToolboxCommandLine extends CommandLineParser {
1616

1717
this.addAction(new ReadmeAction());
1818
this.addAction(new RecordVersionsAction());
19-
this.addAction(new BumpCyclicsAction());
19+
this.addAction(new BumpDecoupledLocalDependencies());
2020
}
2121
}

repo-scripts/repo-toolbox/src/BumpCyclicsAction.ts renamed to repo-scripts/repo-toolbox/src/cli/actions/BumpDecoupledLocalDependencies.ts

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import type { ChildProcess } from 'node:child_process';
55

66
import { Async, Executable, JsonFile } from '@rushstack/node-core-library';
77
import { ConsoleTerminalProvider, Terminal } from '@rushstack/terminal';
8-
import { DependencyType, RushConfiguration } from '@microsoft/rush-lib';
8+
import { DependencyType, RushConfiguration, type CommonVersionsConfiguration } from '@microsoft/rush-lib';
99
import { CommandLineAction } from '@rushstack/ts-command-line';
1010

11-
export class BumpCyclicsAction extends CommandLineAction {
11+
export class BumpDecoupledLocalDependencies extends CommandLineAction {
1212
public constructor() {
1313
super({
14-
actionName: 'bump-cyclic-dependencies',
15-
summary: 'Updates cyclic dependencies inside the repo.',
14+
actionName: 'bump-decoupled-local-dependencies',
15+
summary: 'Updates decoupled local dependencies inside the repo.',
1616
documentation: ''
1717
});
1818
}
@@ -46,20 +46,33 @@ export class BumpCyclicsAction extends CommandLineAction {
4646
terminal.writeLine();
4747

4848
for (const project of rushConfiguration.projects) {
49+
const commonVersions: CommonVersionsConfiguration = project.subspace.getCommonVersions();
50+
4951
for (const cyclicDependencyProject of project.decoupledLocalDependencies) {
50-
const version: string = cyclicDependencyVersions.get(cyclicDependencyProject)!;
52+
const existingVersion: string | undefined =
53+
project.packageJson.dependencies?.[cyclicDependencyProject] ??
54+
project.packageJson.devDependencies?.[cyclicDependencyProject];
55+
if (
56+
existingVersion &&
57+
commonVersions.allowedAlternativeVersions.get(cyclicDependencyProject)?.includes(existingVersion)
58+
) {
59+
// Skip if the existing version is allowed by common-versions.json
60+
continue;
61+
}
62+
63+
const newVersion: string = cyclicDependencyVersions.get(cyclicDependencyProject)!;
5164
if (project.packageJsonEditor.tryGetDependency(cyclicDependencyProject)) {
5265
project.packageJsonEditor.addOrUpdateDependency(
5366
cyclicDependencyProject,
54-
version,
67+
newVersion,
5568
DependencyType.Regular
5669
);
5770
}
5871

5972
if (project.packageJsonEditor.tryGetDevDependency(cyclicDependencyProject)) {
6073
project.packageJsonEditor.addOrUpdateDependency(
6174
cyclicDependencyProject,
62-
version,
75+
newVersion,
6376
DependencyType.Dev
6477
);
6578
}
File renamed without changes.

repo-scripts/repo-toolbox/src/RecordVersionsAction.ts renamed to repo-scripts/repo-toolbox/src/cli/actions/RecordVersionsAction.ts

File renamed without changes.

repo-scripts/repo-toolbox/src/start.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
22
// See LICENSE in the project root for license information.
33

4-
import { ToolboxCommandLine } from './ToolboxCommandLine';
4+
import { ToolboxCommandLine } from './cli/ToolboxCommandLine';
55

66
// eslint-disable-next-line no-console
77
console.log('repo-toolbox\n');

0 commit comments

Comments
 (0)