From 2032660f51abe1727d096a309818fa223776f084 Mon Sep 17 00:00:00 2001 From: Shamil Ganiev Date: Wed, 23 Jul 2025 16:11:18 +0300 Subject: [PATCH 01/13] bugfix: Fixed fs:readdir action example Signed-off-by: Shamil Ganiev --- .changeset/great-hounds-fix.md | 5 +++++ .../src/scaffolder/actions/builtin/filesystem/read.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/great-hounds-fix.md diff --git a/.changeset/great-hounds-fix.md b/.changeset/great-hounds-fix.md new file mode 100644 index 0000000000..a7cc488ecb --- /dev/null +++ b/.changeset/great-hounds-fix.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Fixed fs:readdir action example diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/read.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/read.ts index c41e6f1aac..62d3bde0df 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/read.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/read.ts @@ -18,7 +18,7 @@ import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; import fs from 'fs/promises'; import path from 'path'; import { z as zod } from 'zod'; -import { examples } from './rename.examples'; +import { examples } from './read.examples'; const contentSchema = (z: typeof zod) => z.object({ From cdb683f4d8cd807bb2cfbcf5d71317a1728702a7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 5 Aug 2025 10:44:29 +0200 Subject: [PATCH 02/13] docs/adrs: adr 15 for loader structure Signed-off-by: Patrik Oldsberg --- .../adr015-jsx-loader-structure.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs/architecture-decisions/adr015-jsx-loader-structure.md diff --git a/docs/architecture-decisions/adr015-jsx-loader-structure.md b/docs/architecture-decisions/adr015-jsx-loader-structure.md new file mode 100644 index 0000000000..0a9a5e6c55 --- /dev/null +++ b/docs/architecture-decisions/adr015-jsx-loader-structure.md @@ -0,0 +1,69 @@ +--- +id: adrs-adr015 +title: 'ADR015: Types and naming for element and component options' +description: Architecture Decision Record (ADR) for the proper types and naming for element and component options +--- + +## Context + +Until now there hasn't been a clear standard for how to define options that are intended to provide JSX elements or components. This led to a mix of different patterns in public APIs, which this ADR aims to standardize. + +## Decision + +We will use one of the following option property names and types when defining options that are intended to provide JSX elements or components: + +### Simple element + +This option is used when a simple synchronous JSX element is provided. It must only be used in areas where lazy-loading is not needed. + +```tsx +{ + element: JSX.Element; +} +``` + +### Simple component + +This option is used when a simple synchronous component is provided. It must only be used in areas where lazy-loading is not needed. + +```tsx +{ + component: (props: { ... }) => JSX.Element | null +} +``` + +### Async element loader + +This option is used when a simple asynchronous JSX element is provided. It is the preferred option when only producing a single instance and there is no need to pass properties to the component. This format simplifies the creation of closures for passing additional properties in the loader implementation. + +```tsx +{ + loader: () => Promise; +} +``` + +### Async component loader + +This option is used when a simple asynchronous component is provided. It is the preferred option when properties need to be passed to the component or multiple instance are needed, and lazy-loading is required. + +```tsx +{ + loader: () => Promise<(props: { ... }) => JSX.Element | null> +} +``` + +### Any component loader + +This option is used in the same cases as the async component loader, but when the option of synchronous loading is also needed. The structure of always having the outer loader function, even in the synchronous case, makes it possible to determine the type of the loader at runtime. + +```tsx +{ + loader: (() => props => JSX.Element | null) | (() => Promise JSX.Element | null>) +} +``` + +## Consequences + +We will update all APIs for the new frontend system in the `@backstage/frontend-*` packages. + +We will not update any of the existing APIs for the old frontend system in the `@backstage/core-*` packages. From f42780b53d06fb05b3a2811228b7086b2139f858 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Aug 2025 10:10:38 +0000 Subject: [PATCH 03/13] build(deps-dev): bump axios from 1.10.0 to 1.11.0 Bumps [axios](https://github.com/axios/axios) from 1.10.0 to 1.11.0. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.10.0...v1.11.0) --- updated-dependencies: - dependency-name: axios dependency-version: 1.11.0 dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- yarn.lock | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6406888cf5..a9ab82dd24 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25698,13 +25698,13 @@ __metadata: linkType: hard "axios@npm:^1.0.0, axios@npm:^1.6.0, axios@npm:^1.7.4, axios@npm:^1.7.7, axios@npm:^1.8.3": - version: 1.10.0 - resolution: "axios@npm:1.10.0" + version: 1.11.0 + resolution: "axios@npm:1.11.0" dependencies: follow-redirects: "npm:^1.15.6" - form-data: "npm:^4.0.0" + form-data: "npm:^4.0.4" proxy-from-env: "npm:^1.1.0" - checksum: 10/d43c80316a45611fd395743e15d16ea69a95f2b7f7095f2bb12cb78f9ca0a905194a02e52a3bf4e0db9f85fd1186d6c690410644c10ecd8bb0a468e57c2040e4 + checksum: 10/232df4af7a4e4e07baa84621b9cc4b0c518a757b4eacc7f635c0eb3642cb98dff347326739f24b891b3b4481b7b838c79a3a0c4819c9fbc1fc40232431b9c5dc languageName: node linkType: hard @@ -30343,6 +30343,18 @@ __metadata: languageName: node linkType: hard +"es-set-tostringtag@npm:^2.1.0": + version: 2.1.0 + resolution: "es-set-tostringtag@npm:2.1.0" + dependencies: + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10/86814bf8afbcd8966653f731415888019d4bc4aca6b6c354132a7a75bb87566751e320369654a101d23a91c87a85c79b178bcf40332839bd347aff437c4fb65f + languageName: node + linkType: hard + "es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": version: 1.0.2 resolution: "es-shim-unscopables@npm:1.0.2" @@ -32443,6 +32455,19 @@ __metadata: languageName: node linkType: hard +"form-data@npm:^4.0.4": + version: 4.0.4 + resolution: "form-data@npm:4.0.4" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + es-set-tostringtag: "npm:^2.1.0" + hasown: "npm:^2.0.2" + mime-types: "npm:^2.1.12" + checksum: 10/a4b62e21932f48702bc468cc26fb276d186e6b07b557e3dd7cc455872bdbb82db7db066844a64ad3cf40eaf3a753c830538183570462d3649fdfd705601cbcfb + languageName: node + linkType: hard + "form-data@npm:~2.3.2": version: 2.3.3 resolution: "form-data@npm:2.3.3" From 10ab0e3423c2bc0da08c75f8ecddf5e93621ed95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 6 Aug 2025 15:49:23 +0200 Subject: [PATCH 04/13] dedupe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- packages/app/package.json | 2 +- yarn.lock | 29 ++--------------------------- 2 files changed, 3 insertions(+), 28 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index 7991c0f9a6..6ef4a0c14a 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -94,7 +94,7 @@ "@types/react": "*", "@types/react-dom": "*", "@types/zen-observable": "^0.8.0", - "axios": "^1.7.7", + "axios": "^1.11.0", "cross-env": "^7.0.0", "msw": "^1.0.0" }, diff --git a/yarn.lock b/yarn.lock index a9ab82dd24..6676501e49 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25697,7 +25697,7 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.0.0, axios@npm:^1.6.0, axios@npm:^1.7.4, axios@npm:^1.7.7, axios@npm:^1.8.3": +"axios@npm:^1.0.0, axios@npm:^1.11.0, axios@npm:^1.6.0, axios@npm:^1.7.4, axios@npm:^1.8.3": version: 1.11.0 resolution: "axios@npm:1.11.0" dependencies: @@ -30343,18 +30343,6 @@ __metadata: languageName: node linkType: hard -"es-set-tostringtag@npm:^2.1.0": - version: 2.1.0 - resolution: "es-set-tostringtag@npm:2.1.0" - dependencies: - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.6" - has-tostringtag: "npm:^1.0.2" - hasown: "npm:^2.0.2" - checksum: 10/86814bf8afbcd8966653f731415888019d4bc4aca6b6c354132a7a75bb87566751e320369654a101d23a91c87a85c79b178bcf40332839bd347aff437c4fb65f - languageName: node - linkType: hard - "es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": version: 1.0.2 resolution: "es-shim-unscopables@npm:1.0.2" @@ -31362,7 +31350,7 @@ __metadata: "@types/react": "npm:*" "@types/react-dom": "npm:*" "@types/zen-observable": "npm:^0.8.0" - axios: "npm:^1.7.7" + axios: "npm:^1.11.0" cross-env: "npm:^7.0.0" history: "npm:^5.0.0" msw: "npm:^1.0.0" @@ -32455,19 +32443,6 @@ __metadata: languageName: node linkType: hard -"form-data@npm:^4.0.4": - version: 4.0.4 - resolution: "form-data@npm:4.0.4" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.8" - es-set-tostringtag: "npm:^2.1.0" - hasown: "npm:^2.0.2" - mime-types: "npm:^2.1.12" - checksum: 10/a4b62e21932f48702bc468cc26fb276d186e6b07b557e3dd7cc455872bdbb82db7db066844a64ad3cf40eaf3a753c830538183570462d3649fdfd705601cbcfb - languageName: node - linkType: hard - "form-data@npm:~2.3.2": version: 2.3.3 resolution: "form-data@npm:2.3.3" From a25a22b0e13a2e00861ca140c4cd53c044adf762 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 7 Aug 2025 11:20:25 +0200 Subject: [PATCH 05/13] update knip reports Signed-off-by: Patrik Oldsberg --- packages/app-next/knip-report.md | 6 +---- .../knip-report.md | 17 +++++++++---- packages/cli/knip-report.md | 4 +--- packages/frontend-defaults/knip-report.md | 6 +++++ .../knip-report.md | 6 +++++ packages/frontend-internal/knip-report.md | 3 +-- packages/repo-tools/knip-report.md | 3 +-- packages/ui/knip-report.md | 20 ++++++++++++++++ .../knip-report.md | 3 ++- .../knip-report.md | 6 +++++ .../knip-report.md | 6 +++++ .../knip-report.md | 6 +++++ .../knip-report.md | 2 ++ .../knip-report.md | 3 ++- plugins/devtools-backend/knip-report.md | 11 +++++---- .../knip-report.md | 2 ++ .../knip-report.md | 2 ++ .../knip-report.md | 2 ++ plugins/gateway-backend/knip-report.md | 2 ++ plugins/kubernetes-node/knip-report.md | 6 +++++ plugins/kubernetes/knip-report.md | 6 ++--- plugins/mcp-actions-backend/knip-report.md | 9 +++++++ .../knip-report.md | 17 +++++++++++++ .../knip-report.md | 6 +++++ .../knip-report.md | 6 ----- plugins/scaffolder-backend/knip-report.md | 24 +++++++++++++------ plugins/techdocs-backend/knip-report.md | 10 ++++++++ 27 files changed, 155 insertions(+), 39 deletions(-) create mode 100644 packages/ui/knip-report.md create mode 100644 plugins/catalog-backend-module-gitea/knip-report.md create mode 100644 plugins/events-backend-module-bitbucket-server/knip-report.md create mode 100644 plugins/events-backend-module-google-pubsub/knip-report.md create mode 100644 plugins/events-backend-module-kafka/knip-report.md create mode 100644 plugins/gateway-backend/knip-report.md create mode 100644 plugins/mcp-actions-backend/knip-report.md create mode 100644 plugins/notifications-backend-module-slack/knip-report.md diff --git a/packages/app-next/knip-report.md b/packages/app-next/knip-report.md index c30e426318..de7de83ffc 100644 --- a/packages/app-next/knip-report.md +++ b/packages/app-next/knip-report.md @@ -1,6 +1,6 @@ # Knip report -## Unused dependencies (30) +## Unused dependencies (26) | Name | Location | Severity | | :----------------------------------------------- | :----------- | :------- | @@ -12,19 +12,15 @@ | @backstage/plugin-catalog-common | package.json | error | | @backstage/plugin-techdocs-react | package.json | error | | @backstage/plugin-catalog-graph | package.json | error | -| @backstage/plugin-notifications | package.json | error | | @backstage/plugin-search-common | package.json | error | | @backstage/plugin-search-react | package.json | error | | @backstage/integration-react | package.json | error | | @backstage/plugin-auth-react | package.json | error | | @backstage/plugin-scaffolder | package.json | error | -| @backstage/frontend-app-api | package.json | error | | @backstage/core-plugin-api | package.json | error | | @backstage/plugin-api-docs | package.json | error | | @backstage/plugin-catalog | package.json | error | | @backstage/plugin-signals | package.json | error | -| @backstage/catalog-model | package.json | error | -| @backstage/plugin-search | package.json | error | | @backstage/app-defaults | package.json | error | | @backstage/plugin-app | package.json | error | | @backstage/plugin-org | package.json | error | diff --git a/packages/backend-dynamic-feature-service/knip-report.md b/packages/backend-dynamic-feature-service/knip-report.md index 79f2435433..55e3fd302b 100644 --- a/packages/backend-dynamic-feature-service/knip-report.md +++ b/packages/backend-dynamic-feature-service/knip-report.md @@ -1,8 +1,17 @@ # Knip report -## Unused dependencies (1) +## Unused dependencies (10) -| Name | Location | Severity | -| :------------------------------ | :----------- | :------- | -| @backstage/plugin-search-common | package.json | error | +| Name | Location | Severity | +| :------------------------------------ | :----------- | :------- | +| @backstage/plugin-search-backend-node | package.json | error | +| @backstage/plugin-permission-common | package.json | error | +| @backstage/plugin-catalog-backend | package.json | error | +| @backstage/plugin-permission-node | package.json | error | +| @backstage/plugin-scaffolder-node | package.json | error | +| @backstage/plugin-events-backend | package.json | error | +| @backstage/plugin-search-common | package.json | error | +| @backstage/plugin-events-node | package.json | error | +| @backstage/plugin-auth-node | package.json | error | +| express-promise-router | package.json | error | diff --git a/packages/cli/knip-report.md b/packages/cli/knip-report.md index 4ef7b79b0f..7cee24e00c 100644 --- a/packages/cli/knip-report.md +++ b/packages/cli/knip-report.md @@ -59,12 +59,10 @@ | @rspack/dev-server | package.json | error | | @rspack/core | package.json | error | -## Unlisted dependencies (4) +## Unlisted dependencies (2) | Name | Location | Severity | | :-------- | :------------------------------------------------- | :------- | | react-dom | src/modules/build/lib/bundler/hasReactDomClient.ts | error | -| react-dom | src/modules/build/lib/bundler/config.ts | error | -| react | src/modules/build/lib/bundler/config.ts | error | | react | src/modules/build/lib/bundler/server.ts | error | diff --git a/packages/frontend-defaults/knip-report.md b/packages/frontend-defaults/knip-report.md index 2661c35327..e6696c0d8d 100644 --- a/packages/frontend-defaults/knip-report.md +++ b/packages/frontend-defaults/knip-report.md @@ -1,2 +1,8 @@ # Knip report +## Unused dependencies (1) + +| Name | Location | Severity | +| :--------------- | :----------- | :------- | +| @react-hookz/web | package.json | error | + diff --git a/packages/frontend-dynamic-feature-loader/knip-report.md b/packages/frontend-dynamic-feature-loader/knip-report.md index 2661c35327..3d019810db 100644 --- a/packages/frontend-dynamic-feature-loader/knip-report.md +++ b/packages/frontend-dynamic-feature-loader/knip-report.md @@ -1,2 +1,8 @@ # Knip report +## Unused dependencies (1) + +| Name | Location | Severity | +| :---------------- | :----------- | :------- | +| @backstage/config | package.json | error | + diff --git a/packages/frontend-internal/knip-report.md b/packages/frontend-internal/knip-report.md index d5272513d9..edbbb970ac 100644 --- a/packages/frontend-internal/knip-report.md +++ b/packages/frontend-internal/knip-report.md @@ -1,11 +1,10 @@ # Knip report -## Unused dependencies (3) +## Unused dependencies (2) | Name | Location | Severity | | :------------------------ | :----------- | :------- | | @backstage/version-bridge | package.json | error | -| @backstage/types | package.json | error | | zod | package.json | error | ## Unused devDependencies (5) diff --git a/packages/repo-tools/knip-report.md b/packages/repo-tools/knip-report.md index 5eec8fdd29..02f92286c1 100644 --- a/packages/repo-tools/knip-report.md +++ b/packages/repo-tools/knip-report.md @@ -1,6 +1,6 @@ # Knip report -## Unused dependencies (5) +## Unused dependencies (4) | Name | Location | Severity | | :---------------------------------- | :----------- | :------- | @@ -8,7 +8,6 @@ | @stoplight/spectral-runtime | package.json | error | | @electric-sql/pglite | package.json | error | | is-glob | package.json | error | -| glob | package.json | error | ## Unused devDependencies (2) diff --git a/packages/ui/knip-report.md b/packages/ui/knip-report.md new file mode 100644 index 0000000000..c242c05e3f --- /dev/null +++ b/packages/ui/knip-report.md @@ -0,0 +1,20 @@ +# Knip report + +## Unused devDependencies (5) + +| Name | Location | Severity | +| :------------------------------- | :----------- | :------- | +| @storybook/addon-styling-webpack | package.json | error | +| mini-css-extract-plugin | package.json | error | +| @storybook/blocks | package.json | error | +| globals | package.json | error | +| glob | package.json | error | + +## Unlisted dependencies (3) + +| Name | Location | Severity | +| :--------------------- | :----------------------------------------- | :------- | +| @react-types/overlays | src/components/Tooltip/Tooltip.stories.tsx | error | +| react-aria | src/components/Menu/Combobox.tsx | error | +| @storybook/preview-api | .storybook/preview.tsx | error | + diff --git a/plugins/auth-backend-module-oidc-provider/knip-report.md b/plugins/auth-backend-module-oidc-provider/knip-report.md index 0d36158781..a7256f0ead 100644 --- a/plugins/auth-backend-module-oidc-provider/knip-report.md +++ b/plugins/auth-backend-module-oidc-provider/knip-report.md @@ -1,10 +1,11 @@ # Knip report -## Unused dependencies (1) +## Unused dependencies (2) | Name | Location | Severity | | :------- | :----------- | :------- | | passport | package.json | error | +| zod | package.json | error | ## Unused devDependencies (3) diff --git a/plugins/auth-backend-module-okta-provider/knip-report.md b/plugins/auth-backend-module-okta-provider/knip-report.md index 6624c86073..e761ead581 100644 --- a/plugins/auth-backend-module-okta-provider/knip-report.md +++ b/plugins/auth-backend-module-okta-provider/knip-report.md @@ -7,3 +7,9 @@ | passport | package.json | error | | express | package.json | error | +## Unlisted dependencies (1) + +| Name | Location | Severity | +| :-------------- | :------------- | :------- | +| passport-oauth2 | src/types.d.ts | error | + diff --git a/plugins/catalog-backend-module-bitbucket-cloud/knip-report.md b/plugins/catalog-backend-module-bitbucket-cloud/knip-report.md index cb5315967a..12b22ec44f 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/knip-report.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/knip-report.md @@ -1,5 +1,11 @@ # Knip report +## Unused dependencies (1) + +| Name | Location | Severity | +| :------------------------ | :----------- | :------- | +| @backstage/catalog-client | package.json | error | + ## Unused devDependencies (1) | Name | Location | Severity | diff --git a/plugins/catalog-backend-module-bitbucket-server/knip-report.md b/plugins/catalog-backend-module-bitbucket-server/knip-report.md index cb5315967a..12b22ec44f 100644 --- a/plugins/catalog-backend-module-bitbucket-server/knip-report.md +++ b/plugins/catalog-backend-module-bitbucket-server/knip-report.md @@ -1,5 +1,11 @@ # Knip report +## Unused dependencies (1) + +| Name | Location | Severity | +| :------------------------ | :----------- | :------- | +| @backstage/catalog-client | package.json | error | + ## Unused devDependencies (1) | Name | Location | Severity | diff --git a/plugins/catalog-backend-module-gitea/knip-report.md b/plugins/catalog-backend-module-gitea/knip-report.md new file mode 100644 index 0000000000..2661c35327 --- /dev/null +++ b/plugins/catalog-backend-module-gitea/knip-report.md @@ -0,0 +1,2 @@ +# Knip report + diff --git a/plugins/catalog-backend-module-github/knip-report.md b/plugins/catalog-backend-module-github/knip-report.md index 1768d98608..c200862961 100644 --- a/plugins/catalog-backend-module-github/knip-report.md +++ b/plugins/catalog-backend-module-github/knip-report.md @@ -1,10 +1,11 @@ # Knip report -## Unused dependencies (1) +## Unused dependencies (2) | Name | Location | Severity | | :-------------------------------- | :----------- | :------- | | @backstage/plugin-catalog-backend | package.json | error | +| @backstage/catalog-client | package.json | error | ## Unused devDependencies (1) diff --git a/plugins/devtools-backend/knip-report.md b/plugins/devtools-backend/knip-report.md index 0923e3006f..dc1b572006 100644 --- a/plugins/devtools-backend/knip-report.md +++ b/plugins/devtools-backend/knip-report.md @@ -1,9 +1,10 @@ # Knip report -## Unused dependencies (2) +## Unused dependencies (3) -| Name | Location | Severity | -| :----- | :----------- | :------- | -| semver | package.json | error | -| yn | package.json | error | +| Name | Location | Severity | +| :-------------------------------- | :----------- | :------- | +| @backstage/plugin-permission-node | package.json | error | +| semver | package.json | error | +| yn | package.json | error | diff --git a/plugins/events-backend-module-bitbucket-server/knip-report.md b/plugins/events-backend-module-bitbucket-server/knip-report.md new file mode 100644 index 0000000000..2661c35327 --- /dev/null +++ b/plugins/events-backend-module-bitbucket-server/knip-report.md @@ -0,0 +1,2 @@ +# Knip report + diff --git a/plugins/events-backend-module-google-pubsub/knip-report.md b/plugins/events-backend-module-google-pubsub/knip-report.md new file mode 100644 index 0000000000..2661c35327 --- /dev/null +++ b/plugins/events-backend-module-google-pubsub/knip-report.md @@ -0,0 +1,2 @@ +# Knip report + diff --git a/plugins/events-backend-module-kafka/knip-report.md b/plugins/events-backend-module-kafka/knip-report.md new file mode 100644 index 0000000000..2661c35327 --- /dev/null +++ b/plugins/events-backend-module-kafka/knip-report.md @@ -0,0 +1,2 @@ +# Knip report + diff --git a/plugins/gateway-backend/knip-report.md b/plugins/gateway-backend/knip-report.md new file mode 100644 index 0000000000..2661c35327 --- /dev/null +++ b/plugins/gateway-backend/knip-report.md @@ -0,0 +1,2 @@ +# Knip report + diff --git a/plugins/kubernetes-node/knip-report.md b/plugins/kubernetes-node/knip-report.md index 7df8949921..1c25fa062b 100644 --- a/plugins/kubernetes-node/knip-report.md +++ b/plugins/kubernetes-node/knip-report.md @@ -1,5 +1,11 @@ # Knip report +## Unused dependencies (1) + +| Name | Location | Severity | +| :------ | :----------- | :------- | +| winston | package.json | error | + ## Unused devDependencies (1) | Name | Location | Severity | diff --git a/plugins/kubernetes/knip-report.md b/plugins/kubernetes/knip-report.md index a20fd463aa..bb11f63d0d 100644 --- a/plugins/kubernetes/knip-report.md +++ b/plugins/kubernetes/knip-report.md @@ -7,12 +7,12 @@ | @kubernetes-models/apimachinery | package.json | error | | @kubernetes-models/base | package.json | error | | @kubernetes/client-node | package.json | error | -| xterm-addon-attach | package.json | error | +| @xterm/addon-attach | package.json | error | | kubernetes-models | package.json | error | -| xterm-addon-fit | package.json | error | +| @xterm/addon-fit | package.json | error | +| @xterm/xterm | package.json | error | | cronstrue | package.json | error | | js-yaml | package.json | error | | lodash | package.json | error | | luxon | package.json | error | -| xterm | package.json | error | diff --git a/plugins/mcp-actions-backend/knip-report.md b/plugins/mcp-actions-backend/knip-report.md new file mode 100644 index 0000000000..830018776f --- /dev/null +++ b/plugins/mcp-actions-backend/knip-report.md @@ -0,0 +1,9 @@ +# Knip report + +## Unused dependencies (2) + +| Name | Location | Severity | +| :------------------------ | :----------- | :------- | +| @backstage/catalog-client | package.json | error | +| zod | package.json | error | + diff --git a/plugins/notifications-backend-module-slack/knip-report.md b/plugins/notifications-backend-module-slack/knip-report.md new file mode 100644 index 0000000000..eb139623ce --- /dev/null +++ b/plugins/notifications-backend-module-slack/knip-report.md @@ -0,0 +1,17 @@ +# Knip report + +## Unused dependencies (2) + +| Name | Location | Severity | +| :----------- | :----------- | :------- | +| @slack/types | package.json | error | +| @slack/bolt | package.json | error | + +## Unused devDependencies (3) + +| Name | Location | Severity | +| :-------------------- | :----------- | :------- | +| @backstage/test-utils | package.json | error | +| @faker-js/faker | package.json | error | +| msw | package.json | error | + diff --git a/plugins/scaffolder-backend-module-bitbucket-server/knip-report.md b/plugins/scaffolder-backend-module-bitbucket-server/knip-report.md index 2661c35327..b9ed10af2c 100644 --- a/plugins/scaffolder-backend-module-bitbucket-server/knip-report.md +++ b/plugins/scaffolder-backend-module-bitbucket-server/knip-report.md @@ -1,2 +1,8 @@ # Knip report +## Unused dependencies (1) + +| Name | Location | Severity | +| :-- | :----------- | :------- | +| zod | package.json | error | + diff --git a/plugins/scaffolder-backend-module-notifications/knip-report.md b/plugins/scaffolder-backend-module-notifications/knip-report.md index 9ac53047a7..2661c35327 100644 --- a/plugins/scaffolder-backend-module-notifications/knip-report.md +++ b/plugins/scaffolder-backend-module-notifications/knip-report.md @@ -1,8 +1,2 @@ # Knip report -## Unused dependencies (1) - -| Name | Location | Severity | -| :------ | :----------- | :------- | -| octokit | package.json | error | - diff --git a/plugins/scaffolder-backend/knip-report.md b/plugins/scaffolder-backend/knip-report.md index 51ea7441f5..b6fcf59bb3 100644 --- a/plugins/scaffolder-backend/knip-report.md +++ b/plugins/scaffolder-backend/knip-report.md @@ -1,13 +1,23 @@ # Knip report -## Unused dependencies (4) +## Unused dependencies (14) -| Name | Location | Severity | -| :--------------------------------------- | :----------- | :------- | -| @backstage/plugin-bitbucket-cloud-common | package.json | error | -| concat-stream | package.json | error | -| p-limit | package.json | error | -| tar | package.json | error | +| Name | Location | Severity | +| :--------------------------------------------------------------- | :----------- | :------- | +| @backstage/plugin-catalog-backend-module-scaffolder-entity-model | package.json | error | +| @backstage/plugin-scaffolder-backend-module-bitbucket-server | package.json | error | +| @backstage/plugin-scaffolder-backend-module-bitbucket-cloud | package.json | error | +| @backstage/plugin-scaffolder-backend-module-bitbucket | package.json | error | +| @backstage/plugin-scaffolder-backend-module-gerrit | package.json | error | +| @backstage/plugin-scaffolder-backend-module-github | package.json | error | +| @backstage/plugin-scaffolder-backend-module-gitlab | package.json | error | +| @backstage/plugin-scaffolder-backend-module-azure | package.json | error | +| @backstage/plugin-scaffolder-backend-module-gitea | package.json | error | +| @backstage/plugin-bitbucket-cloud-common | package.json | error | +| @backstage/plugin-auth-node | package.json | error | +| concat-stream | package.json | error | +| p-limit | package.json | error | +| tar | package.json | error | ## Unused devDependencies (1) diff --git a/plugins/techdocs-backend/knip-report.md b/plugins/techdocs-backend/knip-report.md index 2661c35327..764d9383f0 100644 --- a/plugins/techdocs-backend/knip-report.md +++ b/plugins/techdocs-backend/knip-report.md @@ -1,2 +1,12 @@ # Knip report +## Unused dependencies (5) + +| Name | Location | Severity | +| :----------------------------------------------- | :----------- | :------- | +| @backstage/plugin-search-backend-module-techdocs | package.json | error | +| @backstage/plugin-permission-common | package.json | error | +| @backstage/plugin-techdocs-common | package.json | error | +| @backstage/plugin-catalog-common | package.json | error | +| lodash | package.json | error | + From 2b81b887d199597c1a2a94f8e411313aa00e03b7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 7 Aug 2025 11:24:18 +0200 Subject: [PATCH 06/13] ui: sync css build Signed-off-by: Patrik Oldsberg --- packages/ui/css/styles.css | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/ui/css/styles.css b/packages/ui/css/styles.css index 0169aa6653..b923073ee6 100644 --- a/packages/ui/css/styles.css +++ b/packages/ui/css/styles.css @@ -10429,7 +10429,6 @@ font-size: var(--bui-font-size-3); font-family: var(--bui-font-regular); color: var(--bui-fg-primary); - --tooltip-offset: var(--bui-space-3); border-radius: 4px; outline: none; transition: transform .2s, opacity .2s; @@ -10441,6 +10440,8 @@ opacity: 0; } + --tooltip-offset: var(--bui-space-3); + &[data-placement="top"] { margin-bottom: var(--tooltip-offset); --origin: translateY(4px); @@ -10464,7 +10465,6 @@ .bui-TooltipArrow { & svg { - --tooltip-arrow-overlap: -2px; display: block; & path:first-child { @@ -10474,6 +10474,8 @@ & path:nth-child(2) { fill: var(--bui-gray-3); } + + --tooltip-arrow-overlap: -2px; } &[data-placement="top"] svg { From 0b223952a367260cc0ed7dde56c111eb4c87ed52 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 7 Aug 2025 11:06:21 +0200 Subject: [PATCH 07/13] remove old canon package Signed-off-by: Patrik Oldsberg --- .github/CODEOWNERS | 1 - .github/workflows/ci.yml | 4 - .github/workflows/deploy_packages.yml | 4 - .github/workflows/sync_canon.yml | 8 +- LABELS.md | 2 +- packages/canon/.eslintrc.js | 9 - packages/canon/.gitignore | 1 - packages/canon/CHANGELOG.md | 328 ------------------ packages/canon/README.md | 3 - packages/canon/catalog-info.yaml | 9 - packages/canon/package.json | 43 --- packages/canon/report.api.md | 7 - packages/canon/src/index.ts | 23 -- .../commands/knip-reports/knip-extractor.ts | 2 +- packages/types/report.api.md | 5 +- yarn.lock | 9 - 16 files changed, 8 insertions(+), 450 deletions(-) delete mode 100644 packages/canon/.eslintrc.js delete mode 100644 packages/canon/.gitignore delete mode 100644 packages/canon/CHANGELOG.md delete mode 100644 packages/canon/README.md delete mode 100644 packages/canon/catalog-info.yaml delete mode 100644 packages/canon/package.json delete mode 100644 packages/canon/report.api.md delete mode 100644 packages/canon/src/index.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 519204ff24..89fba0c8ad 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -28,7 +28,6 @@ yarn.lock @backstage/maintainers @backst /microsite/static @backstage/maintainers @backstage/documentation-maintainers /packages @backstage/framework-maintainers /packages/backend-openapi-utils @backstage/maintainers @backstage/reviewers @backstage/openapi-tooling-maintainers -/packages/canon @backstage/design-system-maintainers /packages/catalog-client @backstage/catalog-maintainers /packages/catalog-model @backstage/catalog-maintainers /packages/cli @backstage/tooling-maintainers diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bdf6edbbac..34dfb738b5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -127,10 +127,6 @@ jobs: - name: build all packages run: yarn backstage-cli repo build --all - # For now canon has a custom build script and needs to be built separately - - name: build canon - run: yarn --cwd packages/canon build - # For now BUI has a custom build script and needs to be built separately - name: build BUI run: yarn --cwd packages/ui build diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml index 3f24fcc783..f429be076c 100644 --- a/.github/workflows/deploy_packages.yml +++ b/.github/workflows/deploy_packages.yml @@ -110,10 +110,6 @@ jobs: - name: build run: yarn backstage-cli repo build --all - # For now canon has a custom build script and needs to be built separately - - name: build canon - run: yarn --cwd packages/canon build - # For now BUI has a custom build script and needs to be built separately - name: build BUI run: yarn --cwd packages/ui build diff --git a/.github/workflows/sync_canon.yml b/.github/workflows/sync_canon.yml index 5abae892f6..31009094e3 100644 --- a/.github/workflows/sync_canon.yml +++ b/.github/workflows/sync_canon.yml @@ -1,4 +1,4 @@ -name: Sync Canon Docs +name: Sync BUI Docs on: push: branches: [master] @@ -36,7 +36,7 @@ jobs: - name: Configure Git run: | git config --global user.email noreply@backstage.io - git config --global user.name 'Github Canon Docs workflow' + git config --global user.name 'Github BUI Docs workflow' - name: Install dependencies working-directory: docs-ui @@ -53,9 +53,9 @@ jobs: git rm -rf . cp -R ../docs-ui/dist/. . - - name: Commit to canon-storybook repo + - name: Commit to bui-storybook repo working-directory: bui-external-docs run: | git add . - git commit -am "Canon Docs build for backstage/backstage@${{ github.sha }}" + git commit -am "BUI Docs build for backstage/backstage@${{ github.sha }}" git push diff --git a/LABELS.md b/LABELS.md index 32d5c7f095..f1af06d4fa 100644 --- a/LABELS.md +++ b/LABELS.md @@ -40,7 +40,7 @@ These labels indicate which part of Backstage an issue or pull request relates t - `area:auditor` - Auditor service and it's use in plugins. - `area:auth` - Authentication and 3rd party authorization. - `area:catalog` - The Catalog plugin and the Software Catalog model and integrations. -- `area:design-system` - The Canon design system and library. +- `area:design-system` - The Backstage UI design system and library. - `area:documentation` - Documentation for adopters, users, and developers. - `area:events` - The Events system and integrations for other plugins. - `area:framework` - The core Backstage framework. diff --git a/packages/canon/.eslintrc.js b/packages/canon/.eslintrc.js deleted file mode 100644 index 9638ff6e45..0000000000 --- a/packages/canon/.eslintrc.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - ...require('@backstage/cli/config/eslint-factory')(__dirname), - extends: ['plugin:storybook/recommended'], - rules: { - 'react/forbid-elements': 'off', - '@backstage/no-mixed-plugin-imports': 'off' - }, -}; - diff --git a/packages/canon/.gitignore b/packages/canon/.gitignore deleted file mode 100644 index dac138d9e0..0000000000 --- a/packages/canon/.gitignore +++ /dev/null @@ -1 +0,0 @@ -css diff --git a/packages/canon/CHANGELOG.md b/packages/canon/CHANGELOG.md deleted file mode 100644 index 6af38b6b55..0000000000 --- a/packages/canon/CHANGELOG.md +++ /dev/null @@ -1,328 +0,0 @@ -# @backstage/canon - -## 0.6.1-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/ui@0.7.0-next.0 - -## 0.6.0 - -### Minor Changes - -- 1d64db6: **Breaking changes** We are updating our Link component to use React Aria under the hood. To match their API we are updating the `to` prop to `href` to match both internal and external routing. We are also updating our variant naming to include all our new font sizes. -- 83fd7f4: **Breaking change** We are moving the Select component to use React Aria under the hood. We updated most props and events according to their underlying API. -- cae63df: **Breaking changes** The Tabs components has been updates to use React Aria under the hood and to work with react-router-dom directly. -- 4c6d891: **BREAKING CHANGES** - - We’re updating our Button component to provide better support for button links. - - - We’re introducing a new `ButtonLink` component, which replaces the previous render prop pattern. - - To maintain naming consistency across components, `IconButton` is being renamed to `ButtonIcon`. - - Additionally, the render prop will be removed from all button-related components. - - These changes aim to simplify usage and improve clarity in our component API. - -- 2e30459: We are moving our Tooltip component to use React Aria under the hood. In doing so, the structure of the component and its prop are changing to follow the new underlying structure. -- 8fd6fcb: We are renaming @backstage/canon into @backstage/ui. As part of this move we are renaming all class names and CSS variables to follow the new name. "--canon" prefix is becoming "--bui" and all component class names starting with ".canon" will now start with ".bui" - -### Patch Changes - -- 140f652: We are consolidating all css files into a single styles.css in Canon. -- 76255b8: Add new Card component to Canon. -- 8154fb9: Add new SearchField component in Canon -- b0a6c8e: Add new Header component to Canon. -- 6910892: Add new `RadioGroup` + `Radio` component to Canon -- 9c17305: Fix scrolling width and height on ScrollArea component in Canon. -- 390ea20: Export Card and Skeleton components. -- be76576: Improve Button, ButtonIcon and ButtonLink styling in Canon. -- 17beb9b: Update return types for Heading & Text components for React 19. -- a8a8514: We are transforming how we structure our class names and data attributes definitions for all components. They are now all set in the same place. -- 667b951: Added placeholder prop to TextField component. -- eac4a4c: Add new tertiary variant to Button, ButtonIcon and ButtonLink in Canon. -- e71333a: adding export for ButtonLink so it's importable -- 8f2e82d: Add new Skeleton component in Canon -- Updated dependencies - - @backstage/ui@0.6.0 - -## 0.6.0-next.1 - -### Minor Changes - -- 2e30459: We are moving our Tooltip component to use React Aria under the hood. In doing so, the structure of the component and its prop are changing to follow the new underlying structure. - -### Patch Changes - -- 76255b8: Add new Card component to Canon. -- b0a6c8e: Add new Header component to Canon. -- be76576: Improve Button, ButtonIcon and ButtonLink styling in Canon. -- 17beb9b: Update return types for Heading & Text components for React 19. -- eac4a4c: Add new tertiary variant to Button, ButtonIcon and ButtonLink in Canon. -- 8f2e82d: Add new Skeleton component in Canon - -## 0.6.0-next.0 - -### Minor Changes - -- 4c6d891: **BREAKING CHANGES** - - We’re updating our Button component to provide better support for button links. - - - We’re introducing a new `ButtonLink` component, which replaces the previous render prop pattern. - - To maintain naming consistency across components, `IconButton` is being renamed to `ButtonIcon`. - - Additionally, the render prop will be removed from all button-related components. - - These changes aim to simplify usage and improve clarity in our component API. - -### Patch Changes - -- 140f652: We are consolidating all css files into a single styles.css in Canon. -- 8154fb9: Add new SearchField component in Canon -- 6910892: Add new `RadioGroup` + `Radio` component to Canon -- a8a8514: We are transforming how we structure our class names and data attributes definitions for all components. They are now all set in the same place. -- 667b951: Added placeholder prop to TextField component. -- e71333a: adding export for ButtonLink so it's importable - -## 0.5.0 - -### Minor Changes - -- 621fac9: We are updating the default size of the Button component in Canon to be small instead of medium. -- a842554: We set the default size for IconButton in Canon to be small instead of medium. -- 35fd51d: Move TextField component to use react Aria under the hood. Introducing a new FieldLabel component to help build custom fields. -- 78204a2: **Breaking** We are adding a new as prop on the Heading and Text component to make it easier to change the component tag. We are removing the render prop in favour of the as prop. -- c49e335: TextField in Canon now has multiple label sizes as well as the capacity to hide label and description but still make them available for screen readers. -- 24b45ef: Fixes spacing props on layout components and aligned on naming for the Grid component. You should now call the Grid root component using instead of just . - -### Patch Changes - -- 44df879: Add min-width: 0; by default on every Flex components in Canon to help support truncated texts inside flex elements. -- ee6ffe6: Fix styling for the title4 prop on the Heading component in Canon. -- f2f814a: Added a render prop to the Button component in Canon to use it as a link. -- 98f02a6: Add new Switch component in Canon. -- c94f8e0: The filter input in menu comboboxes should now always use the full width of the menu it's in. -- 269316d: Remove leftover console.log from Container component. - -## 0.5.0-next.2 - -### Patch Changes - -- 44df879: Add min-width: 0; by default on every Flex components in Canon to help support truncated texts inside flex elements. -- ee6ffe6: Fix styling for the title4 prop on the Heading component in Canon. -- f2f814a: Added a render prop to the Button component in Canon to use it as a link. - -## 0.5.0-next.1 - -### Minor Changes - -- 621fac9: We are updating the default size of the Button component in Canon to be small instead of medium. -- a842554: We set the default size for IconButton in Canon to be small instead of medium. - -## 0.5.0-next.0 - -### Minor Changes - -- 24b45ef: Fixes spacing props on layout components and aligned on naming for the Grid component. You should now call the Grid root component using instead of just . - -### Patch Changes - -- 269316d: Remove leftover console.log from Container component. - -## 0.4.0 - -### Minor Changes - -- ea36f74: **Breaking Change** Icons on Button and IconButton now need to be imported and placed like this: