17 KiB
Release v1.42.0-next.3
Upgrade Helper: https://backstage.github.io/upgrade-helper/?to=1.42.0-next.3
@backstage/cli@0.34.0-next.2
Minor Changes
-
923ceb2: BREAKING: The new app build based on Rspack is now the default, and theEXPERIMENTAL_RSPACKflag has been removed. To revert to the old behavior, set theLEGACY_WEBPACK_BUILDenvironment flag and install the following optional dependencies:{ "dependencies": { "@module-federation/enhanced": "^0.9.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7", "esbuild-loader": "^4.0.0", "eslint-webpack-plugin": "^4.2.0", "fork-ts-checker-webpack-plugin": "^9.0.0", "mini-css-extract-plugin": "^2.4.2", "terser-webpack-plugin": "^5.1.3", "webpack": "^5.96.0", "webpack-dev-server": "^5.0.0" } }If you do encounter a blocking issue that forces you to use the old WebPack build, please open an issue explaining the problem. The WebPack build will be removed in a future release.
-
eda80c7: BREAKING: Removed support for.icon.svgimports, which have been deprecated since the 1.19 release.
Patch Changes
8b1bf6e: Deprecated new frontend system config settingapp.experimental.packagesto justapp.packages. The old config will continue working for the time being, but may be removed in a future release.ead626f: The Node.js transform in@backstage/cli/config/nodeTransformHooks.mjsnow supports the built-in type stripping in Node.js, which is enabled by default from v22.18.0.
@backstage/frontend-app-api@0.12.0-next.3
Minor Changes
-
8e21c4d: Use an app plugin for built-in extension app node specs. -
8e21c4d: TheAppNodeSpec.pluginproperty is now required. -
5e12252: BREAKING: Restructured some of option fields ofcreateAppandcreateSpecializedApp.- For
createApp, all option fields exceptfeaturesandbindRouteshave been moved into a newadvancedobject field. - For
createSpecializedApp, all option fields exceptfeatures,config, andbindRouteshave been moved into a newadvancedobject field.
This helps highlight that some options are meant to rarely be needed or used, and simplifies the usage of those options that are almost always required.
As an example, if you used to supply a custom config loader, you would update your code as follows:
createApp({ features: [...], - configLoader: new MyCustomLoader(), + advanced: { + configLoader: new MyCustomLoader(), + }, }) - For
Patch Changes
f3f9d57: Renaming thegetNodesByRoutePathparameter fromsourcePathtoroutePath8b1bf6e: Deprecated new frontend system config settingapp.experimental.packagesto justapp.packages. The old config will continue working for the time being, but may be removed in a future release.fda1bbc: Added a default implementation of theSwappableComponentsApiand removing the legacyComponentsApiimplementation1c2cc37: Improved runtime error message clarity when extension factories don't return an iterable object.- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/frontend-defaults@0.3.0-next.3
@backstage/frontend-defaults@0.3.0-next.3
Minor Changes
-
5e12252: BREAKING: Restructured some of option fields ofcreateAppandcreateSpecializedApp.- For
createApp, all option fields exceptfeaturesandbindRouteshave been moved into a newadvancedobject field. - For
createSpecializedApp, all option fields exceptfeatures,config, andbindRouteshave been moved into a newadvancedobject field.
This helps highlight that some options are meant to rarely be needed or used, and simplifies the usage of those options that are almost always required.
As an example, if you used to supply a custom config loader, you would update your code as follows:
createApp({ features: [...], - configLoader: new MyCustomLoader(), + advanced: { + configLoader: new MyCustomLoader(), + }, }) - For
Patch Changes
8b1bf6e: Deprecated new frontend system config settingapp.experimental.packagesto justapp.packages. The old config will continue working for the time being, but may be removed in a future release.e5a0a99: BREAKING: TheloadingComponentoption has been renamed toloadingElement, which is now found underadvanced.loadingElement. The default loading element has also been switched to<Progress />from@backstage/core-components. This is of course an improvement over the previous"Loading..."text, but also helps prevent flicker when the app loading is fast.- Updated dependencies
- @backstage/plugin-app@0.2.0-next.2
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/frontend-app-api@0.12.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/frontend-plugin-api@0.11.0-next.2
Minor Changes
-
fda1bbc: BREAKING: The component system has been overhauled to useSwappableComponentinstead ofComponentRef. Several APIs have been removed and replaced:- Removed:
createComponentRef,createComponentExtension,ComponentRef,ComponentsApi,componentsApiRef,useComponentRef,coreComponentRefs - Added:
createSwappableComponent,SwappableComponentBlueprint,SwappableComponentRef,SwappableComponentsApi,swappableComponentsApiRef
BREAKING: The default
componentRefsand exportedCore*Propshave been removed and have replacementSwappableComponentsand revised type names instead.- The
errorBoundaryFallbackcomponent andCoreErrorBoundaryFallbackPropstype have been replaced withErrorDisplayswappable component andCoreErrorDisplayPropsrespectively. - The
progresscomponent andCoreProgressPropstype have been replaced withProgressswappable component andProgressPropsrespectively. - The
notFoundErrorPagecomponent andCoreNotFoundErrorPagePropstype have been replaced withNotFoundErrorPageswappable component andNotFoundErrorPagePropsrespectively.
Migration for creating swappable components:
// OLD: Using createComponentRef and createComponentExtension import { createComponentRef, createComponentExtension, } from '@backstage/frontend-plugin-api'; const myComponentRef = createComponentRef<{ title: string }>({ id: 'my-plugin.my-component', }); const myComponentExtension = createComponentExtension({ ref: myComponentRef, loader: { lazy: () => import('./MyComponent').then(m => m.MyComponent), }, }); // NEW: Using createSwappableComponent and SwappableComponentBlueprint import { createSwappableComponent, SwappableComponentBlueprint, } from '@backstage/frontend-plugin-api'; const MySwappableComponent = createSwappableComponent({ id: 'my-plugin.my-component', loader: () => import('./MyComponent').then(m => m.MyComponent), }); const myComponentExtension = SwappableComponentBlueprint.make({ name: 'my-component', params: { component: MySwappableComponent, loader: () => import('./MyComponent').then(m => m.MyComponent), }, });Migration for using components:
// OLD: Using ComponentsApi and useComponentRef import { useComponentRef, componentsApiRef, useApi, coreComponentRefs, } from '@backstage/frontend-plugin-api'; const MyComponent = useComponentRef(myComponentRef); const ProgressComponent = useComponentRef(coreComponentRefs.progress); - Removed:
// NEW: Direct component usage import { Progress } from '@backstage/frontend-plugin-api';
// Use directly as React Component
**Migration for core component references:**
```tsx
// OLD: Core component refs
import { coreComponentRefs } from '@backstage/frontend-plugin-api';
coreComponentRefs.progress
coreComponentRefs.notFoundErrorPage
coreComponentRefs.errorBoundaryFallback
// NEW: Direct swappable component imports
import { Progress, NotFoundErrorPage, ErrorDisplay } from '@backstage/frontend-plugin-api';
// Use directly as React components
<Progress />
<NotFoundErrorPage />
<ErrorDisplay plugin={plugin} error={error} resetError={resetError} />
6a75e00: BREAKING: Removed the deprecatedcreateFrontendPluginvariant where the plugin ID is passed via anidoption. To update existing code, switch to using thepluginIdoption instead.1e6410b: BREAKING: TheResolveInputValueOverridestype is no longer exported.
Patch Changes
9831f4e: Adjusted the dialog API types to have more sensible defaults1c2cc37: Improved runtime error message clarity when extension factories don't return an iterable object.24558f0: Added inline documentation forcreateExtension,createExtensionBlueprint,createFrontendPlugin, andcreateFrontendModule.- Updated dependencies
- @backstage/core-components@0.17.5-next.2
@backstage/ui@0.7.0-next.3
Minor Changes
0615e54: We are moving our DataTable component to React Aria. We removed our DataTable to only use Table as a single and opinionated option for tables. This new structure is made possible by using React Aria under the hood.
Patch Changes
230b410: Breaking change Move breadcrumb to fit in theHeaderPageinstead of theHeaderin Backstage UI.8bdc491: Remove stylesheet import from Select component.404b426: AddstartCollapsedprop on theSearchFieldcomponent in BUI.
@backstage/plugin-app@0.2.0-next.2
Minor Changes
-
fda1bbc: BREAKING: ThecomponentsApiimplementation has been removed from the plugin and replaced with the newSwappableComponentsApiinstead.If you were overriding the
componentsApiimplementation, you can now use the newSwappableComponentsApiinstead.// old appPlugin.getExtension('api:app/components').override(...) // new appPlugin.getExtension('api:app/swappable-components').override(...)
Patch Changes
-
91cbdf4: Log a warning whenSwappableComponentextensions are installed outside of using theappplugin -
fda1bbc: Default implementations of core components are now provided by this package.A backwards compatible
componentsApiimplementation is also provided from this package which uses theSwappableComponentsApias the implementation. This backwards compatible wrapper will be removed in the future. -
9831f4e: Adjusted the dialog API types to have more sensible defaults -
Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-kubernetes-backend@0.20.0-next.1
Minor Changes
-
759568d: BREAKING CHANGE: Removed support for the legacy backend system. This means that the deprecatedcreateRouterandKubernetesBuilderand related types have been removed. Please refer to the relevant documentation to configure the Kubernetes plugin.BREAKING CHANGE: The deprecated types
AuthenticationStrategy,AuthMetadata,ClusterDetails,CustomResource,CustomResourcesByEntity,FetchResponseWrapper,KubernetesBuilder,KubernetesBuilderReturn,KubernetesClustersSupplier,KubernetesCredential,KubernetesEnvironment,KubernetesFetcher,KubernetesObjectsProvider,KubernetesObjectTypes,KubernetesServiceLocator,ObjectFetchParams,ObjectToFetch,RouterOptionsandServiceLocatorRequestContextshould all now be imported from@backstage/plugin-kubernetes-node.
Patch Changes
- Updated dependencies
- @backstage/plugin-kubernetes-node@0.3.3-next.0
@backstage/plugin-scaffolder@1.34.0-next.3
Minor Changes
b1c0696: Add resizable panels width for the editor and preview panels in the template editor and template form playground layouts. Users can now resize these panels by dragging the divider between the two areas.
Patch Changes
- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-compat-api@0.5.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-scaffolder-backend@2.2.0-next.1
Minor Changes
2032660: Fixed fs:readdir action example11dc90f: Implement max length for scaffolder auditor audit logging with default of 256
Patch Changes
- Updated dependencies
- @backstage/backend-openapi-utils@0.6.0-next.1
- @backstage/plugin-scaffolder-backend-module-gitlab@0.9.4-next.1
- @backstage/plugin-scaffolder-backend-module-github@0.8.2-next.1
@backstage/backend-openapi-utils@0.6.0-next.1
Patch Changes
3760352: Updateexpress-openapi-validatorto 5.5.8 to fix security vulnerability in transitive dependencymulter
@backstage/core-compat-api@0.5.0-next.3
Patch Changes
fda1bbc: ThecompatWrapperhas been switched to use the newSwappableComponentsApiinstead of the oldComponentsApiin its bridging to the old frontend system.- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
@backstage/core-components@0.17.5-next.2
Patch Changes
77467bb: Updated dependencylinkifyjsto4.3.2.
@backstage/create-app@0.7.2-next.3
Patch Changes
8b1bf6e: Updated theapp.packagesconfig setting now that it no longer is experimental
@backstage/repo-tools@0.15.1-next.1
Patch Changes
33060b5: Removed build-in ignore of thepackages/canonpackage for knip reports.
@backstage/plugin-api-docs@0.12.10-next.3
Patch Changes
8b1bf6e: Updated README instructions for the new frontend system- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-compat-api@0.5.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-auth-backend-module-okta-provider@0.2.6-next.1
Patch Changes
94476d2: Updated dependency@davidzemon/passport-okta-oauthto^0.0.7.
@backstage/plugin-catalog-backend@3.0.1-next.1
Patch Changes
-
1752be6: Attempt to circumvent event listener memory leak in compression middleware -
9dd213c: Make the processing hash calculation not care about the order of the processors.This change does not affect the behavior of the catalog, but it will make the processing hash calculation more robust against changes in the order of processors. This should lead to more stable processing hashes, which in turn should lead to fewer unnecessary reprocessing of entities.
After deploying this fix, you may see a period of increased processing and stitching, but this should stabilize over time as the processing hashes become more consistent.
-
fa6fa60: Fixed getLocationByEntity to useoriginal_valueinstead ofvaluewhen querying search table -
Updated dependencies
- @backstage/backend-openapi-utils@0.6.0-next.1
@backstage/plugin-catalog-backend-module-github@0.10.2-next.1
Patch Changes
f6c64d1: Fix GitHub catalog entity provider branch matching on event processing.- Updated dependencies
- @backstage/plugin-catalog-backend@3.0.1-next.1
@backstage/plugin-catalog-graph@0.4.22-next.3
Patch Changes
8b1bf6e: Updated README instructions for the new frontend system- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-compat-api@0.5.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-events-backend-module-kafka@0.1.2-next.1
Patch Changes
0d38009: Remove luxon dependency and minor internal improvements
@backstage/plugin-kubernetes@0.12.10-next.3
Patch Changes
3025cf5: Removed the kubernetes content padding to avoid double padding on k8s entity page- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-compat-api@0.5.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-org@0.6.42-next.3
Patch Changes
8b1bf6e: Updated README instructions for the new frontend system- Updated dependencies
- @backstage/frontend-plugin-api@0.11.0-next.2
- @backstage/core-compat-api@0.5.0-next.3
- @backstage/core-components@0.17.5-next.2
@backstage/plugin-proxy-backend@0.6.5-next.1
Patch Changes
0810cd8: correct rewrite rule to avoid extra subpath in proxy path
@backstage/plugin-scaffolder-backend-module-github@0.8.2-next.1
Patch Changes
a22cce0: Fixed bug in thecustomPropertiestype which was preventing it being used to set a list of values against a key (e.g. for multi-select fields)
@backstage/plugin-scaffolder-backend-module-gitlab@0.9.4-next.1
Patch Changes
5bb870b: Show additional information about the cause in error messages from GitLab
example-backend@0.0.41-next.1
Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-backend@3.0.1-next.1
- @backstage/plugin-kubernetes-backend@0.20.0-next.1
- @backstage/plugin-scaffolder-backend@2.2.0-next.1
- @backstage/plugin-proxy-backend@0.6.5-next.1
- @backstage/plugin-scaffolder-backend-module-github@0.8.2-next.1