From 2275c7a507ca3c20ee5267ce49a59a5250828d04 Mon Sep 17 00:00:00 2001 From: LPegasus Date: Mon, 24 Nov 2025 20:31:41 +0800 Subject: [PATCH] [rush-lib] Add subspaceName information to the output of the rush list command when subspace feature is enabled --- ...or-rush-list-command_2025-11-24-12-44.json | 10 ++++++++++ .../rush-lib/src/cli/actions/ListAction.ts | 20 ++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 common/changes/@microsoft/rush/feature-add-subspace-name-for-rush-list-command_2025-11-24-12-44.json diff --git a/common/changes/@microsoft/rush/feature-add-subspace-name-for-rush-list-command_2025-11-24-12-44.json b/common/changes/@microsoft/rush/feature-add-subspace-name-for-rush-list-command_2025-11-24-12-44.json new file mode 100644 index 00000000000..410341a4fc8 --- /dev/null +++ b/common/changes/@microsoft/rush/feature-add-subspace-name-for-rush-list-command_2025-11-24-12-44.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush", + "comment": "Add subspaceName to the output of the `rush list` command", + "type": "none" + } + ], + "packageName": "@microsoft/rush" +} \ No newline at end of file diff --git a/libraries/rush-lib/src/cli/actions/ListAction.ts b/libraries/rush-lib/src/cli/actions/ListAction.ts index 021f3008f86..ec47625028f 100644 --- a/libraries/rush-lib/src/cli/actions/ListAction.ts +++ b/libraries/rush-lib/src/cli/actions/ListAction.ts @@ -45,6 +45,10 @@ export interface IJsonEntry { * @see {@link ../../api/RushConfigurationProject#RushConfigurationProject.tags | RushConfigurationProject.tags} */ tags: string[]; + /** + * @see {@link ../../api/Subspace#Subspace.subspaceName | Subspace.subspaceName} + */ + subspaceName: string | undefined; } export interface IJsonOutput { @@ -145,6 +149,7 @@ export class ListAction extends BaseRushAction { let shouldPublish: undefined | boolean; let versionPolicy: undefined | string; let versionPolicyName: undefined | string; + let subspaceName: undefined | string; if (config.versionPolicy !== undefined) { const definitionName: string = VersionPolicyDefinitionName[config.versionPolicy.definitionName]; versionPolicy = `${definitionName}`; @@ -157,6 +162,10 @@ export class ListAction extends BaseRushAction { reviewCategory = config.reviewCategory; } + if (this.rushConfiguration.subspacesFeatureEnabled) { + subspaceName = config.subspace.subspaceName; + } + return { name: config.packageName, version: config.packageJson.version, @@ -166,7 +175,8 @@ export class ListAction extends BaseRushAction { versionPolicyName, shouldPublish, reviewCategory, - tags: Array.from(config.tags) + tags: Array.from(config.tags), + subspaceName }; }); @@ -186,6 +196,10 @@ export class ListAction extends BaseRushAction { private async _printListTableAsync(selection: Set): Promise { const tableHeader: string[] = ['Project']; + if (this.rushConfiguration.subspacesFeatureEnabled) { + tableHeader.push('Subspace'); + } + if (this._version.value || this._detailedFlag.value) { tableHeader.push('Version'); } @@ -219,6 +233,10 @@ export class ListAction extends BaseRushAction { appendToPackageRow(project.packageName); + if (this.rushConfiguration.subspacesFeatureEnabled) { + appendToPackageRow(project.subspace.subspaceName); + } + if (this._version.value || this._detailedFlag.value) { appendToPackageRow(project.packageJson.version); }