-
Notifications
You must be signed in to change notification settings - Fork 0
chore(forms): make Zod a peer dep (support ^3 || ^4), add dev dep + docs dep; patch bump per Cursor rules #153
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…s; patch bump per cursor rules
|
|
WalkthroughAdds zod as a runtime dependency to apps/docs. In packages/components, bumps version to 0.22.1, moves zod from dependencies to devDependencies, and adds it to peerDependencies. No source code changes. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests
Comment |
|
📝 Storybook Preview: View Storybook This preview will be updated automatically when you push new changes to this PR.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/components/package.json (1)
39-45: Avoid duplicating peers in dependencies (risk of duplicate routers/contexts).
react-router,react-router-dom, andremix-hook-formare listed in both peerDependencies and dependencies (see Lines 75-77). This can install second copies and break hooks/context. Keep them as peers + devDeps only."peerDependencies": { "react": "^19.0.0", "react-router": "^7.0.0", "react-router-dom": "^7.0.0", "remix-hook-form": "7.1.0", "zod": "^3.24.1 || ^4.0.0" }, "dependencies": { - ... - "react-router": "^7.6.3", - "react-router-dom": "^7.6.3", - "remix-hook-form": "7.1.0", + ... }, "devDependencies": { + "react-router": "^7.6.3", + "react-router-dom": "^7.6.3", + "remix-hook-form": "7.1.0",
🧹 Nitpick comments (2)
apps/docs/package.json (2)
24-26: Add Zod with a range matching the library’s peerDependency to dogfood v4 as well.Keeps docs independent of hoisting—good. Consider aligning to the same semver union so Storybook can validate both majors.
- "zod": "^3.24.1" + "zod": "^3.24.1 || ^4.0.0"
24-24: Move Storybook to devDependencies (app-only tool).Smaller prod install; no runtime need.
- "storybook": "^9.0.6", + // (remove from dependencies)And under devDependencies:
+ "storybook": "^9.0.6",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (2)
apps/docs/package.json(1 hunks)packages/components/package.json(4 hunks)
🧰 Additional context used
📓 Path-based instructions (5)
{package.json,packages/**/package.json,apps/**/package.json}
📄 CodeRabbit inference engine (.cursor/rules/monorepo-organization.mdc)
Use consistent versioning across packages
Files:
apps/docs/package.jsonpackages/components/package.json
apps/**/package.json
📄 CodeRabbit inference engine (.cursor/rules/monorepo-organization.mdc)
Use workspace version for internal dependencies in apps (e.g., "@lambdacurry/forms": "*")
Files:
apps/docs/package.json
{packages/**/package.json,apps/**/package.json}
📄 CodeRabbit inference engine (.cursor/rules/monorepo-organization.mdc)
Define peerDependencies, dependencies, and devDependencies appropriately in package.json
Files:
apps/docs/package.jsonpackages/components/package.json
apps/docs/**
📄 CodeRabbit inference engine (.cursor/rules/storybook-testing.mdc)
apps/docs/**: Build Storybook static files before running Playwright tests locally.
Install Playwright browsers and system dependencies before running interaction tests.Storybook docs, examples, and UI tests live in apps/docs
Files:
apps/docs/package.json
packages/components/package.json
📄 CodeRabbit inference engine (.cursor/rules/versioning-with-npm.mdc)
Version bumps for @lambdacurry/forms update packages/components/package.json
Files:
packages/components/package.json
🔇 Additional comments (4)
packages/components/package.json (4)
3-3: Patch bump looks right.Matches the stated Cursor versioning rule.
97-99: Dev dependency for local typecheck is correct.No action needed.
80-80: No behavioral change.Nothing to do.
43-45: Confirm Zod v4 compatibility before advertising it — add CI matrix for v3/v4Zod 4 is stable (announced July 8, 2025) and includes breaking changes to imports/versioning, error maps/error formats, some z.infer/type-inference edge cases, and transform/refine behavior — verify runtime behavior and TypeScript typings under v4.
- Action: add a CI matrix to test zod@^3.24.1 and zod@^4.0.0 and run type-check/build/tests. Example:
strategy: matrix: zod: ["^3.24.1", "^4.0.0"] steps: - run: yarn add -D zod@${{ matrix.zod }} - run: yarn type-check && yarn buildLocation: packages/components/package.json (lines 43–45) — current range "zod": "^3.24.1 || ^4.0.0" is semver-valid but requires the above verification.
Jake Ruesink — this PR moves Zod out of the runtime bundle contract and aligns packaging with how we already externalize
zodin the build.What changed
zodfrom dependencies → peerDependencies (^3.24.1 || ^4.0.0)zodto devDependencies for local build/typecheck.cursor/rules/versioning-with-npm.mdczodto dependencies so docs don’t rely on workspace hoistingWhy
zodas external in the Vite config; peerDependency is the correct contract.Build health
yarn buildthenyarn typecheckto ensure healthy workspaceNotes
💻 View my work • About Codegen
⛔ Remove Codegen from PR • 🚫 Ban action checks
Summary by CodeRabbit