diff --git a/.changeset/add-cli-plugin-role.md b/.changeset/add-cli-plugin-role.md new file mode 100644 index 0000000000..b31c631762 --- /dev/null +++ b/.changeset/add-cli-plugin-role.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli-node': patch +--- + +Added a new `cli-plugin` package role for packages that provide CLI plugin extensions. diff --git a/.changeset/cli-support-cli-plugin-role.md b/.changeset/cli-support-cli-plugin-role.md new file mode 100644 index 0000000000..d56c30db78 --- /dev/null +++ b/.changeset/cli-support-cli-plugin-role.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Added support for the new `cli-plugin` package role in the build system, ESLint configuration, Jest configuration, and maintenance commands. diff --git a/packages/cli-node/report.api.md b/packages/cli-node/report.api.md index 9d4887ca59..05d1545ae4 100644 --- a/packages/cli-node/report.api.md +++ b/packages/cli-node/report.api.md @@ -187,6 +187,7 @@ export type PackageRole = | 'frontend' | 'backend' | 'cli' + | 'cli-plugin' | 'web-library' | 'node-library' | 'common-library' diff --git a/packages/cli-node/src/roles/PackageRoles.ts b/packages/cli-node/src/roles/PackageRoles.ts index 70b62e2479..b0ee82af84 100644 --- a/packages/cli-node/src/roles/PackageRoles.ts +++ b/packages/cli-node/src/roles/PackageRoles.ts @@ -33,6 +33,11 @@ const packageRoleInfos: PackageRoleInfo[] = [ platform: 'node', output: ['cjs'], }, + { + role: 'cli-plugin', + platform: 'node', + output: ['types', 'cjs'], + }, { role: 'web-library', platform: 'web', diff --git a/packages/cli-node/src/roles/types.ts b/packages/cli-node/src/roles/types.ts index d6eff04541..29e5fbb5d6 100644 --- a/packages/cli-node/src/roles/types.ts +++ b/packages/cli-node/src/roles/types.ts @@ -23,6 +23,7 @@ export type PackageRole = | 'frontend' | 'backend' | 'cli' + | 'cli-plugin' | 'web-library' | 'node-library' | 'common-library' diff --git a/packages/cli/config/eslint-factory.js b/packages/cli/config/eslint-factory.js index dbb40537ab..db547f9b15 100644 --- a/packages/cli/config/eslint-factory.js +++ b/packages/cli/config/eslint-factory.js @@ -269,6 +269,7 @@ function createConfigForRole(dir, role, extraConfig = {}) { }); case 'cli': + case 'cli-plugin': case 'node-library': case 'backend': case 'backend-plugin': diff --git a/packages/cli/config/jest.js b/packages/cli/config/jest.js index c670f0fe8b..07f92002ae 100644 --- a/packages/cli/config/jest.js +++ b/packages/cli/config/jest.js @@ -38,6 +38,7 @@ const FRONTEND_ROLES = [ const NODE_ROLES = [ 'backend', 'cli', + 'cli-plugin', 'node-library', 'backend-plugin', 'backend-plugin-module', diff --git a/packages/cli/src/modules/build/lib/typeDistProject.test.ts b/packages/cli/src/modules/build/lib/typeDistProject.test.ts index 6eef53816b..c773c505be 100644 --- a/packages/cli/src/modules/build/lib/typeDistProject.test.ts +++ b/packages/cli/src/modules/build/lib/typeDistProject.test.ts @@ -33,6 +33,7 @@ describe('typeDistProject', () => { frontend: false, backend: false, cli: false, + 'cli-plugin': false, 'common-library': false, }; diff --git a/packages/cli/src/modules/maintenance/commands/repo/fix.ts b/packages/cli/src/modules/maintenance/commands/repo/fix.ts index dc2e554121..324b4c6a3f 100644 --- a/packages/cli/src/modules/maintenance/commands/repo/fix.ts +++ b/packages/cli/src/modules/maintenance/commands/repo/fix.ts @@ -294,7 +294,12 @@ export function fixPluginId(pkg: FixablePackage) { return; } - if (role === 'backend' || role === 'frontend' || role === 'cli') { + if ( + role === 'backend' || + role === 'frontend' || + role === 'cli' || + role === 'cli-plugin' + ) { return; } @@ -376,7 +381,12 @@ export function fixPluginPackages( return; } - if (role === 'backend' || role === 'frontend' || role === 'cli') { + if ( + role === 'backend' || + role === 'frontend' || + role === 'cli' || + role === 'cli-plugin' + ) { return; } diff --git a/packages/cli/src/modules/migrate/commands/packageScripts.ts b/packages/cli/src/modules/migrate/commands/packageScripts.ts index 901cd8fc82..f9b4b56591 100644 --- a/packages/cli/src/modules/migrate/commands/packageScripts.ts +++ b/packages/cli/src/modules/migrate/commands/packageScripts.ts @@ -22,7 +22,7 @@ import type { CommandContext } from '../../../wiring/types'; const configArgPattern = /--config[=\s][^\s$]+/; -const noStartRoles: PackageRole[] = ['cli', 'common-library']; +const noStartRoles: PackageRole[] = ['cli', 'cli-plugin', 'common-library']; export default async ({ args, info }: CommandContext) => { cli({ help: info, booleanFlagNegation: true }, undefined, args);