Upgrade solid-js to 2.0.0-rc.0 and rename vite-plugin-solid to @solidjs/vite-plugin - #8058
Conversation
|
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 Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 9b77320
☁️ Nx Cloud last updated this comment at |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
7fb276d to
c407efe
Compare
🚀 Changeset Version PreviewNo changeset entries found. Merging this PR will not cause a version bump for any packages. |
Bundle Size Benchmarks
The following scenarios have bundle-size changes compared with the baseline:
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 59.65%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | ssr request loop (react) |
330.5 ms | 79.5 ms | ×4.2 |
| ⚡ | Simulation | client-side navigation loop (solid) |
72.6 ms | 43 ms | +68.96% |
| ⚡ | Simulation | ssr request loop (vue) |
420.3 ms | 269.7 ms | +55.86% |
| ⚡ | Simulation | client-side navigation loop (react) |
56.3 ms | 47.7 ms | +17.9% |
| ⚡ | Simulation | client-side navigation loop (vue) |
83 ms | 72.9 ms | +13.8% |
| ⚡ | Simulation | ssr request loop (solid) |
174.6 ms | 154.8 ms | +12.79% |
| 🆕 | Simulation | ssr not-found (vue) |
N/A | 145.5 ms | N/A |
| 🆕 | Simulation | ssr redirect (vue) |
N/A | 49.8 ms | N/A |
| 🆕 | Simulation | ssr head (vue) |
N/A | 292.6 ms | N/A |
| 🆕 | Simulation | ssr loaders (vue) |
N/A | 116.9 ms | N/A |
| 🆕 | Simulation | ssr selective (vue) |
N/A | 126.4 ms | N/A |
| 🆕 | Simulation | ssr server-fn GET (vue) |
N/A | 77.7 ms | N/A |
| 🆕 | Simulation | ssr server-fn POST (vue) |
N/A | 75.4 ms | N/A |
| 🆕 | Simulation | ssr server-route middleware (vue) |
N/A | 56.2 ms | N/A |
| 🆕 | Simulation | ssr server-route (vue) |
N/A | 55.9 ms | N/A |
| 🆕 | Simulation | ssr streaming deferred (vue) |
N/A | 94.7 ms | N/A |
| 🆕 | Simulation | ssr assets inline-css cdn (vue) |
N/A | 161.4 ms | N/A |
| 🆕 | Simulation | ssr assets linked-css control (vue) |
N/A | 192.4 ms | N/A |
| 🆕 | Simulation | ssr before-load chain (vue) |
N/A | 153.4 ms | N/A |
| 🆕 | Simulation | ssr control-flow error 500 (vue) |
N/A | 174 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-rc-0 (9b77320) with solid-router-v2-pre (67a9040)1
Footnotes
…ugin `vite-plugin-solid` has been renamed to `@solidjs/vite-plugin`. Its final release under the old name (`3.0.0-next.27`) is a re-export shim over the new package, and `next.28`+ ships only under the new name. The rename and the `rc` bump are forced together: `@solidjs/vite-plugin@3.0.0-next.28` peer-requires `solid-js`/`@solidjs/web` `^2.0.0-rc.0`. - solid-js, @solidjs/web, babel-preset-solid: 2.0.0-beta.32 -> ^2.0.0-rc.0 - vite-plugin-solid ^3.0.0-next.23 -> @solidjs/vite-plugin ^3.0.0-next.28 - @tanstack/solid-query + solid-query-devtools -> ^6.0.0-rc.0 (solid-query rc.0 peer-requires solid-js >=2.0.0-rc.0) - @tanstack/query-core converged on 5.101.4: solid-query depends on query-core 5.101.0, which previously resolved to a stale 5.99.0 and produced two structurally incompatible `QueryClient` types, failing @tanstack/solid-router-ssr-query's build `packages/router-devtools-core` intentionally stays on `vite-plugin-solid@^2.11.10` — it builds against Solid 1.9.12 and `@solidjs/vite-plugin` has no 2.x line. `@tanstack/router-plugin` is intentionally untouched: it detects the Solid JSX plugin by its Vite plugin name (`solid`), which the renamed package still registers, and its `vite-plugin-solid` peer is optional — so it keeps working for both Solid 1 and Solid 2 consumers without a change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
c407efe to
56cc90e
Compare
`changeset pre exit` + `changeset pre enter rc`. The next Version Packages run will publish the Solid packages as 2.0.0-rc.0 instead of the next beta. All pending changesets touch only the @tanstack/solid-* packages, so the reset consumed-changesets ledger cannot pull React/Vue/core packages onto rc versions — they have no pending entries. The rc.0 changelog section will re-list changes already published under the betas (standard changesets behavior when switching pre tags). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Manually applied `changeset version` and normalized the prerelease counters to 0. Changesets continues each package's counter across a pre-tag switch (beta.30 would have become rc.31), and the counter is derived from the current versions, so a literal rc.0 is only reachable by hand. All six @tanstack/solid-* packages move to 2.0.0-rc.0; the pending solid changesets are recorded as consumed in .changeset/pre.json, so CI's next version run has nothing further to apply. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
vite-plugin-solidhas been renamed to@solidjs/vite-plugin. Its final release under the old name,3.0.0-next.27, is a pure re-export shim over the new package (export * from '@solidjs/vite-plugin'), andnext.28+ ships only under the new name. It is not npm-deprecated, so nothing warns you about the move.The rename and the
rcbump are forced together:@solidjs/vite-plugin@3.0.0-next.28peer-requiressolid-js/@solidjs/web^2.0.0-rc.0, which2.0.0-beta.32does not satisfy.Changes
solid-js,@solidjs/web,babel-preset-solid:2.0.0-beta.32→^2.0.0-rc.0vite-plugin-solid@^3.0.0-next.23→@solidjs/vite-plugin@^3.0.0-next.28(~100 deps + ~140 config imports)@tanstack/solid-query+@tanstack/solid-query-devtools→^6.0.0-rc.0(solid-queryrc.0peer-requiressolid-js >=2.0.0-rc.0; devtools peer-requires solid-query^6.0.0-rc.0, so the pair moves in lockstep)@tanstack/query-coreconverged on5.101.4Why query-core had to move
@tanstack/solid-querydepends on@tanstack/query-core@5.101.0, but the workspacecatalog:override rewrites that to the catalog range, and pnpm had been reusing an already-present5.99.0. Re-resolving solid-query produced a fresh5.101.4, leaving two copies of query-core and two structurally incompatibleQueryClienttypes — which failed@tanstack/solid-router-ssr-query's build with:Note that
pnpm updateon these also rewrote the catalog ranges themselves, soquery-core/react-query/vue-querymoved^5.99.0→^5.101.4(all within the same 5.x line; the declared ranges now match what resolves).Packages intentionally NOT changed
@tanstack/router-pluginis untouched. It detects the Solid JSX plugin by its Vite plugin name (solid), which the renamed package still registers, and itsvite-plugin-solidpeer is alreadyoptional— so it keeps working for both Solid 1 and Solid 2 consumers with no change and no release.packages/router-devtools-corebuilds against Solid1.9.12, and@solidjs/vite-pluginhas no 2.x line — so itsvite-plugin-solid@^2.11.10devDependency and import stay put.Note on
@rsbuild/plugin-solid@rsbuild/plugin-solid@2.0.0-beta.0declaresbabel-preset-solid: >=2.0.0-beta.0 <2.0.0-experimental.0. That upper bound excludesrcversions, since semver sortsbeta < experimental < rc— so it tops out atbabel-preset-solid@2.0.0-beta.34. This is harmless today becausebeta.34andrc.0both pin@dom-expressions/babel-plugin-jsx@0.50.0-next.42, i.e. identical codegen, but it's worth re-checking on the nextrc. (This is the same trap that led Solid to switch@solidjs/vite-pluginto a^2.0.0-rc.0peer.)Verification
build,test:types(ts56–ts70),test:unit(1611 passed),test:eslint(0 errors) across the six@tanstack/solid-*packagese2e/solid-start/basic: 80 passed, 4 skippede2e/solid-start/deferred-hydration: 15 passed (covers the rsbuild/babel path)e2e/solid-start/basic-solid-query: 6 passedpnpm install --frozen-lockfileverified on a clean checkoutprettier --checkclean across all changed files🤖 Generated with Claude Code
2.0.0-rc.0Two additional commits beyond the dependency migration:
changeset pre exit+changeset pre enter rc— switches the pre-release tag. All pending changesets touch only@tanstack/solid-*packages, so React/Vue/core cannot be pulled onto rc versions.rc.0— changesets continues each package's prerelease counter across a tag switch (beta.30→rc.31), so a literal2.0.0-rc.0is only reachable by hand-editing the generated output. All six solid packages move to2.0.0-rc.0, changelogs and example ranges updated, pending changesets recorded as consumed inpre.json— CI's next version run has nothing further to apply, and merging this PR publishes2.0.0-rc.0directly.pnpm install --frozen-lockfilere-verified on a clean checkout after the version step.