diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index 1b98ae4..627bf28 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -22,7 +22,7 @@ jobs:
id-token: none
strategy:
matrix:
- node-version: [20]
+ node-version: [22]
steps:
- uses: actions/checkout@v4
with:
@@ -41,4 +41,5 @@ jobs:
report-json: "eslint_report.json"
only-pr-files: false
continue-on-error: true
+ - run: yarn tsc
- run: yarn test
diff --git a/.gitignore b/.gitignore
index 9267554..17acc2b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,7 +15,7 @@ coverage
# Dependencies
node_modules
-# Yarn 3 files
+# Yarn files
.pnp.*
.yarn/*
!.yarn/patches
diff --git a/Dockerfile b/Dockerfile
index 8bc124f..5a4a4d2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
# Stage 1 - Install dependencies
-FROM registry.access.redhat.com/ubi9/nodejs-20:latest AS deps
+FROM registry.access.redhat.com/ubi9/nodejs-22:latest AS deps
USER 0
# Install yarn and libs for building isolated-vm with node-gyp
@@ -19,7 +19,7 @@ RUN yarn install --immutable --network-timeout 600000
RUN chown 1001:0 ".yarn/install-state.gz"
# Stage 2 - Build packages
-FROM registry.access.redhat.com/ubi9/nodejs-20:latest AS build
+FROM registry.access.redhat.com/ubi9/nodejs-22:latest AS build
USER 0
# Install yarn
@@ -34,14 +34,14 @@ RUN yarn tsc
RUN yarn build:backend
# Stage 3 - Build the actual backend image and install production dependencies
-FROM ghcr.io/radiorabe/ubi9-minimal:0.6.6
+FROM ghcr.io/radiorabe/ubi9-minimal:0.8.0
ENV APP_ROOT=/opt/app-root \
# The $HOME is not set by default, but some applications need this variable
HOME=/opt/app-root/src \
NPM_RUN=start \
PLATFORM="el9" \
- NODEJS_VERSION=20 \
+ NODEJS_VERSION=22 \
NPM_RUN=start \
NAME=backstage
diff --git a/backstage.json b/backstage.json
index ce16faf..d105b59 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
{
- "version": "1.26.4"
+ "version": "1.34.1"
}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
index 529a62f..0000000
--- a/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "packages": ["packages/*", "plugins/*"],
- "npmClient": "yarn",
- "version": "0.1.0",
- "$schema": "node_modules/lerna/schemas/lerna-schema.json"
-}
diff --git a/package.json b/package.json
index 0a9db4e..292e0f3 100644
--- a/package.json
+++ b/package.json
@@ -3,10 +3,10 @@
"version": "1.0.0",
"private": true,
"engines": {
- "node": "18 || 20"
+ "node": "22"
},
"scripts": {
- "dev": "concurrently \"yarn start\" \"yarn start-backend\"",
+ "dev": "yarn workspaces foreach -A --include backend --include app --parallel -v -i run start",
"start": "yarn workspace app start",
"start-backend": "yarn workspace backend start",
"build:backend": "yarn workspace backend build",
@@ -32,20 +32,18 @@
"@backstage/cli": "^0.29.4",
"@backstage/e2e-test-utils": "^0.1.1",
"@playwright/test": "^1.41.2",
- "@spotify/prettier-config": "^15.0.0",
"@types/react": "^18",
"@types/react-dom": "^18",
- "concurrently": "^8.2.2",
- "lerna": "^8.1.2",
+ "eslint-plugin-jest": "^28.10.0",
"node-gyp": "^10.0.1",
"prettier": "^3.2.5",
- "typescript": "~5.4.2"
+ "typescript": "~5.7.2"
},
"resolutions": {
"@types/react": "^18",
"@types/react-dom": "^18"
},
- "prettier": "@spotify/prettier-config",
+ "prettier": "@backstage/cli/config/prettier",
"lint-staged": {
"*.{js,jsx,ts,tsx,mjs,cjs}": [
"eslint --fix",
diff --git a/packages/app/package.json b/packages/app/package.json
index 090dcb2..fdb255b 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -17,51 +17,49 @@
"@backstage-community/plugin-github-actions": "^0.6.16",
"@backstage-community/plugin-github-pull-requests-board": "^0.2.1",
"@backstage-community/plugin-todo": "^0.2.39",
- "@backstage/app-defaults": "^1.5.4",
- "@backstage/catalog-model": "^1.4.5",
+ "@backstage/app-defaults": "^1.5.15",
+ "@backstage/catalog-model": "^1.7.2",
"@backstage/cli": "^0.29.4",
- "@backstage/core-app-api": "^1.12.4",
- "@backstage/core-components": "^0.14.5",
- "@backstage/core-plugin-api": "^1.9.2",
- "@backstage/integration-react": "^1.1.26",
- "@backstage/plugin-api-docs": "^0.11.4",
- "@backstage/plugin-catalog": "^1.19.0",
- "@backstage/plugin-catalog-common": "^1.0.22",
- "@backstage/plugin-catalog-graph": "^0.4.4",
- "@backstage/plugin-catalog-import": "^0.10.10",
- "@backstage/plugin-catalog-react": "^1.11.3",
- "@backstage/plugin-catalog-unprocessed-entities": "^0.2.3",
- "@backstage/plugin-devtools": "^0.1.13",
- "@backstage/plugin-devtools-common": "^0.1.9",
- "@backstage/plugin-home": "^0.7.3",
- "@backstage/plugin-org": "^0.6.24",
- "@backstage/plugin-permission-react": "^0.4.22",
- "@backstage/plugin-scaffolder": "^1.19.3",
- "@backstage/plugin-search": "^1.4.10",
- "@backstage/plugin-search-react": "^1.7.10",
- "@backstage/plugin-techdocs": "^1.10.4",
- "@backstage/plugin-techdocs-module-addons-contrib": "^1.1.9",
- "@backstage/plugin-techdocs-react": "^1.2.3",
- "@backstage/plugin-user-settings": "^0.8.5",
- "@backstage/theme": "^0.5.3",
+ "@backstage/core-app-api": "^1.15.3",
+ "@backstage/core-components": "^0.16.2",
+ "@backstage/core-plugin-api": "^1.10.2",
+ "@backstage/integration-react": "^1.2.2",
+ "@backstage/plugin-api-docs": "^0.12.2",
+ "@backstage/plugin-catalog": "^1.26.0",
+ "@backstage/plugin-catalog-common": "^1.1.2",
+ "@backstage/plugin-catalog-graph": "^0.4.14",
+ "@backstage/plugin-catalog-import": "^0.12.8",
+ "@backstage/plugin-catalog-react": "^1.15.0",
+ "@backstage/plugin-catalog-unprocessed-entities": "^0.2.12",
+ "@backstage/plugin-devtools": "^0.1.22",
+ "@backstage/plugin-devtools-common": "^0.1.14",
+ "@backstage/plugin-home": "^0.8.3",
+ "@backstage/plugin-org": "^0.6.34",
+ "@backstage/plugin-permission-react": "^0.4.29",
+ "@backstage/plugin-scaffolder": "^1.27.3",
+ "@backstage/plugin-search": "^1.4.21",
+ "@backstage/plugin-search-react": "^1.8.4",
+ "@backstage/plugin-techdocs": "^1.12.0",
+ "@backstage/plugin-techdocs-module-addons-contrib": "^1.1.19",
+ "@backstage/plugin-techdocs-react": "^1.2.12",
+ "@backstage/plugin-user-settings": "^0.8.17",
+ "@backstage/theme": "^0.6.3",
"@material-ui/core": "^4.12.4",
"@material-ui/icons": "^4.11.3",
- "@roadiehq/backstage-plugin-github-insights": "^2.3.28",
- "history": "^5.3.0",
+ "@roadiehq/backstage-plugin-github-insights": "^2.5.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router": "^6.22.1",
- "react-router-dom": "^6.22.1",
- "react-use": "^17.5.0"
+ "react-router-dom": "^6.22.1"
},
"devDependencies": {
- "@backstage/test-utils": "^1.5.4",
+ "@backstage/test-utils": "^1.7.3",
"@playwright/test": "^1.41.2",
"@testing-library/dom": "^10.0.0",
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/react": "^16.1.0",
"@testing-library/user-event": "^14.5.2",
- "@types/node": "^20",
+ "@types/node": "^22",
"@types/react": "^18",
"@types/react-dom": "^18",
"cross-env": "^7.0.3"
diff --git a/packages/app/public/index.html b/packages/app/public/index.html
index 18da7c4..0c5fc4b 100644
--- a/packages/app/public/index.html
+++ b/packages/app/public/index.html
@@ -6,7 +6,7 @@