diff --git a/.changeset/big-spies-agree.md b/.changeset/big-spies-agree.md new file mode 100644 index 0000000000..1c544f4f36 --- /dev/null +++ b/.changeset/big-spies-agree.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-yeoman': patch +--- + +Enables dry-run functionality for the run:yeoman scaffolder action diff --git a/.changeset/dirty-boxes-give.md b/.changeset/dirty-boxes-give.md new file mode 100644 index 0000000000..d339e49c98 --- /dev/null +++ b/.changeset/dirty-boxes-give.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-proxy-backend': patch +--- + +Add the route name to an error message that appears when the backend +proxy wasn't well configured. This will help users to understand the +issue and fix the right configuration. diff --git a/.changeset/dull-eyes-pay.md b/.changeset/dull-eyes-pay.md new file mode 100644 index 0000000000..2a2b996051 --- /dev/null +++ b/.changeset/dull-eyes-pay.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-oauth2-provider': minor +--- + +New module for `@backstage/plugin-auth-backend` that adds a `oauth2` auth provider. diff --git a/.changeset/fifty-pigs-travel.md b/.changeset/fifty-pigs-travel.md new file mode 100644 index 0000000000..2f43badc52 --- /dev/null +++ b/.changeset/fifty-pigs-travel.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +--- + +Fixed a bug where requests to the proxy endpoint would fail for clusters with `caFile` configured diff --git a/.changeset/grumpy-bikes-beg.md b/.changeset/grumpy-bikes-beg.md new file mode 100644 index 0000000000..6fe44ee748 --- /dev/null +++ b/.changeset/grumpy-bikes-beg.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +Restored functionality to `OwnedEntityPicker` by converting deprecated `ui:options` input to `catalogFilter`. diff --git a/.changeset/mean-planes-smoke.md b/.changeset/mean-planes-smoke.md new file mode 100644 index 0000000000..b082023cde --- /dev/null +++ b/.changeset/mean-planes-smoke.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-app-api': patch +--- + +Internal refactor diff --git a/.changeset/mean-queens-act.md b/.changeset/mean-queens-act.md new file mode 100644 index 0000000000..a895ba5705 --- /dev/null +++ b/.changeset/mean-queens-act.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-newrelic': patch +--- + +Fixed bug in NewRelicComponent component where table would not sort correctly for numerical values. diff --git a/.changeset/plenty-lamps-pump.md b/.changeset/plenty-lamps-pump.md new file mode 100644 index 0000000000..04d0f2f4f0 --- /dev/null +++ b/.changeset/plenty-lamps-pump.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-adr': patch +--- + +support for i18n feature diff --git a/.changeset/pre.json b/.changeset/pre.json index 2345e3af67..6c1673b0be 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -241,46 +241,67 @@ "@backstage/frontend-plugin-api": "0.0.0", "@backstage/plugin-auth-backend-module-gitlab-provider": "0.0.0", "@backstage/backend-plugin-manager": "0.0.0", - "@backstage/plugin-permission-backend-module-allow-all-policy": "0.0.0" + "@backstage/plugin-permission-backend-module-allow-all-policy": "0.0.0", + "app-next-example-plugin": "0.0.0", + "@backstage/plugin-auth-backend-module-oauth2-provider": "0.0.0", + "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "0.0.0" }, "changesets": [ "big-bananas-sleep", + "big-masks-divide", + "big-spies-agree", "blue-rats-drop", "brave-books-pretend", "brave-carrots-occur", "calm-cups-smile", "catalog-everybody-to-the-limit", "chatty-goats-mate", + "chatty-spiders-serve", + "chilly-balloons-enjoy", "chilly-parrots-yell", + "clean-houses-invent", "cold-apricots-poke", "create-app-1692704146", "create-app-1693311380", + "cuddly-avocados-warn", "curvy-roses-march", "cyan-roses-relate", + "dirty-boxes-give", "dirty-carrots-notice", + "dirty-cars-poke", + "dirty-cars-smoke", "dirty-garlics-kiss", "dirty-years-travel", "dry-wasps-occur", + "dull-eyes-pay", "dull-tables-joke", + "early-rules-taste", "early-trains.draw", "eight-radios-listen", "eight-timers-sin", + "eighty-emus-float", "eighty-fans-provide", "empty-rings-type", "fair-paws-flash", "few-nails-smile", "fifty-adults-shake", + "forty-rocks-jog", "four-masks-fry", "fresh-candles-warn", "friendly-pugs-lick", "funny-ligers-matter", + "funny-timers-retire", + "giant-coats-brush", "gorgeous-coins-attack", "great-chairs-swim", + "grumpy-bikes-beg", "grumpy-papayas-tie", + "grumpy-ties-know", "healthy-spiders-arrive", "healthy-tools-count", "hip-seahorses-exist", "honest-ads-rush", + "hungry-cherries-speak", "hungry-dots-design", "khaki-pigs-accept", "khaki-spiders-sniff", @@ -288,7 +309,10 @@ "late-hounds-yell", "late-roses-dream", "lazy-pumas-hope", + "lazy-pumas-shop", "lazy-rice-rule", + "lemon-donuts-clap", + "light-drinks-rush", "long-flowers-sort", "loud-apricots-destroy", "lovely-years-sniff", @@ -296,28 +320,35 @@ "lucky-chicken-lie", "many-tips-attend", "mean-carpets-provide", + "mean-planes-smoke", + "mean-queens-act", "mighty-crabs-cheat", "modern-trees-add", "nasty-cherries-exercise", "nasty-forks-beg", "nasty-snails-complain", + "nasty-worms-share", "new-sheep-cover", "nice-forks-remain", + "ninety-horses-remember", "ninety-news-visit", "old-geese-drive", "orange-houses-fly", "pink-cups-rescue", "pink-months-hammer", + "plenty-lamps-pump", "polite-forks-grin", "polite-plums-share", "poor-olives-own", "poor-years-appear", + "popular-clocks-whisper", "popular-coins-tap", "popular-readers-allow", "pretty-otters-whisper", "proud-lamps-cross", "red-pens-knock", "renovate-2ebf420", + "renovate-36e7f58", "renovate-76185f9", "renovate-b129f45", "renovate-bbda8e8", @@ -325,27 +356,41 @@ "repo-tools-boo-descriptions-two-electric-boogaloo", "repo-tools-boo-descriptions", "repo-tools-ci-toldya-so", + "rotten-bees-wave", "rude-dolphins-reply", + "short-planets-argue", "silent-icons-deny", + "silent-numbers-retire", "silly-emus-remain", "six-radios-smile", "six-wolves-admire", "slow-ducks-hunt", "slow-queens-visit", "smart-islands-jog", + "stale-points-breathe", "strange-frogs-count", "stupid-ants-change", "sweet-hairs-complain", "sweet-pens-hunt", "swift-frogs-drop", + "tall-countries-float", "tall-items-clap", "tall-peas-visit", + "tame-jokes-do", + "tender-garlics-report", + "thick-pets-drive", + "thin-dryers-repeat", + "three-hounds-wonder", "tricky-melons-fold", "twelve-elephants-pay", + "twenty-worms-enjoy", "warm-llamas-bake", "warm-panthers-lick", "weak-tomatoes-dance", + "wet-donuts-fry", + "wise-tables-add", "witty-ants-cover", + "witty-pans-flash", "yellow-trains-protect", "yellow-yaks-behave", "young-ants-nail", diff --git a/.changeset/renovate-36e7f58.md b/.changeset/renovate-36e7f58.md new file mode 100644 index 0000000000..ed84727e2d --- /dev/null +++ b/.changeset/renovate-36e7f58.md @@ -0,0 +1,11 @@ +--- +'@backstage/plugin-home-react': patch +'@backstage/plugin-home': patch +'@backstage/plugin-scaffolder-react': patch +'@backstage/plugin-scaffolder': patch +--- + +Updated dependency `@rjsf/utils` to `5.13.0`. +Updated dependency `@rjsf/core-v5` to `npm:@rjsf/core@5.13.0`. +Updated dependency `@rjsf/material-ui-v5` to `npm:@rjsf/material-ui@5.13.0`. +Updated dependency `@rjsf/validator-ajv8` to `5.13.0`. diff --git a/.changeset/short-planets-argue.md b/.changeset/short-planets-argue.md new file mode 100644 index 0000000000..c3134a59eb --- /dev/null +++ b/.changeset/short-planets-argue.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +When running `version:bump` it will now log duplicates instead of throwing an error diff --git a/.changeset/silent-numbers-retire.md b/.changeset/silent-numbers-retire.md new file mode 100644 index 0000000000..ff5f11ecee --- /dev/null +++ b/.changeset/silent-numbers-retire.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-vault-backend': patch +'@backstage/plugin-vault': patch +--- + +Added ability to override vault secret engine value on catalog entity level using annotation `vault.io/secrets-engine` diff --git a/.changeset/stale-points-breathe.md b/.changeset/stale-points-breathe.md new file mode 100644 index 0000000000..36c01697d0 --- /dev/null +++ b/.changeset/stale-points-breathe.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-radar': patch +--- + +Fixed `RadarTimeline` text formatting. diff --git a/.changeset/tame-jokes-do.md b/.changeset/tame-jokes-do.md new file mode 100644 index 0000000000..8e9b5a6056 --- /dev/null +++ b/.changeset/tame-jokes-do.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Improved the `parseEntityRef` Scaffolder filter by introducing the ability for users to provide default kind and/or namespace values. The filter now takes +2 arguments, similarly to the original [parseEntityRef](https://github.com/backstage/backstage/blob/v1.17.2/packages/catalog-model/src/entity/ref.ts#L77). diff --git a/.changeset/tender-garlics-report.md b/.changeset/tender-garlics-report.md new file mode 100644 index 0000000000..919af4d4f8 --- /dev/null +++ b/.changeset/tender-garlics-report.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Removed the experimental `package fix` command that was used to automatically add dependencies to `package.json`, but has since been replaced by the `no-undeclared-imports` rule from `@backstage/eslint-plugin`. diff --git a/.changeset/thick-pets-drive.md b/.changeset/thick-pets-drive.md new file mode 100644 index 0000000000..ee09f8af06 --- /dev/null +++ b/.changeset/thick-pets-drive.md @@ -0,0 +1,17 @@ +--- +'@backstage/plugin-catalog-backend-module-gitlab': minor +--- + +Fix Gitlab.com user ingestion by scoping GitlabOrgDiscoveryEntityProvider to a group. + +**BREAKING** The `group` parameter is now required Gitlab.com Org Data integrations and the backend will fail to start without this option configured. + +```diff +catalog: + providers: + gitlab: + yourProviderId: + host: gitlab.com + orgEnabled: true ++ group: org/teams +``` diff --git a/.changeset/three-hounds-wonder.md b/.changeset/three-hounds-wonder.md new file mode 100644 index 0000000000..fd4cb486bc --- /dev/null +++ b/.changeset/three-hounds-wonder.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': minor +--- + +adding a .zip download to dry run results page, including zip.js as dependency diff --git a/.changeset/twenty-worms-enjoy.md b/.changeset/twenty-worms-enjoy.md new file mode 100644 index 0000000000..ef820a3c9e --- /dev/null +++ b/.changeset/twenty-worms-enjoy.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +**DEPRECATION**: Deprecated `ScaffolderEntitiesProcessor`, which should now instead be imported from `@backstage/plugin-catalog-backend-module-scaffolder-entity-model`. + +`catalogModuleTemplateKind` was also moved to that package and renamed to `catalogModuleScaffolderEntityModel`, without any deprecation since it was an alpha export. diff --git a/.changeset/wet-donuts-fry.md b/.changeset/wet-donuts-fry.md new file mode 100644 index 0000000000..1f4c8dc4fc --- /dev/null +++ b/.changeset/wet-donuts-fry.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-scaffolder-entity-model': minor +--- + +Added a dedicated module to collect the `ScaffolderEntitiesProcessor` and `catalogModuleTemplateKind`. diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index d247312f89..62c693de6f 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -53,7 +53,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: 'Upload artifact' - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 + uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 with: name: SARIF file path: results.sarif diff --git a/docs/auth/index.md b/docs/auth/index.md index 0efbbcef21..ecef22b612 100644 --- a/docs/auth/index.md +++ b/docs/auth/index.md @@ -10,6 +10,13 @@ configure Backstage to have any number of authentication providers, but only one of these will typically be used for sign-in, with the rest being used to provide access to external resources. +> NOTE: Identity management and the Sign-In page in Backstage is NOT a method for blocking +> access for unauthorized users. The identity system only serves to provide a personalized +> experience and access to a Backstage Identity Token, which can be passed to backend plugins. +> This also means that your Backstage backend APIs are by default unauthenticated. +> Thus, if your Backstage instance is exposed to the Internet, anyone can access +> information in the Backstage. You can learn more [here](../overview/threat-model.md#integrator-responsibilities). + ## Built-in Authentication Providers Backstage comes with many common authentication providers in the core library: @@ -60,13 +67,6 @@ the local `auth.environment` setting will be selected. ## Sign-In Configuration -> NOTE: Identity management and the `SignInPage` in Backstage is NOT a method -> for blocking access for unauthorized users, that either requires additional -> backend implementation or a separate service like Google's Identity-Aware -> Proxy. The identity system only serves to provide a personalized experience -> and access to a Backstage Identity Token, which can be passed to backend -> plugins. - Using an authentication provider for sign-in is something you need to configure both in the frontend app, as well as the `auth` backend plugin. For information on how to configure the backend app, see [Sign-in Identities and Resolvers](./identity-resolver.md). diff --git a/docs/features/software-catalog/extending-the-model.md b/docs/features/software-catalog/extending-the-model.md index 4520bf60ca..52ef565837 100644 --- a/docs/features/software-catalog/extending-the-model.md +++ b/docs/features/software-catalog/extending-the-model.md @@ -467,7 +467,7 @@ The next step is to create a custom processor for your new entity kind. This will be used within the catalog to make sure that it's able to ingest and validate entities of our new kind. Just like with the definition package, you can find inspiration in for example the existing -[ScaffolderEntitiesProcessor](https://github.com/backstage/backstage/tree/master/plugins/scaffolder-backend/src/processor/ScaffolderEntitiesProcessor.ts). +[ScaffolderEntitiesProcessor](https://github.com/backstage/backstage/tree/master/plugins/catalog-backend-module-scaffolder-entity-model/src/processor/ScaffolderEntitiesProcessor.ts). We also provide a high-level example of what a catalog process for a custom entity might look like: diff --git a/docs/features/software-templates/writing-templates.md b/docs/features/software-templates/writing-templates.md index 135d508513..7019ecfb28 100644 --- a/docs/features/software-templates/writing-templates.md +++ b/docs/features/software-templates/writing-templates.md @@ -627,3 +627,98 @@ output things. You can grab that output using `steps.$stepId.output.$property`. You can read more about all the `inputs` and `outputs` defined in the actions in code part of the `JSONSchema`, or you can read more about our [built in actions](./builtin-actions.md). + +## Built in Filters + +Template filters are functions that help you transform data, extract specific information, +and perform various operations in Scaffolder Templates. + +This section introduces the built-in filters provided by Backstage and offers examples of +how to use them in the Scaffolder templates. It's important to mention that Backstage also leverages the +native filters from the Nunjucks library. For a complete list of these native filters and their usage, +refer to the [Nunjucks documentation](https://mozilla.github.io/nunjucks/templating.html#builtin-filters). + +### parseRepoUrl + +The `parseRepoUrl` filter parse a repository URL into +its components, such as `owner`, repository `name`, and more. + +**Usage Example:** + +```yaml +- id: log + name: Parse Repo URL + action: debug:log + input: + extra: ${{ parameters.repoUrl | parseRepoUrl }} +``` + +- **Input**: `github.com?repo=backstage&org=backstage` +- **Output**: [RepoSpec](https://github.com/backstage/backstage/blob/v1.17.2/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/util.ts#L39) + +### parseEntityRef + +The `parseEntityRef` filter allows you to extract different parts of +an entity reference, such as the `kind`, `namespace`, and `name`. + +**Usage example** + +1. Without context + +```yaml +- id: log + name: Parse Entity Reference + action: debug:log + input: + extra: ${{ parameters.owner | parseEntityRef }} +``` + +- **Input**: `group:techdocs` +- **Output**: [CompoundEntityRef](https://github.com/backstage/backstage/blob/v1.17.2/packages/catalog-model/src/types.ts#L23) + +2. With context + +```yaml +- id: log + name: Parse Entity Reference + action: debug:log + input: + extra: ${{ parameters.owner | parseEntityRef({ defaultKind:"group", defaultNamespace:"another-namespace" }) }} +``` + +- **Input**: `techdocs` +- **Output**: [CompoundEntityRef](https://github.com/backstage/backstage/blob/v1.17.2/packages/catalog-model/src/types.ts#L23) + +### pick + +This `pick` filter allows you to select specific properties from an object. + +**Usage Example** + +```yaml +- id: log + name: Pick + action: debug:log + input: + extra: ${{ parameters.owner | parseEntityRef | pick('name') }} +``` + +- **Input**: `{ kind: 'Group', namespace: 'default', name: 'techdocs' }` +- **Output**: `techdocs` + +### projectSlug + +The `projectSlug` filter generates a project slug from a repository URL + +**Usage Example** + +```yaml +- id: log + name: Project Slug + action: debug:log + input: + extra: ${{ parameters.repoUrl | projectSlug }} +``` + +- **Input**: `github.com?repo=backstage&org=backstage` +- **Output**: `backstage/backstage` diff --git a/docs/integrations/gitlab/org.md b/docs/integrations/gitlab/org.md index d022641ab6..ca40cefa9e 100644 --- a/docs/integrations/gitlab/org.md +++ b/docs/integrations/gitlab/org.md @@ -65,11 +65,52 @@ catalog: yourProviderId: host: gitlab.com orgEnabled: true - group: org/teams # Optional. Must not end with slash. Accepts only groups under the provided path (which will be stripped) + group: org/teams # Required for gitlab.com when `orgEnabled: true`. Optional for self managed. Must not end with slash. Accepts only groups under the provided path (which will be stripped) groupPattern: '[\s\S]*' # Optional. Filters found groups based on provided pattern. Defaults to `[\s\S]*`, which means to not filter anything ``` +### Groups + When the `group` parameter is provided, the corresponding path prefix will be stripped out from each matching group when computing the unique entity name. e.g. If `group` is `org/teams`, the name for `org/teams/avengers/gotg` will be `avengers-gotg`. + +For gitlab.com, when `orgEnabled: true`, the `group` parameter is required in +order to limit the ingestion to a group within your organisation. `Group` +entities will only be ingested for the configured group, or its descendant groups, +but not any ancestor groups higher than the configured group path. Only groups +which contain members will be ingested. + +### Users + +For self hosted, all `User` entities are ingested from the entire instance. + +For gitlab.com `User` entities for users who have [direct or inherited membership](https://docs.gitlab.com/ee/user/project/members/index.html#membership-types) +of the top-level group for the configured group path will be ingested. + +### Limiting `User` and `Group` entity ingestion in the provider + +Optionally, you can limit the entity types ingested by the provider when using +`orgEnabled: true` with the following `rules` configuration to limit it to only +`User` and `Group` entities. + +```yaml +catalog: + providers: + gitlab: + yourOrgDataProviderId: + host: gitlab.com + orgEnabled: true + group: org/teams + rules: + - allow: [Group, User] +``` + +## Troubleshooting + +**NOTE**: If any groups that are being ingested are empty groups (i.e. do not +contain any projects) and the user which provisioned the token is shared with a +higher level group via [group sharing](https://docs.gitlab.com/ee/user/group/manage.html#share-a-group-with-another-group) +and you don't see the expected number of `Group` entities in the catalog you may +be hitting this [Gitlab issue](https://gitlab.com/gitlab-org/gitlab/-/issues/267996). diff --git a/docs/releases/v1.18.0-next.3-changelog.md b/docs/releases/v1.18.0-next.3-changelog.md new file mode 100644 index 0000000000..a83cb2e24b --- /dev/null +++ b/docs/releases/v1.18.0-next.3-changelog.md @@ -0,0 +1,3948 @@ +# Release v1.18.0-next.3 + +## @backstage/frontend-app-api@0.1.0-next.0 + +### Minor Changes + +- 628ca7e458e4: Initial release + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.1.0-next.0 + - @backstage/plugin-graphiql@0.2.54-next.3 + - @backstage/config@1.1.0-next.2 + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/types@1.1.1-next.0 + +## @backstage/frontend-plugin-api@0.1.0-next.0 + +### Minor Changes + +- 628ca7e458e4: Initial release + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-adr-backend@0.4.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-adr-common@0.2.15-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-airbrake-backend@0.3.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-auth-backend@0.19.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.1.0-next.3 + - @backstage/plugin-auth-backend-module-github-provider@0.1.0-next.3 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.0-next.2 + - @backstage/plugin-auth-backend-module-google-provider@0.1.0-next.3 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.1.0-next.0 + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-auth-backend-module-oauth2-provider@0.1.0-next.0 + +### Minor Changes + +- 101cf1d13b04: New module for `@backstage/plugin-auth-backend` that adds a `oauth2` auth provider. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-azure-devops-backend@0.4.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-azure-devops-common@0.3.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-badges-backend@0.3.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-bazaar-backend@0.3.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-catalog-backend-module-github@0.4.0-next.3 + +### Minor Changes + +- fa7004d9722c: Added a `catalogModuleGithubOrgEntityProvider` for the new backend system + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.13.0-next.3 + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-catalog-backend-module-gitlab@0.3.0-next.3 + +### Minor Changes + +- 3d73bafd85c9: Fix Gitlab.com user ingestion by scoping GitlabOrgDiscoveryEntityProvider to a group. + + **BREAKING** The `group` parameter is now required Gitlab.com Org Data integrations and the backend will fail to start without this option configured. + + ```diff + catalog: + providers: + gitlab: + yourProviderId: + host: gitlab.com + orgEnabled: true + + group: org/teams + ``` + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.0-next.0 + +### Minor Changes + +- d5313ede3529: Added a dedicated module to collect the `ScaffolderEntitiesProcessor` and `catalogModuleTemplateKind`. + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-scaffolder-common@1.4.1-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-backend-module-unprocessed@0.3.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-devtools-backend@0.2.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-devtools-common@0.1.4-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/cli-common@0.1.12 + - @backstage/config-loader@1.5.0-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-entity-feedback-backend@0.2.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-entity-feedback-common@0.1.3-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-kafka-backend@0.3.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-lighthouse-backend@0.3.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-lighthouse-common@0.1.3-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-linguist-backend@0.5.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-linguist-common@0.1.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-periskop-backend@0.2.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-proxy-backend@0.4.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- 02ba0a2efd2a: Add the route name to an error message that appears when the backend + proxy wasn't well configured. This will help users to understand the + issue and fix the right configuration. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-scaffolder@1.15.0-next.3 + +### Minor Changes + +- 0119c326394a: adding a .zip download to dry run results page, including zip.js as dependency + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- 6e69c11a3535: Restored functionality to `OwnedEntityPicker` by converting deprecated `ui:options` input to `catalogFilter`. +- b16c341ced45: Updated dependency `@rjsf/utils` to `5.13.0`. + Updated dependency `@rjsf/core-v5` to `npm:@rjsf/core@5.13.0`. + Updated dependency `@rjsf/material-ui-v5` to `npm:@rjsf/material-ui@5.13.0`. + Updated dependency `@rjsf/validator-ajv8` to `5.13.0`. +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-permission-react@0.4.15-next.3 + - @backstage/plugin-scaffolder-common@1.4.1-next.2 + - @backstage/plugin-scaffolder-react@1.5.5-next.3 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-scaffolder-backend@1.17.0-next.3 + +### Minor Changes + +- b5f239b50bcf: Improved the `parseEntityRef` Scaffolder filter by introducing the ability for users to provide default kind and/or namespace values. The filter now takes + 2 arguments, similarly to the original [parseEntityRef](https://github.com/backstage/backstage/blob/v1.17.2/packages/catalog-model/src/entity/ref.ts#L77). +- d5313ede3529: **DEPRECATION**: Deprecated `ScaffolderEntitiesProcessor`, which should now instead be imported from `@backstage/plugin-catalog-backend-module-scaffolder-entity-model`. + + `catalogModuleTemplateKind` was also moved to that package and renamed to `catalogModuleScaffolderEntityModel`, without any deprecation since it was an alpha export. + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.13.0-next.3 + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-scaffolder-common@1.4.1-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.0-next.0 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + - @backstage/plugin-scaffolder-node@0.2.3-next.3 + +## @backstage/plugin-todo-backend@0.3.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-openapi-utils@0.0.4-next.0 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-user-settings-backend@0.2.0-next.3 + +### Minor Changes + +- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/app-defaults@1.4.3-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-permission-react@0.4.15-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/backend-app-api@0.5.3-next.3 + +### Patch Changes + +- 154632d8753b: Add support for discovering additional service factories during startup. +- cb7fc410ed99: The experimental backend feature discovery now only considers default exports from packages. It no longer filters packages to include based on the package role, except that `'cli'` packages are ignored. However, the `"backstage"` field is still required in `package.json`. +- 3b30b179cb38: Add support for installing features as package imports, for example `backend.add(import('my-plugin'))`. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/cli-common@0.1.12 + - @backstage/cli-node@0.1.4-next.0 + - @backstage/config-loader@1.5.0-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/backend-common@0.19.5-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.5.3-next.3 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-dev-utils@0.1.1 + - @backstage/cli-common@0.1.12 + - @backstage/config-loader@1.5.0-next.3 + - @backstage/integration-aws-node@0.1.6-next.2 + +## @backstage/backend-defaults@0.2.3-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.5.3-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/backend-openapi-utils@0.0.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.2-next.0 + +## @backstage/backend-plugin-api@0.6.3-next.3 + +### Patch Changes + +- ba4506076e2d: Ensure that root scoped services cannot accept (at a type level) plugin scoped deps +- 474b792d6a43: Service factory functions are now marked as feature factories that can be installed in the backend. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/backend-tasks@0.5.8-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/backend-test-utils@0.2.3-next.3 + +### Patch Changes + +- 202e52c5e361: Add support for installing backend features via module imports, for example `startTestBackend({ features: [import('my-plugin')] })`. +- Updated dependencies + - @backstage/backend-app-api@0.5.3-next.3 + - @backstage/config@1.1.0-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/catalog-client@1.4.4-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/errors@1.2.2-next.0 + +## @backstage/catalog-model@1.4.2-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/cli@0.22.13-next.3 + +### Patch Changes + +- 4d5eeec52d80: Add ESM loader for the experimental backend start command. +- 3494c502aba7: 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. +- f36113ca2305: Add experimental support for frontend package discovery. +- a23fce763c6a: Fixed a bug where package exports entry points could not be `.tsx` files. +- 4af4defcc114: When running `version:bump` it will now log duplicates instead of throwing an error +- 956d226eeeee: Add `"sideEffects": false` to `package.json` in frontend package templates. This can be added to existing packages using the new `yarn fix` command. +- cd7331587eb3: Removed the experimental `package fix` command that was used to automatically add dependencies to `package.json`, but has since been replaced by the `no-undeclared-imports` rule from `@backstage/eslint-plugin`. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/release-manifests@0.0.10-next.1 + - @backstage/types@1.1.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/cli-node@0.1.4-next.0 + - @backstage/config-loader@1.5.0-next.3 + - @backstage/eslint-plugin@0.1.3 + +## @backstage/cli-node@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/cli-common@0.1.12 + +## @backstage/config@1.1.0-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/config-loader@1.5.0-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/cli-common@0.1.12 + +## @backstage/core-app-api@1.10.0-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- 9fe827b380e1: Internal refactor +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/types@1.1.1-next.0 + - @backstage/version-bridge@1.0.5-next.0 + +## @backstage/core-components@0.13.5-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/theme@0.4.2-next.0 + - @backstage/version-bridge@1.0.5-next.0 + +## @backstage/core-plugin-api@1.6.0-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/version-bridge@1.0.5-next.0 + +## @backstage/create-app@0.5.5-next.3 + +### Patch Changes + +- 4606e005df5d: 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 + "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", + ``` + +- 612594022245: Add a notification when `yarn install` is taking a long time. + +- Updated dependencies + - @backstage/cli-common@0.1.12 + +## @backstage/dev-utils@1.0.21-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/test-utils@1.4.3-next.3 + - @backstage/app-defaults@1.4.3-next.3 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/errors@1.2.2-next.0 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/types@1.1.1-next.0 + +## @backstage/integration@1.7.0-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + +## @backstage/integration-aws-node@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + +## @backstage/integration-react@1.1.19-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration@1.7.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/release-manifests@0.0.10-next.1 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. + +## @backstage/repo-tools@0.3.4-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/cli-node@0.1.4-next.0 + +## @techdocs/cli@1.5.0-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/cli-common@0.1.12 + - @backstage/plugin-techdocs-node@1.8.0-next.3 + +## @backstage/test-utils@1.4.3-next.3 + +### Patch Changes + +- 7032c214f3b4: Add pod exec terminal to Container Card +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-permission-react@0.4.15-next.3 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/theme@0.4.2-next.0 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. + +## @backstage/types@1.1.1-next.0 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. + +## @backstage/version-bridge@1.0.5-next.0 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. + +## @backstage/plugin-adr@0.6.7-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- aa844e704a32: support for i18n feature +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-adr-common@0.2.15-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-adr-common@0.2.15-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + +## @backstage/plugin-airbrake@0.3.24-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/test-utils@1.4.3-next.3 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/dev-utils@1.0.21-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-allure@0.1.40-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-analytics-module-ga@0.1.33-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-analytics-module-ga4@0.1.4-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-analytics-module-newrelic-browser@0.0.2-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + +## @backstage/plugin-apache-airflow@0.2.15-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + +## @backstage/plugin-api-docs@0.9.11-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog@1.13.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-api-docs-module-protoc-gen-doc@0.1.3-next.1 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. + +## @backstage/plugin-apollo-explorer@0.1.15-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-app-backend@0.3.51-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/config-loader@1.5.0-next.3 + - @backstage/plugin-app-node@0.1.3-next.3 + +## @backstage/plugin-app-node@0.1.3-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.3-next.3 + +## @backstage/plugin-auth-backend-module-gcp-iap-provider@0.1.0-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-auth-backend-module-github-provider@0.1.0-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-auth-backend-module-gitlab-provider@0.1.0-next.2 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-auth-backend-module-google-provider@0.1.0-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-auth-node@0.3.0-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-azure-devops@0.3.6-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-azure-devops-common@0.3.1-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-azure-devops-common@0.3.1-next.0 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. + +## @backstage/plugin-azure-sites@0.1.13-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-azure-sites-common@0.1.1-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-azure-sites-backend@0.1.13-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-azure-sites-common@0.1.1-next.0 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-azure-sites-common@0.1.1-next.0 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. + +## @backstage/plugin-badges@0.2.48-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-bazaar@0.2.16-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/cli@0.22.13-next.3 + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog@1.13.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-bitbucket-cloud-common@0.2.12-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/integration@1.7.0-next.3 + +## @backstage/plugin-bitrise@0.1.51-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-catalog@1.13.0-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-scaffolder-common@1.4.1-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-catalog-backend@1.13.0-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/plugin-search-backend-module-catalog@0.1.7-next.3 + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-scaffolder-common@1.4.1-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-openapi-utils@0.0.4-next.0 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-catalog-backend-module-aws@0.2.6-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-kubernetes-common@0.6.6-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/integration-aws-node@0.1.6-next.2 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-backend-module-azure@0.1.22-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-backend-module-bitbucket@0.2.18-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-bitbucket-cloud-common@0.2.12-next.3 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.18-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-bitbucket-cloud-common@0.2.12-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.16-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-backend-module-gcp@0.1.3-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-kubernetes-common@0.6.6-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.19-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.6-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.13.0-next.3 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.18-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-backend-module-msgraph@0.5.10-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.19-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.13.0-next.3 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-backend-module-puppetdb@0.1.8-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-catalog-common@1.0.16-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + +## @backstage/plugin-catalog-graph@0.2.36-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-catalog-graphql@0.3.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-catalog-import@0.9.14-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-catalog-react@1.8.4-next.3 + +## @backstage/plugin-catalog-node@1.4.4-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + +## @backstage/plugin-catalog-react@1.8.4-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-permission-react@0.4.15-next.3 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/version-bridge@1.0.5-next.0 + +## @backstage/plugin-catalog-unprocessed-entities@0.1.3-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-cicd-statistics@0.1.26-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + +## @backstage/plugin-cicd-statistics-module-gitlab@0.1.20-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-cicd-statistics@0.1.26-next.3 + +## @backstage/plugin-circleci@0.3.24-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-cloudbuild@0.3.24-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-code-climate@0.1.24-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-code-coverage@0.2.17-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-code-coverage-backend@0.2.17-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-codescene@0.1.17-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-config-schema@0.1.45-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-cost-insights@0.12.13-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-cost-insights-common@0.1.2-next.0 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-cost-insights-common@0.1.2-next.0 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. + +## @backstage/plugin-devtools@0.1.4-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-devtools-common@0.1.4-next.2 + - @backstage/plugin-permission-react@0.4.15-next.3 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-devtools-common@0.1.4-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-dynatrace@7.0.4-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-entity-feedback@0.2.7-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-entity-feedback-common@0.1.3-next.0 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-entity-feedback-common@0.1.3-next.0 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. + +## @backstage/plugin-entity-validation@0.1.9-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-events-backend@0.2.12-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-events-backend-module-aws-sqs@0.2.6-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-events-backend-module-azure@0.1.13-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.13-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-events-backend-module-gerrit@0.1.13-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-events-backend-module-github@0.1.13-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-events-backend-module-gitlab@0.1.13-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-events-backend-test-utils@0.1.13-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.12-next.3 + +## @backstage/plugin-events-node@0.2.12-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.3-next.3 + +## @backstage/plugin-explore@0.4.10-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-explore-common@0.0.2-next.0 + - @backstage/plugin-explore-react@0.0.31-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-explore-backend@0.0.13-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-explore@0.1.7-next.3 + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-explore-common@0.0.2-next.0 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-explore-common@0.0.2-next.0 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. + +## @backstage/plugin-explore-react@0.0.31-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-explore-common@0.0.2-next.0 + +## @backstage/plugin-firehydrant@0.2.8-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-fossa@0.2.56-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-gcalendar@0.3.18-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-gcp-projects@0.3.41-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-git-release-manager@0.3.37-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration@1.7.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-github-actions@0.6.5-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration@1.7.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-github-deployments@0.1.55-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-github-issues@0.2.13-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-github-pull-requests-board@0.1.18-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-gitops-profiles@0.3.40-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-gocd@0.1.30-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-graphiql@0.2.54-next.3 + +### Patch Changes + +- cf950c3b6eab: Added experimental exports for the new frontend system under `/alpha`. +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/frontend-plugin-api@0.1.0-next.0 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-graphql-backend@0.1.41-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-catalog-graphql@0.3.23-next.2 + +## @backstage/plugin-graphql-voyager@0.1.7-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-home@0.5.8-next.3 + +### Patch Changes + +- 2bc96ce69eea: Fixed a bug where customizable home page cards would render missing their normal borders. +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- b16c341ced45: Updated dependency `@rjsf/utils` to `5.13.0`. + Updated dependency `@rjsf/core-v5` to `npm:@rjsf/core@5.13.0`. + Updated dependency `@rjsf/material-ui-v5` to `npm:@rjsf/material-ui@5.13.0`. + Updated dependency `@rjsf/validator-ajv8` to `5.13.0`. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-home-react@0.1.3-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-home-react@0.1.3-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- b16c341ced45: Updated dependency `@rjsf/utils` to `5.13.0`. + Updated dependency `@rjsf/core-v5` to `npm:@rjsf/core@5.13.0`. + Updated dependency `@rjsf/material-ui-v5` to `npm:@rjsf/material-ui@5.13.0`. + Updated dependency `@rjsf/validator-ajv8` to `5.13.0`. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + +## @backstage/plugin-ilert@0.2.13-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-jenkins@0.8.6-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-jenkins-common@0.1.19-next.2 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-jenkins-backend@0.2.6-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-jenkins-common@0.1.19-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-jenkins-common@0.1.19-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + +## @backstage/plugin-kafka@0.3.24-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-kubernetes@0.10.3-next.3 + +### Patch Changes + +- 7032c214f3b4: Add pod exec terminal to Container Card +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-kubernetes-common@0.6.6-next.2 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-kubernetes-backend@0.11.6-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- a8a614ba0d07: Minor `package.json` update. + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-kubernetes-common@0.6.6-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/integration-aws-node@0.1.6-next.2 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + +## @backstage/plugin-kubernetes-common@0.6.6-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + +## @backstage/plugin-lighthouse@0.4.9-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-lighthouse-common@0.1.3-next.2 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-lighthouse-common@0.1.3-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + +## @backstage/plugin-linguist@0.1.9-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-linguist-common@0.1.2-next.0 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-linguist-common@0.1.2-next.0 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. + +## @backstage/plugin-microsoft-calendar@0.1.7-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-newrelic@0.3.40-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- 55cb7061e072: Fixed bug in NewRelicComponent component where table would not sort correctly for numerical values. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-newrelic-dashboard@0.2.17-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + +## @backstage/plugin-nomad@0.1.5-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-nomad-backend@0.1.5-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-octopus-deploy@0.2.6-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-opencost@0.2.0-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-org@0.6.14-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-org-react@0.1.13-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-pagerduty@0.6.5-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-home-react@0.1.3-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-periskop@0.1.22-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-permission-backend@0.5.26-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- a8a614ba0d07: Minor `package.json` update. + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-permission-backend-module-allow-all-policy@0.1.0-next.1 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-permission-common@0.7.8-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-permission-node@0.7.14-next.3 + +### Patch Changes + +- a8a614ba0d07: Minor `package.json` update. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-permission-react@0.4.15-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-permission-common@0.7.8-next.2 + +## @backstage/plugin-playlist@0.1.16-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- 2f3215bbbffe: Fix a bug that led to errors being thrown in guest mode +- fdbf215a8d8e: Fix the Ui style of the search bar +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-permission-react@0.4.15-next.3 + - @backstage/plugin-playlist-common@0.1.10-next.2 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-playlist-backend@0.3.7-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-playlist-common@0.1.10-next.2 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @backstage/plugin-playlist-common@0.1.10-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.8-next.2 + +## @backstage/plugin-puppetdb@0.1.7-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-rollbar@0.4.24-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-rollbar-backend@0.1.48-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.4-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-scaffolder-node@0.2.3-next.3 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.27-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-scaffolder-node@0.2.3-next.3 + +## @backstage/plugin-scaffolder-backend-module-gitlab@0.2.6-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-scaffolder-node@0.2.3-next.3 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.20-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-scaffolder-node@0.2.3-next.3 + +## @backstage/plugin-scaffolder-backend-module-sentry@0.1.11-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-scaffolder-node@0.2.3-next.3 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.24-next.3 + +### Patch Changes + +- 4fa1c74cbadc: Enables dry-run functionality for the run:yeoman scaffolder action +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/plugin-scaffolder-node@0.2.3-next.3 + +## @backstage/plugin-scaffolder-common@1.4.1-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-scaffolder-node@0.2.3-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-scaffolder-common@1.4.1-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-scaffolder-react@1.5.5-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- b16c341ced45: Updated dependency `@rjsf/utils` to `5.13.0`. + Updated dependency `@rjsf/core-v5` to `npm:@rjsf/core@5.13.0`. + Updated dependency `@rjsf/material-ui-v5` to `npm:@rjsf/material-ui@5.13.0`. + Updated dependency `@rjsf/validator-ajv8` to `5.13.0`. +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-scaffolder-common@1.4.1-next.2 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/version-bridge@1.0.5-next.0 + +## @backstage/plugin-search@1.4.0-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/version-bridge@1.0.5-next.0 + +## @backstage/plugin-search-backend@1.4.3-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-openapi-utils@0.0.4-next.0 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + +## @backstage/plugin-search-backend-module-catalog@0.1.7-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + +## @backstage/plugin-search-backend-module-elasticsearch@1.3.6-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/integration-aws-node@0.1.6-next.2 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + +## @backstage/plugin-search-backend-module-explore@0.1.7-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-explore-common@0.0.2-next.0 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + +## @backstage/plugin-search-backend-module-pg@0.5.12-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + +## @backstage/plugin-search-backend-module-techdocs@0.1.7-next.3 + +### Patch Changes + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + - @backstage/plugin-techdocs-node@1.8.0-next.3 + +## @backstage/plugin-search-backend-node@1.2.7-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + +## @backstage/plugin-search-common@1.2.6-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-search-react@1.7.0-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/version-bridge@1.0.5-next.0 + +## @backstage/plugin-sentry@0.5.9-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-shortcuts@0.3.14-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-sonarqube@0.7.5-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-sonarqube-react@0.1.8-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-sonarqube-backend@0.2.5-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-sonarqube-react@0.1.8-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-plugin-api@1.6.0-next.3 + +## @backstage/plugin-splunk-on-call@0.4.13-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-stack-overflow@0.1.20-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-home-react@0.1.3-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-stack-overflow-backend@0.2.7-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/backend-common@0.19.5-next.3 + +## @backstage/plugin-stackstorm@0.1.6-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-tech-insights@0.3.16-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-tech-insights-common@0.2.12-next.0 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-tech-insights-backend@0.5.17-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-tech-insights-common@0.2.12-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-tech-insights-node@0.4.9-next.3 + +## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.35-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-tech-insights-common@0.2.12-next.0 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-tech-insights-node@0.4.9-next.3 + +## @backstage/plugin-tech-insights-common@0.2.12-next.0 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-tech-insights-node@0.4.9-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-tech-insights-common@0.2.12-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + +## @backstage/plugin-tech-radar@0.6.8-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- c357f62052af: Fixed `RadarTimeline` text formatting. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-techdocs@1.7.0-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/plugin-techdocs-react@1.1.10-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.21-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/test-utils@1.4.3-next.3 + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-catalog@1.13.0-next.3 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/plugin-techdocs@1.7.0-next.3 + - @backstage/plugin-techdocs-react@1.1.10-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-techdocs-backend@1.7.0-next.3 + +### Patch Changes + +- 60af8017dd84: Expand techdocs.publisher.type with `googleGcs`,`awsS3`,`azureBlobStorage` and `openStackSwift` + +- 71114ac50e02: The export for the new backend system has been moved to be the `default` export. + + For example, if you are currently importing the plugin using the following pattern: + + ```ts + import { examplePlugin } from '@backstage/plugin-example-backend'; + + backend.add(examplePlugin); + ``` + + It should be migrated to this: + + ```ts + backend.add(import('@backstage/plugin-example-backend')); + ``` + +- a8a614ba0d07: Minor `package.json` update. + +- Updated dependencies + - @backstage/plugin-search-backend-module-techdocs@0.1.7-next.3 + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-techdocs-node@1.8.0-next.3 + +## @backstage/plugin-techdocs-module-addons-contrib@1.1.0-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration@1.7.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-techdocs-react@1.1.10-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-techdocs-node@1.8.0-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/integration-aws-node@0.1.6-next.2 + +## @backstage/plugin-techdocs-react@1.1.10-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/version-bridge@1.0.5-next.0 + +## @backstage/plugin-todo@0.2.26-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-user-settings@0.7.9-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + - @backstage/types@1.1.1-next.0 + +## @backstage/plugin-vault@0.1.18-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- 858a18800870: Added ability to override vault secret engine value on catalog entity level using annotation `vault.io/secrets-engine` +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/theme@0.4.2-next.0 + +## @backstage/plugin-vault-backend@0.3.7-next.3 + +### Patch Changes + +- 858a18800870: Added ability to override vault secret engine value on catalog entity level using annotation `vault.io/secrets-engine` +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + +## @backstage/plugin-xcmetrics@0.2.42-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/theme@0.4.2-next.0 + +## example-app@0.2.87-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home@0.5.8-next.3 + - @backstage/plugin-graphiql@0.2.54-next.3 + - @backstage/cli@0.22.13-next.3 + - @backstage/plugin-kubernetes@0.10.3-next.3 + - @backstage/app-defaults@1.4.3-next.3 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-adr@0.6.7-next.3 + - @backstage/plugin-airbrake@0.3.24-next.3 + - @backstage/plugin-apache-airflow@0.2.15-next.3 + - @backstage/plugin-api-docs@0.9.11-next.3 + - @backstage/plugin-azure-devops@0.3.6-next.3 + - @backstage/plugin-azure-sites@0.1.13-next.3 + - @backstage/plugin-badges@0.2.48-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-catalog-graph@0.2.36-next.3 + - @backstage/plugin-catalog-import@0.9.14-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-catalog-unprocessed-entities@0.1.3-next.3 + - @backstage/plugin-circleci@0.3.24-next.3 + - @backstage/plugin-cloudbuild@0.3.24-next.3 + - @backstage/plugin-code-coverage@0.2.17-next.3 + - @backstage/plugin-cost-insights@0.12.13-next.3 + - @backstage/plugin-devtools@0.1.4-next.3 + - @backstage/plugin-dynatrace@7.0.4-next.3 + - @backstage/plugin-entity-feedback@0.2.7-next.3 + - @backstage/plugin-explore@0.4.10-next.3 + - @backstage/plugin-gcalendar@0.3.18-next.3 + - @backstage/plugin-gcp-projects@0.3.41-next.3 + - @backstage/plugin-github-actions@0.6.5-next.3 + - @backstage/plugin-gocd@0.1.30-next.3 + - @backstage/plugin-jenkins@0.8.6-next.3 + - @backstage/plugin-kafka@0.3.24-next.3 + - @backstage/plugin-lighthouse@0.4.9-next.3 + - @backstage/plugin-linguist@0.1.9-next.3 + - @backstage/plugin-linguist-common@0.1.2-next.0 + - @backstage/plugin-microsoft-calendar@0.1.7-next.3 + - @backstage/plugin-newrelic@0.3.40-next.3 + - @backstage/plugin-newrelic-dashboard@0.2.17-next.3 + - @backstage/plugin-nomad@0.1.5-next.3 + - @backstage/plugin-octopus-deploy@0.2.6-next.3 + - @backstage/plugin-org@0.6.14-next.3 + - @backstage/plugin-pagerduty@0.6.5-next.3 + - @backstage/plugin-permission-react@0.4.15-next.3 + - @backstage/plugin-playlist@0.1.16-next.3 + - @backstage/plugin-puppetdb@0.1.7-next.3 + - @backstage/plugin-rollbar@0.4.24-next.3 + - @backstage/plugin-scaffolder@1.15.0-next.3 + - @backstage/plugin-scaffolder-react@1.5.5-next.3 + - @backstage/plugin-search@1.4.0-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/plugin-sentry@0.5.9-next.3 + - @backstage/plugin-shortcuts@0.3.14-next.3 + - @backstage/plugin-stack-overflow@0.1.20-next.3 + - @backstage/plugin-stackstorm@0.1.6-next.3 + - @backstage/plugin-tech-insights@0.3.16-next.3 + - @backstage/plugin-tech-radar@0.6.8-next.3 + - @backstage/plugin-techdocs@1.7.0-next.3 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.0-next.3 + - @backstage/plugin-techdocs-react@1.1.10-next.3 + - @backstage/plugin-todo@0.2.26-next.3 + - @backstage/plugin-user-settings@0.7.9-next.3 + - @backstage/theme@0.4.2-next.0 + - @internal/plugin-catalog-customized@0.0.14-next.3 + +## example-app-next@0.0.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home@0.5.8-next.3 + - @backstage/frontend-plugin-api@0.1.0-next.0 + - @backstage/frontend-app-api@0.1.0-next.0 + - @backstage/plugin-graphiql@0.2.54-next.3 + - @backstage/cli@0.22.13-next.3 + - @backstage/plugin-kubernetes@0.10.3-next.3 + - @backstage/app-defaults@1.4.3-next.3 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-adr@0.6.7-next.3 + - @backstage/plugin-airbrake@0.3.24-next.3 + - @backstage/plugin-apache-airflow@0.2.15-next.3 + - @backstage/plugin-api-docs@0.9.11-next.3 + - @backstage/plugin-azure-devops@0.3.6-next.3 + - @backstage/plugin-azure-sites@0.1.13-next.3 + - @backstage/plugin-badges@0.2.48-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-catalog-graph@0.2.36-next.3 + - @backstage/plugin-catalog-import@0.9.14-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-catalog-unprocessed-entities@0.1.3-next.3 + - @backstage/plugin-circleci@0.3.24-next.3 + - @backstage/plugin-cloudbuild@0.3.24-next.3 + - @backstage/plugin-code-coverage@0.2.17-next.3 + - @backstage/plugin-cost-insights@0.12.13-next.3 + - @backstage/plugin-devtools@0.1.4-next.3 + - @backstage/plugin-dynatrace@7.0.4-next.3 + - @backstage/plugin-entity-feedback@0.2.7-next.3 + - @backstage/plugin-explore@0.4.10-next.3 + - @backstage/plugin-gcalendar@0.3.18-next.3 + - @backstage/plugin-gcp-projects@0.3.41-next.3 + - @backstage/plugin-github-actions@0.6.5-next.3 + - @backstage/plugin-gocd@0.1.30-next.3 + - @backstage/plugin-jenkins@0.8.6-next.3 + - @backstage/plugin-kafka@0.3.24-next.3 + - @backstage/plugin-lighthouse@0.4.9-next.3 + - @backstage/plugin-linguist@0.1.9-next.3 + - @backstage/plugin-linguist-common@0.1.2-next.0 + - @backstage/plugin-microsoft-calendar@0.1.7-next.3 + - @backstage/plugin-newrelic@0.3.40-next.3 + - @backstage/plugin-newrelic-dashboard@0.2.17-next.3 + - @backstage/plugin-octopus-deploy@0.2.6-next.3 + - @backstage/plugin-org@0.6.14-next.3 + - @backstage/plugin-pagerduty@0.6.5-next.3 + - @backstage/plugin-permission-react@0.4.15-next.3 + - @backstage/plugin-playlist@0.1.16-next.3 + - @backstage/plugin-puppetdb@0.1.7-next.3 + - @backstage/plugin-rollbar@0.4.24-next.3 + - @backstage/plugin-scaffolder@1.15.0-next.3 + - @backstage/plugin-scaffolder-react@1.5.5-next.3 + - @backstage/plugin-search@1.4.0-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/plugin-sentry@0.5.9-next.3 + - @backstage/plugin-shortcuts@0.3.14-next.3 + - @backstage/plugin-stack-overflow@0.1.20-next.3 + - @backstage/plugin-stackstorm@0.1.6-next.3 + - @backstage/plugin-tech-insights@0.3.16-next.3 + - @backstage/plugin-tech-radar@0.6.8-next.3 + - @backstage/plugin-techdocs@1.7.0-next.3 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.0-next.3 + - @backstage/plugin-techdocs-react@1.1.10-next.3 + - @backstage/plugin-todo@0.2.26-next.3 + - @backstage/plugin-user-settings@0.7.9-next.3 + - @backstage/theme@0.4.2-next.0 + - app-next-example-plugin@0.0.1-next.0 + - @internal/plugin-catalog-customized@0.0.14-next.3 + +## app-next-example-plugin@0.0.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.1.0-next.0 + - @backstage/core-components@0.13.5-next.3 + +## example-backend@0.2.87-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-backend@1.7.0-next.3 + - @backstage/plugin-proxy-backend@0.4.0-next.3 + - @backstage/plugin-adr-backend@0.4.0-next.3 + - @backstage/plugin-auth-backend@0.19.0-next.3 + - @backstage/plugin-azure-devops-backend@0.4.0-next.3 + - @backstage/plugin-badges-backend@0.3.0-next.3 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.0-next.3 + - @backstage/plugin-devtools-backend@0.2.0-next.3 + - @backstage/plugin-entity-feedback-backend@0.2.0-next.3 + - @backstage/plugin-kafka-backend@0.3.0-next.3 + - @backstage/plugin-lighthouse-backend@0.3.0-next.3 + - @backstage/plugin-linguist-backend@0.5.0-next.3 + - @backstage/plugin-todo-backend@0.3.0-next.3 + - @backstage/plugin-app-backend@0.3.51-next.3 + - @backstage/plugin-catalog-backend@1.13.0-next.3 + - @backstage/plugin-events-backend@0.2.12-next.3 + - @backstage/plugin-kubernetes-backend@0.11.6-next.3 + - @backstage/plugin-permission-backend@0.5.26-next.3 + - @backstage/plugin-scaffolder-backend@1.17.0-next.3 + - @backstage/plugin-search-backend@1.4.3-next.3 + - @backstage/plugin-search-backend-module-catalog@0.1.7-next.3 + - @backstage/plugin-search-backend-module-elasticsearch@1.3.6-next.3 + - @backstage/plugin-search-backend-module-explore@0.1.7-next.3 + - @backstage/plugin-search-backend-module-pg@0.5.12-next.3 + - @backstage/plugin-search-backend-module-techdocs@0.1.7-next.3 + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.0-next.0 + - example-app@0.2.87-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-explore-backend@0.0.13-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-azure-sites-backend@0.1.13-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + - @backstage/plugin-code-coverage-backend@0.2.17-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + - @backstage/plugin-graphql-backend@0.1.41-next.3 + - @backstage/plugin-jenkins-backend@0.2.6-next.3 + - @backstage/plugin-nomad-backend@0.1.5-next.3 + - @backstage/plugin-playlist-backend@0.3.7-next.3 + - @backstage/plugin-rollbar-backend@0.1.48-next.3 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.4-next.3 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.20-next.3 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + - @backstage/plugin-tech-insights-backend@0.5.17-next.3 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.35-next.3 + - @backstage/plugin-tech-insights-node@0.4.9-next.3 + +## example-backend-next@0.0.15-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-backend@1.7.0-next.3 + - @backstage/plugin-proxy-backend@0.4.0-next.3 + - @backstage/plugin-adr-backend@0.4.0-next.3 + - @backstage/plugin-azure-devops-backend@0.4.0-next.3 + - @backstage/plugin-badges-backend@0.3.0-next.3 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.0-next.3 + - @backstage/plugin-devtools-backend@0.2.0-next.3 + - @backstage/plugin-entity-feedback-backend@0.2.0-next.3 + - @backstage/plugin-lighthouse-backend@0.3.0-next.3 + - @backstage/plugin-linguist-backend@0.5.0-next.3 + - @backstage/plugin-todo-backend@0.3.0-next.3 + - @backstage/plugin-app-backend@0.3.51-next.3 + - @backstage/plugin-catalog-backend@1.13.0-next.3 + - @backstage/plugin-kubernetes-backend@0.11.6-next.3 + - @backstage/plugin-permission-backend@0.5.26-next.3 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.0-next.1 + - @backstage/plugin-scaffolder-backend@1.17.0-next.3 + - @backstage/plugin-search-backend@1.4.3-next.3 + - @backstage/plugin-search-backend-module-catalog@0.1.7-next.3 + - @backstage/plugin-search-backend-module-explore@0.1.7-next.3 + - @backstage/plugin-search-backend-module-techdocs@0.1.7-next.3 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.0-next.0 + - @backstage/backend-defaults@0.2.3-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + +## @backstage/backend-plugin-manager@0.0.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.13.0-next.3 + - @backstage/plugin-events-backend@0.2.12-next.3 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/cli-common@0.1.12 + - @backstage/cli-node@0.1.4-next.0 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + - @backstage/plugin-scaffolder-node@0.2.3-next.3 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + +## e2e-test@0.2.7-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.5-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/cli-common@0.1.12 + +## techdocs-cli-embedded-app@0.2.86-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.13-next.3 + - @backstage/test-utils@1.4.3-next.3 + - @backstage/app-defaults@1.4.3-next.3 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-catalog@1.13.0-next.3 + - @backstage/plugin-techdocs@1.7.0-next.3 + - @backstage/plugin-techdocs-react@1.1.10-next.3 + - @backstage/theme@0.4.2-next.0 + +## @internal/plugin-catalog-customized@0.0.14-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.13.0-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + +## @internal/plugin-todo-list@1.0.17-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/theme@0.4.2-next.0 + +## @internal/plugin-todo-list-backend@1.0.17-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + +## @internal/plugin-todo-list-common@1.0.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.8-next.2 diff --git a/microsite/yarn.lock b/microsite/yarn.lock index b6c948fb6c..b3ec70512f 100644 --- a/microsite/yarn.lock +++ b/microsite/yarn.lock @@ -2604,90 +2604,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-darwin-arm64@npm:1.3.82" +"@swc/core-darwin-arm64@npm:1.3.84": + version: 1.3.84 + resolution: "@swc/core-darwin-arm64@npm:1.3.84" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-darwin-x64@npm:1.3.82" +"@swc/core-darwin-x64@npm:1.3.84": + version: 1.3.84 + resolution: "@swc/core-darwin-x64@npm:1.3.84" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.82" +"@swc/core-linux-arm-gnueabihf@npm:1.3.84": + version: 1.3.84 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.84" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.82" +"@swc/core-linux-arm64-gnu@npm:1.3.84": + version: 1.3.84 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.84" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.82" +"@swc/core-linux-arm64-musl@npm:1.3.84": + version: 1.3.84 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.84" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.82" +"@swc/core-linux-x64-gnu@npm:1.3.84": + version: 1.3.84 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.84" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-linux-x64-musl@npm:1.3.82" +"@swc/core-linux-x64-musl@npm:1.3.84": + version: 1.3.84 + resolution: "@swc/core-linux-x64-musl@npm:1.3.84" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.82" +"@swc/core-win32-arm64-msvc@npm:1.3.84": + version: 1.3.84 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.84" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.82" +"@swc/core-win32-ia32-msvc@npm:1.3.84": + version: 1.3.84 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.84" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.82" +"@swc/core-win32-x64-msvc@npm:1.3.84": + version: 1.3.84 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.84" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.46": - version: 1.3.82 - resolution: "@swc/core@npm:1.3.82" + version: 1.3.84 + resolution: "@swc/core@npm:1.3.84" dependencies: - "@swc/core-darwin-arm64": 1.3.82 - "@swc/core-darwin-x64": 1.3.82 - "@swc/core-linux-arm-gnueabihf": 1.3.82 - "@swc/core-linux-arm64-gnu": 1.3.82 - "@swc/core-linux-arm64-musl": 1.3.82 - "@swc/core-linux-x64-gnu": 1.3.82 - "@swc/core-linux-x64-musl": 1.3.82 - "@swc/core-win32-arm64-msvc": 1.3.82 - "@swc/core-win32-ia32-msvc": 1.3.82 - "@swc/core-win32-x64-msvc": 1.3.82 + "@swc/core-darwin-arm64": 1.3.84 + "@swc/core-darwin-x64": 1.3.84 + "@swc/core-linux-arm-gnueabihf": 1.3.84 + "@swc/core-linux-arm64-gnu": 1.3.84 + "@swc/core-linux-arm64-musl": 1.3.84 + "@swc/core-linux-x64-gnu": 1.3.84 + "@swc/core-linux-x64-musl": 1.3.84 + "@swc/core-win32-arm64-msvc": 1.3.84 + "@swc/core-win32-ia32-msvc": 1.3.84 + "@swc/core-win32-x64-msvc": 1.3.84 "@swc/types": ^0.1.4 peerDependencies: "@swc/helpers": ^0.5.0 @@ -2715,7 +2715,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 4c4adbed22071c0af935129a6fe7cc35d1688a5c1a069efdd8c97740930fa7eaf324e75dc88634a4ea0520330f6c88101d5aa5cf7ed6e02d336cc46ee7131ea3 + checksum: dee45823923c29dde579ed1121c4392c937826d575c87f62399ba7a0b27cacfeb05da97b65cf49a721a50127bb1e22ca5c07defa784ec2a47fed33e3498ef1b9 languageName: node linkType: hard diff --git a/package.json b/package.json index 6711d06f40..0a8007944b 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.18.0-next.2", + "version": "1.18.0-next.3", "dependencies": { "@backstage/errors": "workspace:^", "@manypkg/get-packages": "^1.1.3" diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index 5b267a3105..45947300a9 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/app-defaults +## 1.4.3-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/plugin-permission-react@0.4.15-next.3 + - @backstage/theme@0.4.2-next.0 + ## 1.4.3-next.2 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index 12cc333e9f..711f831bad 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/app-defaults", "description": "Provides the default wiring of a Backstage App", - "version": "1.4.3-next.2", + "version": "1.4.3-next.3", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/app-next-example-plugin/CHANGELOG.md b/packages/app-next-example-plugin/CHANGELOG.md new file mode 100644 index 0000000000..9b244b4dd3 --- /dev/null +++ b/packages/app-next-example-plugin/CHANGELOG.md @@ -0,0 +1,9 @@ +# app-next-example-plugin + +## 0.0.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.1.0-next.0 + - @backstage/core-components@0.13.5-next.3 diff --git a/packages/app-next-example-plugin/package.json b/packages/app-next-example-plugin/package.json index 9e5a0d0ee6..258b58fccd 100644 --- a/packages/app-next-example-plugin/package.json +++ b/packages/app-next-example-plugin/package.json @@ -1,7 +1,7 @@ { "name": "app-next-example-plugin", "description": "Backstage internal example plugin", - "version": "0.0.0", + "version": "0.0.1-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/app-next/CHANGELOG.md b/packages/app-next/CHANGELOG.md index 8845db91f2..ebd4891200 100644 --- a/packages/app-next/CHANGELOG.md +++ b/packages/app-next/CHANGELOG.md @@ -1,5 +1,82 @@ # example-app-next +## 0.0.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home@0.5.8-next.3 + - @backstage/frontend-plugin-api@0.1.0-next.0 + - @backstage/frontend-app-api@0.1.0-next.0 + - @backstage/plugin-graphiql@0.2.54-next.3 + - @backstage/cli@0.22.13-next.3 + - @backstage/plugin-kubernetes@0.10.3-next.3 + - @backstage/app-defaults@1.4.3-next.3 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-adr@0.6.7-next.3 + - @backstage/plugin-airbrake@0.3.24-next.3 + - @backstage/plugin-apache-airflow@0.2.15-next.3 + - @backstage/plugin-api-docs@0.9.11-next.3 + - @backstage/plugin-azure-devops@0.3.6-next.3 + - @backstage/plugin-azure-sites@0.1.13-next.3 + - @backstage/plugin-badges@0.2.48-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-catalog-graph@0.2.36-next.3 + - @backstage/plugin-catalog-import@0.9.14-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-catalog-unprocessed-entities@0.1.3-next.3 + - @backstage/plugin-circleci@0.3.24-next.3 + - @backstage/plugin-cloudbuild@0.3.24-next.3 + - @backstage/plugin-code-coverage@0.2.17-next.3 + - @backstage/plugin-cost-insights@0.12.13-next.3 + - @backstage/plugin-devtools@0.1.4-next.3 + - @backstage/plugin-dynatrace@7.0.4-next.3 + - @backstage/plugin-entity-feedback@0.2.7-next.3 + - @backstage/plugin-explore@0.4.10-next.3 + - @backstage/plugin-gcalendar@0.3.18-next.3 + - @backstage/plugin-gcp-projects@0.3.41-next.3 + - @backstage/plugin-github-actions@0.6.5-next.3 + - @backstage/plugin-gocd@0.1.30-next.3 + - @backstage/plugin-jenkins@0.8.6-next.3 + - @backstage/plugin-kafka@0.3.24-next.3 + - @backstage/plugin-lighthouse@0.4.9-next.3 + - @backstage/plugin-linguist@0.1.9-next.3 + - @backstage/plugin-linguist-common@0.1.2-next.0 + - @backstage/plugin-microsoft-calendar@0.1.7-next.3 + - @backstage/plugin-newrelic@0.3.40-next.3 + - @backstage/plugin-newrelic-dashboard@0.2.17-next.3 + - @backstage/plugin-octopus-deploy@0.2.6-next.3 + - @backstage/plugin-org@0.6.14-next.3 + - @backstage/plugin-pagerduty@0.6.5-next.3 + - @backstage/plugin-permission-react@0.4.15-next.3 + - @backstage/plugin-playlist@0.1.16-next.3 + - @backstage/plugin-puppetdb@0.1.7-next.3 + - @backstage/plugin-rollbar@0.4.24-next.3 + - @backstage/plugin-scaffolder@1.15.0-next.3 + - @backstage/plugin-scaffolder-react@1.5.5-next.3 + - @backstage/plugin-search@1.4.0-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/plugin-sentry@0.5.9-next.3 + - @backstage/plugin-shortcuts@0.3.14-next.3 + - @backstage/plugin-stack-overflow@0.1.20-next.3 + - @backstage/plugin-stackstorm@0.1.6-next.3 + - @backstage/plugin-tech-insights@0.3.16-next.3 + - @backstage/plugin-tech-radar@0.6.8-next.3 + - @backstage/plugin-techdocs@1.7.0-next.3 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.0-next.3 + - @backstage/plugin-techdocs-react@1.1.10-next.3 + - @backstage/plugin-todo@0.2.26-next.3 + - @backstage/plugin-user-settings@0.7.9-next.3 + - @backstage/theme@0.4.2-next.0 + - app-next-example-plugin@0.0.1-next.0 + - @internal/plugin-catalog-customized@0.0.14-next.3 + ## 0.0.1-next.1 ### Patch Changes diff --git a/packages/app-next/app-config.yaml b/packages/app-next/app-config.yaml index c94d900b21..a97c52f40f 100644 --- a/packages/app-next/app-config.yaml +++ b/packages/app-next/app-config.yaml @@ -2,6 +2,8 @@ app: experimental: packages: 'all' # ✨ + extensions: + - apis.plugin.graphiql.browse.gitlab: true # scmAuthExtension: >- # createScmAuthExtension({ diff --git a/packages/app-next/package.json b/packages/app-next/package.json index 2775fe8208..e9897fd348 100644 --- a/packages/app-next/package.json +++ b/packages/app-next/package.json @@ -1,6 +1,6 @@ { "name": "example-app-next", - "version": "0.0.1-next.1", + "version": "0.0.1-next.2", "private": true, "backstage": { "role": "frontend" diff --git a/packages/app-next/src/App.test.tsx b/packages/app-next/src/App.test.tsx index 047c9821b5..b3cef58fe1 100644 --- a/packages/app-next/src/App.test.tsx +++ b/packages/app-next/src/App.test.tsx @@ -14,9 +14,13 @@ * limitations under the License. */ -import React from 'react'; import { renderWithEffects } from '@backstage/test-utils'; +jest.mock('@backstage/plugin-graphiql', () => ({ + ...jest.requireActual('@backstage/plugin-graphiql'), + GraphiQLIcon: () => null, +})); + describe('App', () => { it('should render', async () => { process.env = { @@ -41,8 +45,8 @@ describe('App', () => { ] as any, }; - const { default: App } = await import('./App'); - const rendered = await renderWithEffects(); + const { default: app } = await import('./App'); + const rendered = await renderWithEffects(app); expect(rendered.baseElement).toBeInTheDocument(); }); }); diff --git a/packages/app-next/src/App.tsx b/packages/app-next/src/App.tsx index 0452cc3709..aa9bb985c2 100644 --- a/packages/app-next/src/App.tsx +++ b/packages/app-next/src/App.tsx @@ -14,8 +14,6 @@ * limitations under the License. */ -import { graphiqlPlugin as legacyGraphiqlPlugin } from '@backstage/plugin-graphiql'; -import { createApp as createLegacyApp } from '@backstage/app-defaults'; import { createApp } from '@backstage/frontend-app-api'; import { pagesPlugin } from './examples/pagesPlugin'; import graphiqlPlugin from '@backstage/plugin-graphiql/alpha'; @@ -61,9 +59,9 @@ const app = createApp({ // }, }); -const legacyApp = createLegacyApp({ plugins: [legacyGraphiqlPlugin] }); +// const legacyApp = createLegacyApp({ plugins: [legacyGraphiqlPlugin] }); -export default legacyApp.createRoot(app.createRoot()); +export default app.createRoot(); // const routes = ( // diff --git a/packages/app-next/src/index.tsx b/packages/app-next/src/index.tsx index b15bc4c102..3c354b06d0 100644 --- a/packages/app-next/src/index.tsx +++ b/packages/app-next/src/index.tsx @@ -15,8 +15,7 @@ */ import '@backstage/cli/asset-types'; -import React from 'react'; import ReactDOM from 'react-dom'; -import App from './App'; +import app from './App'; -ReactDOM.render(, document.getElementById('root')); +ReactDOM.render(app, document.getElementById('root')); diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 6ed7929e6d..28bda23989 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,80 @@ # example-app +## 0.2.87-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home@0.5.8-next.3 + - @backstage/plugin-graphiql@0.2.54-next.3 + - @backstage/cli@0.22.13-next.3 + - @backstage/plugin-kubernetes@0.10.3-next.3 + - @backstage/app-defaults@1.4.3-next.3 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/core-app-api@1.10.0-next.3 + - @backstage/core-components@0.13.5-next.3 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/integration-react@1.1.19-next.3 + - @backstage/plugin-adr@0.6.7-next.3 + - @backstage/plugin-airbrake@0.3.24-next.3 + - @backstage/plugin-apache-airflow@0.2.15-next.3 + - @backstage/plugin-api-docs@0.9.11-next.3 + - @backstage/plugin-azure-devops@0.3.6-next.3 + - @backstage/plugin-azure-sites@0.1.13-next.3 + - @backstage/plugin-badges@0.2.48-next.3 + - @backstage/plugin-catalog-common@1.0.16-next.2 + - @backstage/plugin-catalog-graph@0.2.36-next.3 + - @backstage/plugin-catalog-import@0.9.14-next.3 + - @backstage/plugin-catalog-react@1.8.4-next.3 + - @backstage/plugin-catalog-unprocessed-entities@0.1.3-next.3 + - @backstage/plugin-circleci@0.3.24-next.3 + - @backstage/plugin-cloudbuild@0.3.24-next.3 + - @backstage/plugin-code-coverage@0.2.17-next.3 + - @backstage/plugin-cost-insights@0.12.13-next.3 + - @backstage/plugin-devtools@0.1.4-next.3 + - @backstage/plugin-dynatrace@7.0.4-next.3 + - @backstage/plugin-entity-feedback@0.2.7-next.3 + - @backstage/plugin-explore@0.4.10-next.3 + - @backstage/plugin-gcalendar@0.3.18-next.3 + - @backstage/plugin-gcp-projects@0.3.41-next.3 + - @backstage/plugin-github-actions@0.6.5-next.3 + - @backstage/plugin-gocd@0.1.30-next.3 + - @backstage/plugin-jenkins@0.8.6-next.3 + - @backstage/plugin-kafka@0.3.24-next.3 + - @backstage/plugin-lighthouse@0.4.9-next.3 + - @backstage/plugin-linguist@0.1.9-next.3 + - @backstage/plugin-linguist-common@0.1.2-next.0 + - @backstage/plugin-microsoft-calendar@0.1.7-next.3 + - @backstage/plugin-newrelic@0.3.40-next.3 + - @backstage/plugin-newrelic-dashboard@0.2.17-next.3 + - @backstage/plugin-nomad@0.1.5-next.3 + - @backstage/plugin-octopus-deploy@0.2.6-next.3 + - @backstage/plugin-org@0.6.14-next.3 + - @backstage/plugin-pagerduty@0.6.5-next.3 + - @backstage/plugin-permission-react@0.4.15-next.3 + - @backstage/plugin-playlist@0.1.16-next.3 + - @backstage/plugin-puppetdb@0.1.7-next.3 + - @backstage/plugin-rollbar@0.4.24-next.3 + - @backstage/plugin-scaffolder@1.15.0-next.3 + - @backstage/plugin-scaffolder-react@1.5.5-next.3 + - @backstage/plugin-search@1.4.0-next.3 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-search-react@1.7.0-next.3 + - @backstage/plugin-sentry@0.5.9-next.3 + - @backstage/plugin-shortcuts@0.3.14-next.3 + - @backstage/plugin-stack-overflow@0.1.20-next.3 + - @backstage/plugin-stackstorm@0.1.6-next.3 + - @backstage/plugin-tech-insights@0.3.16-next.3 + - @backstage/plugin-tech-radar@0.6.8-next.3 + - @backstage/plugin-techdocs@1.7.0-next.3 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.0-next.3 + - @backstage/plugin-techdocs-react@1.1.10-next.3 + - @backstage/plugin-todo@0.2.26-next.3 + - @backstage/plugin-user-settings@0.7.9-next.3 + - @backstage/theme@0.4.2-next.0 + - @internal/plugin-catalog-customized@0.0.14-next.3 + ## 0.2.87-next.2 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 52e7a295a1..f019199bff 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.87-next.2", + "version": "0.2.87-next.3", "private": true, "backstage": { "role": "frontend" diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index e53e5d273d..390103ae91 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/backend-app-api +## 0.5.3-next.3 + +### Patch Changes + +- 154632d8753b: Add support for discovering additional service factories during startup. +- cb7fc410ed99: The experimental backend feature discovery now only considers default exports from packages. It no longer filters packages to include based on the package role, except that `'cli'` packages are ignored. However, the `"backstage"` field is still required in `package.json`. +- 3b30b179cb38: Add support for installing features as package imports, for example `backend.add(import('my-plugin'))`. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/cli-common@0.1.12 + - @backstage/cli-node@0.1.4-next.0 + - @backstage/config-loader@1.5.0-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + ## 0.5.3-next.2 ### Patch Changes diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index 3bd12759f2..46d5e9e4f4 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-app-api", "description": "Core API used by Backstage backend apps", - "version": "0.5.3-next.2", + "version": "0.5.3-next.3", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index 2d4c3cd4d9..fb425e0c97 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/backend-common +## 0.19.5-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.5.3-next.3 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-dev-utils@0.1.1 + - @backstage/cli-common@0.1.12 + - @backstage/config-loader@1.5.0-next.3 + - @backstage/integration-aws-node@0.1.6-next.2 + ## 0.19.5-next.2 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index bb9427da51..3e7d0f0f4d 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.19.5-next.2", + "version": "0.19.5-next.3", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index 3176a34528..a09255c269 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-defaults +## 0.2.3-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.5.3-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + ## 0.2.3-next.2 ### Patch Changes diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index bdbbd26d3b..e4d62b311c 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-defaults", "description": "Backend defaults used by Backstage backend apps", - "version": "0.2.3-next.2", + "version": "0.2.3-next.3", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-next/CHANGELOG.md b/packages/backend-next/CHANGELOG.md index a7b2fb8b33..980569a9b6 100644 --- a/packages/backend-next/CHANGELOG.md +++ b/packages/backend-next/CHANGELOG.md @@ -1,5 +1,40 @@ # example-backend-next +## 0.0.15-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-backend@1.7.0-next.3 + - @backstage/plugin-proxy-backend@0.4.0-next.3 + - @backstage/plugin-adr-backend@0.4.0-next.3 + - @backstage/plugin-azure-devops-backend@0.4.0-next.3 + - @backstage/plugin-badges-backend@0.3.0-next.3 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.0-next.3 + - @backstage/plugin-devtools-backend@0.2.0-next.3 + - @backstage/plugin-entity-feedback-backend@0.2.0-next.3 + - @backstage/plugin-lighthouse-backend@0.3.0-next.3 + - @backstage/plugin-linguist-backend@0.5.0-next.3 + - @backstage/plugin-todo-backend@0.3.0-next.3 + - @backstage/plugin-app-backend@0.3.51-next.3 + - @backstage/plugin-catalog-backend@1.13.0-next.3 + - @backstage/plugin-kubernetes-backend@0.11.6-next.3 + - @backstage/plugin-permission-backend@0.5.26-next.3 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.0-next.1 + - @backstage/plugin-scaffolder-backend@1.17.0-next.3 + - @backstage/plugin-search-backend@1.4.3-next.3 + - @backstage/plugin-search-backend-module-catalog@0.1.7-next.3 + - @backstage/plugin-search-backend-module-explore@0.1.7-next.3 + - @backstage/plugin-search-backend-module-techdocs@0.1.7-next.3 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.0-next.0 + - @backstage/backend-defaults@0.2.3-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + ## 0.0.15-next.2 ### Patch Changes diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 9b726fb307..edda247a5a 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-next", - "version": "0.0.15-next.2", + "version": "0.0.15-next.3", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,6 +34,7 @@ "@backstage/plugin-azure-devops-backend": "workspace:^", "@backstage/plugin-badges-backend": "workspace:^", "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "workspace:^", "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^", "@backstage/plugin-devtools-backend": "workspace:^", "@backstage/plugin-entity-feedback-backend": "workspace:^", diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index cf7734c089..4e99732a11 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -23,6 +23,9 @@ backend.add(import('@backstage/plugin-app-backend/alpha')); backend.add(import('@backstage/plugin-azure-devops-backend')); backend.add(import('@backstage/plugin-badges-backend')); backend.add(import('@backstage/plugin-catalog-backend-module-unprocessed')); +backend.add( + import('@backstage/plugin-catalog-backend-module-scaffolder-entity-model'), +); backend.add(import('@backstage/plugin-catalog-backend/alpha')); backend.add(import('@backstage/plugin-devtools-backend')); backend.add(import('@backstage/plugin-entity-feedback-backend')); diff --git a/packages/backend-openapi-utils/CHANGELOG.md b/packages/backend-openapi-utils/CHANGELOG.md index fc3e52fa92..f94fc1e1e8 100644 --- a/packages/backend-openapi-utils/CHANGELOG.md +++ b/packages/backend-openapi-utils/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/backend-openapi-utils +## 0.0.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.2-next.0 + ## 0.0.3 ### Patch Changes diff --git a/packages/backend-openapi-utils/package.json b/packages/backend-openapi-utils/package.json index 102d8c36d6..f6441e3864 100644 --- a/packages/backend-openapi-utils/package.json +++ b/packages/backend-openapi-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-openapi-utils", "description": "OpenAPI typescript support.", - "version": "0.0.3", + "version": "0.0.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/backend-plugin-api/CHANGELOG.md b/packages/backend-plugin-api/CHANGELOG.md index 678f05a787..49ddc69c33 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/backend-plugin-api +## 0.6.3-next.3 + +### Patch Changes + +- ba4506076e2d: Ensure that root scoped services cannot accept (at a type level) plugin scoped deps +- 474b792d6a43: Service factory functions are now marked as feature factories that can be installed in the backend. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + ## 0.6.3-next.2 ### Patch Changes diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index 8e160f9311..57b877e1c7 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-plugin-api", "description": "Core API used by Backstage backend plugins", - "version": "0.6.3-next.2", + "version": "0.6.3-next.3", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-plugin-manager/CHANGELOG.md b/packages/backend-plugin-manager/CHANGELOG.md index 7822f30008..3218866414 100644 --- a/packages/backend-plugin-manager/CHANGELOG.md +++ b/packages/backend-plugin-manager/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/backend-plugin-manager +## 0.0.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.13.0-next.3 + - @backstage/plugin-events-backend@0.2.12-next.3 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/cli-common@0.1.12 + - @backstage/cli-node@0.1.4-next.0 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + - @backstage/plugin-scaffolder-node@0.2.3-next.3 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + ## 0.0.1-next.0 ### Patch Changes diff --git a/packages/backend-plugin-manager/package.json b/packages/backend-plugin-manager/package.json index f98ab5270a..bba0793cce 100644 --- a/packages/backend-plugin-manager/package.json +++ b/packages/backend-plugin-manager/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-plugin-manager", "description": "Backstage plugin management backend", - "version": "0.0.1-next.0", + "version": "0.0.1-next.1", "private": true, "main": "src/index.ts", "types": "src/index.ts", diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index f3cd349f9f..cb995f8e05 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-tasks +## 0.5.8-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-common@0.19.5-next.3 + ## 0.5.8-next.2 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index ecc4bf3d35..10d07dbb40 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-tasks", "description": "Common distributed task management library for Backstage backends", - "version": "0.5.8-next.2", + "version": "0.5.8-next.3", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index ea0ffee7c8..d6cde7697b 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/backend-test-utils +## 0.2.3-next.3 + +### Patch Changes + +- 202e52c5e361: Add support for installing backend features via module imports, for example `startTestBackend({ features: [import('my-plugin')] })`. +- Updated dependencies + - @backstage/backend-app-api@0.5.3-next.3 + - @backstage/config@1.1.0-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/backend-plugin-api@0.6.3-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + ## 0.2.3-next.2 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 8cdbcc7aca..1ee0522b01 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-test-utils", "description": "Test helpers library for Backstage backends", - "version": "0.2.3-next.2", + "version": "0.2.3-next.3", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 6c3dfcf2fd..c0bf093f05 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,64 @@ # example-backend +## 0.2.87-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-backend@1.7.0-next.3 + - @backstage/plugin-proxy-backend@0.4.0-next.3 + - @backstage/plugin-adr-backend@0.4.0-next.3 + - @backstage/plugin-auth-backend@0.19.0-next.3 + - @backstage/plugin-azure-devops-backend@0.4.0-next.3 + - @backstage/plugin-badges-backend@0.3.0-next.3 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.0-next.3 + - @backstage/plugin-devtools-backend@0.2.0-next.3 + - @backstage/plugin-entity-feedback-backend@0.2.0-next.3 + - @backstage/plugin-kafka-backend@0.3.0-next.3 + - @backstage/plugin-lighthouse-backend@0.3.0-next.3 + - @backstage/plugin-linguist-backend@0.5.0-next.3 + - @backstage/plugin-todo-backend@0.3.0-next.3 + - @backstage/plugin-app-backend@0.3.51-next.3 + - @backstage/plugin-catalog-backend@1.13.0-next.3 + - @backstage/plugin-events-backend@0.2.12-next.3 + - @backstage/plugin-kubernetes-backend@0.11.6-next.3 + - @backstage/plugin-permission-backend@0.5.26-next.3 + - @backstage/plugin-scaffolder-backend@1.17.0-next.3 + - @backstage/plugin-search-backend@1.4.3-next.3 + - @backstage/plugin-search-backend-module-catalog@0.1.7-next.3 + - @backstage/plugin-search-backend-module-elasticsearch@1.3.6-next.3 + - @backstage/plugin-search-backend-module-explore@0.1.7-next.3 + - @backstage/plugin-search-backend-module-pg@0.5.12-next.3 + - @backstage/plugin-search-backend-module-techdocs@0.1.7-next.3 + - @backstage/catalog-client@1.4.4-next.2 + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/integration@1.7.0-next.3 + - @backstage/plugin-permission-common@0.7.8-next.2 + - @backstage/plugin-search-common@1.2.6-next.2 + - @backstage/plugin-permission-node@0.7.14-next.3 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.0-next.0 + - example-app@0.2.87-next.3 + - @backstage/backend-common@0.19.5-next.3 + - @backstage/plugin-explore-backend@0.0.13-next.3 + - @backstage/backend-tasks@0.5.8-next.3 + - @backstage/plugin-auth-node@0.3.0-next.3 + - @backstage/plugin-azure-sites-backend@0.1.13-next.3 + - @backstage/plugin-catalog-node@1.4.4-next.3 + - @backstage/plugin-code-coverage-backend@0.2.17-next.3 + - @backstage/plugin-events-node@0.2.12-next.3 + - @backstage/plugin-graphql-backend@0.1.41-next.3 + - @backstage/plugin-jenkins-backend@0.2.6-next.3 + - @backstage/plugin-nomad-backend@0.1.5-next.3 + - @backstage/plugin-playlist-backend@0.3.7-next.3 + - @backstage/plugin-rollbar-backend@0.1.48-next.3 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.4-next.3 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.20-next.3 + - @backstage/plugin-search-backend-node@1.2.7-next.3 + - @backstage/plugin-tech-insights-backend@0.5.17-next.3 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.35-next.3 + - @backstage/plugin-tech-insights-node@0.4.9-next.3 + ## 0.2.87-next.2 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index d7f8a9c403..7ff8845ed6 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.87-next.2", + "version": "0.2.87-next.3", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", @@ -40,6 +40,7 @@ "@backstage/plugin-azure-sites-backend": "workspace:^", "@backstage/plugin-badges-backend": "workspace:^", "@backstage/plugin-catalog-backend": "workspace:^", + "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "workspace:^", "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^", "@backstage/plugin-catalog-node": "workspace:^", "@backstage/plugin-code-coverage-backend": "workspace:^", diff --git a/packages/backend/src/plugins/catalog.ts b/packages/backend/src/plugins/catalog.ts index 7afd0a0cb7..223acab818 100644 --- a/packages/backend/src/plugins/catalog.ts +++ b/packages/backend/src/plugins/catalog.ts @@ -15,11 +15,11 @@ */ import { CatalogBuilder } from '@backstage/plugin-catalog-backend'; -import { ScaffolderEntitiesProcessor } from '@backstage/plugin-scaffolder-backend'; +import { ScaffolderEntitiesProcessor } from '@backstage/plugin-catalog-backend-module-scaffolder-entity-model'; +import { UnprocessedEntitiesModule } from '@backstage/plugin-catalog-backend-module-unprocessed'; import { Router } from 'express'; import { PluginEnvironment } from '../types'; import { DemoEventBasedEntityProvider } from './DemoEventBasedEntityProvider'; -import { UnprocessedEntitiesModule } from '@backstage/plugin-catalog-backend-module-unprocessed'; export default async function createPlugin( env: PluginEnvironment, diff --git a/packages/catalog-client/CHANGELOG.md b/packages/catalog-client/CHANGELOG.md index d544c25244..14af941a8f 100644 --- a/packages/catalog-client/CHANGELOG.md +++ b/packages/catalog-client/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/catalog-client +## 1.4.4-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/errors@1.2.2-next.0 + ## 1.4.4-next.1 ### Patch Changes diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index 91f90e8928..e1604976ae 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/catalog-client", "description": "An isomorphic client for the catalog backend", - "version": "1.4.4-next.1", + "version": "1.4.4-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/catalog-model/CHANGELOG.md b/packages/catalog-model/CHANGELOG.md index 4e07318bf7..628d080280 100644 --- a/packages/catalog-model/CHANGELOG.md +++ b/packages/catalog-model/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/catalog-model +## 1.4.2-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + ## 1.4.2-next.1 ### Patch Changes diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 536fee0893..bf37cc107f 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/catalog-model", "description": "Types and validators that help describe the model of a Backstage Catalog", - "version": "1.4.2-next.1", + "version": "1.4.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/cli-node/CHANGELOG.md b/packages/cli-node/CHANGELOG.md index 8a7af72d8d..f008ec556f 100644 --- a/packages/cli-node/CHANGELOG.md +++ b/packages/cli-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/cli-node +## 0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/cli-common@0.1.12 + ## 0.1.3 ### Patch Changes diff --git a/packages/cli-node/package.json b/packages/cli-node/package.json index 589139a141..084123ff5c 100644 --- a/packages/cli-node/package.json +++ b/packages/cli-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli-node", "description": "Node.js library for Backstage CLIs", - "version": "0.1.3", + "version": "0.1.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index dd4a35df94..0ad4278b2e 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/cli +## 0.22.13-next.3 + +### Patch Changes + +- 4d5eeec52d80: Add ESM loader for the experimental backend start command. +- 3494c502aba7: 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. +- f36113ca2305: Add experimental support for frontend package discovery. +- a23fce763c6a: Fixed a bug where package exports entry points could not be `.tsx` files. +- 4af4defcc114: When running `version:bump` it will now log duplicates instead of throwing an error +- 956d226eeeee: Add `"sideEffects": false` to `package.json` in frontend package templates. This can be added to existing packages using the new `yarn fix` command. +- cd7331587eb3: Removed the experimental `package fix` command that was used to automatically add dependencies to `package.json`, but has since been replaced by the `no-undeclared-imports` rule from `@backstage/eslint-plugin`. +- Updated dependencies + - @backstage/catalog-model@1.4.2-next.2 + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/integration@1.7.0-next.3 + - @backstage/release-manifests@0.0.10-next.1 + - @backstage/types@1.1.1-next.0 + - @backstage/cli-common@0.1.12 + - @backstage/cli-node@0.1.4-next.0 + - @backstage/config-loader@1.5.0-next.3 + - @backstage/eslint-plugin@0.1.3 + ## 0.22.13-next.2 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 604832ed89..6229432f91 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.22.13-next.2", + "version": "0.22.13-next.3", "publishConfig": { "access": "public" }, diff --git a/packages/cli/src/commands/fix.ts b/packages/cli/src/commands/fix.ts deleted file mode 100644 index 263d171fd6..0000000000 --- a/packages/cli/src/commands/fix.ts +++ /dev/null @@ -1,142 +0,0 @@ -/* - * 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 { paths } from '../lib/paths'; -import { ESLint } from 'eslint'; -import { join as joinPath, basename } from 'path'; -import fs from 'fs-extra'; -import { isChildPath } from '@backstage/cli-common'; -import { PackageGraph } from '@backstage/cli-node'; - -function isTestPath(filePath: string) { - if (!isChildPath(joinPath(paths.targetDir, 'src'), filePath)) { - return true; - } - const name = basename(filePath); - return ( - name.startsWith('setupTests.') || - name.includes('.test.') || - name.includes('.stories.') - ); -} - -export async function command() { - const pkgJsonPath = paths.resolveTarget('package.json'); - const pkg = await fs.readJson(pkgJsonPath); - if (pkg.workspaces) { - throw new Error( - 'Adding dependencies to the workspace root is not supported', - ); - } - - const packages = await PackageGraph.listTargetPackages(); - const localPackageVersions = new Map( - packages.map(p => [p.packageJson.name, p.packageJson.version]), - ); - - const eslint = new ESLint({ - cwd: paths.targetDir, - overrideConfig: { - plugins: ['monorepo'], - rules: { - 'import/no-extraneous-dependencies': [ - 'error', - { - devDependencies: [ - `!${joinPath(paths.targetDir, 'src/**')}`, - joinPath(paths.targetDir, 'src/**/*.test.*'), - joinPath(paths.targetDir, 'src/**/*.stories.*'), - joinPath(paths.targetDir, 'src/setupTests.*'), - ], - optionalDependencies: true, - peerDependencies: true, - bundledDependencies: true, - }, - ], - }, - }, - extensions: ['jsx', 'ts', 'tsx', 'mjs', 'cjs'], - }); - - const results = await eslint.lintFiles(['.']); - - const addedDeps = new Set(); - const addedDevDeps = new Set(); - const removedDevDeps = new Set(); - - for (const result of results) { - for (const message of result.messages) { - // Just in case - if (message.ruleId !== 'import/no-extraneous-dependencies') { - continue; - } - - const match = message.message.match(/^'([^']*)' should be listed/); - if (!match) { - continue; - } - const packageName = match[1]; - if (!localPackageVersions.has(packageName)) { - continue; - } - - if (message.message.endsWith('not devDependencies.')) { - addedDeps.add(packageName); - removedDevDeps.add(packageName); - } else if (isTestPath(result.filePath)) { - addedDevDeps.add(packageName); - } else { - addedDeps.add(packageName); - } - } - } - - if (addedDeps.size || addedDevDeps.size || removedDevDeps.size) { - for (const name of addedDeps) { - if (!pkg.dependencies) { - pkg.dependencies = {}; - } - pkg.dependencies[name] = `^${localPackageVersions.get(name)}`; - } - for (const name of addedDevDeps) { - if (!pkg.devDependencies) { - pkg.devDependencies = {}; - } - pkg.devDependencies[name] = `^${localPackageVersions.get(name)}`; - } - for (const name of removedDevDeps) { - delete pkg.devDependencies[name]; - } - if (Object.keys(pkg.devDependencies).length === 0) { - delete pkg.devDependencies; - } - - if (pkg.dependencies) { - pkg.dependencies = Object.fromEntries( - Object.entries(pkg.dependencies).sort(([a], [b]) => a.localeCompare(b)), - ); - } - if (pkg.devDependencies) { - pkg.devDependencies = Object.fromEntries( - Object.entries(pkg.devDependencies).sort(([a], [b]) => - a.localeCompare(b), - ), - ); - } - - await fs.writeJson(pkgJsonPath, pkg, { spaces: 2 }); - } -} diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index 651b853c5d..ce4a4d2bae 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -168,12 +168,6 @@ export function registerScriptCommand(program: Command) { .description('Run tests, forwarding args to Jest, defaulting to watch mode') .action(lazy(() => import('./test').then(m => m.default))); - command - .command('fix', { hidden: true }) - .description('Applies automated fixes to the package. [EXPERIMENTAL]') - .option('--deps', 'Only fix monorepo dependencies in package.json') - .action(lazy(() => import('./fix').then(m => m.command))); - command .command('clean') .description('Delete cache directories') diff --git a/packages/cli/src/commands/versions/bump.test.ts b/packages/cli/src/commands/versions/bump.test.ts index 9e5288677d..84019b55ee 100644 --- a/packages/cli/src/commands/versions/bump.test.ts +++ b/packages/cli/src/commands/versions/bump.test.ts @@ -29,6 +29,7 @@ import { YarnInfoInspectData } from '../../lib/versioning/packages'; import { setupServer } from 'msw/node'; import { rest } from 'msw'; import { NotFoundError } from '@backstage/errors'; +import { Lockfile } from '../../lib/versioning/Lockfile'; // Remove log coloring to simplify log matching jest.mock('chalk', () => ({ @@ -224,7 +225,7 @@ describe('bump', () => { }); }); - it('should bump backstage dependencies but not them installed', async () => { + it('should bump backstage dependencies but not install them', async () => { mockFs({ '/yarn.lock': lockfileMock, '/package.json': JSON.stringify({ @@ -453,68 +454,36 @@ describe('bump', () => { jest.spyOn(runObj, 'run').mockResolvedValue(undefined); worker.use( rest.get( - 'https://versions.backstage.io/v1/releases/1.0.0/manifest.json', - (_, res, ctx) => - res( - ctx.status(200), - ctx.json({ - releaseVersion: '2.0.0', - packages: [ - { name: '@backstage/core', version: '5.0.0' }, - { name: '@backstage/core-api', version: '5.0.0' }, - ], - }), - ), + 'https://versions.backstage.io/v1/releases/999.0.1/manifest.json', + (_, res, ctx) => res(ctx.status(404), ctx.json({})), ), ); const { log: logs } = await withLogCollector(['log'], async () => { await expect( - bump({ pattern: null, release: '1.0.0' } as unknown as Command), - ).rejects.toThrow('Duplicate versions present after package bump'); + bump({ pattern: null, release: '999.0.1' } as unknown as Command), + ).rejects.toThrow('No release found for 999.0.1 version'); }); expect(logs.filter(Boolean)).toEqual([ 'Using default pattern glob @backstage/*', - 'Checking for updates of @backstage/core', - 'Checking for updates of @backstage/theme', - 'Package info not found, ignoring package @backstage/theme', - 'Checking for updates of @backstage/core', - 'Checking for updates of @backstage/theme', - 'Checking for updates of @backstage/core-api', - 'Package info not found, ignoring package @backstage/theme', - 'Some packages are outdated, updating', - 'bumping @backstage/core in a to ^5.0.0', - 'bumping @backstage/core in b to ^5.0.0', - 'Your project is now at version 2.0.0, which has been written to backstage.json', - 'Running yarn install to install new versions', - '⚠️ The following packages may have breaking changes:', - ' @backstage/core : 1.0.3 ~> 5.0.0', - ' https://github.com/backstage/backstage/blob/master/packages/core/CHANGELOG.md', - 'Version bump complete!', ]); - expect(runObj.run).toHaveBeenCalledTimes(1); - expect(runObj.run).toHaveBeenCalledWith( - 'yarn', - ['install'], - expect.any(Object), - ); + expect(runObj.run).toHaveBeenCalledTimes(0); const packageA = await fs.readJson('/packages/a/package.json'); expect(packageA).toEqual({ name: 'a', dependencies: { - '@backstage/core': '^5.0.0', + '@backstage/core': '^1.0.5', }, }); const packageB = await fs.readJson('/packages/b/package.json'); expect(packageB).toEqual({ name: 'b', dependencies: { - '@backstage/core': '^5.0.0', + '@backstage/core': '^1.0.3', '@backstage/theme': '^1.0.0', }, }); - expect(await fs.readJson('/backstage.json')).toEqual({ version: '2.0.0' }); }); it('should prefer versions from the highest manifest version when main is not specified', async () => { @@ -825,6 +794,97 @@ describe('bump', () => { }, }); }); + + it('should log duplicates', async () => { + jest.spyOn(Lockfile.prototype, 'analyze').mockReturnValue({ + invalidRanges: [], + newVersions: [], + newRanges: [ + { + name: 'first-duplicate', + oldRange: 'first-duplicate', + newRange: 'first-duplicate', + oldVersion: '1.0.0', + newVersion: '2.0.0', + }, + { + name: 'second-duplicate', + oldRange: 'second-duplicate', + newRange: 'second-duplicate', + oldVersion: '1.0.0', + newVersion: '2.0.0', + }, + { + name: 'third-duplicate', + oldRange: 'third-duplicate', + newRange: 'third-duplicate', + oldVersion: '1.0.0', + newVersion: '2.0.0', + }, + ], + }); + mockFs({ + '/yarn.lock': lockfileMock, + '/package.json': JSON.stringify({ + workspaces: { + packages: ['packages/*'], + }, + }), + '/packages/a/package.json': JSON.stringify({ + name: 'a', + dependencies: { + '@backstage/core': '^1.0.5', + }, + }), + '/packages/b/package.json': JSON.stringify({ + name: 'b', + dependencies: { + '@backstage/core': '^1.0.3', + '@backstage/theme': '^1.0.0', + }, + }), + }); + + jest + .spyOn(paths, 'resolveTargetRoot') + .mockImplementation((...path) => resolvePath('/', ...path)); + jest.spyOn(runObj, 'run').mockResolvedValue(undefined); + worker.use( + rest.get( + 'https://versions.backstage.io/v1/tags/main/manifest.json', + (_, res, ctx) => + res( + ctx.status(200), + ctx.json({ + packages: [], + }), + ), + ), + ); + const { log: logs } = await withLogCollector(['log'], async () => { + await bump({ pattern: null, release: 'main' } as unknown as Command); + }); + expect(logs.filter(Boolean)).toEqual([ + 'Using default pattern glob @backstage/*', + 'Checking for updates of @backstage/core', + 'Checking for updates of @backstage/theme', + 'Checking for updates of @backstage/core-api', + 'Some packages are outdated, updating', + 'unlocking @backstage/core@^1.0.3 ~> 1.0.6', + 'unlocking @backstage/core-api@^1.0.6 ~> 1.0.7', + 'unlocking @backstage/core-api@^1.0.3 ~> 1.0.7', + 'bumping @backstage/core in a to ^1.0.6', + 'bumping @backstage/core in b to ^1.0.6', + 'bumping @backstage/theme in b to ^2.0.0', + 'Running yarn install to install new versions', + '⚠️ The following packages may have breaking changes:', + ' @backstage/theme : 1.0.0 ~> 2.0.0', + ' https://github.com/backstage/backstage/blob/master/packages/theme/CHANGELOG.md', + 'Version bump complete!', + 'The following packages have duplicates but have been allowed:', + 'first-duplicate, second-duplicate, third-duplicate', + ]); + }); }); describe('bumpBackstageJsonVersion', () => { diff --git a/packages/cli/src/commands/versions/bump.ts b/packages/cli/src/commands/versions/bump.ts index 997e5f8e60..873351b63a 100644 --- a/packages/cli/src/commands/versions/bump.ts +++ b/packages/cli/src/commands/versions/bump.ts @@ -314,10 +314,6 @@ export default async (opts: OptionValues) => { ), }); - if (result.newVersions.length > 0) { - throw new Error('Duplicate versions present after package bump'); - } - const forbiddenNewRanges = result.newRanges.filter(({ name }) => forbiddenDuplicatesFilter(name), ); @@ -328,6 +324,19 @@ export default async (opts: OptionValues) => { .join(', ')}`, ); } + + const allowedDuplicates = result.newRanges.filter( + ({ name }) => !forbiddenDuplicatesFilter(name), + ); + + if (allowedDuplicates.length > 0) { + console.log( + chalk.yellow( + 'The following packages have duplicates but have been allowed:', + ), + ); + console.log(chalk.yellow(allowedDuplicates.map(i => i.name).join(', '))); + } }; export function createStrictVersionFinder(options: { diff --git a/packages/config-loader/CHANGELOG.md b/packages/config-loader/CHANGELOG.md index aab170e602..e8cca42db4 100644 --- a/packages/config-loader/CHANGELOG.md +++ b/packages/config-loader/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/config-loader +## 1.5.0-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + - @backstage/cli-common@0.1.12 + ## 1.5.0-next.2 ### Patch Changes diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 56a8a0db81..466dc42cd6 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config-loader", "description": "Config loading functionality used by Backstage backend, and CLI", - "version": "1.5.0-next.2", + "version": "1.5.0-next.3", "publishConfig": { "access": "public", "main": "dist/index.cjs.js", diff --git a/packages/config/CHANGELOG.md b/packages/config/CHANGELOG.md index 5960c5da49..0cdf238ba5 100644 --- a/packages/config/CHANGELOG.md +++ b/packages/config/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/config +## 1.1.0-next.2 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/errors@1.2.2-next.0 + - @backstage/types@1.1.1-next.0 + ## 1.1.0-next.1 ### Patch Changes diff --git a/packages/config/package.json b/packages/config/package.json index 359791a969..d772bf9663 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config", "description": "Config API used by Backstage core, backend, and CLI", - "version": "1.1.0-next.1", + "version": "1.1.0-next.2", "publishConfig": { "access": "public", "main": "dist/index.cjs.js", diff --git a/packages/core-app-api/CHANGELOG.md b/packages/core-app-api/CHANGELOG.md index 3cd9fe309e..7bb4134710 100644 --- a/packages/core-app-api/CHANGELOG.md +++ b/packages/core-app-api/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/core-app-api +## 1.10.0-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- 9fe827b380e1: Internal refactor +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/types@1.1.1-next.0 + - @backstage/version-bridge@1.0.5-next.0 + ## 1.10.0-next.2 ### Minor Changes diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index 0dd87d1c5f..0509af9bd4 100644 --- a/packages/core-app-api/package.json +++ b/packages/core-app-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-app-api", "description": "Core app API used by Backstage apps", - "version": "1.10.0-next.2", + "version": "1.10.0-next.3", "publishConfig": { "access": "public" }, diff --git a/packages/core-app-api/src/app/AppContext.test.tsx b/packages/core-app-api/src/app/AppContext.test.tsx index a27b7c6f35..ee7b90533f 100644 --- a/packages/core-app-api/src/app/AppContext.test.tsx +++ b/packages/core-app-api/src/app/AppContext.test.tsx @@ -40,7 +40,7 @@ describe('v1 consumer', () => { }; const renderedHook = renderHook(() => useMockAppV1(), { - wrapper: ({ children }) => ( + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( ), }); diff --git a/packages/core-app-api/src/app/AppManager.tsx b/packages/core-app-api/src/app/AppManager.tsx index de078c0ffc..0bd495c03b 100644 --- a/packages/core-app-api/src/app/AppManager.tsx +++ b/packages/core-app-api/src/app/AppManager.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { AppConfig, Config } from '@backstage/config'; +import { Config } from '@backstage/config'; import React, { ComponentType, PropsWithChildren, @@ -81,6 +81,7 @@ import { InternalAppContext } from './InternalAppContext'; import { AppRouter, getBasePath } from './AppRouter'; import { AppTranslationProvider } from './AppTranslationProvider'; import { AppTranslationApiImpl } from '../apis/implementations/AppTranslationApi'; +import { overrideBaseUrlConfigs } from './overrideBaseUrlConfigs'; type CompatiblePlugin = | BackstagePlugin @@ -88,17 +89,6 @@ type CompatiblePlugin = output(): Array<{ type: 'feature-flag'; name: string }>; }); -/** - * Creates a base URL that uses to the current document origin. - */ -function createLocalBaseUrl(fullUrl: string): string { - const url = new URL(fullUrl); - url.protocol = document.location.protocol; - url.hostname = document.location.hostname; - url.port = document.location.port; - return url.toString().replace(/\/$/, ''); -} - function useConfigLoader( configLoader: AppConfigLoader | undefined, components: AppComponents, @@ -131,52 +121,9 @@ function useConfigLoader( }; } - let configReader; - /** - * config.value can be undefined or empty. If it's either, don't bother overriding anything. - */ - if (config.value?.length) { - const urlConfigReader = ConfigReader.fromConfigs(config.value); - - /** - * Test configs may not define `app.baseUrl` or `backend.baseUrl` and we - * don't want to enforce here. - */ - const appBaseUrl = urlConfigReader.getOptionalString('app.baseUrl'); - const backendBaseUrl = urlConfigReader.getOptionalString('backend.baseUrl'); - - let configs = config.value; - const relativeResolverConfig: AppConfig = { - data: {}, - context: 'relative-resolver', - }; - if (appBaseUrl && backendBaseUrl) { - const appOrigin = new URL(appBaseUrl).origin; - const backendOrigin = new URL(backendBaseUrl).origin; - - if (appOrigin === backendOrigin) { - const newBackendBaseUrl = createLocalBaseUrl(backendBaseUrl); - if (backendBaseUrl !== newBackendBaseUrl) { - relativeResolverConfig.data.backend = { baseUrl: newBackendBaseUrl }; - } - } - } - if (appBaseUrl) { - const newAppBaseUrl = createLocalBaseUrl(appBaseUrl); - if (appBaseUrl !== newAppBaseUrl) { - relativeResolverConfig.data.app = { baseUrl: newAppBaseUrl }; - } - } - /** - * Only add the relative config if there is actually data to add. - */ - if (Object.keys(relativeResolverConfig.data).length) { - configs = configs.concat([relativeResolverConfig]); - } - configReader = ConfigReader.fromConfigs(configs); - } else { - configReader = ConfigReader.fromConfigs([]); - } + const configReader = ConfigReader.fromConfigs( + config.value?.length ? overrideBaseUrlConfigs(config.value) : [], + ); return { api: configReader }; } diff --git a/packages/core-app-api/src/app/defaultConfigLoader.test.ts b/packages/core-app-api/src/app/defaultConfigLoader.test.ts index aebba92c43..7579e53dd2 100644 --- a/packages/core-app-api/src/app/defaultConfigLoader.test.ts +++ b/packages/core-app-api/src/app/defaultConfigLoader.test.ts @@ -14,40 +14,38 @@ * limitations under the License. */ -import { defaultConfigLoader } from './defaultConfigLoader'; +import { defaultConfigLoaderSync } from './defaultConfigLoader'; (process as any).env = { NODE_ENV: 'test' }; const anyEnv = process.env as any; const anyWindow = window as any; -describe('defaultConfigLoader', () => { +describe('defaultConfigLoaderSync', () => { afterEach(() => { delete anyEnv.APP_CONFIG; delete anyWindow.__APP_CONFIG__; }); - it('loads static config', async () => { + it('loads static config', () => { anyEnv.APP_CONFIG = [ { data: { my: 'config' }, context: 'a' }, { data: { my: 'override-config' }, context: 'b' }, ]; - const configs = await defaultConfigLoader(); + const configs = defaultConfigLoaderSync(); expect(configs).toEqual([ { data: { my: 'config' }, context: 'a' }, { data: { my: 'override-config' }, context: 'b' }, ]); }); - it('loads runtime config', async () => { + it('loads runtime config', () => { anyEnv.APP_CONFIG = [ { data: { my: 'override-config' }, context: 'a' }, { data: { my: 'config' }, context: 'b' }, ]; - const configs = await (defaultConfigLoader as any)( - '{"my":"runtime-config"}', - ); + const configs = (defaultConfigLoaderSync as any)('{"my":"runtime-config"}'); expect(configs).toEqual([ { data: { my: 'override-config' }, context: 'a' }, { data: { my: 'config' }, context: 'b' }, @@ -55,28 +53,28 @@ describe('defaultConfigLoader', () => { ]); }); - it('fails to load invalid missing config', async () => { - await expect(defaultConfigLoader()).rejects.toThrow( + it('fails to load invalid missing config', () => { + expect(() => defaultConfigLoaderSync()).toThrow( 'No static configuration provided', ); }); - it('fails to load invalid static config', async () => { + it('fails to load invalid static config', () => { anyEnv.APP_CONFIG = { my: 'invalid-config' }; - await expect(defaultConfigLoader()).rejects.toThrow( + expect(() => defaultConfigLoaderSync()).toThrow( 'Static configuration has invalid format', ); }); - it('fails to load bad runtime config', async () => { + it('fails to load bad runtime config', () => { anyEnv.APP_CONFIG = [{ data: { my: 'config' }, context: 'a' }]; - await expect((defaultConfigLoader as any)('}')).rejects.toThrow( + expect(() => defaultConfigLoaderSync('}')).toThrow( 'Failed to load runtime configuration, SyntaxError: Unexpected token } in JSON at position 0', ); }); - it('loads config from window.__APP_CONFIG__', async () => { + it('loads config from window.__APP_CONFIG__', () => { anyEnv.APP_CONFIG = [ { data: { my: 'config' }, context: 'a' }, { data: { my: 'override-config' }, context: 'b' }, @@ -84,7 +82,7 @@ describe('defaultConfigLoader', () => { const windowConfig = { app: { configKey: 'config-value' } }; anyWindow.__APP_CONFIG__ = windowConfig; - const configs = await defaultConfigLoader(); + const configs = defaultConfigLoaderSync(); expect(configs).toEqual([ ...anyEnv.APP_CONFIG, diff --git a/packages/core-app-api/src/app/defaultConfigLoader.ts b/packages/core-app-api/src/app/defaultConfigLoader.ts index 00aee2d367..301b64a865 100644 --- a/packages/core-app-api/src/app/defaultConfigLoader.ts +++ b/packages/core-app-api/src/app/defaultConfigLoader.ts @@ -30,12 +30,16 @@ import { AppConfigLoader } from './types'; * * @public */ -export const defaultConfigLoader: AppConfigLoader = async ( +export const defaultConfigLoader: AppConfigLoader = async () => + defaultConfigLoaderSync(); + +/** @internal */ +export function defaultConfigLoaderSync( // This string may be replaced at runtime to provide additional config. // It should be replaced by a JSON-serialized config object. // It's a param so we can test it, but at runtime this will always fall back to default. runtimeConfigJson: string = '__APP_INJECTED_RUNTIME_CONFIG__', -) => { +) { const appConfig = process.env.APP_CONFIG; if (!appConfig) { throw new Error('No static configuration provided'); @@ -70,4 +74,4 @@ export const defaultConfigLoader: AppConfigLoader = async ( }); } return configs; -}; +} diff --git a/packages/core-app-api/src/app/overrideBaseUrlConfigs.ts b/packages/core-app-api/src/app/overrideBaseUrlConfigs.ts new file mode 100644 index 0000000000..5dab6db127 --- /dev/null +++ b/packages/core-app-api/src/app/overrideBaseUrlConfigs.ts @@ -0,0 +1,84 @@ +/* + * Copyright 2023 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 { AppConfig, ConfigReader } from '@backstage/config'; + +/** + * Creates a base URL that uses to the current document origin. + */ +function createLocalBaseUrl(fullUrl: string): string { + const url = new URL(fullUrl); + url.protocol = document.location.protocol; + url.hostname = document.location.hostname; + url.port = document.location.port; + return url.toString().replace(/\/$/, ''); +} + +/** + * If we are able to override the app and backend base URLs to values that + * match the origin of the current location, then this function returns a + * new array of app configs that contain the overrides. + * + * @internal + */ +export function overrideBaseUrlConfigs(inputConfigs: AppConfig[]): AppConfig[] { + const urlConfigReader = ConfigReader.fromConfigs(inputConfigs); + + // In tests we may not have `app.baseUrl` or `backend.baseUrl`, to keep them optional + const appBaseUrl = urlConfigReader.getOptionalString('app.baseUrl'); + const backendBaseUrl = urlConfigReader.getOptionalString('backend.baseUrl'); + + let configs = inputConfigs; + + let newBackendBaseUrl: string | undefined = undefined; + let newAppBaseUrl: string | undefined = undefined; + + if (appBaseUrl && backendBaseUrl) { + const appOrigin = new URL(appBaseUrl).origin; + const backendOrigin = new URL(backendBaseUrl).origin; + + if (appOrigin === backendOrigin) { + const maybeNewBackendBaseUrl = createLocalBaseUrl(backendBaseUrl); + if (backendBaseUrl !== maybeNewBackendBaseUrl) { + newBackendBaseUrl = maybeNewBackendBaseUrl; + } + } + } + + if (appBaseUrl) { + const maybeNewAppBaseUrl = createLocalBaseUrl(appBaseUrl); + if (appBaseUrl !== maybeNewAppBaseUrl) { + newAppBaseUrl = maybeNewAppBaseUrl; + } + } + + // Only add the relative config if there is actually data to add. + if (newAppBaseUrl || newBackendBaseUrl) { + configs = configs.concat({ + data: { + app: newAppBaseUrl && { + baseUrl: newAppBaseUrl, + }, + backend: newBackendBaseUrl && { + baseUrl: newBackendBaseUrl, + }, + }, + context: 'relative-resolver', + }); + } + + return configs; +} diff --git a/packages/core-app-api/src/routing/RoutingProvider.beta.test.tsx b/packages/core-app-api/src/routing/RoutingProvider.beta.test.tsx index 532be8c09d..c3a5bab89e 100644 --- a/packages/core-app-api/src/routing/RoutingProvider.beta.test.tsx +++ b/packages/core-app-api/src/routing/RoutingProvider.beta.test.tsx @@ -353,7 +353,7 @@ describe('v1 consumer', () => { initialProps: { routeRef: routeRef1 as AnyRouteRef, }, - wrapper: ({ children }) => ( + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( , string>([ diff --git a/packages/core-app-api/src/routing/RoutingProvider.stable.test.tsx b/packages/core-app-api/src/routing/RoutingProvider.stable.test.tsx index 24101dcf06..84a33842c9 100644 --- a/packages/core-app-api/src/routing/RoutingProvider.stable.test.tsx +++ b/packages/core-app-api/src/routing/RoutingProvider.stable.test.tsx @@ -385,7 +385,7 @@ describe('v1 consumer', () => { initialProps: { routeRef: routeRef1 as AnyRouteRef, }, - wrapper: ({ children }) => ( + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( , string>([ diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index 8fb94136e0..b3a475f357 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/core-components +## 0.13.5-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/core-plugin-api@1.6.0-next.3 + - @backstage/errors@1.2.2-next.0 + - @backstage/theme@0.4.2-next.0 + - @backstage/version-bridge@1.0.5-next.0 + ## 0.13.5-next.2 ### Patch Changes diff --git a/packages/core-components/api-report.md b/packages/core-components/api-report.md index 54c26039a3..0aade4549e 100644 --- a/packages/core-components/api-report.md +++ b/packages/core-components/api-report.md @@ -347,10 +347,10 @@ export type EmptyStateImageClassKey = 'generalImg'; export const ErrorBoundary: ComponentClass; // @public (undocumented) -export type ErrorBoundaryProps = { +export type ErrorBoundaryProps = React_2.PropsWithChildren<{ slackChannel?: string | SlackChannel; onError?: (error: Error, errorInfo: string) => null; -}; +}>; // Warning: (ae-forgotten-export) The symbol "IErrorPageProps" needs to be exported by the entry point index.d.ts // diff --git a/packages/core-components/package.json b/packages/core-components/package.json index e2e534da56..31d0dfb005 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-components", "description": "Core components used by Backstage plugins and apps", - "version": "0.13.5-next.2", + "version": "0.13.5-next.3", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/core-components/src/components/Link/Link.test.tsx b/packages/core-components/src/components/Link/Link.test.tsx index 682c4bea8a..1e39d14009 100644 --- a/packages/core-components/src/components/Link/Link.test.tsx +++ b/packages/core-components/src/components/Link/Link.test.tsx @@ -134,7 +134,9 @@ describe('', () => { }); describe('useResolvedPath', () => { - const wrapper: WrapperComponent<{}> = ({ children }) => { + const wrapper: WrapperComponent> = ({ + children, + }) => { const configApi = new ConfigReader({ app: { baseUrl: 'http://localhost:3000/example' }, }); diff --git a/packages/core-components/src/components/LogViewer/useLogViewerSelection.test.tsx b/packages/core-components/src/components/LogViewer/useLogViewerSelection.test.tsx index 93a6dfd7e9..a828818ed5 100644 --- a/packages/core-components/src/components/LogViewer/useLogViewerSelection.test.tsx +++ b/packages/core-components/src/components/LogViewer/useLogViewerSelection.test.tsx @@ -40,7 +40,7 @@ const lines = [ describe('useLogViewerSelection', () => { it('should manage a selection', () => { const rendered = renderHook(() => useLogViewerSelection(lines), { - wrapper: ({ children }) => ( + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( {children} diff --git a/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.tsx b/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.tsx index 037e170640..0ecaedfc19 100644 --- a/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.tsx +++ b/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.tsx @@ -25,10 +25,10 @@ type SlackChannel = { }; /** @public */ -export type ErrorBoundaryProps = { +export type ErrorBoundaryProps = React.PropsWithChildren<{ slackChannel?: string | SlackChannel; onError?: (error: Error, errorInfo: string) => null; -}; +}>; type State = { error?: Error; diff --git a/packages/core-components/src/layout/HeaderLabel/HeaderLabel.tsx b/packages/core-components/src/layout/HeaderLabel/HeaderLabel.tsx index 0ea2e163a7..e6ca9b720e 100644 --- a/packages/core-components/src/layout/HeaderLabel/HeaderLabel.tsx +++ b/packages/core-components/src/layout/HeaderLabel/HeaderLabel.tsx @@ -18,7 +18,7 @@ import { BackstageTheme } from '@backstage/theme'; import Grid from '@material-ui/core/Grid'; import { alpha, makeStyles } from '@material-ui/core/styles'; import Typography from '@material-ui/core/Typography'; -import React from 'react'; +import React, { PropsWithChildren } from 'react'; import { Link } from '../../components/Link'; /** @public */ @@ -46,10 +46,10 @@ const useStyles = makeStyles( { name: 'BackstageHeaderLabel' }, ); -type HeaderLabelContentProps = { +type HeaderLabelContentProps = PropsWithChildren<{ value: React.ReactNode; className: string; -}; +}>; const HeaderLabelContent = ({ value, className }: HeaderLabelContentProps) => { return ( diff --git a/packages/core-components/src/layout/HeaderTabs/HeaderTabs.test.tsx b/packages/core-components/src/layout/HeaderTabs/HeaderTabs.test.tsx index a6bfc79040..ce5c572eef 100644 --- a/packages/core-components/src/layout/HeaderTabs/HeaderTabs.test.tsx +++ b/packages/core-components/src/layout/HeaderTabs/HeaderTabs.test.tsx @@ -55,18 +55,20 @@ describe('', () => { }, })); - const TextualBadge = React.forwardRef((props, ref) => ( - - - {props.children} - - - )); + const TextualBadge = React.forwardRef( + (props: React.PropsWithChildren<{}>, ref) => ( + + + {props.children} + + + ), + ); const iconTab = [ { id: 'icon-tab', diff --git a/packages/core-plugin-api/CHANGELOG.md b/packages/core-plugin-api/CHANGELOG.md index 33060653c1..306974dc8a 100644 --- a/packages/core-plugin-api/CHANGELOG.md +++ b/packages/core-plugin-api/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/core-plugin-api +## 1.6.0-next.3 + +### Patch Changes + +- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. +- Updated dependencies + - @backstage/config@1.1.0-next.2 + - @backstage/types@1.1.1-next.0 + - @backstage/version-bridge@1.0.5-next.0 + ## 1.6.0-next.2 ### Minor Changes diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index 38af96585c..300caa7ef0 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-plugin-api", "description": "Core API used by Backstage plugins", - "version": "1.6.0-next.2", + "version": "1.6.0-next.3", "publishConfig": { "access": "public" }, diff --git a/packages/core-plugin-api/src/extensions/PluginErrorBoundary.tsx b/packages/core-plugin-api/src/extensions/PluginErrorBoundary.tsx index 215ebc8470..51ddecdf71 100644 --- a/packages/core-plugin-api/src/extensions/PluginErrorBoundary.tsx +++ b/packages/core-plugin-api/src/extensions/PluginErrorBoundary.tsx @@ -18,10 +18,10 @@ import React from 'react'; import { AppContext } from '../app/types'; import { BackstagePlugin } from '../plugin'; -type Props = { +type Props = React.PropsWithChildren<{ app: AppContext; plugin: BackstagePlugin; -}; +}>; type State = { error: Error | undefined }; diff --git a/packages/core-plugin-api/src/plugin-options/usePluginOptions.test.tsx b/packages/core-plugin-api/src/plugin-options/usePluginOptions.test.tsx index 11bf85aafa..96691d503b 100644 --- a/packages/core-plugin-api/src/plugin-options/usePluginOptions.test.tsx +++ b/packages/core-plugin-api/src/plugin-options/usePluginOptions.test.tsx @@ -38,7 +38,7 @@ describe('usePluginOptions', () => { }); const rendered = renderHook(() => usePluginOptions(), { - wrapper: ({ children }) => ( + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( {children} ), }); diff --git a/packages/core-plugin-api/src/routing/useRouteRef.test.tsx b/packages/core-plugin-api/src/routing/useRouteRef.test.tsx index 618f40d281..7a03a1cdc4 100644 --- a/packages/core-plugin-api/src/routing/useRouteRef.test.tsx +++ b/packages/core-plugin-api/src/routing/useRouteRef.test.tsx @@ -36,7 +36,7 @@ describe('v1 consumer', () => { const routeRef = createRouteRef({ id: 'ref1' }); const renderedHook = renderHook(() => useRouteRef(routeRef), { - wrapper: ({ children }) => ( + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( ), }); @@ -60,7 +60,7 @@ describe('v1 consumer', () => { history.push('/my-page'); const { rerender } = renderHook(() => useRouteRef(routeRef), { - wrapper: ({ children }) => ( + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( { history.push('/my-page'); const { rerender } = renderHook(() => useRouteRef(routeRef), { - wrapper: ({ children }) => ( + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( { history.push('/my-page'); const { rerender } = renderHook(() => useRouteRef(routeRef), { - wrapper: ({ children }) => ( + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( { history.push('/my-page'); const { rerender } = renderHook(() => useRouteRef(routeRef), { - wrapper: ({ children }) => ( + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( import { BackstagePlugin } from '@backstage/frontend-plugin-api'; +import { ConfigApi } from '@backstage/core-plugin-api'; // @public (undocumented) -export function createApp(options: { plugins: BackstagePlugin[] }): { +export function createApp(options: { + plugins: BackstagePlugin[]; + config?: ConfigApi; +}): { createRoot(): JSX.Element; }; ``` diff --git a/packages/frontend-app-api/package.json b/packages/frontend-app-api/package.json index 451a1c0c5a..9e33a0a34a 100644 --- a/packages/frontend-app-api/package.json +++ b/packages/frontend-app-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-app-api", - "version": "0.0.0", + "version": "0.1.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,10 +34,13 @@ ], "dependencies": { "@backstage/config": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/core-components": "workspace:^", "@backstage/core-plugin-api": "workspace:^", "@backstage/frontend-plugin-api": "workspace:^", "@backstage/plugin-graphiql": "workspace:^", "@backstage/types": "workspace:^", + "@material-ui/core": "^4.12.4", "lodash": "^4.17.21" }, "peerDependencies": { diff --git a/packages/frontend-app-api/src/createApp.tsx b/packages/frontend-app-api/src/createApp.tsx deleted file mode 100644 index c50b507642..0000000000 --- a/packages/frontend-app-api/src/createApp.tsx +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright 2023 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 React from 'react'; -import { ConfigReader } from '@backstage/config'; -import { - BackstagePlugin, - coreExtensionData, -} from '@backstage/frontend-plugin-api'; -import { CoreRouter } from './extensions/CoreRouter'; -import { - createExtensionInstance, - ExtensionInstance, -} from './createExtensionInstance'; -import { - ExtensionInstanceParameters, - mergeExtensionParameters, - readAppExtensionParameters, -} from './wiring/parameters'; -import { RoutingProvider } from './routing/RoutingContext'; -import { RouteRef } from '@backstage/core-plugin-api'; -import { getAvailablePlugins } from './wiring/discovery'; - -/** @public */ -export function createApp(options: { plugins: BackstagePlugin[] }): { - createRoot(): JSX.Element; -} { - const appConfig = ConfigReader.fromConfigs(process.env.APP_CONFIG as any); - - const builtinExtensions = [CoreRouter]; - const discoveredPlugins = getAvailablePlugins(); - - // pull in default extension instance from discovered packages - // apply config to adjust default extension instances and add more - const extensionParams = mergeExtensionParameters({ - sources: [...options.plugins, ...discoveredPlugins], - builtinExtensions, - parameters: readAppExtensionParameters(appConfig), - }); - - // TODO: validate the config of all extension instances - // We do it at this point to ensure that merging (if any) of config has already happened - - // Create attachment map so that we can look attachments up during instance creation - const attachmentMap = new Map< - string, - Map - >(); - for (const instanceParams of extensionParams) { - const [extensionId, pointId = 'default'] = instanceParams.at.split('/'); - - let pointMap = attachmentMap.get(extensionId); - if (!pointMap) { - pointMap = new Map(); - attachmentMap.set(extensionId, pointMap); - } - - let instances = pointMap.get(pointId); - if (!instances) { - instances = []; - pointMap.set(pointId, instances); - } - - instances.push(instanceParams); - } - - const instances = new Map(); - - function createInstance( - instanceParams: ExtensionInstanceParameters, - ): ExtensionInstance { - const existingInstance = instances.get(instanceParams.extension.id); - if (existingInstance) { - return existingInstance; - } - - const attachments = new Map( - Array.from( - attachmentMap.get(instanceParams.extension.id)?.entries() ?? [], - ).map(([inputName, attachmentConfigs]) => [ - inputName, - attachmentConfigs.map(createInstance), - ]), - ); - - const newInstance = createExtensionInstance({ - extension: instanceParams.extension, - source: instanceParams.source, - config: instanceParams.config, - attachments, - }); - - instances.set(instanceParams.extension.id, newInstance); - - return newInstance; - } - - const rootConfigs = attachmentMap.get('root')?.get('default') ?? []; - const rootInstances = rootConfigs.map(instanceParams => - createInstance(instanceParams), - ); - - const routePaths = extractRouteInfoFromInstanceTree(rootInstances); - - return { - createRoot() { - const rootComponents = rootInstances.map( - e => - e.data.get( - coreExtensionData.reactComponent.id, - ) as typeof coreExtensionData.reactComponent.T, - ); - return ( - - {rootComponents.map((Component, i) => ( - - ))} - - ); - }, - }; -} - -/** @internal */ -export function extractRouteInfoFromInstanceTree( - roots: ExtensionInstance[], -): Map { - const results = new Map(); - - function visit(current: ExtensionInstance, basePath: string) { - const routePath = current.data.get(coreExtensionData.routePath.id) ?? ''; - const routeRef = current.data.get( - coreExtensionData.routeRef.id, - ) as RouteRef; - - // TODO: join paths in a more robust way - const fullPath = basePath + routePath; - if (routeRef) { - const routeRefId = (routeRef as any).id; // TODO: properly - if (routeRefId !== current.id) { - throw new Error( - `Route ref '${routeRefId}' must have the same ID as extension '${current.id}'`, - ); - } - results.set(routeRef, fullPath); - } - - for (const children of current.attachments.values()) { - for (const child of children) { - visit(child, fullPath); - } - } - } - - for (const root of roots) { - visit(root, ''); - } - return results; -} diff --git a/packages/frontend-app-api/src/extensions/Core.tsx b/packages/frontend-app-api/src/extensions/Core.tsx new file mode 100644 index 0000000000..cb93b2888f --- /dev/null +++ b/packages/frontend-app-api/src/extensions/Core.tsx @@ -0,0 +1,34 @@ +/* + * Copyright 2023 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 { + coreExtensionData, + createExtension, +} from '@backstage/frontend-plugin-api'; + +export const Core = createExtension({ + id: 'core', + at: 'root', + inputs: { + apis: { + extensionData: { + api: coreExtensionData.apiFactory, + }, + }, + }, + output: {}, + factory() {}, +}); diff --git a/packages/frontend-app-api/src/extensions/CoreLayout.tsx b/packages/frontend-app-api/src/extensions/CoreLayout.tsx new file mode 100644 index 0000000000..845bc8cf5b --- /dev/null +++ b/packages/frontend-app-api/src/extensions/CoreLayout.tsx @@ -0,0 +1,68 @@ +/* + * Copyright 2023 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 React from 'react'; +import { + createExtension, + coreExtensionData, +} from '@backstage/frontend-plugin-api'; +import { SidebarPage } from '@backstage/core-components'; + +export const CoreLayout = createExtension({ + id: 'core.layout', + at: 'root', + inputs: { + nav: { + extensionData: { + component: coreExtensionData.reactComponent, + }, + }, + content: { + extensionData: { + component: coreExtensionData.reactComponent, + }, + }, + }, + output: { + component: coreExtensionData.reactComponent, + }, + factory({ bind, inputs }) { + // TODO: Support this as part of the core system + if (inputs.nav.length !== 1) { + throw Error( + `Extension 'core.layout' did not receive exactly one 'nav' input, got ${inputs.nav.length}`, + ); + } + const Nav = inputs.nav[0].component; + + if (inputs.content.length !== 1) { + throw Error( + `Extension 'core.layout' did not receive exactly one 'content' input, got ${inputs.content.length}`, + ); + } + const Content = inputs.content[0].component; + + bind({ + // TODO: set base path using the logic from AppRouter + component: () => ( + +