chore: Upgrade pnpm to 11#128
Conversation
Signed-off-by: ysknsid25 <kengo071225@gmail.com>
|
@ysknsid25 is attempting to deploy a commit to the Open Circle Team on Vercel. A member of the Team first needs to authorize it. |
WalkthroughThis PR modernizes the project's build system and styling. It upgrades pnpm to version 11.3.0 and relocates patch configuration to the workspace level, adds TypeScript node types to framework packages, and extends React compatibility in the core package to support versions 16–19 with React marked as optional. An ESLint rule is disabled, and the website styling is refactored with systematic Tailwind class reordering across components and root utilities while adding minor visual enhancements such as a Navigation background element and repositioned decorative gradients. 🚥 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.
This PR standardizes Tailwind/utility class ordering across website components and updates pnpm/workspace tooling configuration (pnpm 11, build allowlist, dependency patching), alongside a small lint config tweak and React peer support in packages/core.
Changes:
- Reordered Tailwind classes in many website components/styles for consistent formatting.
- Updated pnpm setup: bumped pnpm version, added build allowlist, and relocated
patchedDependencies. - Adjusted lint rules and added React (and types) support in
packages/core.
Reviewed changes
Copilot reviewed 32 out of 33 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| website/src/styles/root.css | Reorders @apply utilities for consistent class ordering. |
| website/src/routes/playground/todos/index.tsx | Reorders Tailwind classes in inputs. |
| website/src/routes/playground/nested/index.tsx | Reorders Tailwind classes in inputs. |
| website/src/routes/playground/layout.tsx | Reorders layout class string. |
| website/src/routes/index.tsx | Reorders Tailwind classes across multiple elements. |
| website/src/routes/blog/index.tsx | Reorders main container class string. |
| website/src/routes/blog/(posts)/layout.tsx | Reorders Tailwind classes in article layout. |
| website/src/routes/404.tsx | Reorders main container class string. |
| website/src/routes/(legal)/layout.tsx | Reorders main container class string. |
| website/src/hooks/useMDXComponents.tsx | Reorders Tailwind classes in code block toolbar container. |
| website/src/components/TextLink.tsx | Reorders focus ring related classes. |
| website/src/components/Spinner.tsx | Reorders border classes in spinner. |
| website/src/components/SideBar.tsx | Reorders gradient overlay class string. |
| website/src/components/Radio.tsx | Reorders label Tailwind classes. |
| website/src/components/Property.tsx | Reorders Tailwind classes in spans/clsx keys. |
| website/src/components/PostList.tsx | Reorders heading Tailwind classes. |
| website/src/components/PostCover.tsx | Reorders Tailwind classes and absolute positioning utilities. |
| website/src/components/Navigation.tsx | Reorders gradient background helper classes. |
| website/src/components/Header.tsx | Reorders Tailwind classes in header/menu. |
| website/src/components/DocsLayout.tsx | Reorders responsive padding utilities. |
| website/src/components/DocSearch.tsx | Reorders Tailwind classes in overlay/list items. |
| website/src/components/Debugger.tsx | Reorders margin utilities. |
| website/src/components/Checkbox.tsx | Reorders label Tailwind classes. |
| website/src/components/ApiList.tsx | Reorders list layout Tailwind classes. |
| pnpm-workspace.yaml | Adds build allowlist and patchedDependencies entry. |
| packages/eslint-config/index.js | Disables import/named rule. |
| packages/core/package.json | Adds React + types, updates peer deps/meta. |
| package.json | Bumps pnpm version and removes pnpm.patchedDependencies config. |
| frameworks/svelte/package.json | Adds @types/node. |
| frameworks/solid/package.json | Adds @types/node. |
| frameworks/preact/package.json | Adds @types/node. |
| .github/actions/environment/action.yml | Enables pnpm action standalone mode. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (1)
packages/core/package.json:105
- This package declares compatibility with React 16–19, but its devDependency on
@types/react@^19can influence generated.d.tsoutput (via the dts bundling step) toward React 19 type shapes. That can create type incompatibilities for consumers on older React/@types versions even if the runtime works. Consider aligning the type-generation baseline with the lowest supported major (or adding@types/reactas an optional peer dependency with a compatible range and ensuring emitted types don’t rely on React-19-only typings).
"peerDependenciesMeta": {
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: ysknsid25 <kengo071225@gmail.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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 `@package.json`:
- Line 14: Add a top-level "engines" constraint to package.json to require
Node.js >=22 to match pnpm@11; update the package.json root object (near the
existing "packageManager" field) to include an "engines" property with "node":
">=22" so the workspace enforces the Node version for contributors and CI.
In `@pnpm-workspace.yaml`:
- Around line 7-12: The allowBuilds block currently lists bare package names
(allowBuilds, '`@parcel/watcher`', deasync, esbuild, sharp, vercel) which permits
lifecycle scripts for any future versions; update each entry to the exact
version-resolved key from pnpm-lock.yaml (e.g., include the version suffix such
as `@2.5.1`, `@0.1.30`, `@0.25.11`, `@0.33.5` or `@0.34.4`, `@29.4.0` as appropriate) so
pnpm 11 will only allow builds for those reviewed package versions, keeping the
keys quoted where necessary.
🪄 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: 7b9e64ba-fe04-4909-95d9-8bc2d7987264
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (32)
.github/actions/environment/action.ymlframeworks/preact/package.jsonframeworks/solid/package.jsonframeworks/svelte/package.jsonpackage.jsonpackages/core/package.jsonpackages/eslint-config/index.jspnpm-workspace.yamlwebsite/src/components/ApiList.tsxwebsite/src/components/Checkbox.tsxwebsite/src/components/Debugger.tsxwebsite/src/components/DocSearch.tsxwebsite/src/components/DocsLayout.tsxwebsite/src/components/Header.tsxwebsite/src/components/Navigation.tsxwebsite/src/components/PostCover.tsxwebsite/src/components/PostList.tsxwebsite/src/components/Property.tsxwebsite/src/components/Radio.tsxwebsite/src/components/SideBar.tsxwebsite/src/components/Spinner.tsxwebsite/src/components/TextLink.tsxwebsite/src/hooks/useMDXComponents.tsxwebsite/src/routes/(legal)/layout.tsxwebsite/src/routes/404.tsxwebsite/src/routes/blog/(posts)/layout.tsxwebsite/src/routes/blog/index.tsxwebsite/src/routes/index.tsxwebsite/src/routes/playground/layout.tsxwebsite/src/routes/playground/nested/index.tsxwebsite/src/routes/playground/todos/index.tsxwebsite/src/styles/root.css
Signed-off-by: ysknsid25 <kengo071225@gmail.com>
There was a problem hiding this comment.
1 issue found across 33 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
Background & Scope
Addressing #116 #115 requires upgrading pnpm to 11 to use
minimumReleaseAge.However, mixing these into a single branch initially caused a large amount of pnpm 11-triggered diff, unrelated to #116, to creep in.
So the work was split, and this branch
chore/upgrade-pnpm-11(a clean state re-cut from main) focuses only on "upgrading pnpm to 11".Why does upgrading to pnpm 11 surface problems
.npmrchasshamefully-hoist=true:shamefully-hoist=trueis a setting that flattens all dependencies into the rootnode_modulesfor npm compatibility (flat hoist). Because of this, on pnpm 10, even dependencies that were actually undeclared (such as@types/node/react) happened to resolve "by accident" via the dependencies of other packages hoisted up to the root.On pnpm 11 the hoisting structure / resolution paths changed, the resolution that relied on this hoisting broke, and the latent undeclared dependencies were exposed all at once. Furthermore, pnpm 11 has breaking changes such as:
allowBuilds)pnpmfield inpackage.json(needs to be moved topnpm-workspace.yaml)In other words, most of the fixes are correcting dependency hygiene as it should be, namely "properly declaring dependencies that are used but were undeclared" — pnpm 11 simply surfaced them.
Symptom / Cause / Fix list
package.jsonpackageManagerfrompnpm@10.24.0topnpm@11.3.0pnpm/action-setupfails on the CI default Node.github/actions/environment/action.ymlstandalone: truetopnpm/action-setup(install pnpm via a Node-independent binary). node-version is already 24@types/nodenot foundframeworks/preact/package.jsonframeworks/solid/package.jsonframeworks/svelte/package.json@types/node: 24.0.13to eachdevDependencies(it was undeclared despite usingtypes:["node"]intsconfig. core already declared it)reactnot foundpackages/core/package.jsonimport type { FormEvent } from 'react'insrc/types/form/form.react.ts, addreact: ^19.2.1/@types/react: ^19.2.5todevDependenciesandreact(optional) topeerDependencies(following theframeworks/reactconvention)import/namedpackages/eslint-config/index.jsimport/namedtooff(same approach as already turningimport/no-unresolvedoff. Named imports are verified on the TypeScript side)tailwindcssinstanceprettier-plugin-tailwindcssresolves, changing class ordering (the lockfile versions themselves are unchanged)website/src/**(24 files)pnpm run format(class reordering only, 45±45 lines)"pnpm" field ignoredwarningpnpmfield inpackage.jsonpackage.json(root) /pnpm-workspace.yamlpnpm.patchedDependenciesand move it topatchedDependenciesinpnpm-workspace.yaml(required for the@qwik.dev/routerpatch to apply)ERR_PNPM_IGNORED_BUILDS)pnpm-workspace.yaml@parcel/watcher/deasync/esbuild/sharp/vercelwithtrueunderallowBuilds(finalizing the unresolved template pnpm auto-appended during install)Summary by cubic
Upgrade to
pnpm@11and fix dependency declarations exposed by new hoisting. CI/workspace config updated; website files reformatted due to aprettier-plugin-tailwindcssresolution change.Dependencies
packageManagertopnpm@11.3.0; movedpnpm.patchedDependenciestopatchedDependenciesinpnpm-workspace.yamlfor@qwik.dev/router.engines.nodeas>=22in the rootpackage.json.@types/nodetoframeworks/{preact,solid,svelte};reactand@types/reacttopackages/core. Added optionalreactand@types/reactinpeerDependenciesforpackages/core.allowBuildsfor@parcel/watcher,deasync,esbuild,sharp,vercel.import/namedinpackages/eslint-configto avoid false positives with Vue re-exports.pnpm/action-setuptostandalone: truefor Node-independent install.websitefiles only (class order) afterprettier-plugin-tailwindcssresolved a differenttailwindcssinstance.Migration
pnpm11.pnpm install.Written for commit 362d5d9. Summary will update on new commits.