diff --git a/.changeset/polite-bulldogs-repeat.md b/.changeset/polite-bulldogs-repeat.md index b3847aea33..cf551d17f4 100644 --- a/.changeset/polite-bulldogs-repeat.md +++ b/.changeset/polite-bulldogs-repeat.md @@ -6,7 +6,7 @@ Several changes were made to the new experimental package roles system. Unless y Renamed the `backstage-cli migrate package-role` command to `backstage-cli migrate package-roles`. -Updated the package role definitions by renaming `plugin-frontend` to `frontend-plugin`, as well as the same reshuffle to `frontend-plugin-module`, `backend-plugin`, and `backend-plugin-module`. +Updated the package role definitions by renaming `app` to `frontend`, `plugin-frontend` to `frontend-plugin`, `plugin-frontend-module` to `frontend-plugin-module`, `plugin-backend` to `backend-plugin`, and `plugin-backend-module` to `backend-plugin-module` The `backstage-cli migrate package-scripts` received several tweaks to make it more accurate. It now tries to maintain existing script arguments, like `--config` parameters for `build` and `start` scripts. diff --git a/packages/app/package.json b/packages/app/package.json index 6c3af47bc1..1ee1d56e21 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -3,7 +3,7 @@ "version": "0.2.64", "private": true, "backstage": { - "role": "app" + "role": "frontend" }, "bundled": true, "dependencies": { diff --git a/packages/cli/src/commands/build/buildApp.ts b/packages/cli/src/commands/build/buildFrontend.ts similarity index 95% rename from packages/cli/src/commands/build/buildApp.ts rename to packages/cli/src/commands/build/buildFrontend.ts index b0959b2d6a..6d7ca2e6a9 100644 --- a/packages/cli/src/commands/build/buildApp.ts +++ b/packages/cli/src/commands/build/buildFrontend.ts @@ -26,7 +26,7 @@ interface BuildAppOptions { configPaths: string[]; } -export async function buildApp(options: BuildAppOptions) { +export async function buildFrontend(options: BuildAppOptions) { const { targetDir, writeStats, configPaths } = options; const { name } = await fs.readJson(resolvePath(targetDir, 'package.json')); await buildBundle({ diff --git a/packages/cli/src/commands/build/command.ts b/packages/cli/src/commands/build/command.ts index 04b9893c31..5c8065dbb4 100644 --- a/packages/cli/src/commands/build/command.ts +++ b/packages/cli/src/commands/build/command.ts @@ -18,14 +18,14 @@ import { Command } from 'commander'; import { buildPackage, Output } from '../../lib/builder'; import { findRoleFromCommand, getRoleInfo } from '../../lib/role'; import { paths } from '../../lib/paths'; -import { buildApp } from './buildApp'; +import { buildFrontend } from './buildFrontend'; import { buildBackend } from './buildBackend'; export async function command(cmd: Command): Promise { const role = await findRoleFromCommand(cmd); - if (role === 'app') { - return buildApp({ + if (role === 'frontend') { + return buildFrontend({ targetDir: paths.targetDir, configPaths: cmd.config as string[], writeStats: Boolean(cmd.stats), diff --git a/packages/cli/src/commands/repo/build.ts b/packages/cli/src/commands/repo/build.ts index b3f9add195..ceb468ebfa 100644 --- a/packages/cli/src/commands/repo/build.ts +++ b/packages/cli/src/commands/repo/build.ts @@ -23,7 +23,7 @@ import { ExtendedPackage } from '../../lib/monorepo/PackageGraph'; import { runParallelWorkers } from '../../lib/parallel'; import { paths } from '../../lib/paths'; import { detectRoleFromPackage } from '../../lib/role'; -import { buildApp } from '../build/buildApp'; +import { buildFrontend } from '../build/buildFrontend'; import { buildBackend } from '../build/buildBackend'; function createScriptOptionsParser(anyCmd: Command, commandPath: string[]) { @@ -92,7 +92,7 @@ export async function command(cmd: Command): Promise { return []; } - if (role === 'app') { + if (role === 'frontend') { apps.push(pkg); return []; } else if (role === 'backend') { @@ -139,7 +139,7 @@ export async function command(cmd: Command): Promise { ); return; } - await buildApp({ + await buildFrontend({ targetDir: pkg.dir, configPaths: (buildOptions.config as string[]) ?? [], writeStats: Boolean(buildOptions.stats), diff --git a/packages/cli/src/commands/start/command.ts b/packages/cli/src/commands/start/command.ts index 66aaa897ef..7a11028800 100644 --- a/packages/cli/src/commands/start/command.ts +++ b/packages/cli/src/commands/start/command.ts @@ -35,7 +35,7 @@ export async function command(cmd: Command): Promise { case 'backend-plugin-module': case 'node-library': return startBackend(options); - case 'app': + case 'frontend': return startFrontend({ ...options, entry: 'src/index', diff --git a/packages/cli/src/lib/role/packageRoles.test.ts b/packages/cli/src/lib/role/packageRoles.test.ts index db6b63f327..759be462d2 100644 --- a/packages/cli/src/lib/role/packageRoles.test.ts +++ b/packages/cli/src/lib/role/packageRoles.test.ts @@ -31,8 +31,8 @@ describe('getRoleInfo', () => { output: ['types', 'esm'], }); - expect(getRoleInfo('app')).toEqual({ - role: 'app', + expect(getRoleInfo('frontend')).toEqual({ + role: 'frontend', platform: 'web', output: ['bundle'], }); @@ -56,10 +56,10 @@ describe('getRoleFromPackage', () => { expect( getRoleFromPackage({ backstage: { - role: 'app', + role: 'frontend', }, }), - ).toEqual('app'); + ).toEqual('frontend'); expect(() => getRoleFromPackage({ @@ -135,7 +135,7 @@ describe('detectRoleFromPackage', () => { 'cy:run': 'cypress run', }, }), - ).toEqual('app'); + ).toEqual('frontend'); }); it('detects the role of example-backend', () => { diff --git a/packages/cli/src/lib/role/packageRoles.ts b/packages/cli/src/lib/role/packageRoles.ts index b5fbd75b56..a33a7d715a 100644 --- a/packages/cli/src/lib/role/packageRoles.ts +++ b/packages/cli/src/lib/role/packageRoles.ts @@ -22,7 +22,7 @@ import { PackageRole, PackageRoleInfo } from './types'; const packageRoleInfos: PackageRoleInfo[] = [ { - role: 'app', + role: 'frontend', platform: 'web', output: ['bundle'], }, @@ -147,7 +147,7 @@ export function detectRoleFromPackage( const pkg = detectionSchema.parse(pkgJson); if (pkg.scripts?.start?.includes('app:serve')) { - return 'app'; + return 'frontend'; } if (pkg.scripts?.build?.includes('backend:bundle')) { return 'backend'; diff --git a/packages/cli/src/lib/role/types.ts b/packages/cli/src/lib/role/types.ts index 1b18c71620..a3961544f4 100644 --- a/packages/cli/src/lib/role/types.ts +++ b/packages/cli/src/lib/role/types.ts @@ -15,7 +15,7 @@ */ export type PackageRole = - | 'app' + | 'frontend' | 'backend' | 'cli' | 'web-library' diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index a36653d5dc..10b329ac80 100644 --- a/packages/techdocs-cli-embedded-app/package.json +++ b/packages/techdocs-cli-embedded-app/package.json @@ -3,7 +3,7 @@ "version": "0.2.63", "private": true, "backstage": { - "role": "app" + "role": "frontend" }, "bundled": true, "dependencies": {