From 727c717f92d49998e77f8a35372b0598dca85217 Mon Sep 17 00:00:00 2001 From: aramissennyeydd Date: Tue, 24 Sep 2024 21:32:06 -0400 Subject: [PATCH] ensure changes work with latest master Signed-off-by: aramissennyeydd --- microsite/package.json | 4 +- packages/core-compat-api/package.json | 3 +- .../ErrorBoundary/ErrorBoundary.test.tsx | 3 +- packages/frontend-app-api/package.json | 6 +-- packages/frontend-defaults/package.json | 3 +- .../src/commands/peer-deps/peer-deps.ts | 39 ++++++++++++++++++- .../techdocs-cli-embedded-app/package.json | 4 +- packages/version-bridge/package.json | 1 + plugins/app/package.json | 5 +-- plugins/kubernetes/package.json | 1 - .../scaffolder-node-test-utils/package.json | 17 +++++++- plugins/techdocs/package.json | 1 - 12 files changed, 67 insertions(+), 20 deletions(-) diff --git a/microsite/package.json b/microsite/package.json index 728cef0d96..fc3405c744 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -30,8 +30,8 @@ "docusaurus-pushfeedback": "^1.0.0", "luxon": "^3.0.0", "prism-react-renderer": "^2.1.0", - "react": "^18.0.2", - "react-dom": "^18.0.2", + "react": "^18.0.0", + "react-dom": "^18.0.0", "sass": "^1.57.1", "swc-loader": "^0.2.3" }, diff --git a/packages/core-compat-api/package.json b/packages/core-compat-api/package.json index cbb8fc3592..6863f65a0c 100644 --- a/packages/core-compat-api/package.json +++ b/packages/core-compat-api/package.json @@ -33,7 +33,8 @@ "dependencies": { "@backstage/core-plugin-api": "workspace:^", "@backstage/frontend-plugin-api": "workspace:^", - "@backstage/version-bridge": "workspace:^" + "@backstage/version-bridge": "workspace:^", + "lodash": "^4.17.21" }, "devDependencies": { "@backstage-community/plugin-puppetdb": "^0.1.18", diff --git a/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.test.tsx b/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.test.tsx index 8bfb228f53..c96ab67782 100644 --- a/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.test.tsx +++ b/packages/core-components/src/layout/ErrorBoundary/ErrorBoundary.test.tsx @@ -77,7 +77,8 @@ describe('', () => { /^The above error occurred in the component:/, ), expect.stringMatching(/^ErrorBoundary/), + expect.stringMatching(/Warning: findDOMNode/), // React warning, unfortunate but currently true ]); - expect(error.length).toEqual(4); + expect(error.length).toEqual(5); }); }); diff --git a/packages/frontend-app-api/package.json b/packages/frontend-app-api/package.json index ec5463642b..674556d144 100644 --- a/packages/frontend-app-api/package.json +++ b/packages/frontend-app-api/package.json @@ -40,17 +40,15 @@ "@backstage/frontend-plugin-api": "workspace:^", "@backstage/types": "workspace:^", "@backstage/version-bridge": "workspace:^", - "@material-ui/core": "^4.12.4", - "@material-ui/icons": "^4.11.3", - "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0", "lodash": "^4.17.21", "zod": "^3.22.4" }, "devDependencies": { "@backstage/cli": "workspace:^", + "@backstage/plugin-app": "workspace:^", "@backstage/test-utils": "workspace:^", "@testing-library/jest-dom": "^6.0.0", - "@testing-library/react": "^15.0.0", + "@testing-library/react": "^16.0.0", "@types/react": "^18.0.0", "react": "^18.0.2", "react-dom": "^18.0.2", diff --git a/packages/frontend-defaults/package.json b/packages/frontend-defaults/package.json index 651b04258d..8f8abb0512 100644 --- a/packages/frontend-defaults/package.json +++ b/packages/frontend-defaults/package.json @@ -36,8 +36,7 @@ "@backstage/frontend-app-api": "workspace:^", "@backstage/frontend-plugin-api": "workspace:^", "@backstage/plugin-app": "workspace:^", - "@react-hookz/web": "^24.0.0", - "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0" + "@react-hookz/web": "^24.0.0" }, "devDependencies": { "@backstage/cli": "workspace:^", diff --git a/packages/repo-tools/src/commands/peer-deps/peer-deps.ts b/packages/repo-tools/src/commands/peer-deps/peer-deps.ts index c433dd8581..70e566dd32 100644 --- a/packages/repo-tools/src/commands/peer-deps/peer-deps.ts +++ b/packages/repo-tools/src/commands/peer-deps/peer-deps.ts @@ -27,8 +27,8 @@ type ExtendedPackageJSON = Package['packageJson'] & { const desiredLocalVersionsOfDependencies = { '@types/react': '^18.0.0', - react: '^18.0.0', - 'react-dom': '^18.0.0', + react: '^18.0.2', + 'react-dom': '^18.0.2', 'react-router-dom': '^6.3.0', }; @@ -55,6 +55,10 @@ const isDevDependency = (dep: string, packageJson: ExtendedPackageJSON) => { return !!packageJson.devDependencies?.[dep]; }; +const isProdDependency = (dep: string, packageJson: ExtendedPackageJSON) => { + return !!packageJson.dependencies?.[dep]; +}; + const isPeerDependency = (dep: string, packageJson: ExtendedPackageJSON) => { return !!packageJson.peerDependencies?.[dep]; }; @@ -65,6 +69,16 @@ const isStandaloneApplication = (packageJson: ExtendedPackageJSON) => { ); }; +const matchesDependency = (dep: string, packageJson: ExtendedPackageJSON) => { + return ( + packageJson.devDependencies && + packageJson.devDependencies[dep] === + desiredLocalVersionsOfDependencies[ + dep as keyof typeof desiredLocalVersionsOfDependencies + ] + ); +}; + const matchesPeerDependency = ( dep: string, packageJson: ExtendedPackageJSON, @@ -138,12 +152,20 @@ export default async ({ fix }: { fix: boolean }) => { `Peer dependency ${dep} in ${pkg.packageJson.name} is not listed as a devDependency`, ); attemptToApplyFix(() => { + delete packageJson.dependencies?.[dep]; packageJson.devDependencies = packageJson.devDependencies || {}; packageJson.devDependencies[dep] = desiredLocalVersionsOfDependencies[ dep as keyof typeof desiredLocalVersionsOfDependencies ]; }); + } else if (isProdDependency(dep, packageJson)) { + console.error( + `Peer dependency ${dep} in ${pkg.packageJson.name} is listed as a dependency`, + ); + attemptToApplyFix(() => { + delete packageJson.dependencies?.[dep]; + }); } const groups = groupsOfPeerDependencies.filter(group => @@ -167,6 +189,19 @@ export default async ({ fix }: { fix: boolean }) => { } } + if (!matchesDependency(dep, packageJson)) { + console.error( + `Incorrect dependency ${dep} in ${pkg.packageJson.name}`, + ); + attemptToApplyFix(() => { + packageJson.devDependencies = packageJson.devDependencies || {}; + packageJson.devDependencies[dep] = + desiredLocalVersionsOfDependencies[ + dep as keyof typeof desiredLocalVersionsOfDependencies + ]; + }); + } + if (!matchesPeerDependency(dep, packageJson)) { console.error( `Incorrect peer dependency ${dep} in ${pkg.packageJson.name}`, diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 00baa817d6..249ec2f062 100644 --- a/packages/techdocs-cli-embedded-app/package.json +++ b/packages/techdocs-cli-embedded-app/package.json @@ -59,8 +59,8 @@ "@testing-library/jest-dom": "^6.0.0", "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^14.0.0", - "@types/react": "^18.0.0", - "@types/react-dom": "^18.0.0", + "@types/react": "*", + "@types/react-dom": "*", "cross-env": "^7.0.0" }, "bundled": true diff --git a/packages/version-bridge/package.json b/packages/version-bridge/package.json index aea9d122bf..b7aaab34f8 100644 --- a/packages/version-bridge/package.json +++ b/packages/version-bridge/package.json @@ -35,6 +35,7 @@ "start": "backstage-cli package start", "test": "backstage-cli package test" }, + "dependencies": {}, "devDependencies": { "@backstage/cli": "workspace:^", "@testing-library/jest-dom": "^6.0.0", diff --git a/plugins/app/package.json b/plugins/app/package.json index 14854539b0..ed33051043 100644 --- a/plugins/app/package.json +++ b/plugins/app/package.json @@ -45,7 +45,6 @@ "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", - "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0", "react-use": "^17.2.4" }, "devDependencies": { @@ -57,8 +56,8 @@ "@testing-library/user-event": "^14.0.0", "@types/react": "^18.0.0", "msw": "^1.0.0", - "react": "^^18.0.0", - "react-dom": "^18.0.0", + "react": "^18.0.2", + "react-dom": "^18.0.2", "react-router-dom": "^6.3.0" }, "peerDependencies": { diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index f28b4d248a..b8ef59db90 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -92,7 +92,6 @@ "react-router-dom": "^6.3.0" }, "peerDependencies": { - "@testing-library/react": "^16.0.0", "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0", "react": "^16.13.1 || ^17.0.0 || ^18.0.0", "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", diff --git a/plugins/scaffolder-node-test-utils/package.json b/plugins/scaffolder-node-test-utils/package.json index dc71447bd9..a372dbc317 100644 --- a/plugins/scaffolder-node-test-utils/package.json +++ b/plugins/scaffolder-node-test-utils/package.json @@ -46,6 +46,21 @@ "@backstage/types": "workspace:^" }, "devDependencies": { - "@backstage/cli": "workspace:^" + "@backstage/cli": "workspace:^", + "@types/react": "^18.0.0", + "react": "^18.0.2", + "react-dom": "^18.0.2", + "react-router-dom": "^6.3.0" + }, + "peerDependencies": { + "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-router-dom": "6.0.0-beta.0 || ^6.3.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } } diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 86a491ab24..8fe9b71c1c 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -98,7 +98,6 @@ "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^14.0.0", "@types/dompurify": "^3.0.0", - "@types/event-source-polyfill": "^1.0.0", "@types/react": "^18.0.0", "canvas": "^2.10.2", "react": "^18.0.2",