-
-
Notifications
You must be signed in to change notification settings - Fork 48
feat: migrate to bun #263
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
base: main
Are you sure you want to change the base?
feat: migrate to bun #263
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
WalkthroughReplaced pnpm invocations with bun/bunx across hooks and scripts, added root workspaces and overrides in package.json while removing pnpm-workspace.yaml, bumped Next.js in apps/cms, and removed TypeScript Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
💤 Files with no reviewable changes (1)
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
bun.lockis excluded by!**/*.lockpnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (4)
.husky/commit-msg(1 hunks)apps/cms/package.json(1 hunks)package.json(2 hunks)pnpm-workspace.yaml(0 hunks)
💤 Files with no reviewable changes (1)
- pnpm-workspace.yaml
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-11-24T22:28:24.947Z
Learnt from: CR
Repo: usemarble/marble PR: 0
File: .cursor/rules/ultracite.mdc:0-0
Timestamp: 2025-11-24T22:28:24.947Z
Learning: Always use pnpm as the package manager
Applied to files:
package.json
🪛 GitHub Actions: Code quality
apps/cms/package.json
[error] 1-1: Invalid packageManager field in package.json. Self-installer failed during 'pnpm action-setup'.
package.json
[error] 1-1: Invalid packageManager field in package.json. Self-installer failed during 'pnpm action-setup'.
🪛 GitHub Actions: Tests
apps/cms/package.json
[error] 1-1: Invalid packageManager field in package.json. The self-installer step (pnpm action-setup v4) failed.
package.json
[error] 1-1: Invalid packageManager field in package.json. The self-installer step (pnpm action-setup v4) failed.
🔇 Additional comments (5)
apps/cms/package.json (1)
62-62: Next.js patch bump looks reasonable; verify CMS under 16.0.6The change to
"next": "16.0.6"is a small patch bump and should be safe, but it’s still worth confirming that the CMS builds, runs, and passes tests against this version, especially given the React 19.x stack and eslint-config-next 16.0.3 combination..husky/commit-msg (1)
1-1: Commit-msg hook correctly migrated to bunx; ensure bun is availableSwitching the hook to
bunx commitlint --edit "$1"aligns with the bun-based toolchain and should behave like the previous pnpm invocation as long as bun and@commitlint/cliare installed. Please make sure bun is on the PATH for all contributors (and any CI that runs hooks), otherwise commits will fail when the hook executes.package.json (3)
4-7: Workspaces definition looks correct for bun/monorepo usageThe
"workspaces": ["apps/*", "packages/*"]configuration matches the existing structure and is a standard setup for bun/npm-style workspaces. This should let bun resolve the app and package projects consistently across the monorepo.
15-19: DB and lint/format scripts are consistent with bun CLI; confirm @marble/db scripts existThe updated scripts:
db:*now usebun run --filter @marble/db <script>, which is the expected bun workspace invocation pattern.lint/formatnow usebunx ultracite@latest ..., mirroring the previous pnpx usage while aligning with bun.Assuming
@marble/dbdefinesdb:migrate,db:deploy,db:generate,db:studio, anddb:pushscripts, these commands should behave as before under the new package manager.Also applies to: 22-23
43-50: Overrides block mirrors prior behavior; verify bun honors these resolutionsAdding a top-level
"overrides"section for@types/react,@types/react-dom, and the ProseMirror packages is a good way to retain consistent versions now that pnpm-specific overrides are removed. Please double-check that bun 1.3.3 correctly applies these overrides during install and that the pinned versions are still what you want across all workspaces.
| } | ||
| }, | ||
| "packageManager": "[email protected]" | ||
| "packageManager": "[email protected]" |
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.
🧩 Analysis chain
🏁 Script executed:
# Find all GitHub Actions workflow files
find .github/workflows -type f \( -name "*.yml" -o -name "*.yaml" \) 2>/dev/null | head -20Repository: usemarble/marble
Length of output: 122
🏁 Script executed:
# Check if there are any references to pnpm/action-setup in workflows
rg "pnpm/action-setup" .github/ 2>/dev/null || echo "No pnpm/action-setup found"Repository: usemarble/marble
Length of output: 192
🏁 Script executed:
# Check for bun setup or bun-related actions
rg "bun" .github/ 2>/dev/null || echo "No bun references found"Repository: usemarble/marble
Length of output: 176
🏁 Script executed:
# Show the current package.json to understand the context
cat -n package.json | head -60Repository: usemarble/marble
Length of output: 2123
🏁 Script executed:
# Show the relevant sections of the workflow files
cat -n .github/workflows/tests.yml | head -30Repository: usemarble/marble
Length of output: 664
🏁 Script executed:
# Show code-quality workflow
cat -n .github/workflows/code-quality.yml | head -30Repository: usemarble/marble
Length of output: 652
Update CI workflows to use bun before merging this packageManager change
The packageManager: "[email protected]" field will cause both .github/workflows/tests.yml and .github/workflows/code-quality.yml to fail because:
pnpm/action-setup@v4will reject thebunpackageManager specification as invalid- The workflows hardcode pnpm commands (
pnpm install,pnpm test,pnpm lint) which won't work with bun
Both workflows must be updated to:
- Replace
pnpm/action-setup@v4with a bun setup action (e.g.,oven-sh/setup-bun@v1) - Change run commands from
pnpmtobun(e.g.,bun install --ignore-scripts,bun test,bun lint)
🤖 Prompt for AI Agents
In package.json around line 54, adding "packageManager": "[email protected]" will break
CI; update both .github/workflows/tests.yml and
.github/workflows/code-quality.yml to use bun instead of pnpm: replace uses:
pnpm/action-setup@v4 with uses: oven-sh/setup-bun@v1 (or equivalent bun setup
action), change any pnpm install/test/lint commands to bun equivalents (e.g.,
bun install --ignore-scripts, bun test, bun lint), and adjust any caching or
step names that reference pnpm to reference bun so the workflows run
successfully with the new packageManager.
Note
Remove
pnpm-workspace.yamlcontents, eliminating workspace package mappings.Written by Cursor Bugbot for commit 53cebf6. This will update automatically on new commits. Configure here.
Summary by CodeRabbit
Chores
Style
✏️ Tip: You can customize this high-level summary in your review settings.