Skip to content

chore: update to latest Qwik v2#136

Open
maiieul wants to merge 3 commits into
open-circle:mainfrom
maiieul:update-latest-v2
Open

chore: update to latest Qwik v2#136
maiieul wants to merge 3 commits into
open-circle:mainfrom
maiieul:update-latest-v2

Conversation

@maiieul

@maiieul maiieul commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

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

    • Update @qwik.dev/core, @qwik.dev/router, and eslint-plugin-qwik to latest pkg.pr.new builds across the repo.
    • Bump vite to 7.3.5 in frameworks, playgrounds, and website.
    • Remove pnpm.patchedDependencies for @qwik.dev/router.
  • Migration

    • Replace ReadonlySignal<T> with Readonly<Signal<T>> in hooks, types, components, and docs.
    • Update preview entry to export default createQwikRouter({ render }); remove qwikRouterConfig.

Written for commit 3e3f563. Summary will update on new commits.

Review in cubic

Copilot AI review requested due to automatic review settings June 11, 2026 05:13
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jun 11, 2026
@vercel

vercel Bot commented Jun 11, 2026

Copy link
Copy Markdown

@maiieul is attempting to deploy a commit to the Open Circle Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

The 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)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: updating Qwik v2 and migrating to the new Signal API across the codebase.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The pull request description is directly related to the changeset and accurately describes the main objectives: upgrading Qwik integration, migrating to new Signal API, and fixing configuration issues.

✏️ 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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 with Readonly<Signal<T>> across docs, playground components, and framework Qwik types.
  • Updated Qwik/Vite-related devDependencies (including switching some Qwik deps to pkg.pr.new URLs) and removed a pnpm patched dependency entry.
  • Adjusted Qwik router preview entry and tweaked useResolvedQrl to 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.

Comment thread frameworks/qwik/src/hooks/useResolvedQrl/useResolvedQrl.ts Outdated
Comment thread frameworks/qwik/src/hooks/useResolvedQrl/useResolvedQrl.ts Outdated
Comment thread playgrounds/qwik/src/entry.preview.tsx
Comment thread playgrounds/qwik/src/entry.preview.tsx
Comment thread playgrounds/qwik/src/components/TextInput.tsx Outdated
Comment thread website/package.json
Comment thread website/package.json Outdated
Comment thread website/package.json Outdated
Comment thread playgrounds/qwik/package.json
@maiieul maiieul force-pushed the update-latest-v2 branch from ed7441a to ff6f3d9 Compare June 11, 2026 05:18

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (1)
playgrounds/qwik/src/components/InputErrors.tsx (1)

5-8: ⚡ Quick win

Use interface for InputErrorProps object shape.

This props object is declared with type, but the TypeScript guideline here requires interface for object shapes.

Suggested change
-type InputErrorProps = {
+interface InputErrorProps {
   name: string;
   errors: Readonly<Signal<[string, ...string[]] | null>>;
-};
+}

As per coding guidelines, "Prefer interface over type for 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

📥 Commits

Reviewing files that changed from the base of the PR and between be7c39a and ed7441a.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (18)
  • frameworks/qwik/package.json
  • frameworks/qwik/src/hooks/usePathSignal/usePathSignal.ts
  • frameworks/qwik/src/hooks/useResolvedQrl/useResolvedQrl.ts
  • frameworks/qwik/src/types/field.ts
  • frameworks/qwik/src/types/form.ts
  • package.json
  • packages/core/package.json
  • playgrounds/qwik/package.json
  • playgrounds/qwik/src/components/Checkbox.tsx
  • playgrounds/qwik/src/components/FileInput.tsx
  • playgrounds/qwik/src/components/InputErrors.tsx
  • playgrounds/qwik/src/components/RadioGroup.tsx
  • playgrounds/qwik/src/components/Select.tsx
  • playgrounds/qwik/src/components/Slider.tsx
  • playgrounds/qwik/src/components/TextInput.tsx
  • playgrounds/qwik/src/entry.preview.tsx
  • website/package.json
  • website/src/routes/(docs)/qwik/guides/(main-concepts)/input-components/index.mdx
💤 Files with no reviewable changes (1)
  • package.json

Comment thread frameworks/qwik/package.json
Comment thread playgrounds/qwik/src/entry.preview.tsx Outdated
Comment thread playgrounds/qwik/src/entry.preview.tsx
@maiieul maiieul force-pushed the update-latest-v2 branch from ff6f3d9 to 37c6eee Compare June 11, 2026 05:21

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread website/package.json
Comment thread packages/core/package.json
Comment thread playgrounds/qwik/package.json
@maiieul maiieul force-pushed the update-latest-v2 branch 2 times, most recently from 99dda53 to 1902352 Compare June 11, 2026 05:24
@maiieul maiieul force-pushed the update-latest-v2 branch from f7270e9 to 3e3f563 Compare June 11, 2026 05:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants