chore: update to latest Qwik v2#136
Conversation
|
@maiieul is attempting to deploy a commit to the Open Circle Team on Vercel. A member of the Team first needs to authorize it. |
WalkthroughThe PR replaces usages of Qwik's ReadonlySignal with Readonly across type definitions, a hook, and form UI components, updates documentation examples accordingly, simplifies the Vite preview entry to remove the qwikRouterConfig parameter, and updates multiple package devDependencies to pinned build URLs and newer Vite versions while removing a pnpm patchedDependencies entry. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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 |
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the Qwik integration and examples to align with newer Qwik signal typing/behavior and updated tooling dependencies.
Changes:
- Replaced
ReadonlySignal<T>usages withReadonly<Signal<T>>across docs, playground components, and framework Qwik types. - Updated Qwik/Vite-related devDependencies (including switching some Qwik deps to
pkg.pr.newURLs) and removed a pnpm patched dependency entry. - Adjusted Qwik router preview entry and tweaked
useResolvedQrlto avoid tracked reads.
Reviewed changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| website/src/routes/(docs)/qwik/guides/(main-concepts)/input-components/index.mdx | Updates guide sample types/imports to new Signal typing pattern. |
| website/package.json | Updates Qwik deps to pkg.pr.new URLs, bumps eslint-plugin-qwik and Vite. |
| playgrounds/qwik/src/entry.preview.tsx | Removes router config import/parameter from preview adapter. |
| playgrounds/qwik/src/components/TextInput.tsx | Migrates component prop types from ReadonlySignal to Readonly<Signal>. |
| playgrounds/qwik/src/components/Slider.tsx | Migrates component prop types from ReadonlySignal to Readonly<Signal>. |
| playgrounds/qwik/src/components/Select.tsx | Migrates component prop types from ReadonlySignal to Readonly<Signal>. |
| playgrounds/qwik/src/components/RadioGroup.tsx | Migrates component prop types from ReadonlySignal to Readonly<Signal>. |
| playgrounds/qwik/src/components/InputErrors.tsx | Migrates component prop types from ReadonlySignal to Readonly<Signal>. |
| playgrounds/qwik/src/components/FileInput.tsx | Migrates component prop types from ReadonlySignal to Readonly<Signal>. |
| playgrounds/qwik/src/components/Checkbox.tsx | Migrates component prop types from ReadonlySignal to Readonly<Signal>. |
| playgrounds/qwik/package.json | Updates Qwik deps to pkg.pr.new URLs, bumps eslint-plugin-qwik and Vite. |
| packages/core/package.json | Updates @qwik.dev/core to pkg.pr.new URL. |
| package.json | Removes pnpm patchedDependencies block for @qwik.dev/router. |
| frameworks/qwik/src/types/form.ts | Migrates exported form store signal fields to Readonly<Signal<...>>. |
| frameworks/qwik/src/types/field.ts | Migrates exported field store signal fields to Readonly<Signal<...>>. |
| frameworks/qwik/src/hooks/useResolvedQrl/useResolvedQrl.ts | Uses untrack to avoid tracked reads when resolving QRLs. |
| frameworks/qwik/src/hooks/usePathSignal/usePathSignal.ts | Returns Readonly<Signal<T>> instead of ReadonlySignal<T>. |
| frameworks/qwik/package.json | Updates @qwik.dev/core to pkg.pr.new URL, bumps eslint-plugin-qwik and Vite. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ed7441a to
ff6f3d9
Compare
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
playgrounds/qwik/src/components/InputErrors.tsx (1)
5-8: ⚡ Quick winUse
interfaceforInputErrorPropsobject shape.This props object is declared with
type, but the TypeScript guideline here requiresinterfacefor object shapes.Suggested change
-type InputErrorProps = { +interface InputErrorProps { name: string; errors: Readonly<Signal<[string, ...string[]] | null>>; -}; +}As per coding guidelines, "Prefer
interfaceovertypefor defining object shapes in TypeScript".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@playgrounds/qwik/src/components/InputErrors.tsx` around lines 5 - 8, Change the props declaration from a type alias to an interface: replace the type InputErrorProps definition with an interface InputErrorProps that declares the same members (name: string; errors: Readonly<Signal<[string, ...string[]] | null>>;), ensuring any usages of InputErrorProps (e.g., component props or function signatures) remain unchanged.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@frameworks/qwik/package.json`:
- Line 50: Multiple workspace packages are pinned to different Qwik commits;
unify them by choosing one canonical commit SHA (e.g., the one used in
website/package.json or the desired release) and update all occurrences of
`@qwik.dev/core` and `@qwik.dev/router` in frameworks/qwik/package.json,
website/package.json (and any other package manifests) to reference that same
commit tag, then regenerate and commit an updated pnpm-lock.yaml by running pnpm
install so the lockfile matches the manifests; ensure you update the dependency
strings that reference the pkg.pr.new URLs (the `@qwik.dev/core` and
`@qwik.dev/router` entries) and verify the workspace builds.
In `@playgrounds/qwik/src/entry.preview.tsx`:
- Around line 14-15: The top-of-file comment "make sure qwikRouterConfig is
imported before entry" is stale; remove or update it to reflect current imports
in entry.preview.tsx (there is only the render import from './entry.ssr'). Edit
the file to delete the obsolete comment or replace it with a current, accurate
note about import ordering if needed, ensuring references to qwikRouterConfig
are removed and only relevant context for import render is kept.
- Line 20: The pure factory call createQwikRouter({ render }) needs the
tree-shaking purity annotation; add the comment // `@__NO_SIDE_EFFECTS__`
immediately on the line above the createQwikRouter invocation (the default
export) so the pure factory call createQwikRouter is annotated for tree-shaking
optimization.
In
`@website/src/routes/`(docs)/qwik/guides/(main-concepts)/input-components/index.mdx:
- Around line 69-77: The props interface TextInputProps now types input and
errors as Readonly<Signal<...>> but the usage snippets still pass
field.input.value / field.errors.value; update the example(s) that consume
TextInputProps (references: TextInputProps, input, errors, and
FieldElementProps) to pass the signal objects themselves (e.g., field.input,
field.errors) instead of their .value, so the example compiles; apply the same
change to the other occurrence noted around lines 145-153.
---
Nitpick comments:
In `@playgrounds/qwik/src/components/InputErrors.tsx`:
- Around line 5-8: Change the props declaration from a type alias to an
interface: replace the type InputErrorProps definition with an interface
InputErrorProps that declares the same members (name: string; errors:
Readonly<Signal<[string, ...string[]] | null>>;), ensuring any usages of
InputErrorProps (e.g., component props or function signatures) remain unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 8e4b5f13-eca2-473d-bc2e-b85511088c81
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (18)
frameworks/qwik/package.jsonframeworks/qwik/src/hooks/usePathSignal/usePathSignal.tsframeworks/qwik/src/hooks/useResolvedQrl/useResolvedQrl.tsframeworks/qwik/src/types/field.tsframeworks/qwik/src/types/form.tspackage.jsonpackages/core/package.jsonplaygrounds/qwik/package.jsonplaygrounds/qwik/src/components/Checkbox.tsxplaygrounds/qwik/src/components/FileInput.tsxplaygrounds/qwik/src/components/InputErrors.tsxplaygrounds/qwik/src/components/RadioGroup.tsxplaygrounds/qwik/src/components/Select.tsxplaygrounds/qwik/src/components/Slider.tsxplaygrounds/qwik/src/components/TextInput.tsxplaygrounds/qwik/src/entry.preview.tsxwebsite/package.jsonwebsite/src/routes/(docs)/qwik/guides/(main-concepts)/input-components/index.mdx
💤 Files with no reviewable changes (1)
- package.json
ff6f3d9 to
37c6eee
Compare
There was a problem hiding this comment.
4 issues found and verified against the latest diff
Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.
Re-trigger cubic
99dda53 to
1902352
Compare
f7270e9 to
3e3f563
Compare
Summary by cubic
Upgrade Qwik integration to the latest v2 pkg.pr.new builds and migrate to the new Signal API. Fixes a double-render issue in preview and removes the extra router config.
Dependencies
@qwik.dev/core,@qwik.dev/router, andeslint-plugin-qwikto latestpkg.pr.newbuilds across the repo.viteto7.3.5in frameworks, playgrounds, and website.pnpm.patchedDependenciesfor@qwik.dev/router.Migration
ReadonlySignal<T>withReadonly<Signal<T>>in hooks, types, components, and docs.export default createQwikRouter({ render }); removeqwikRouterConfig.Written for commit 3e3f563. Summary will update on new commits.