Upgrade solidjs beta 20#7850
Conversation
Bumps solid-js and @solidjs/web from 2.0.0-beta.19 to 2.0.0-beta.20 and
vite-plugin-solid from 3.0.0-next.11 to 3.0.0-next.13 across packages,
examples, e2e apps, and benchmarks.
vite-plugin-solid 3.0.0-next.13 defaults to the new native JSX backend
(@dom-expressions/compiler), which is an incomplete milestone build that
cannot compile components with element children yet ("Only text and
expression component children are implemented in the AST-native
milestone"). Every vite-plugin-solid call site now passes
compiler: 'babel' to keep the babel-preset-solid pipeline until the
native compiler matures.
Also fixes two pins that had gone stale: the quickstart-webpack example's
direct babel-preset-solid pin (stuck on beta.18) and
@rsbuild/plugin-solid's babel-preset-solid lockfile resolution (also
beta.18), so the compiler and runtime are in lockstep everywhere.
Verified with solid-router test:unit (client + server modes) and
e2e/solid-start/basic (pnpm build + test:e2e:local).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Removes the compiler: 'babel' escape hatch from all vite-plugin-solid
call sites, returning to next.13's default native backend
(@dom-expressions/compiler).
The native compiler's only unimplemented construct that this repo used
was a fragment passed as a component's child (dom mode only). The single
instance — the redundant <>{props.children}</> wrapper in solid-router's
ClientOnly — is removed; props.children is a valid JSX child on its own.
Verified: solid-router test:unit (client + server), e2e/solid-start/basic
(pnpm build + test:e2e:local), and a direct scan of all 1353 solid
.tsx/.jsx files in the repo through @dom-expressions/compiler in both
dom and ssr modes with zero failures.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
View your CI Pipeline Execution ↗ for commit b10aeee
☁️ Nx Cloud last updated this comment at |
🚀 Changeset Version Preview6 package(s) bumped directly, 0 bumped as dependents. 🟩 Patch bumps
|
Bundle Size Benchmarks
Current gzip tracks all emitted client JS chunks. Initial gzip tracks only the entry/import graph. Trend sparkline is historical current gzip ending with this PR measurement; lower is better. |
Merging this PR will improve performance by 56.17%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | ssr request loop (react) |
330.5 ms | 77.9 ms | ×4.2 |
| ⚡ | Simulation | client-side navigation loop (solid) |
72.6 ms | 43.7 ms | +66.43% |
| ⚡ | Simulation | ssr request loop (vue) |
420.3 ms | 284 ms | +47.97% |
| ⚡ | Simulation | ssr request loop (solid) |
174.6 ms | 151.3 ms | +15.43% |
| ⚡ | Simulation | client-side navigation loop (react) |
56.3 ms | 50.3 ms | +11.81% |
| ⚡ | Simulation | client-side navigation loop (vue) |
83 ms | 77.2 ms | +7.58% |
| 🆕 | Simulation | ssr not-found (vue) |
N/A | 169.5 ms | N/A |
| 🆕 | Simulation | ssr redirect (vue) |
N/A | 68.2 ms | N/A |
| 🆕 | Simulation | ssr head (vue) |
N/A | 326.8 ms | N/A |
| 🆕 | Simulation | ssr loaders (vue) |
N/A | 136.6 ms | N/A |
| 🆕 | Simulation | ssr selective (vue) |
N/A | 139.8 ms | N/A |
| 🆕 | Simulation | ssr server-fn GET (vue) |
N/A | 74.5 ms | N/A |
| 🆕 | Simulation | ssr server-fn POST (vue) |
N/A | 71.3 ms | N/A |
| 🆕 | Simulation | ssr server-route middleware (vue) |
N/A | 63.3 ms | N/A |
| 🆕 | Simulation | ssr server-route (vue) |
N/A | 60.8 ms | N/A |
| 🆕 | Simulation | ssr streaming deferred (vue) |
N/A | 105 ms | N/A |
| 🆕 | Simulation | ssr assets inline-css cdn (vue) |
N/A | 188.4 ms | N/A |
| 🆕 | Simulation | ssr assets linked-css control (vue) |
N/A | 215.7 ms | N/A |
| 🆕 | Simulation | ssr before-load chain (vue) |
N/A | 184.4 ms | N/A |
| 🆕 | Simulation | ssr control-flow error 500 (vue) |
N/A | 197.9 ms | N/A |
| ... | ... | ... | ... | ... | ... |
ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.
Tip
Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.
Comparing upgrade-solidjs-beta-20 (b10aeee) with solid-router-v2-pre (67a9040)1
Upgrades the Solid v2 toolchain:
solid-js/@solidjs/web2.0.0-beta.19→2.0.0-beta.20(exact pins across packages, examples, e2e apps, and benchmarks)vite-plugin-solid^3.0.0-next.11→^3.0.0-next.13babel-preset-solidlockstep fixes: the quickstart-webpack example's direct pin was stuck on beta.18, and@rsbuild/plugin-solid's lockfile resolution was also stale at beta.18 (pnpm keeps in-range transitive resolutions); both now resolve beta.20 so compiler and runtime stay in lockstep everywhere@tanstack/solid-*packagesNative JSX compiler
vite-plugin-solid@3.0.0-next.13switches the default backend from babel-preset-solid to the new native@dom-expressions/compiler. The repo now runs on that default. The native milestone's one unsupported construct we used — a fragment passed as a component's child (dom mode only, fails with "Only text and expression component children are implemented in the AST-native milestone") — occurred exactly once, in solid-router'sClientOnly, where the<>{props.children}</>wrapper was redundant anyway and is now just{props.children}.Verification
packages/solid-routertest:unit: 46 files / 814 tests (client) + 2 (server mode) passinge2e/solid-start/basic:pnpm build+test:e2e:local— 80 passed, 4 skipped.tsx/.jsxfiles in the repo compiled directly through@dom-expressions/compilerin bothdomandssrmodes: zero failures (harness validated by reproducing theClientOnlyfailure on the pre-fix source)🤖 Generated with Claude Code