diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f199bfe6d1cd4..6ead4ba303abb 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -49,6 +49,8 @@ updates: - dependency-name: "react-dom" - dependency-name: "@types/react" - dependency-name: "@types/react-dom" + # We can't upgrade versions of this due to npm + - dependency-name: "vite" - package-ecosystem: "npm" directory: "/examples/non-monorepo" diff --git a/examples/kitchen-sink/apps/admin/package.json b/examples/kitchen-sink/apps/admin/package.json index 45bb4f6a33f08..67e49b4c4f4ad 100644 --- a/examples/kitchen-sink/apps/admin/package.json +++ b/examples/kitchen-sink/apps/admin/package.json @@ -11,16 +11,16 @@ }, "dependencies": { "@repo/ui": "workspace:*", - "react": "^19.0.0", - "react-dom": "^19.0.0" + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "devDependencies": { "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", "@vitejs/plugin-react": "^4.3.4", "typescript": "5.7.3", - "vite": "^6.0.11" + "vite": "^5.4.14" } } diff --git a/examples/kitchen-sink/apps/blog/package.json b/examples/kitchen-sink/apps/blog/package.json index 428416c0ece15..5f0d97969529d 100644 --- a/examples/kitchen-sink/apps/blog/package.json +++ b/examples/kitchen-sink/apps/blog/package.json @@ -18,13 +18,13 @@ "@vercel/analytics": "^1.4.1", "@vercel/remix": "2.15.2", "isbot": "^5.1.21", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "devDependencies": { "@remix-run/dev": "^2.15.2", - "@types/react": "^18.2.20", - "@types/react-dom": "^18.2.7", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", "@typescript-eslint/eslint-plugin": "^8.22.0", "@typescript-eslint/parser": "^8.22.0", "@vercel/remix": "2.15.2", diff --git a/examples/kitchen-sink/apps/storefront/package.json b/examples/kitchen-sink/apps/storefront/package.json index 7d25cb78b6f39..9b82baeef867f 100644 --- a/examples/kitchen-sink/apps/storefront/package.json +++ b/examples/kitchen-sink/apps/storefront/package.json @@ -14,16 +14,16 @@ "@repo/logger": "workspace:*", "@repo/ui": "workspace:*", "next": "^15.1.6", - "react": "^19.0.0", - "react-dom": "^19.0.0" + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "devDependencies": { "@next/eslint-plugin-next": "^15.1.6", "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "@types/node": "^22.10.10", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", "typescript": "5.7.3" } } diff --git a/examples/kitchen-sink/packages/ui/package.json b/examples/kitchen-sink/packages/ui/package.json index deb4ad122817d..72eecd75a6e16 100644 --- a/examples/kitchen-sink/packages/ui/package.json +++ b/examples/kitchen-sink/packages/ui/package.json @@ -35,11 +35,11 @@ "@repo/jest-presets": "workspace:*", "@repo/typescript-config": "workspace:*", "@types/node": "^22.10.10", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", "jest": "^29.7.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", "tsup": "^8.3.6", "typescript": "5.7.3" } diff --git a/examples/kitchen-sink/pnpm-lock.yaml b/examples/kitchen-sink/pnpm-lock.yaml index 078fea5897a60..199118c773475 100644 --- a/examples/kitchen-sink/pnpm-lock.yaml +++ b/examples/kitchen-sink/pnpm-lock.yaml @@ -21,11 +21,11 @@ importers: specifier: workspace:* version: link:../../packages/ui react: - specifier: ^19.0.0 - version: 19.0.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^19.0.0 - version: 19.0.0(react@19.0.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) devDependencies: '@repo/eslint-config': specifier: workspace:* @@ -34,20 +34,20 @@ importers: specifier: workspace:* version: link:../../packages/config-typescript '@types/react': - specifier: ^19.0.8 - version: 19.0.8 + specifier: ^18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: ^19.0.3 - version: 19.0.3(@types/react@19.0.8) + specifier: ^18.3.5 + version: 18.3.5(@types/react@18.3.18) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.0.11(@types/node@22.10.10)(yaml@2.7.0)) + version: 4.3.4(vite@5.4.14(@types/node@22.10.10)) typescript: specifier: 5.7.3 version: 5.7.3 vite: - specifier: ^6.0.11 - version: 6.0.11(@types/node@22.10.10)(yaml@2.7.0) + specifier: ^5.4.14 + version: 5.4.14(@types/node@22.10.10) apps/api: dependencies: @@ -134,20 +134,20 @@ importers: specifier: ^5.1.21 version: 5.1.21 react: - specifier: ^18.2.0 + specifier: ^18.3.1 version: 18.3.1 react-dom: - specifier: ^18.2.0 + specifier: ^18.3.1 version: 18.3.1(react@18.3.1) devDependencies: '@remix-run/dev': specifier: ^2.15.2 version: 2.15.2(@remix-run/react@2.15.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@types/node@22.10.10)(typescript@5.7.3)(vite@5.4.14(@types/node@22.10.10)) '@types/react': - specifier: ^18.2.20 + specifier: ^18.3.18 version: 18.3.18 '@types/react-dom': - specifier: ^18.2.7 + specifier: ^18.3.5 version: 18.3.5(@types/react@18.3.18) '@typescript-eslint/eslint-plugin': specifier: ^8.22.0 @@ -181,13 +181,13 @@ importers: version: link:../../packages/ui next: specifier: ^15.1.6 - version: 15.1.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 15.1.6(@babel/core@7.26.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: - specifier: ^19.0.0 - version: 19.0.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^19.0.0 - version: 19.0.0(react@19.0.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) devDependencies: '@next/eslint-plugin-next': specifier: ^15.1.6 @@ -202,11 +202,11 @@ importers: specifier: ^22.10.10 version: 22.10.10 '@types/react': - specifier: ^19.0.8 - version: 19.0.8 + specifier: ^18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: ^19.0.3 - version: 19.0.3(@types/react@19.0.8) + specifier: ^18.3.5 + version: 18.3.5(@types/react@18.3.18) typescript: specifier: 5.7.3 version: 5.7.3 @@ -310,20 +310,20 @@ importers: specifier: ^22.10.10 version: 22.10.10 '@types/react': - specifier: ^19.0.8 - version: 19.0.8 + specifier: ^18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: ^19.0.3 - version: 19.0.3(@types/react@19.0.8) + specifier: ^18.3.5 + version: 18.3.5(@types/react@18.3.18) jest: specifier: ^29.7.0 version: 29.7.0(@types/node@22.10.10) react: - specifier: ^19.0.0 - version: 19.0.0 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: ^19.0.0 - version: 19.0.0(react@19.0.0) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) tsup: specifier: ^8.3.6 version: 8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.7.0) @@ -1629,17 +1629,9 @@ packages: peerDependencies: '@types/react': ^18.0.0 - '@types/react-dom@19.0.3': - resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} - peerDependencies: - '@types/react': ^19.0.0 - '@types/react@18.3.18': resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} - '@types/react@19.0.8': - resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} - '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -4237,11 +4229,6 @@ packages: peerDependencies: react: ^18.3.1 - react-dom@19.0.0: - resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} - peerDependencies: - react: ^19.0.0 - react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -4269,10 +4256,6 @@ packages: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} - react@19.0.0: - resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} - engines: {node: '>=0.10.0'} - readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -4410,9 +4393,6 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - scheduler@0.25.0: - resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -5062,46 +5042,6 @@ packages: terser: optional: true - vite@6.0.11: - resolution: {integrity: sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} @@ -6534,19 +6474,11 @@ snapshots: dependencies: '@types/react': 18.3.18 - '@types/react-dom@19.0.3(@types/react@19.0.8)': - dependencies: - '@types/react': 19.0.8 - '@types/react@18.3.18': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 - '@types/react@19.0.8': - dependencies: - csstype: 3.1.3 - '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 @@ -6734,14 +6666,14 @@ snapshots: json-schema-to-ts: 1.6.4 ts-morph: 12.0.0 - '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.10.10)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@5.4.14(@types/node@22.10.10))': dependencies: '@babel/core': 7.26.7 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.7) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.11(@types/node@22.10.10)(yaml@2.7.0) + vite: 5.4.14(@types/node@22.10.10) transitivePeerDependencies: - supports-color @@ -9450,32 +9382,6 @@ snapshots: transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - optional: true - - next@15.1.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - '@next/env': 15.1.6 - '@swc/counter': 0.1.3 - '@swc/helpers': 0.5.15 - busboy: 1.6.0 - caniuse-lite: 1.0.30001695 - postcss: 8.4.31 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - styled-jsx: 5.1.6(react@19.0.0) - optionalDependencies: - '@next/swc-darwin-arm64': 15.1.6 - '@next/swc-darwin-x64': 15.1.6 - '@next/swc-linux-arm64-gnu': 15.1.6 - '@next/swc-linux-arm64-musl': 15.1.6 - '@next/swc-linux-x64-gnu': 15.1.6 - '@next/swc-linux-x64-musl': 15.1.6 - '@next/swc-win32-arm64-msvc': 15.1.6 - '@next/swc-win32-x64-msvc': 15.1.6 - sharp: 0.33.5 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros node-int64@0.4.0: {} @@ -9885,11 +9791,6 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 - react-dom@19.0.0(react@19.0.0): - dependencies: - react: 19.0.0 - scheduler: 0.25.0 - react-is@16.13.1: {} react-is@18.3.1: {} @@ -9912,8 +9813,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - react@19.0.0: {} - readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -10109,8 +10008,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - scheduler@0.25.0: {} - semver@6.3.1: {} semver@7.6.3: {} @@ -10424,12 +10321,6 @@ snapshots: react: 18.3.1 optionalDependencies: '@babel/core': 7.26.7 - optional: true - - styled-jsx@5.1.6(react@19.0.0): - dependencies: - client-only: 0.0.1 - react: 19.0.0 sucrase@3.35.0: dependencies: @@ -10893,16 +10784,6 @@ snapshots: '@types/node': 22.10.10 fsevents: 2.3.3 - vite@6.0.11(@types/node@22.10.10)(yaml@2.7.0): - dependencies: - esbuild: 0.24.2 - postcss: 8.5.1 - rollup: 4.32.0 - optionalDependencies: - '@types/node': 22.10.10 - fsevents: 2.3.3 - yaml: 2.7.0 - w3c-xmlserializer@4.0.0: dependencies: xml-name-validator: 4.0.0 diff --git a/turborepo-tests/helpers/setup_example_test.sh b/turborepo-tests/helpers/setup_example_test.sh index 63f38b6c1511d..2087c425f5062 100644 --- a/turborepo-tests/helpers/setup_example_test.sh +++ b/turborepo-tests/helpers/setup_example_test.sh @@ -35,9 +35,15 @@ if [ "$package_manager" == "pnpm" ] && [ "$example_path" == "non-monorepo" ]; th package_manager_command="pnpm install --ignore-workspace" fi -# All examples implement these two tasks -# and it's reasonable to assume that they will continue to do so -turbo_command="turbo build lint --continue --output-logs=errors-only" +# with-svelte is flaky when building and check types at the same time, because the build process of Svelte involves type generation +# If the types are generating while the type checking happens, it can cause flakes. +# We'll have to accept this gap in our coverage. +if [ "$example_path" == "with-svelte" ]; then + turbo_command="turbo build lint --continue --output-logs=errors-only" +else + # The rest of the examples implement these three tasks and look safe to test in parallel + turbo_command="turbo build lint check-types --continue --output-logs=errors-only" +fi # Head into a temporary directory mkdir -p ../../examples-tests-tmp