From 3494c502aba749935790f3e3737d6b1f892255cd Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 6 Sep 2023 20:04:47 +0200 Subject: [PATCH 01/11] cli: introduce repo fix command Signed-off-by: Patrik Oldsberg --- .changeset/funny-timers-retire.md | 5 + packages/cli/src/commands/index.ts | 9 + .../src/commands/migrate/packageExports.ts | 115 ++---------- packages/cli/src/commands/repo/fix.ts | 166 ++++++++++++++++++ 4 files changed, 194 insertions(+), 101 deletions(-) create mode 100644 .changeset/funny-timers-retire.md create mode 100644 packages/cli/src/commands/repo/fix.ts diff --git a/.changeset/funny-timers-retire.md b/.changeset/funny-timers-retire.md new file mode 100644 index 0000000000..cee28b5b12 --- /dev/null +++ b/.changeset/funny-timers-retire.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Added a new `repo fix` command that fixes auto-fixable problems in all packages. diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index a7f65588a5..b1941ddac8 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -67,6 +67,15 @@ export function registerRepoCommand(program: Command) { .option('--fix', 'Attempt to automatically fix violations') .action(lazy(() => import('./repo/lint').then(m => m.command))); + command + .command('fix') + .description('Automatically fix packages in the project') + .option( + '--check', + 'Fail if any packages would have been changed by the command', + ) + .action(lazy(() => import('./repo/fix').then(m => m.command))); + command .command('clean') .description('Delete cache and output directories') diff --git a/packages/cli/src/commands/migrate/packageExports.ts b/packages/cli/src/commands/migrate/packageExports.ts index 82d0b73ac2..6757d01bbe 100644 --- a/packages/cli/src/commands/migrate/packageExports.ts +++ b/packages/cli/src/commands/migrate/packageExports.ts @@ -14,108 +14,21 @@ * limitations under the License. */ -import fs from 'fs-extra'; -import { resolve as resolvePath } from 'path'; -import { BackstagePackageJson, PackageGraph } from '@backstage/cli-node'; - -function trimRelative(path: string): string { - if (path.startsWith('./')) { - return path.slice(2); - } - return path; -} +import { + fixPackageExports, + readFixablePackages, + writeFixedPackages, +} from '../repo/fix'; export async function command() { - const packages = await PackageGraph.listTargetPackages(); - - await Promise.all( - packages.map(async ({ dir, packageJson }) => { - let changed = false; - let newPackageJson = packageJson; - - let { exports: exp } = newPackageJson; - if (!exp) { - return; - } - if (Array.isArray(exp)) { - throw new Error('Unexpected array in package.json exports field'); - } - - // If exports is a string we rewrite it to an object to add package.json - if (typeof exp === 'string') { - changed = true; - exp = { '.': exp }; - newPackageJson.exports = exp; - } else if (typeof exp !== 'object') { - return; - } - - if (!exp['./package.json']) { - changed = true; - exp['./package.json'] = './package.json'; - } - - const existingTypesVersions = JSON.stringify(packageJson.typesVersions); - - const typeEntries: Record = {}; - for (const [path, value] of Object.entries(exp)) { - // Main entry point does not need to be listed - if (path === '.') { - continue; - } - const newPath = trimRelative(path); - - if (typeof value === 'string') { - typeEntries[newPath] = [trimRelative(value)]; - } else if ( - value && - typeof value === 'object' && - !Array.isArray(value) - ) { - if (typeof value.types === 'string') { - typeEntries[newPath] = [trimRelative(value.types)]; - } else if (typeof value.default === 'string') { - typeEntries[newPath] = [trimRelative(value.default)]; - } - } - } - - const typesVersions = { '*': typeEntries }; - if (existingTypesVersions !== JSON.stringify(typesVersions)) { - console.log(`Synchronizing exports in ${packageJson.name}`); - const newPkgEntries = Object.entries(newPackageJson).filter( - ([name]) => name !== 'typesVersions', - ); - newPkgEntries.splice( - newPkgEntries.findIndex(([name]) => name === 'exports') + 1, - 0, - ['typesVersions', typesVersions], - ); - - newPackageJson = Object.fromEntries( - newPkgEntries, - ) as BackstagePackageJson; - changed = true; - } - - // Remove the legacy fields from publishConfig, which are no longer needed - const publishConfig = newPackageJson.publishConfig as - | Record - | undefined; - if (publishConfig) { - for (const field of ['main', 'module', 'browser', 'types']) { - if (publishConfig[field]) { - delete publishConfig[field]; - changed = true; - } - } - } - - if (changed) { - await fs.writeJson(resolvePath(dir, 'package.json'), newPackageJson, { - spaces: 2, - }); - } - }), + console.log( + 'The `migrate package-exports` command is deprecated, use `repo fix` instead.', ); + const packages = await readFixablePackages(); + + for (const pkg of packages) { + fixPackageExports(pkg); + } + + await writeFixedPackages(packages); } diff --git a/packages/cli/src/commands/repo/fix.ts b/packages/cli/src/commands/repo/fix.ts new file mode 100644 index 0000000000..2d46897d52 --- /dev/null +++ b/packages/cli/src/commands/repo/fix.ts @@ -0,0 +1,166 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + BackstagePackage, + BackstagePackageJson, + PackageGraph, +} from '@backstage/cli-node'; +import { OptionValues } from 'commander'; +import fs from 'fs-extra'; +import { resolve as resolvePath } from 'path'; + +/** + * A mutable object representing a package.json file with potential fixes. + */ +export interface FixablePackage extends BackstagePackage { + changed: boolean; +} + +export async function readFixablePackages(): Promise { + const packages = await PackageGraph.listTargetPackages(); + return packages.map(pkg => ({ ...pkg, changed: false })); +} + +export function printPackageFixHint(packages: FixablePackage[]) { + const changed = packages.filter(pkg => pkg.changed); + if (changed.length > 0) { + console.log( + 'The following packages are out of sync, run `yarn fix` to fix them:', + ); + for (const pkg of changed) { + console.log(` ${pkg.packageJson.name}`); + } + return true; + } + return false; +} + +export async function writeFixedPackages( + packages: FixablePackage[], +): Promise { + await Promise.all( + packages.map(async pkg => { + if (!pkg.changed) { + return; + } + + await fs.writeJson( + resolvePath(pkg.dir, 'package.json'), + pkg.packageJson, + { + spaces: 2, + }, + ); + }), + ); +} + +function trimRelative(path: string): string { + if (path.startsWith('./')) { + return path.slice(2); + } + return path; +} + +export function fixPackageExports(pkg: FixablePackage) { + let { exports: exp } = pkg.packageJson; + if (!exp) { + return; + } + if (Array.isArray(exp)) { + throw new Error('Unexpected array in package.json exports field'); + } + + // If exports is a string we rewrite it to an object to add package.json + if (typeof exp === 'string') { + pkg.changed = true; + exp = { '.': exp }; + pkg.packageJson.exports = exp; + } else if (typeof exp !== 'object') { + return; + } + + if (!exp['./package.json']) { + pkg.changed = true; + exp['./package.json'] = './package.json'; + } + + const existingTypesVersions = JSON.stringify(pkg.packageJson.typesVersions); + + const typeEntries: Record = {}; + for (const [path, value] of Object.entries(exp)) { + // Main entry point does not need to be listed + if (path === '.') { + continue; + } + const newPath = trimRelative(path); + + if (typeof value === 'string') { + typeEntries[newPath] = [trimRelative(value)]; + } else if (value && typeof value === 'object' && !Array.isArray(value)) { + if (typeof value.types === 'string') { + typeEntries[newPath] = [trimRelative(value.types)]; + } else if (typeof value.default === 'string') { + typeEntries[newPath] = [trimRelative(value.default)]; + } + } + } + + const typesVersions = { '*': typeEntries }; + if (existingTypesVersions !== JSON.stringify(typesVersions)) { + const newPkgEntries = Object.entries(pkg.packageJson).filter( + ([name]) => name !== 'typesVersions', + ); + newPkgEntries.splice( + newPkgEntries.findIndex(([name]) => name === 'exports') + 1, + 0, + ['typesVersions', typesVersions], + ); + + pkg.packageJson = Object.fromEntries(newPkgEntries) as BackstagePackageJson; + pkg.changed = true; + } + + // Remove the legacy fields from publishConfig, which are no longer needed + const publishConfig = pkg.packageJson.publishConfig as + | Record + | undefined; + if (publishConfig) { + for (const field of ['main', 'module', 'browser', 'types']) { + if (publishConfig[field]) { + delete publishConfig[field]; + pkg.changed = true; + } + } + } +} + +export async function command(opts: OptionValues): Promise { + const packages = await readFixablePackages(); + + for (const pkg of packages) { + fixPackageExports(pkg); + } + + if (opts.check) { + if (printPackageFixHint(packages)) { + process.exit(1); + } + } else { + await writeFixedPackages(packages); + } +} From 4606e005df5da59373eb882d65378fa050ec19ab Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 6 Sep 2023 20:08:56 +0200 Subject: [PATCH 02/11] root: add yarn fix Signed-off-by: Patrik Oldsberg --- .changeset/early-rules-taste.md | 14 ++++++++++++++ package.json | 1 + .../templates/default-app/package.json.hbs | 1 + 3 files changed, 16 insertions(+) create mode 100644 .changeset/early-rules-taste.md diff --git a/.changeset/early-rules-taste.md b/.changeset/early-rules-taste.md new file mode 100644 index 0000000000..49fa5f0087 --- /dev/null +++ b/.changeset/early-rules-taste.md @@ -0,0 +1,14 @@ +--- +'@backstage/create-app': patch +--- + +Added the new `repo fix` command to the project too. + +To apply this change to an existing app, make the following change to your root `package.json`: + +```diff + "test": "backstage-cli repo test", + "test:all": "backstage-cli repo test --coverage", ++ "fix": "backstage-cli repo fix", + "lint": "backstage-cli repo lint --since origin/master", +``` diff --git a/package.json b/package.json index 0c007a38ba..6711d06f40 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "clean": "backstage-cli repo clean", "test": "backstage-cli repo test", "test:all": "backstage-cli repo test --coverage", + "fix": "backstage-cli repo fix", "lint": "backstage-cli repo lint --since origin/master", "lint:docs": "node ./scripts/check-docs-quality", "lint:all": "backstage-cli repo lint", diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index c53ed6970f..a4fcb556ea 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -17,6 +17,7 @@ "clean": "backstage-cli repo clean", "test": "backstage-cli repo test", "test:all": "backstage-cli repo test --coverage", + "fix": "backstage-cli repo fix", "lint": "backstage-cli repo lint --since origin/{{defaultBranch}}", "lint:all": "backstage-cli repo lint", "prettier:check": "prettier --check .", From dd37a7069a9bd957a2db0468e60cf8480097ee33 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 6 Sep 2023 20:09:09 +0200 Subject: [PATCH 03/11] apply yarn fix Signed-off-by: Patrik Oldsberg --- plugins/kubernetes-backend/package.json | 4 +--- plugins/permission-backend/package.json | 4 +--- plugins/permission-node/package.json | 4 +--- plugins/scaffolder-common/package.json | 5 +---- plugins/techdocs-backend/package.json | 4 +--- 5 files changed, 5 insertions(+), 16 deletions(-) diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 5fe7b1b7a8..c75b7cbd69 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -6,9 +6,7 @@ "types": "src/index.ts", "license": "Apache-2.0", "publishConfig": { - "access": "public", - "main": "dist/index.cjs.js", - "types": "dist/index.d.ts" + "access": "public" }, "exports": { ".": "./src/index.ts", diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 84ad6ec34c..460bc32b10 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -5,9 +5,7 @@ "types": "src/index.ts", "license": "Apache-2.0", "publishConfig": { - "access": "public", - "main": "dist/index.cjs.js", - "types": "dist/index.d.ts" + "access": "public" }, "exports": { ".": "./src/index.ts", diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index a8c9646bfd..d88a691ba0 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/package.json @@ -6,9 +6,7 @@ "types": "src/index.ts", "license": "Apache-2.0", "publishConfig": { - "access": "public", - "main": "dist/index.cjs.js", - "types": "dist/index.d.ts" + "access": "public" }, "exports": { ".": "./src/index.ts", diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index 261c899943..3fd1f498f7 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -6,10 +6,7 @@ "types": "src/index.ts", "license": "Apache-2.0", "publishConfig": { - "access": "public", - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", - "types": "dist/index.d.ts" + "access": "public" }, "exports": { ".": "./src/index.ts", diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 16b5956c89..b56ee004dd 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -6,9 +6,7 @@ "types": "src/index.ts", "license": "Apache-2.0", "publishConfig": { - "access": "public", - "main": "dist/index.cjs.js", - "types": "dist/index.d.ts" + "access": "public" }, "exports": { ".": "./src/index.ts", From f7d15abbbced02bb8e2b789e1df3e506bfd3048d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 6 Sep 2023 20:13:45 +0200 Subject: [PATCH 04/11] .github/workflows: add yarn fix --check to ci.yml Signed-off-by: Patrik Oldsberg --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e395370f62..65844e339a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,6 +79,9 @@ jobs: - name: verify local dependency ranges run: node scripts/verify-local-dependencies.js + - name: type checking and declarations + run: yarn fix --check + - name: validate config run: yarn backstage-cli config:check --lax From ad0c061b77235ec459058d4273fb85a94e6d9174 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 6 Sep 2023 20:17:55 +0200 Subject: [PATCH 05/11] cli: adjust repo fix check msg based on repo scripts Signed-off-by: Patrik Oldsberg --- packages/cli/src/commands/repo/fix.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/commands/repo/fix.ts b/packages/cli/src/commands/repo/fix.ts index 2d46897d52..75306f226c 100644 --- a/packages/cli/src/commands/repo/fix.ts +++ b/packages/cli/src/commands/repo/fix.ts @@ -22,6 +22,7 @@ import { import { OptionValues } from 'commander'; import fs from 'fs-extra'; import { resolve as resolvePath } from 'path'; +import { paths } from '../../lib/paths'; /** * A mutable object representing a package.json file with potential fixes. @@ -38,8 +39,13 @@ export async function readFixablePackages(): Promise { export function printPackageFixHint(packages: FixablePackage[]) { const changed = packages.filter(pkg => pkg.changed); if (changed.length > 0) { + const rootPkg = require(paths.resolveTargetRoot('package.json')); + const fixCmd = + rootPkg.scripts?.fix === 'backstage-cli repo fix' + ? 'fix' + : 'backstage-cli repo fix'; console.log( - 'The following packages are out of sync, run `yarn fix` to fix them:', + `The following packages are out of sync, run 'yarn ${fixCmd}' to fix them:`, ); for (const pkg of changed) { console.log(` ${pkg.packageJson.name}`); From a09715173a5b25d66c0ad4deb70f9fcc146f6597 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 6 Sep 2023 20:29:28 +0200 Subject: [PATCH 06/11] cli: make repo fix also add sideEffects: false Signed-off-by: Patrik Oldsberg --- .changeset/funny-timers-retire.md | 2 +- packages/cli/src/commands/repo/fix.ts | 35 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/.changeset/funny-timers-retire.md b/.changeset/funny-timers-retire.md index cee28b5b12..87cd4d8f0d 100644 --- a/.changeset/funny-timers-retire.md +++ b/.changeset/funny-timers-retire.md @@ -2,4 +2,4 @@ '@backstage/cli': patch --- -Added a new `repo fix` command that fixes auto-fixable problems in all packages. +Added a new `repo fix` command that fixes auto-fixable problems in all packages. Initially the command fixes package export declarations, as well as marks all non-bundled frontend packages as side-effect free. Marking packages as free of side-effects can drastically reduce the Webpack bundle size. diff --git a/packages/cli/src/commands/repo/fix.ts b/packages/cli/src/commands/repo/fix.ts index 75306f226c..bd5b375ed5 100644 --- a/packages/cli/src/commands/repo/fix.ts +++ b/packages/cli/src/commands/repo/fix.ts @@ -18,6 +18,7 @@ import { BackstagePackage, BackstagePackageJson, PackageGraph, + PackageRoles, } from '@backstage/cli-node'; import { OptionValues } from 'commander'; import fs from 'fs-extra'; @@ -155,11 +156,45 @@ export function fixPackageExports(pkg: FixablePackage) { } } +export function fixSideEffects(pkg: FixablePackage) { + const role = PackageRoles.getRoleFromPackage(pkg.packageJson); + if (!role) { + return; + } + + const roleInfo = PackageRoles.getRoleInfo(role); + + // Only web and common packages benefit from being marked as side effect free + if (roleInfo.platform === 'node') { + return; + } + // Bundled packages don't need to mark themselves as having no side effects + if (roleInfo.output.length === 1 && roleInfo.output[0] === 'bundle') { + return; + } + + // Already declared + if ('sideEffects' in pkg.packageJson) { + return; + } + + const pkgEntries = Object.entries(pkg.packageJson); + pkgEntries.splice( + // Place it just above the scripts field + pkgEntries.findIndex(([name]) => name === 'scripts'), + 0, + ['sideEffects', false], + ); + pkg.packageJson = Object.fromEntries(pkgEntries) as BackstagePackageJson; + pkg.changed = true; +} + export async function command(opts: OptionValues): Promise { const packages = await readFixablePackages(); for (const pkg of packages) { fixPackageExports(pkg); + fixSideEffects(pkg); } if (opts.check) { From 406b786a2a2cb5d00d001ab37d4cd9df65c36296 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 6 Sep 2023 20:39:07 +0200 Subject: [PATCH 07/11] fix package side effect declarations Signed-off-by: Patrik Oldsberg --- .changeset/giant-coats-brush.md | 131 ++++++++++++++++++ packages/app-defaults/package.json | 1 + packages/app-next-example-plugin/package.json | 1 + packages/catalog-client/package.json | 1 + packages/catalog-model/package.json | 1 + packages/config/package.json | 1 + packages/core-app-api/package.json | 1 + packages/core-components/package.json | 1 + packages/core-plugin-api/package.json | 1 + packages/dev-utils/package.json | 1 + packages/errors/package.json | 1 + packages/frontend-app-api/package.json | 1 + packages/frontend-plugin-api/package.json | 1 + packages/integration-react/package.json | 1 + packages/integration/package.json | 1 + packages/release-manifests/package.json | 1 + packages/test-utils/package.json | 1 + packages/theme/package.json | 1 + packages/types/package.json | 1 + packages/version-bridge/package.json | 1 + plugins/adr-common/package.json | 1 + plugins/adr/package.json | 1 + plugins/airbrake/package.json | 1 + plugins/allure/package.json | 1 + plugins/analytics-module-ga/package.json | 1 + plugins/analytics-module-ga4/package.json | 1 + .../package.json | 1 + plugins/apache-airflow/package.json | 1 + .../package.json | 1 + plugins/api-docs/package.json | 1 + plugins/apollo-explorer/package.json | 1 + plugins/azure-devops-common/package.json | 1 + plugins/azure-devops/package.json | 1 + plugins/azure-sites-common/package.json | 1 + plugins/azure-sites/package.json | 1 + plugins/badges/package.json | 1 + plugins/bazaar/package.json | 1 + plugins/bitbucket-cloud-common/package.json | 1 + plugins/bitrise/package.json | 1 + plugins/catalog-common/package.json | 1 + plugins/catalog-customized/package.json | 1 + plugins/catalog-graph/package.json | 1 + plugins/catalog-import/package.json | 1 + plugins/catalog-react/package.json | 1 + .../catalog-unprocessed-entities/package.json | 1 + plugins/catalog/package.json | 1 + .../package.json | 1 + plugins/cicd-statistics/package.json | 1 + plugins/circleci/package.json | 1 + plugins/cloudbuild/package.json | 1 + plugins/code-climate/package.json | 1 + plugins/code-coverage/package.json | 1 + plugins/codescene/package.json | 1 + plugins/config-schema/package.json | 1 + plugins/cost-insights-common/package.json | 1 + plugins/cost-insights/package.json | 1 + plugins/devtools-common/package.json | 1 + plugins/devtools/package.json | 1 + plugins/dynatrace/package.json | 1 + plugins/entity-feedback-common/package.json | 1 + plugins/entity-feedback/package.json | 1 + plugins/entity-validation/package.json | 1 + plugins/example-todo-list-common/package.json | 1 + plugins/example-todo-list/package.json | 1 + plugins/explore-common/package.json | 1 + plugins/explore-react/package.json | 1 + plugins/explore/package.json | 1 + plugins/firehydrant/package.json | 1 + plugins/fossa/package.json | 1 + plugins/gcalendar/package.json | 1 + plugins/gcp-projects/package.json | 1 + plugins/git-release-manager/package.json | 1 + plugins/github-actions/package.json | 1 + plugins/github-deployments/package.json | 1 + plugins/github-issues/package.json | 1 + .../github-pull-requests-board/package.json | 1 + plugins/gitops-profiles/package.json | 1 + plugins/gocd/package.json | 1 + plugins/graphiql/package.json | 1 + plugins/graphql-voyager/package.json | 1 + plugins/home-react/package.json | 1 + plugins/home/package.json | 1 + plugins/ilert/package.json | 1 + plugins/jenkins-common/package.json | 1 + plugins/jenkins/package.json | 1 + plugins/kafka/package.json | 1 + plugins/kubernetes-common/package.json | 1 + plugins/kubernetes/package.json | 1 + plugins/lighthouse-common/package.json | 1 + plugins/lighthouse/package.json | 1 + plugins/linguist-common/package.json | 1 + plugins/linguist/package.json | 1 + plugins/microsoft-calendar/package.json | 1 + plugins/newrelic-dashboard/package.json | 1 + plugins/newrelic/package.json | 1 + plugins/nomad/package.json | 1 + plugins/octopus-deploy/package.json | 1 + plugins/opencost/package.json | 1 + plugins/org-react/package.json | 1 + plugins/org/package.json | 1 + plugins/pagerduty/package.json | 1 + plugins/periskop/package.json | 1 + plugins/permission-common/package.json | 1 + plugins/permission-react/package.json | 1 + plugins/playlist-common/package.json | 1 + plugins/playlist/package.json | 1 + plugins/puppetdb/package.json | 1 + plugins/rollbar/package.json | 1 + plugins/scaffolder-common/package.json | 1 + plugins/scaffolder-react/package.json | 1 + plugins/scaffolder/package.json | 1 + plugins/search-common/package.json | 1 + plugins/search-react/package.json | 1 + plugins/search/package.json | 1 + plugins/sentry/package.json | 1 + plugins/shortcuts/package.json | 1 + plugins/sonarqube-react/package.json | 1 + plugins/sonarqube/package.json | 1 + plugins/splunk-on-call/package.json | 1 + plugins/stack-overflow/package.json | 1 + plugins/stackstorm/package.json | 1 + plugins/tech-insights-common/package.json | 1 + plugins/tech-insights/package.json | 1 + plugins/tech-radar/package.json | 1 + .../techdocs-addons-test-utils/package.json | 1 + .../package.json | 1 + plugins/techdocs-react/package.json | 1 + plugins/techdocs/package.json | 1 + plugins/todo/package.json | 1 + plugins/user-settings/package.json | 1 + plugins/vault/package.json | 1 + plugins/xcmetrics/package.json | 1 + 132 files changed, 262 insertions(+) create mode 100644 .changeset/giant-coats-brush.md diff --git a/.changeset/giant-coats-brush.md b/.changeset/giant-coats-brush.md new file mode 100644 index 0000000000..2e3d84a3ef --- /dev/null +++ b/.changeset/giant-coats-brush.md @@ -0,0 +1,131 @@ +--- +'@backstage/app-defaults': patch +'@backstage/catalog-client': patch +'@backstage/catalog-model': patch +'@backstage/config': patch +'@backstage/core-app-api': patch +'@backstage/core-components': patch +'@backstage/core-plugin-api': patch +'@backstage/dev-utils': patch +'@backstage/errors': patch +'@backstage/frontend-app-api': patch +'@backstage/frontend-plugin-api': patch +'@backstage/integration': patch +'@backstage/integration-react': patch +'@backstage/plugin-adr': patch +'@backstage/plugin-adr-common': patch +'@backstage/plugin-airbrake': patch +'@backstage/plugin-allure': patch +'@backstage/plugin-analytics-module-ga': patch +'@backstage/plugin-analytics-module-ga4': patch +'@backstage/plugin-analytics-module-newrelic-browser': patch +'@backstage/plugin-apache-airflow': patch +'@backstage/plugin-api-docs': patch +'@backstage/plugin-api-docs-module-protoc-gen-doc': patch +'@backstage/plugin-apollo-explorer': patch +'@backstage/plugin-azure-devops': patch +'@backstage/plugin-azure-devops-common': patch +'@backstage/plugin-azure-sites': patch +'@backstage/plugin-azure-sites-common': patch +'@backstage/plugin-badges': patch +'@backstage/plugin-bazaar': patch +'@backstage/plugin-bitbucket-cloud-common': patch +'@backstage/plugin-bitrise': patch +'@backstage/plugin-catalog': patch +'@backstage/plugin-catalog-common': patch +'@backstage/plugin-catalog-graph': patch +'@backstage/plugin-catalog-import': patch +'@backstage/plugin-catalog-react': patch +'@backstage/plugin-catalog-unprocessed-entities': patch +'@backstage/plugin-cicd-statistics': patch +'@backstage/plugin-cicd-statistics-module-gitlab': patch +'@backstage/plugin-circleci': patch +'@backstage/plugin-cloudbuild': patch +'@backstage/plugin-code-climate': patch +'@backstage/plugin-code-coverage': patch +'@backstage/plugin-codescene': patch +'@backstage/plugin-config-schema': patch +'@backstage/plugin-cost-insights': patch +'@backstage/plugin-cost-insights-common': patch +'@backstage/plugin-devtools': patch +'@backstage/plugin-devtools-common': patch +'@backstage/plugin-dynatrace': patch +'@backstage/plugin-entity-feedback': patch +'@backstage/plugin-entity-feedback-common': patch +'@backstage/plugin-entity-validation': patch +'@backstage/plugin-explore': patch +'@backstage/plugin-explore-common': patch +'@backstage/plugin-explore-react': patch +'@backstage/plugin-firehydrant': patch +'@backstage/plugin-fossa': patch +'@backstage/plugin-gcalendar': patch +'@backstage/plugin-gcp-projects': patch +'@backstage/plugin-git-release-manager': patch +'@backstage/plugin-github-actions': patch +'@backstage/plugin-github-deployments': patch +'@backstage/plugin-github-issues': patch +'@backstage/plugin-github-pull-requests-board': patch +'@backstage/plugin-gitops-profiles': patch +'@backstage/plugin-gocd': patch +'@backstage/plugin-graphiql': patch +'@backstage/plugin-graphql-voyager': patch +'@backstage/plugin-home': patch +'@backstage/plugin-home-react': patch +'@backstage/plugin-ilert': patch +'@backstage/plugin-jenkins': patch +'@backstage/plugin-jenkins-common': patch +'@backstage/plugin-kafka': patch +'@backstage/plugin-kubernetes': patch +'@backstage/plugin-kubernetes-common': patch +'@backstage/plugin-lighthouse': patch +'@backstage/plugin-lighthouse-common': patch +'@backstage/plugin-linguist': patch +'@backstage/plugin-linguist-common': patch +'@backstage/plugin-microsoft-calendar': patch +'@backstage/plugin-newrelic': patch +'@backstage/plugin-newrelic-dashboard': patch +'@backstage/plugin-nomad': patch +'@backstage/plugin-octopus-deploy': patch +'@backstage/plugin-opencost': patch +'@backstage/plugin-org': patch +'@backstage/plugin-org-react': patch +'@backstage/plugin-pagerduty': patch +'@backstage/plugin-periskop': patch +'@backstage/plugin-permission-common': patch +'@backstage/plugin-permission-react': patch +'@backstage/plugin-playlist': patch +'@backstage/plugin-playlist-common': patch +'@backstage/plugin-puppetdb': patch +'@backstage/plugin-rollbar': patch +'@backstage/plugin-scaffolder': patch +'@backstage/plugin-scaffolder-common': patch +'@backstage/plugin-scaffolder-react': patch +'@backstage/plugin-search': patch +'@backstage/plugin-search-common': patch +'@backstage/plugin-search-react': patch +'@backstage/plugin-sentry': patch +'@backstage/plugin-shortcuts': patch +'@backstage/plugin-sonarqube': patch +'@backstage/plugin-sonarqube-react': patch +'@backstage/plugin-splunk-on-call': patch +'@backstage/plugin-stack-overflow': patch +'@backstage/plugin-stackstorm': patch +'@backstage/plugin-tech-insights': patch +'@backstage/plugin-tech-insights-common': patch +'@backstage/plugin-tech-radar': patch +'@backstage/plugin-techdocs': patch +'@backstage/plugin-techdocs-addons-test-utils': patch +'@backstage/plugin-techdocs-module-addons-contrib': patch +'@backstage/plugin-techdocs-react': patch +'@backstage/plugin-todo': patch +'@backstage/plugin-user-settings': patch +'@backstage/plugin-vault': patch +'@backstage/plugin-xcmetrics': patch +'@backstage/release-manifests': patch +'@backstage/test-utils': patch +'@backstage/theme': patch +'@backstage/types': patch +'@backstage/version-bridge': patch +--- + +Mark package as being free of side effects, allowing more optimized Webpack builds. diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index e1a1c83b3c..12cc333e9f 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -22,6 +22,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/app-next-example-plugin/package.json b/packages/app-next-example-plugin/package.json index 08bff4e82a..bfafe1ee79 100644 --- a/packages/app-next-example-plugin/package.json +++ b/packages/app-next-example-plugin/package.json @@ -23,6 +23,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index f533c65c6e..91f90e8928 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -23,6 +23,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index d3abee0eec..536fee0893 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -35,6 +35,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/config/package.json b/packages/config/package.json index b3b1a293ec..359791a969 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -23,6 +23,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index ad1038344a..0dd87d1c5f 100644 --- a/packages/core-app-api/package.json +++ b/packages/core-app-api/package.json @@ -35,6 +35,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 49645f1bac..e2e534da56 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -22,6 +22,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index c6303dfef2..38af96585c 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -35,6 +35,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 26c75fb414..ef059cba25 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -22,6 +22,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/errors/package.json b/packages/errors/package.json index 05d04031ca..1afeb662ca 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -23,6 +23,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/frontend-app-api/package.json b/packages/frontend-app-api/package.json index 1bd37b160b..33b6067858 100644 --- a/packages/frontend-app-api/package.json +++ b/packages/frontend-app-api/package.json @@ -13,6 +13,7 @@ "backstage": { "role": "web-library" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/packages/frontend-plugin-api/package.json b/packages/frontend-plugin-api/package.json index 00eea3543e..95813824fd 100644 --- a/packages/frontend-plugin-api/package.json +++ b/packages/frontend-plugin-api/package.json @@ -13,6 +13,7 @@ "backstage": { "role": "web-library" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 192ae30560..f20d7dd662 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "packages/integration-react" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/packages/integration/package.json b/packages/integration/package.json index b2ea8f5d78..3e4f7ec2f2 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -23,6 +23,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/release-manifests/package.json b/packages/release-manifests/package.json index 329cd6d182..e5169bc681 100644 --- a/packages/release-manifests/package.json +++ b/packages/release-manifests/package.json @@ -23,6 +23,7 @@ "backstage" ], "license": "Apache-2.0", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index e8fe6cff58..1ba9c0229e 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -35,6 +35,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/theme/package.json b/packages/theme/package.json index f5d1f090cf..1e035770e7 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -22,6 +22,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/types/package.json b/packages/types/package.json index 76dbcd3606..29092dfdff 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -23,6 +23,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/version-bridge/package.json b/packages/version-bridge/package.json index 7e42bcb4cb..eb08531674 100644 --- a/packages/version-bridge/package.json +++ b/packages/version-bridge/package.json @@ -22,6 +22,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json index 08ee4cf77c..e9315cab0d 100644 --- a/plugins/adr-common/package.json +++ b/plugins/adr-common/package.json @@ -20,6 +20,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/adr-common" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/adr/package.json b/plugins/adr/package.json index 4cefeef71e..d288f92d9c 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/adr" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index dc0100c102..2ed15d168b 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/airbrake" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/allure/package.json b/plugins/allure/package.json index ccd9954355..90055b48d2 100644 --- a/plugins/allure/package.json +++ b/plugins/allure/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/allure" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index 45d8db80fe..91bc1029b2 100644 --- a/plugins/analytics-module-ga/package.json +++ b/plugins/analytics-module-ga/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/analytics-module-ga" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/analytics-module-ga4/package.json b/plugins/analytics-module-ga4/package.json index 7b91fbe1b2..2ec3e28c93 100644 --- a/plugins/analytics-module-ga4/package.json +++ b/plugins/analytics-module-ga4/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/plugins/analytics-module-ga4" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/analytics-module-newrelic-browser/package.json b/plugins/analytics-module-newrelic-browser/package.json index f1b275e8cf..860d33e809 100644 --- a/plugins/analytics-module-newrelic-browser/package.json +++ b/plugins/analytics-module-newrelic-browser/package.json @@ -12,6 +12,7 @@ "backstage": { "role": "frontend-plugin-module" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index 9d93135dd9..61e4f349c7 100644 --- a/plugins/apache-airflow/package.json +++ b/plugins/apache-airflow/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/apache-airflow" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/api-docs-module-protoc-gen-doc/package.json b/plugins/api-docs-module-protoc-gen-doc/package.json index 01eb7fc9a9..64942f3f3b 100644 --- a/plugins/api-docs-module-protoc-gen-doc/package.json +++ b/plugins/api-docs-module-protoc-gen-doc/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index eb8011b4fc..4257d26cf8 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json index dd26cb386f..e6782fae91 100644 --- a/plugins/apollo-explorer/package.json +++ b/plugins/apollo-explorer/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/apollo-explorer" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/azure-devops-common/package.json b/plugins/azure-devops-common/package.json index cf0b33275f..d99c411f79 100644 --- a/plugins/azure-devops-common/package.json +++ b/plugins/azure-devops-common/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index a2abff4051..c405779a37 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/azure-devops" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/azure-sites-common/package.json b/plugins/azure-sites-common/package.json index c1bf28c65b..e264d5cb36 100644 --- a/plugins/azure-sites-common/package.json +++ b/plugins/azure-sites-common/package.json @@ -23,6 +23,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json index 35a6971e89..db391d1a6e 100644 --- a/plugins/azure-sites/package.json +++ b/plugins/azure-sites/package.json @@ -22,6 +22,7 @@ "backstage", "azure" ], + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/badges/package.json b/plugins/badges/package.json index 5fe7b9e4b5..0957145fa8 100644 --- a/plugins/badges/package.json +++ b/plugins/badges/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/badges" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index fef43b0219..17aade25be 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/bazaar" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index d9692ec677..1367eeca4b 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -20,6 +20,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/bitbucket-cloud-common" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index 4de1d996e4..23352407d6 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/bitrise" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index 748d99ed59..8c4955d7f1 100644 --- a/plugins/catalog-common/package.json +++ b/plugins/catalog-common/package.json @@ -35,6 +35,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json index 5b8e5c0cf8..3628844481 100644 --- a/plugins/catalog-customized/package.json +++ b/plugins/catalog-customized/package.json @@ -23,6 +23,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index f56540b5db..5c339c2d35 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/catalog-graph" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index e152af29fc..2cdc0fc786 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 370c857a52..f1858b024d 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -35,6 +35,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/catalog-unprocessed-entities/package.json b/plugins/catalog-unprocessed-entities/package.json index 544529841f..786fbbcb90 100644 --- a/plugins/catalog-unprocessed-entities/package.json +++ b/plugins/catalog-unprocessed-entities/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/catalog-unprocessed-entities" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 8ac74e2761..ba82b890e2 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index 2db0cc3c9e..e21ff59997 100644 --- a/plugins/cicd-statistics-module-gitlab/package.json +++ b/plugins/cicd-statistics-module-gitlab/package.json @@ -24,6 +24,7 @@ "cicd statistics", "gitlab" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index 91bc7ae545..168349fe56 100644 --- a/plugins/cicd-statistics/package.json +++ b/plugins/cicd-statistics/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 56e0c70295..c569c2e50f 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -23,6 +23,7 @@ "backstage", "circleci" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index 3db3cb4fd0..09e375b46e 100644 --- a/plugins/cloudbuild/package.json +++ b/plugins/cloudbuild/package.json @@ -23,6 +23,7 @@ "backstage", "google cloud" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 1305c2a7b8..36af08c4ae 100644 --- a/plugins/code-climate/package.json +++ b/plugins/code-climate/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/code-climate" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 0ca4ea6d25..a7ab1f0188 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/code-coverage" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index 44d8b789c0..1fa703e45a 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/codescene" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 8c282ec878..1cb52f0ce4 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/config-schema" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/cost-insights-common/package.json b/plugins/cost-insights-common/package.json index d675e0a548..a2d2c7d439 100644 --- a/plugins/cost-insights-common/package.json +++ b/plugins/cost-insights-common/package.json @@ -23,6 +23,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index fa58de8223..1774944f7a 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/devtools-common/package.json b/plugins/devtools-common/package.json index 1114be43a5..a4c81369b7 100644 --- a/plugins/devtools-common/package.json +++ b/plugins/devtools-common/package.json @@ -20,6 +20,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/devtools-common" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/devtools/package.json b/plugins/devtools/package.json index 78f7796193..4cb9b95f0b 100644 --- a/plugins/devtools/package.json +++ b/plugins/devtools/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/devtools" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index 55adfca63f..e565870482 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/dynatrace" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/entity-feedback-common/package.json b/plugins/entity-feedback-common/package.json index 865444bfaa..2518aec4fc 100644 --- a/plugins/entity-feedback-common/package.json +++ b/plugins/entity-feedback-common/package.json @@ -20,6 +20,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/entity-feedback-common" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/entity-feedback/package.json b/plugins/entity-feedback/package.json index 5c9c63c059..de58ce46fb 100644 --- a/plugins/entity-feedback/package.json +++ b/plugins/entity-feedback/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/entity-feedback" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/entity-validation/package.json b/plugins/entity-validation/package.json index e250740c58..9a22d88853 100644 --- a/plugins/entity-validation/package.json +++ b/plugins/entity-validation/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/entity-validation" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/example-todo-list-common/package.json b/plugins/example-todo-list-common/package.json index 9b880d77d0..d3fae58693 100644 --- a/plugins/example-todo-list-common/package.json +++ b/plugins/example-todo-list-common/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/plugins/example-todo-list-common" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index c9267316b1..4c83f1f7c1 100644 --- a/plugins/example-todo-list/package.json +++ b/plugins/example-todo-list/package.json @@ -19,6 +19,7 @@ "main": "dist/index.esm.js", "types": "dist/index.d.ts" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/explore-common/package.json b/plugins/explore-common/package.json index 988745a8f7..7c6fb494ca 100644 --- a/plugins/explore-common/package.json +++ b/plugins/explore-common/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/explore-react/package.json b/plugins/explore-react/package.json index fd8fb8a614..766669f12e 100644 --- a/plugins/explore-react/package.json +++ b/plugins/explore-react/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 01ab28045a..74fc8a0964 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 7ea7ee4925..9c4fe73b94 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/firehydrant" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index 57775015f2..0d26608026 100644 --- a/plugins/fossa/package.json +++ b/plugins/fossa/package.json @@ -23,6 +23,7 @@ "backstage", "fossa" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index 9bec6e0bbf..83eb43e0b2 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/gcalendar" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 13db97cf35..77462dc45e 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -23,6 +23,7 @@ "backstage", "google cloud" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index 48cd436a15..04d1ea06a7 100644 --- a/plugins/git-release-manager/package.json +++ b/plugins/git-release-manager/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/git-release-manager" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index b63638925b..d78cd363d0 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -24,6 +24,7 @@ "github", "github actions" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 1f324f59b3..12f3d52328 100644 --- a/plugins/github-deployments/package.json +++ b/plugins/github-deployments/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/github-deployments" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 81afa0ee20..ea499e4c43 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/github-issues" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index bd6605106a..2accb513b3 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -24,6 +24,7 @@ "github", "pull requests" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index 262cdeb6b1..9d650c007d 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -23,6 +23,7 @@ "backstage", "gitops" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index 8e5fe78677..e76cdf4d83 100644 --- a/plugins/gocd/package.json +++ b/plugins/gocd/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/gocd" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 406604e7f5..e519a34819 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -22,6 +22,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/graphql-voyager/package.json b/plugins/graphql-voyager/package.json index 1c2f1e4513..6e91382759 100644 --- a/plugins/graphql-voyager/package.json +++ b/plugins/graphql-voyager/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/graphql-voyager" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/home-react/package.json b/plugins/home-react/package.json index 509dfd9748..45144ab4c4 100644 --- a/plugins/home-react/package.json +++ b/plugins/home-react/package.json @@ -23,6 +23,7 @@ "backstage", "homepage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/home/package.json b/plugins/home/package.json index 3c0151e716..631ca2480f 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -23,6 +23,7 @@ "backstage", "homepage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index 8bbe39c089..4562774da1 100644 --- a/plugins/ilert/package.json +++ b/plugins/ilert/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/ilert" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/jenkins-common/package.json b/plugins/jenkins-common/package.json index 560787e22a..231e1cd73e 100644 --- a/plugins/jenkins-common/package.json +++ b/plugins/jenkins-common/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/jenkins-common" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index 01e46c70ec..fd2ab214d3 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -23,6 +23,7 @@ "backstage", "jenkins" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 08b33f349a..b029e42bb6 100644 --- a/plugins/kafka/package.json +++ b/plugins/kafka/package.json @@ -20,6 +20,7 @@ "directory": "plugins/kafka" }, "configSchema": "config.d.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index 7f5875e1e6..8b934533b1 100644 --- a/plugins/kubernetes-common/package.json +++ b/plugins/kubernetes-common/package.json @@ -26,6 +26,7 @@ "files": [ "dist" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index a40b589b14..46a52c37bd 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -23,6 +23,7 @@ "backstage", "kubernetes" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/lighthouse-common/package.json b/plugins/lighthouse-common/package.json index ddecb7bf8a..dbe9614656 100644 --- a/plugins/lighthouse-common/package.json +++ b/plugins/lighthouse-common/package.json @@ -26,6 +26,7 @@ "files": [ "dist" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 6da07edb88..d59f056ed0 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -23,6 +23,7 @@ "backstage", "lighthouse" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/linguist-common/package.json b/plugins/linguist-common/package.json index c197f104ea..ef19649670 100644 --- a/plugins/linguist-common/package.json +++ b/plugins/linguist-common/package.json @@ -20,6 +20,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/linguist-common" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/linguist/package.json b/plugins/linguist/package.json index bac1150f42..e9a83ec99c 100644 --- a/plugins/linguist/package.json +++ b/plugins/linguist/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/linguist" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/microsoft-calendar/package.json b/plugins/microsoft-calendar/package.json index 72344e553e..960b570b32 100644 --- a/plugins/microsoft-calendar/package.json +++ b/plugins/microsoft-calendar/package.json @@ -37,6 +37,7 @@ "name": "abhaysoni" } ], + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index bf2476980d..0b8da830ce 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/newrelic-dashboard" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 501814a6a7..1f4b3a2e7f 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -23,6 +23,7 @@ "backstage", "newrelic" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/nomad/package.json b/plugins/nomad/package.json index 4e5f6724c4..ddfb7d49da 100644 --- a/plugins/nomad/package.json +++ b/plugins/nomad/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/nomad" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/octopus-deploy/package.json b/plugins/octopus-deploy/package.json index a20c89e28e..d6b02b221b 100644 --- a/plugins/octopus-deploy/package.json +++ b/plugins/octopus-deploy/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/octopus-deploy" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/opencost/package.json b/plugins/opencost/package.json index 7691b7d928..6a6db959dc 100644 --- a/plugins/opencost/package.json +++ b/plugins/opencost/package.json @@ -12,6 +12,7 @@ "backstage": { "role": "frontend-plugin" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index 9920062403..d1644698ce 100644 --- a/plugins/org-react/package.json +++ b/plugins/org-react/package.json @@ -21,6 +21,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/org/package.json b/plugins/org/package.json index ac926d2771..6d340c9147 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/org" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 32a1e192bd..5420961a39 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -23,6 +23,7 @@ "backstage", "pagerduty" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 0e48241b66..5ba607e94b 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -18,6 +18,7 @@ "main": "dist/index.esm.js", "types": "dist/index.d.ts" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/permission-common/package.json b/plugins/permission-common/package.json index 02511ee699..a8b6b30169 100644 --- a/plugins/permission-common/package.json +++ b/plugins/permission-common/package.json @@ -29,6 +29,7 @@ "config.d.ts" ], "configSchema": "config.d.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json index e312dfeafe..8c7c410909 100644 --- a/plugins/permission-react/package.json +++ b/plugins/permission-react/package.json @@ -21,6 +21,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/playlist-common/package.json b/plugins/playlist-common/package.json index bed0bf8151..31ca2492a6 100644 --- a/plugins/playlist-common/package.json +++ b/plugins/playlist-common/package.json @@ -20,6 +20,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/playlist-common" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index beefe4755e..90b206285e 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/playlist" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/puppetdb/package.json b/plugins/puppetdb/package.json index 84e50b6ed6..8596213746 100644 --- a/plugins/puppetdb/package.json +++ b/plugins/puppetdb/package.json @@ -24,6 +24,7 @@ "puppetdb", "puppet" ], + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 0fdfe11e91..e6183240d8 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -23,6 +23,7 @@ "backstage", "rollbar" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index 3fd1f498f7..98d99ee303 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -38,6 +38,7 @@ "files": [ "dist" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index bf63d77ddb..15261f64fe 100644 --- a/plugins/scaffolder-react/package.json +++ b/plugins/scaffolder-react/package.json @@ -35,6 +35,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 101f55e67c..9f7b8aa553 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -35,6 +35,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/search-common/package.json b/plugins/search-common/package.json index f63fc3b6ca..d34549b4de 100644 --- a/plugins/search-common/package.json +++ b/plugins/search-common/package.json @@ -26,6 +26,7 @@ "files": [ "dist" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index 3d03f47307..4df70df020 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -21,6 +21,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/search/package.json b/plugins/search/package.json index 82cc88e245..5d3a75ec9a 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 4449a68922..978ec6be9f 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -23,6 +23,7 @@ "backstage", "sentry" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index 87d1b32cd5..8f27dc7e06 100644 --- a/plugins/shortcuts/package.json +++ b/plugins/shortcuts/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/shortcuts" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/sonarqube-react/package.json b/plugins/sonarqube-react/package.json index 7b1eb96628..904dddfd2c 100644 --- a/plugins/sonarqube-react/package.json +++ b/plugins/sonarqube-react/package.json @@ -30,6 +30,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 5dc551505d..77a25900e5 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -25,6 +25,7 @@ "sonarqube", "sonarcloud" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build --experimental-type-build", "start": "backstage-cli package start", diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index fea6061a0a..7cd06f330f 100644 --- a/plugins/splunk-on-call/package.json +++ b/plugins/splunk-on-call/package.json @@ -23,6 +23,7 @@ "backstage", "splunk-on-call" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 626566dbad..7f06dac714 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/stack-overflow" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/stackstorm/package.json b/plugins/stackstorm/package.json index f6a4737f03..5e93c3e5a6 100644 --- a/plugins/stackstorm/package.json +++ b/plugins/stackstorm/package.json @@ -24,6 +24,7 @@ "stackstorm", "st2" ], + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/tech-insights-common/package.json b/plugins/tech-insights-common/package.json index 3831073e87..aa859e23bb 100644 --- a/plugins/tech-insights-common/package.json +++ b/plugins/tech-insights-common/package.json @@ -22,6 +22,7 @@ "backstage", "tech-insights" ], + "sideEffects": false, "scripts": { "start": "backstage-cli backend:dev", "build": "backstage-cli package build", diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index ce34139b1e..840f357fcf 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -18,6 +18,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/tech-insights" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 85988f17d6..efd18745bf 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -22,6 +22,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index 982a9eb9a2..7d9d3e4a31 100644 --- a/plugins/techdocs-addons-test-utils/package.json +++ b/plugins/techdocs-addons-test-utils/package.json @@ -22,6 +22,7 @@ "backstage", "techdocs" ], + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index a31e4d0b12..869a9f955c 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -23,6 +23,7 @@ "backstage", "techdocs" ], + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index 978031dff5..81212ea313 100644 --- a/plugins/techdocs-react/package.json +++ b/plugins/techdocs-react/package.json @@ -23,6 +23,7 @@ "license": "Apache-2.0", "main": "src/index.ts", "types": "src/index.ts", + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 76cdfaee34..ce90da9c0a 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -23,6 +23,7 @@ "backstage", "techdocs" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/todo/package.json b/plugins/todo/package.json index b309bca681..5037f47f34 100644 --- a/plugins/todo/package.json +++ b/plugins/todo/package.json @@ -20,6 +20,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/todo" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build --experimental-type-build", "start": "backstage-cli package start", diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 1cee9359fe..b522dafe86 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -35,6 +35,7 @@ "keywords": [ "backstage" ], + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", diff --git a/plugins/vault/package.json b/plugins/vault/package.json index 58e3500be0..f33973694d 100644 --- a/plugins/vault/package.json +++ b/plugins/vault/package.json @@ -23,6 +23,7 @@ "backstage", "vault" ], + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index f4987006a9..8404027de1 100644 --- a/plugins/xcmetrics/package.json +++ b/plugins/xcmetrics/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/xcmetrics" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "start": "backstage-cli package start", From 956d226eeeeea63505b8baa26864b43ff87b051b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 7 Sep 2023 10:44:52 +0200 Subject: [PATCH 08/11] cli: add sideEffects: false to plugin templates Signed-off-by: Patrik Oldsberg --- .changeset/tall-countries-float.md | 5 +++++ .../templates/default-common-plugin-package/package.json.hbs | 1 + packages/cli/templates/default-plugin/package.json.hbs | 1 + .../templates/default-react-plugin-package/package.json.hbs | 1 + packages/cli/templates/web-library-package/package.json.hbs | 1 + 5 files changed, 9 insertions(+) create mode 100644 .changeset/tall-countries-float.md diff --git a/.changeset/tall-countries-float.md b/.changeset/tall-countries-float.md new file mode 100644 index 0000000000..d6c6946b7a --- /dev/null +++ b/.changeset/tall-countries-float.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Add `"sideEffects": false` to `package.json` in frontend package templates. This can be added to existing packages using the new `yarn fix` command. diff --git a/packages/cli/templates/default-common-plugin-package/package.json.hbs b/packages/cli/templates/default-common-plugin-package/package.json.hbs index 844a951d05..992599ef6d 100644 --- a/packages/cli/templates/default-common-plugin-package/package.json.hbs +++ b/packages/cli/templates/default-common-plugin-package/package.json.hbs @@ -20,6 +20,7 @@ "backstage": { "role": "common-library" }, + "sideEffects": false, "scripts": { "build": "backstage-cli package build", "lint": "backstage-cli package lint", diff --git a/packages/cli/templates/default-plugin/package.json.hbs b/packages/cli/templates/default-plugin/package.json.hbs index 4e470c8c48..011a50ba37 100644 --- a/packages/cli/templates/default-plugin/package.json.hbs +++ b/packages/cli/templates/default-plugin/package.json.hbs @@ -18,6 +18,7 @@ "backstage": { "role": "frontend-plugin" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/packages/cli/templates/default-react-plugin-package/package.json.hbs b/packages/cli/templates/default-react-plugin-package/package.json.hbs index e0ee408eda..230ecc5f03 100644 --- a/packages/cli/templates/default-react-plugin-package/package.json.hbs +++ b/packages/cli/templates/default-react-plugin-package/package.json.hbs @@ -19,6 +19,7 @@ "backstage": { "role": "web-library" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", diff --git a/packages/cli/templates/web-library-package/package.json.hbs b/packages/cli/templates/web-library-package/package.json.hbs index 957efef167..f9f703f523 100644 --- a/packages/cli/templates/web-library-package/package.json.hbs +++ b/packages/cli/templates/web-library-package/package.json.hbs @@ -18,6 +18,7 @@ "backstage": { "role": "web-library" }, + "sideEffects": false, "scripts": { "start": "backstage-cli package start", "build": "backstage-cli package build", From cbccb9df2fc0f8077f3159cec45d5624790c8349 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 7 Sep 2023 11:03:29 +0200 Subject: [PATCH 09/11] cli: update API report Signed-off-by: Patrik Oldsberg --- packages/cli/cli-report.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/cli/cli-report.md b/packages/cli/cli-report.md index e20634df4e..6323eb0035 100644 --- a/packages/cli/cli-report.md +++ b/packages/cli/cli-report.md @@ -405,6 +405,7 @@ Options: Commands: build [options] lint [options] + fix [options] clean list-deprecations [options] test [options] @@ -431,6 +432,16 @@ Options: -h, --help ``` +### `backstage-cli repo fix` + +``` +Usage: backstage-cli repo fix [options] + +Options: + --check + -h, --help +``` + ### `backstage-cli repo lint` ``` From a8a614ba0d07c221b973a46a81c1cec473a8e8d2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 7 Sep 2023 11:04:01 +0200 Subject: [PATCH 10/11] changesets: added changeset for package export tweaks Signed-off-by: Patrik Oldsberg --- .changeset/lazy-pumas-shop.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .changeset/lazy-pumas-shop.md diff --git a/.changeset/lazy-pumas-shop.md b/.changeset/lazy-pumas-shop.md new file mode 100644 index 0000000000..13524aa741 --- /dev/null +++ b/.changeset/lazy-pumas-shop.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +'@backstage/plugin-permission-backend': patch +'@backstage/plugin-techdocs-backend': patch +'@backstage/plugin-permission-node': patch +--- + +Minor `package.json` update. From d7580957769679a85ad83a0e68e96b8a5ecafe84 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 7 Sep 2023 12:29:38 +0200 Subject: [PATCH 11/11] changeset tweaks Signed-off-by: Patrik Oldsberg --- .changeset/early-rules-taste.md | 2 +- .changeset/giant-coats-brush.md | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.changeset/early-rules-taste.md b/.changeset/early-rules-taste.md index 49fa5f0087..1a332dfe36 100644 --- a/.changeset/early-rules-taste.md +++ b/.changeset/early-rules-taste.md @@ -2,7 +2,7 @@ '@backstage/create-app': patch --- -Added the new `repo fix` command to the project too. +Added a `fix` scripts that calls the new `backstage-cli repo fix` command. To apply this change to an existing app, make the following change to your root `package.json`: diff --git a/.changeset/giant-coats-brush.md b/.changeset/giant-coats-brush.md index 2e3d84a3ef..e4fe391b9e 100644 --- a/.changeset/giant-coats-brush.md +++ b/.changeset/giant-coats-brush.md @@ -8,8 +8,6 @@ '@backstage/core-plugin-api': patch '@backstage/dev-utils': patch '@backstage/errors': patch -'@backstage/frontend-app-api': patch -'@backstage/frontend-plugin-api': patch '@backstage/integration': patch '@backstage/integration-react': patch '@backstage/plugin-adr': patch