docs/releases/v1.9.0-next.4-changelog.md
736f893f72: The Jest configuration that was previously enabled with BACKSTAGE_NEXT_TESTS is now enabled by default. To revert to the old configuration you can now instead set BACKSTAGE_OLD_TESTS.
This new configuration uses the babel coverage provider rather than v8. It used to be that v8 worked better when using Sucrase for transpilation, but now that we have switched to SWC, babel seems to work better. In addition, the new configuration also enables source maps by default, as they no longer have a negative impact on code coverage accuracy, and it also enables a modified Jest runtime with additional caching of script objects.
zod dependency to a version that does not collide with other librariesesbuild to ^0.16.0.e0d9c9559a: Added a new AppRouter component and app.createRoot() method that replaces app.getRouter() and app.getProvider(), which are now deprecated. The new AppRouter component is a drop-in replacement for the old router component, while the new app.createRoot() method is used instead of the old provider component.
An old app setup might look like this:
const app = createApp(/* ... */);
const AppProvider = app.getProvider();
const AppRouter = app.getRouter();
const routes = ...;
const App = () => (
<AppProvider>
<AlertDisplay />
<OAuthRequestDialog />
<AppRouter>
<Root>{routes}</Root>
</AppRouter>
</AppProvider>
);
export default App;
With these new APIs, the setup now looks like this:
import { AppRouter } from '@backstage/core-app-api';
const app = createApp(/* ... */);
const routes = ...;
export default app.createRoot(
<>
<AlertDisplay />
<OAuthRequestDialog />
<AppRouter>
<Root>{routes}</Root>
</AppRouter>
</>,
);
Note that app.createRoot() accepts a React element, rather than a component.
zod dependency to a version that does not collide with other librariesRepoUrlPicker field extension now has an allowedProjects option for narrowing the selection of Bitbucket URLs.zod dependency to a version that does not collide with other librariesreact-router-dom rather than react-router.github:publish action to allow passing wether to dismiss stale reviews on the protected default branch.zod dependency to a version that does not collide with other librariesesbuild to ^0.16.0.accountId to the configuration options of the AWS S3 publisher. Configuring this option will source credentials for the accountId in the aws app config section. See https://github.com/backstage/backstage/blob/master/packages/integration-aws-node/README.md for more details.react-router-dom rather than react-router.GitlabUrlReader.readTree bug when there were no matching commitszod dependency to a version that does not collide with other librarieszod dependency to a version that does not collide with other librariesreact-router-dom rather than react-router.<ProxiedSignInPage />, which are passed along with the request to the underlying provider935b66a646: Change step output template examples to use square bracket syntax.
dfb269fab2: Updated the template to have the '/test' proxy endpoint in app-config.yaml be commented out by default.
d9b3753f87: Updated the app template to use the new AppRouter component instead of app.getRouter(), as well as app.createRoot() instead of app.getProvider().
To apply this change to an existing app, make the following change to packages/app/src/App.tsx:
-import { FlatRoutes } from '@backstage/core-app-api';
+import { AppRouter, FlatRoutes } from '@backstage/core-app-api';
...
-const AppProvider = app.getProvider();
-const AppRouter = app.getRouter();
...
-const App = () => (
+export default app.createRoot(
- <AppProvider>
+ <>
<AlertDisplay />
<OAuthRequestDialog />
<AppRouter>
<Root>{routes}</Root>
</AppRouter>
- </AppProvider>
+ </>,
);
The final export step should end up looking something like this:
export default app.createRoot(
<>
<AlertDisplay />
<OAuthRequestDialog />
<AppRouter>
<Root>{routes}</Root>
</AppRouter>
</>,
);
Note that app.createRoot() accepts a React element, rather than a component.
71e75c0b70: Removed the react-router dependency from the app package, using only react-router-dom instead.
This change is just a bit of cleanup and is optional. If you want to apply it to your app, remove the react-router dependency from packages/app/package.json, and replace any imports from react-router with react-router-dom instead.
Updated dependencies
react-router-dom rather than react-router.a8611bcac4: Add new command options to the api-report
--allow-warnings, -a to continue processing packages if selected packages have warnings--allow-all-warnings to continue processing packages any packages have warnings--omit-messages, -o to pass some warnings messages code to be omitted from the api-report.md filespaths argument for this command now takes as default the value on workspaces.packages inside the root package.json@backstage/cli-common packages insteadUpdated dependencies
react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.catalog.rules[].location configuration that makes it possible to configure catalog rules to only apply to specific locations, either via exact match or a glob pattern.zod dependency to a version that does not collide with other librariesreact-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.caFile property.react-router-dom rather than react-router.zod dependency to a version that does not collide with other librarieszod dependency to a version that does not collide with other librarieszod dependency to a version that does not collide with other librariesreact-router-dom rather than react-router.react-router-dom rather than react-router.zod dependency to a version that does not collide with other librariesreact-router-dom rather than react-router.react-router-dom rather than react-router.zod dependency to a version that does not collide with other librariesreact-router-dom rather than react-router.react-router-dom rather than react-router.react-router-dom rather than react-router.<StackOverflowSearchResultListItem /> component is now able to highlight the result title and/or text when provided. To take advantage of this, pass in the highlight prop, similar to how it is done on other result list item components.react-router-dom rather than react-router.aws app config section. This is now the preferred way to configure AWS credentials for Techdocs.react-router-dom rather than react-router.react-router-dom rather than react-router.