docs/releases/v1.19.0-changelog.md
8defbd5434: Update typescript-eslint to 6.7.x, adding compatibility with TypeScript 5.2.
This includes a major update on typescript-eslint, you can see the details in the release notes.
7077dbf131: BREAKING The new backend start command that used to be enabled by setting EXPERIMENTAL_BACKEND_START is now the default. To revert to the old behavior set LEGACY_BACKEND_START, which is recommended if you haven't migrated to the new backend system.
This new command is no longer based on Webpack, but instead uses Node.js loaders to transpile on the fly. Rather than hot reloading modules the entire backend is now restarted on change, but the SQLite database state is still maintained across restarts via a parent process.
9468a67b92: In frontend builds and tests process.env.HAS_REACT_DOM_CLIENT will now be defined if react-dom/client is present, i.e. if using React 18. This allows for conditional imports of react-dom/client.
68158034e8: Fix for the new backend start command to make it work on Windows.
4f16e60e6d: Request slightly smaller pages of data from GitHub
21cd3b1b24: Added a template for creating node-library packages with yarn new.
d0f26cfa4f: Fixed an issue where the new backend start command would not gracefully shut down the backend process on Windows.
1ea20b0be5: Updated dependency @typescript-eslint/eslint-plugin to 6.7.5.
2ef6522552: Support for the .icon.svg extension has been deprecated and will be removed in the future. The implementation of this extension is too tied to a particular version of MUI and the SVGO, and it makes it harder to evolve the build system. We may introduce the ability to reintroduce this kind of functionality in the future through configuration for use in internal plugins, but for now we're forced to remove it.
To migrate existing code, rename the .icon.svg file to .tsx and replace the <svg> element with <SvgIcon> from MUI and add necessary imports. For example:
import React from 'react';
import SvgIcon from '@material-ui/core/SvgIcon';
import { IconComponent } from '@backstage/core-plugin-api';
export const CodeSceneIcon = (props: SvgIconProps) => (
<SvgIcon {...props}>
<g>
<path d="..." />
</g>
</SvgIcon>
);
b9ec93430e: The scaffolder-module template now recommends usage of createMockDirectory instead of mock-fs.
de42eebaaf: Bumped dev dependencies @types/node and mock-fs.
425203f898: Fixed recursive reloading issues of the backend, caused by unwanted watched files.
3ef18f8c06: Explicitly set exports: 'named' for CJS builds, ensuring that they have e.g. exports["default"] = catalogPlugin;
7187f2953e: The experimental package discovery will now always use the package name for include and exclude filtering, rather than the full module id. Entries pointing to a subpath export will now instead have an export field specifying the subpath that the import is from.
Updated dependencies
RouteResolver (and therefore useRouteRef)AppRouter to determine the correct signOutTargetUrl if app.baseUrl contains a basePath<Suspense>, enabling support for using translations outside plugins.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.TranslationApi implementation where in some cases it wouldn't notify subscribers of language changes.__experimentalReconfigure() from the plugin options as well as the __experimentalConfigure() method on plugin instances have both been removed.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.useRouteRef.createApp config option has been replaced by a new configLoader option. There is now also a pluginLoader option that can be used to dynamically load plugins into the app.'root' extension has been removed and has instead been made an input of the 'core' extension. The checks for rejecting configuration of the 'root' extension to rejects configuration of the 'core' extension instead.ExtensionOverrides via createApp options. As part of this change the plugins option has been renamed to features, and the pluginLoader has been renamed to featureLoader.app.experimental.packages config at runtime.toString() and toJSON() for extension instances.bindRoutes option to createApp.@testing-library/jest-dom to ^6.0.0.at -> attachTo refactor.attachTo: { id, input } instead of at: 'id/input'.useRouteRef.SidebarGroup on the sidebar item extension.routes and externalRoutes when created.@testing-library/jest-dom to ^6.0.0.createExtensionOverrides which can be used to install a collection of extensions in an app that will replace any existing ones.createThemeExtension and coreExtensionData.theme.mkdocs.<yaml|yml> with the serve command using the --mkdocs-config-file-name` argument@types/node and mock-fs.gcpIapAuthenticator.initialize() is no longer async@backstage/plugin-auth-backend-module-microsoft-provider module package.ProxyAuthenticator.initialize() method is no longer async to match the way the OAuth equivalent is implemented.28f1ab2e1a: The catalog plugin no longer implements the experimental reconfiguration API. The create button title can now instead be configured using the new experimental internationalization API, via the catalogTranslationRef exported at /alpha. For example:
import { catalogTranslationRef } from '@backstage/plugin-catalog/alpha';
const app = createApp({
__experimentalTranslations: {
resources: [
createTranslationMessages({
ref: catalogTranslationRef,
catalog_page_create_button_title: 'Create Software',
}),
],
},
});
f3561a2935: include owner chip in catalog search result item
CatalogSearchResultItemExtension for declarative integration with Backstage; it can be accessed via the /alpha import.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0./alpha subpath.OpenTelemetryLocationEntityProcessor as deprecated, as it is no longer used internally since way back and can even be harmful at this point.catalogModuleGithubOrgEntityProvider to ingest users and teams from multiple Github organizations.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@kubernetes/client-node to 0.19.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.xterm-addon-attach to ^0.9.0.
Updated dependency xterm-addon-fit to ^0.8.0.ae943c3bb1: BREAKING Allow passing undefined labelSelector to KubernetesFetcher
KubernetesFetch no longer auto-adds labelSelector when empty string was passed.
This is only applicable if you have custom ObjectProvider implementation, as build-in KubernetesFanOutHandler already does this
KubernetesObjectsProviderExtensionPoint is present. The kubernetes-backend plugin was modified to use this new extension point.@kubernetes/client-node to 0.19.0.@kubernetes/client-node to 0.19.0.KubernetesObjectsProviderExtensionPoint is present. The kubernetes-backend plugin was modified to use this new extension point.@testing-library/jest-dom to ^6.0.0.d7eba6cab4: Changes in newrelic-dashboard plugin:
e605ea4906: Add storybook for newrelic-dashboard plugin.
@testing-library/jest-dom to ^6.0.0.EntityNewRelicDashboardCarddea0aafda7: Updated publish:gitlab action properties to support additional Gitlab project settings:
settings property)branches property)projectVariables property)Marked existed properties repoVisibility and topics as deprecated, as they are covered by settings property.
f41099bb31: Display meaningful error to the output if Gitlab namespace not found inside publish:gitlab.
github:issues:label scaffolder action & improve related testspublish:Azure scaffolder action./alpha subpath.TechDocsSearchResultItemExtension for declarative integration with Backstage; it can be accessed via the /alpha import.DocsTable to display pagination controls dynamically, appearing only when needed.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.createRoot API from react-dom/client will now be used if present.344cfbcfbc: Allow prepared directory clean up for custom preparers
When using custom preparer for TechDocs, the preparedDir might
end up taking disk space. This requires all custom preparers to
implement a new method shouldCleanPreparedDirectory which indicates
whether the prepared directory should be cleaned after generation.
344cfbcfbc: Allow prepared directory clean up for custom preparers
When using custom preparer for TechDocs, the preparedDir might
end up taking disk space. This requires all custom preparers to
implement a new method shouldCleanPreparedDirectory which indicates
whether the prepared directory should be cleaned after generation.
d06b30b050: Add possibility to use a mkdocs config file with a different name than mkdocs.<yaml|yml> with the serve command using the --mkdocs-config-file-name` argument
@testing-library/jest-dom to ^6.0.0.HostDiscovery from @backstage/backend-common.watch option to configuration loaders that can be used to disable file watching by setting it to false.HostDiscovery export has been deprecated, import it from @backstage/backend-app-api instead..readTree() responses.Git class. This is useful for scaffolder actions that want to take action based on tag versions in a cloned repository/testUtils entry point, with a utility for mocking resolve package paths as returned by resolvePackagePath.@kubernetes/client-node to 0.19.0.mock-fs dev dependency.useHotCleanup and useHotMemoize helpers are now deprecated, since hot module reloads for backend are being phased out.7c83975531: Adds new public utility types for common OpenAPI values, like request and response shapes and parameters available on an endpoint.
deprecated internal namespace
The internal namespace will continue to be exported but now uses OpenAPI format for path parameters. You should use the new utility types.
Updated dependencies
5db102bfdf: Instrument backend-tasks with some counters and histograms for duration.
backend_tasks.task.runs.count: Counter with the total number of times a task has been run.
backend_tasks.task.runs.duration: Histogram with the run durations for each task.
Both these metrics have come with result taskId and scope labels for finer grained grouping.
ddd76ac98d: Fix bug where backend tasks that are defined with HumanDuration are immediately triggered on application startup
Updated dependencies
createMockDirectory() to help out with file system mocking in tests.MockInstance, in order to be compatible with older versions of @types/jest.HostDiscovery from @backstage/backend-app-api.@types/node and mock-fs.@types/node and mock-fs.typescript-json-schema to ^0.61.0.FileConfigSource will now retry file reading after a short delay if it reads an empty file. This is to avoid flakiness during watch mode where change events can trigger before the file content has been written.watch option to configuration loaders that can be used to disable file watching by setting it to false.TabbedLayout component will now also navigate when clicking the active tab, which allows for navigation back from any sub routes.WarningPanel.DependencyGraphProps, the defs prop now expects JSX.Elements.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.ba6a3b59c1: Removed duplicate apple-touch-icon link from packages/app/public/index.html that linked to nonexistent icon.
c8ec0dea4a: Create unique temp directory for each create-app execution.
e43d3eb1b7: Bumped create-app version.
b665f2ce65: Change base node image from node:18-bullseye-slim to node:18-bookworm-slim due to Docker build error on bullseye.
You can apply these change to your own Dockerfile by replacing node:18-bullseye-slim with node:18-bookworm-slim
deed089a3d: Bump cypress to fix the end-to-end tests
de42eebaaf: Bumped dev dependencies @types/node and mock-fs.
04a3f65e15: Bump Docker base images to node:18-bookworm-slim to fix node compatibility issues raised during image build.
You can apply these change to your own Dockerfile by replacing node:16-bullseye-slim with node:18-bookworm-slim
9864f263ba: Bump dev dependencies [email protected] on the template
5eacd5d213: The E2E test setup based on Cypress has been replaced with one based on Playwright. Migrating existing apps is not required as this is a standalone setup, only do so if you also want to switch from Cypress to Playwright.
The scripts to run the E2E tests have been removed from packages/app/package.json, as they are now instead run from the root. Instead, a new script has been added to the root package.json, yarn test:e2e, which runs the E2E tests in development mode, unless CI is set in the environment.
The Playwright setup uses utilities from the new @backstage/e2e-test-utils package to find and include all packages in the monorepo that have an e2e-tests folder.
8d2e640af4: Added missing .eslintignore file
To apply this change to an existing app, create a new .eslintignore file at the root of your project with the following content:
+ playwright.config.ts
Updated dependencies
dependencies to devDependencies@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.createRoot API from react-dom/client will now be used if present.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@types/node and mock-fs.MockPluginProvider export since the plugin configuration API has been removed.@testing-library/jest-dom to ^6.0.0.fontSize values (e.g. "2.5rem") in themes in addition to numbers. Also added an optional fontFamily prop for header typography variants to allow further customization.@testing-library/jest-dom to ^6.0.0.AdrSearchResultListItem@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.AdrSearchResultItemExtension for declarative integration with Backstage; it can be accessed via the /alpha import.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.requestInterceptor option to api-docs and pass it to SwaggerUI. This will enable to configure a proxy or headers to be sent to all the request made through the Try it out button on SwaggerUI.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@backstage/plugin-auth-backend-module-microsoft-provider module package.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.defaultUserTransformer resolve to UserEntity instead of EntitycatalogModuleGithubOrgEntityProvider. Import from @backstage/plugin-catalog-backend-module-github-org instead.4f70fdfc93: fix: use REST API to get root group memberships for GitLab SaaS users listing
This API is the only one that shows email field for enterprise users and
allows to filter out bot users not using a license using the is_using_seat
field.
We also added the annotation gitlab.com/saml-external-uid taking the value
of group_saml_identity.extern_uid of the groups/:group-id/members endpoint
response. This is useful in case you want to create a SignInResolver that
references the user with the id of your identity provider (e.g. OneLogin).
ref:
https://docs.gitlab.com/ee/user/enterprise_user/#get-users-email-addresses-through-the-api https://docs.gitlab.com/ee/api/members.html#limitations
890e3b5ad4: Make sure to include the error message when ingestion fails
0b55f773a7: Removed some unused dependencies
6ae7f12abb: Make sure the archived projects are skipped with the Gitlab API
Updated dependencies
@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.app.title configuration is now properly required to be a string.processingResultEntityPage to show an error for entities containing special characters@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.spec.type field in entities will now always be rendered as a string.@testing-library/jest-dom to ^6.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0..icon.svg extension.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@types/pluralize to ^0.0.31.costInsights.hideTrendLine to true in the configuration.@testing-library/jest-dom to ^6.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.ExploreSearchResultItemExtension for declarative integration with Backstage; it can be accessed via the /alpha import.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0..icon.svg extension./alpha exports to use new attachTo option.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0..icon.svg extension.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.RepoUrlPickerRepoName now correctly handles value changes in allowed repos.@types/node and mock-fs.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0./alpha subpath.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.search.maxTermLength in the config file./alpha exports to use new attachTo option.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.SearchResultGroupLayout are now always explicitly rendered as strings by default.createSearchResultListItem alpha version that only supports declarative integration.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.ScorecardInfo and ScorecardsList components to be able to use manually queried check results directly.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0./alpha subpath.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.@testing-library/jest-dom to ^6.0.0.@testing-library/dom to ^9.0.0.