Migrate to Solid 2.0 using corvu-next (Solid 2 branch)#680
Open
devx wants to merge 5 commits into
Open
Conversation
Key changes: - @floating-ui/dom: ^1.5.1 → ^1.7.6 - @internationalized/date: ^3.4.0 → ^3.12.2 - @internationalized/number: ^3.2.1 → ^3.6.7 - vite: ^6.3.5 → ^8.1.3 - vitest: 2.1.9 → 4.1.9 - @vitest/ui: ^2.1.9 → ^4.1.9 - rollup-preset-solid: 2.0.1 → 3.0.0 - storybook-solidjs-vite: ^10.1.0 → ^10.5.2 Pinned @solidjs/web to 2.0.0-beta.15 (--latest pulled experimental.0 which is incompatible with vite-plugin-solid peer range).
- turbo.json: migrate from deprecated pipeline/baseBranch to tasks format - Pin @internationalized/date to ^3.4.0 (^3.12.2 has breaking type changes) - Pin @internationalized/number to ^3.2.1 Pre-existing issues in Kobalte solid2 branch (not caused by this update): - ValidComponent not exported from @solidjs/web@2.0.0-beta.15 - ErrorBoundary imported from 'solid-js' (moved to @solidjs/web in Solid 2) - All 40 test files fail due to incomplete migration
- Calendar: coerce null → undefined on min/max signal declarations, non-null assertions on guarded maxDate/minDate, change DateFormatter param to Intl.DateTimeFormat, remove stale @ts-expect-error - Stories: move placeholder from <Value> to <Root>, remove section prop, add generic annotations for multi-select, move getValueLabel to Root, convert classList to class array syntax - Tests: add getByRole destructure, fix hardcoded path, type assertion for discriminated union - Imports: solid-js/web → @solidjs/web, remove .ts extension import - Vitest: set isolate: true (Solid 2 reactive graph leaks between files when isolation is disabled, causing non-deterministic timeouts) - Remove unused @ts-expect-error directives (5 total) Results: tsc 0 errors, build passes, 466/466 tests pass.
Reflects correct resolution of @solidjs/web@2.0.0-beta.15 and solid-js@2.0.0-beta.15 after fixing phantom version issue (lesson kobaltedev#21).
Pin minimum versions via pnpm overrides to consolidate duplicates: - h3: >=1.15.9 - vite: >=6.4.3 - vitest: >=3.2.6 - esbuild: >=0.28.1 Update packages/tests vitest peer dep to >=3.2.6.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrates Kobalte to Solid 2.0-beta, building on top of the
corvu-nextbranch which carries Solid 2 support. A PR has been submitted to corvu to merge the Solid 2 work upstream.Context
This branch progresses Kobalte's Solid 2 migration by adopting
corvu-next— the Solid 2 compatible branch of corvu. Once the corvu Solid 2 PR is merged, the dependency references here will point to stable releases.Changes
Core migration
solid-js@2.0.0-beta.15,@solidjs/web@2.0.0-beta.15)Dependency consolidation
h3: >=1.15.9vite: >=6.4.3vitest: >=3.2.6esbuild: >=0.28.1@internationalized/dateto fix turbo.json resolution@solid-primitives/*packages to theirnextchannel releasesHousekeeping
Design principles preserved
All core Kobalte principles remain intact after migration:
Polymorphicrenders a single DOM element.mergeRefsforwards user refs.composeEventHandlerschains user handlers. 1:1 component-to-DOM pattern preserved.data-*attributes for state. Any styling tool works.@solid-primitives/i18nintegration and per-component.intl.tsfiles with overridabletranslationsprops intact.createControllableBooleanSignalpattern. All stateful components acceptvalue/defaultValue/onChangeAPIs.asprop unchanged.The only Solid 2-specific adaptation: signal creation uses
{ ownedWrite: true }where needed. The public API surface is unchanged.Not included
apps/docsstill uses Solid 1.x (solid-js@1.9.14,@solidjs/start@1.3.2). Migrating the docs to Solid 2 is a separate effort.What was tested
tsc --noEmit)Further Changes
We would love to collaborte and make any changes as needed.