From e3a2486896d01cd855ae2b8a71ef08ead2579100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20De=20Boey?= Date: Thu, 10 Aug 2023 01:50:31 +0200 Subject: [PATCH] feat!: drop React v17 support --- .changeset/purple-tables-switch.md | 7 +++++++ docs/guides/typescript.md | 8 ++++---- integration/server-entry-test.ts | 4 ++-- package.json | 4 ++-- .../fixtures/cloudflare/package.json | 4 ++-- .../deno/.vscode/resolve_npm_imports.json | 6 +++--- .../fixtures/indie-stack/package.json | 4 ++-- .../__tests__/fixtures/node/package.json | 4 ++-- packages/remix-eslint-config/package.json | 2 +- packages/remix-react/package.json | 6 +++--- packages/remix-testing/package.json | 6 +++--- scripts/playground/template/package.json | 4 ++-- templates/arc/package.json | 4 ++-- templates/cloudflare-pages/package.json | 4 ++-- templates/cloudflare-workers/package.json | 4 ++-- templates/express/package.json | 4 ++-- templates/fly/package.json | 4 ++-- templates/remix/package.json | 4 ++-- yarn.lock | 20 +++++++++++++++++-- 19 files changed, 63 insertions(+), 40 deletions(-) create mode 100644 .changeset/purple-tables-switch.md diff --git a/.changeset/purple-tables-switch.md b/.changeset/purple-tables-switch.md new file mode 100644 index 00000000000..31210373324 --- /dev/null +++ b/.changeset/purple-tables-switch.md @@ -0,0 +1,7 @@ +--- +"@remix-run/eslint-config": major +"@remix-run/react": major +"@remix-run/testing": major +--- + +Drop React v17 support diff --git a/docs/guides/typescript.md b/docs/guides/typescript.md index ed2e89a7efb..6228bbd795e 100644 --- a/docs/guides/typescript.md +++ b/docs/guides/typescript.md @@ -24,14 +24,14 @@ The Remix compiler will not do any type checking (it simply removes the types). "@remix-run/node": "latest", "@remix-run/react": "latest", "@remix-run/serve": "latest", - "react": "^17.0.2", - "react-dom": "^17.0.2" + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "devDependencies": { "@remix-run/dev": "latest", "@remix-run/eslint-config": "latest", - "@types/react": "^17.0.38", - "@types/react-dom": "^17.0.11", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "eslint": "^8.23.1", "typescript": "^5.1.6" }, diff --git a/integration/server-entry-test.ts b/integration/server-entry-test.ts index 5d23a6acdcb..4611c3896a5 100644 --- a/integration/server-entry-test.ts +++ b/integration/server-entry-test.ts @@ -91,8 +91,8 @@ test.describe("Default Server Entry (React 17)", () => { "@remix-run/react": "0.0.0-local-version", "@remix-run/serve": "0.0.0-local-version", isbot: "0.0.0-local-version", - react: "17.0.2", - "react-dom": "17.0.2", + react: "^18.2.0", + "react-dom": "^18.2.0", }, devDependencies: { "@remix-run/dev": "0.0.0-local-version", diff --git a/package.json b/package.json index 99cbd738728..b895b422f02 100644 --- a/package.json +++ b/package.json @@ -77,8 +77,8 @@ "@types/jest": "^27.4.1", "@types/jsonfile": "^6.1.0", "@types/lodash": "^4.14.182", - "@types/react": "^18.0.15", - "@types/react-dom": "^18.0.6", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "@types/react-test-renderer": "^18.0.0", "@types/retry": "^0.12.0", "@types/semver": "^7.3.4", diff --git a/packages/remix-dev/__tests__/fixtures/cloudflare/package.json b/packages/remix-dev/__tests__/fixtures/cloudflare/package.json index deeb318a06e..ed124986811 100644 --- a/packages/remix-dev/__tests__/fixtures/cloudflare/package.json +++ b/packages/remix-dev/__tests__/fixtures/cloudflare/package.json @@ -23,8 +23,8 @@ "@cloudflare/workers-types": "^3.18.0", "@remix-run/dev": "^1.12.0", "@remix-run/eslint-config": "^1.12.0", - "@types/react": "^18.0.25", - "@types/react-dom": "^18.0.8", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "eslint": "^8.27.0", "npm-run-all": "^4.1.5", "typescript": "^5.1.6", diff --git a/packages/remix-dev/__tests__/fixtures/deno/.vscode/resolve_npm_imports.json b/packages/remix-dev/__tests__/fixtures/deno/.vscode/resolve_npm_imports.json index 5ef45c00688..a99a407595b 100644 --- a/packages/remix-dev/__tests__/fixtures/deno/.vscode/resolve_npm_imports.json +++ b/packages/remix-dev/__tests__/fixtures/deno/.vscode/resolve_npm_imports.json @@ -12,8 +12,8 @@ "@remix-run/server-runtime": "https://esm.sh/@remix-run/server-runtime@1.9.0", "@remix-run/dev/server-build": "https://esm.sh/@remix-run/dev@1.9.0/server-build", "@remix-run/react": "https://esm.sh/@remix-run/react@1.9.0", - "react": "https://esm.sh/react@17.0.2", - "react-dom": "https://esm.sh/react-dom@17.0.2", - "react-dom/server": "https://esm.sh/react-dom@17.0.2/server" + "react": "https://esm.sh/react@18.2.0", + "react-dom": "https://esm.sh/react-dom@18.2.0", + "react-dom/server": "https://esm.sh/react-dom@18.2.0/server" } } diff --git a/packages/remix-dev/__tests__/fixtures/indie-stack/package.json b/packages/remix-dev/__tests__/fixtures/indie-stack/package.json index 226214cfcb7..459cee12fa4 100644 --- a/packages/remix-dev/__tests__/fixtures/indie-stack/package.json +++ b/packages/remix-dev/__tests__/fixtures/indie-stack/package.json @@ -14,8 +14,8 @@ "devDependencies": { "@remix-run/dev": "*", "@types/node": "^18.17.1", - "@types/react": "^18.0.15", - "@types/react-dom": "^18.0.6", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "typescript": "^5.1.6" }, "engines": { diff --git a/packages/remix-dev/__tests__/fixtures/node/package.json b/packages/remix-dev/__tests__/fixtures/node/package.json index 024b859eeb9..65714ad2302 100644 --- a/packages/remix-dev/__tests__/fixtures/node/package.json +++ b/packages/remix-dev/__tests__/fixtures/node/package.json @@ -18,8 +18,8 @@ "devDependencies": { "@remix-run/dev": "^1.12.0", "@remix-run/eslint-config": "^1.12.0", - "@types/react": "^18.0.25", - "@types/react-dom": "^18.0.8", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "eslint": "^8.27.0", "typescript": "^5.1.6" }, diff --git a/packages/remix-eslint-config/package.json b/packages/remix-eslint-config/package.json index 256f8b1f38c..c8ba3302ac3 100644 --- a/packages/remix-eslint-config/package.json +++ b/packages/remix-eslint-config/package.json @@ -49,7 +49,7 @@ }, "peerDependencies": { "eslint": "^8.0.0", - "react": "^17.0.0 || ^18.0.0", + "react": "^18.0.0", "typescript": "^5.1.0" }, "peerDependenciesMeta": { diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json index f508c2137c1..722b33ac39c 100644 --- a/packages/remix-react/package.json +++ b/packages/remix-react/package.json @@ -23,14 +23,14 @@ "@remix-run/server-runtime": "1.19.3", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.3.0", - "@types/react": "^18.0.15", + "@types/react": "^18.2.20", "react": "^18.2.0", "react-dom": "^18.2.0", "typescript": "^5.1.6" }, "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0", + "react": "^18.0.0", + "react-dom": "^18.0.0", "typescript": "^5.1.0" }, "peerDependenciesMeta": { diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json index dea5211f2a2..b267650fa68 100644 --- a/packages/remix-testing/package.json +++ b/packages/remix-testing/package.json @@ -23,14 +23,14 @@ }, "devDependencies": { "@types/node": "^18.17.1", - "@types/react": "^18.0.24", - "@types/react-dom": "^18.0.8", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "react": "^18.2.0", "react-dom": "^18.2.0", "typescript": "^5.1.6" }, "peerDependencies": { - "react": "^17.0.0 || ^18.0.0", + "react": "^18.0.0", "typescript": "^5.1.0" }, "peerDependenciesMeta": { diff --git a/scripts/playground/template/package.json b/scripts/playground/template/package.json index e9b1a922547..9ed64c5ff06 100644 --- a/scripts/playground/template/package.json +++ b/scripts/playground/template/package.json @@ -37,8 +37,8 @@ "@remix-run/dev": "*", "@types/bcryptjs": "^2.4.2", "@types/node": "^18.17.1", - "@types/react": "^18.0.17", - "@types/react-dom": "^18.0.6", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "autoprefixer": "^10.4.8", "cross-env": "^7.0.3", "npm-run-all": "^4.1.5", diff --git a/templates/arc/package.json b/templates/arc/package.json index 524687fff60..1c202dea0f7 100644 --- a/templates/arc/package.json +++ b/templates/arc/package.json @@ -23,8 +23,8 @@ "@architect/architect": "^10.12.1", "@remix-run/dev": "*", "@remix-run/eslint-config": "*", - "@types/react": "^18.0.35", - "@types/react-dom": "^18.0.11", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "@types/source-map-support": "^0.5.6", "eslint": "^8.38.0", "typescript": "^5.1.6" diff --git a/templates/cloudflare-pages/package.json b/templates/cloudflare-pages/package.json index 4367e1c2e67..b6125b5864f 100644 --- a/templates/cloudflare-pages/package.json +++ b/templates/cloudflare-pages/package.json @@ -21,8 +21,8 @@ "@cloudflare/workers-types": "^4.20230518.0", "@remix-run/dev": "*", "@remix-run/eslint-config": "*", - "@types/react": "^18.0.35", - "@types/react-dom": "^18.0.11", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "eslint": "^8.38.0", "typescript": "^5.1.0", "wrangler": "^3.1.1" diff --git a/templates/cloudflare-workers/package.json b/templates/cloudflare-workers/package.json index 6392768dc3c..88d0b0c7c67 100644 --- a/templates/cloudflare-workers/package.json +++ b/templates/cloudflare-workers/package.json @@ -22,8 +22,8 @@ "@cloudflare/workers-types": "^4.20230518.0", "@remix-run/dev": "*", "@remix-run/eslint-config": "*", - "@types/react": "^18.0.35", - "@types/react-dom": "^18.0.11", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "eslint": "^8.38.0", "typescript": "^5.1.6", "wrangler": "^3.1.1" diff --git a/templates/express/package.json b/templates/express/package.json index 6b32b3ff58f..abb9935ba19 100644 --- a/templates/express/package.json +++ b/templates/express/package.json @@ -28,8 +28,8 @@ "@types/compression": "^1.7.2", "@types/express": "^4.17.17", "@types/morgan": "^1.9.4", - "@types/react": "^18.0.35", - "@types/react-dom": "^18.0.11", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "@types/source-map-support": "^0.5.6", "chokidar": "^3.5.3", "eslint": "^8.38.0", diff --git a/templates/fly/package.json b/templates/fly/package.json index 70b9c86faef..af4740f73ee 100644 --- a/templates/fly/package.json +++ b/templates/fly/package.json @@ -20,8 +20,8 @@ "devDependencies": { "@remix-run/dev": "*", "@remix-run/eslint-config": "*", - "@types/react": "^18.0.35", - "@types/react-dom": "^18.0.11", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "eslint": "^8.38.0", "typescript": "^5.1.6" }, diff --git a/templates/remix/package.json b/templates/remix/package.json index 0f9a767fd22..eae4f571d9e 100644 --- a/templates/remix/package.json +++ b/templates/remix/package.json @@ -19,8 +19,8 @@ "devDependencies": { "@remix-run/dev": "*", "@remix-run/eslint-config": "*", - "@types/react": "^18.0.35", - "@types/react-dom": "^18.0.11", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", "eslint": "^8.38.0", "typescript": "^5.1.6" }, diff --git a/yarn.lock b/yarn.lock index 890b611d7dc..2cc283d5edd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2693,13 +2693,20 @@ resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@^18.0.0", "@types/react-dom@^18.0.6", "@types/react-dom@^18.0.8": +"@types/react-dom@^18.0.0": version "18.0.8" resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.8.tgz" integrity sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw== dependencies: "@types/react" "*" +"@types/react-dom@^18.2.7": + version "18.2.7" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" + integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== + dependencies: + "@types/react" "*" + "@types/react-test-renderer@^18.0.0": version "18.0.0" resolved "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz" @@ -2707,7 +2714,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.0.15", "@types/react@^18.0.24": +"@types/react@*": version "18.0.24" resolved "https://registry.npmjs.org/@types/react/-/react-18.0.24.tgz" integrity sha512-wRJWT6ouziGUy+9uX0aW4YOJxAY0bG6/AOk5AW5QSvZqI7dk6VBIbXvcVgIw/W5Jrl24f77df98GEKTJGOLx7Q== @@ -2716,6 +2723,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^18.2.20": + version "18.2.20" + resolved "https://registry.npmjs.org/@types/react/-/react-18.2.20.tgz#1605557a83df5c8a2cc4eeb743b3dfc0eb6aaeb2" + integrity sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/resolve@1.17.1": version "1.17.1" resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz"