Skip to content

build(repo): migrate from pnpm to bun package manager#363

Draft
ruudandriessen wants to merge 1 commit intomainfrom
ruudandriessen/use-bun-installer
Draft

build(repo): migrate from pnpm to bun package manager#363
ruudandriessen wants to merge 1 commit intomainfrom
ruudandriessen/use-bun-installer

Conversation

@ruudandriessen
Copy link
Collaborator

Summary

Completed migration from pnpm to bun as the primary package manager for the monorepo.

  • Updated root package.json: added packageManager: bun@1.3.0, moved pnpm.overrides to top-level overrides, added workspaces field
  • Replaced all npm scripts: pnpm runbun run, pnpm execbunx
  • Updated 10 GitHub Actions workflows to use oven-sh/setup-bun@v2 instead of pnpm/action-setup
  • Replaced pnpm-lock.yaml with bun.lock (~19MB reduction)
  • Updated all Vercel deployment configs to use bun install and bun run turbo
  • Updated husky commit hooks to use bunx instead of pnpm exec
  • Fixed license checking to use license-checker CLI instead of pnpm licenses list
  • Pinned @types/react@19.2.8 and @types/react-dom@19.2.2 for bun compatibility
  • Build verification: all 7 tasks pass successfully

Testing

  • Local build: ✅ 7/7 tasks completed successfully
  • All packages compile without errors
  • .npmrc configuration is preserved (not converted to bunfig.toml)

🤖 Generated with Claude Code

@github-actions
Copy link

github-actions bot commented Mar 18, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (PT)
apollo-canvas ❌ Failed: 2026-03-18T11:26:36.416Z Failed: @uipath/apollo-react#build 2026-03-18T11:26:36.416Z ... N/A, Logs Mar 18, 2026, 04:26:46 AM
apollo-landing 🟢 Ready Preview, Logs Mar 18, 2026, 04:25:55 AM
apollo-ui-react ❌ Failed: 2026-03-18T11:26:39.224Z Failed: @uipath/apollo-react#build 2026-03-18T11:26:39.224Z ... N/A, Logs Mar 18, 2026, 04:26:46 AM
apollo-vertex 🟢 Ready Preview, Logs Mar 18, 2026, 04:27:12 AM
apollo-wind 🟢 Ready Preview, Logs Mar 18, 2026, 04:25:49 AM

- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check failure

Code scanning / zizmor

unpinned action reference Error

unpinned action reference
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check failure

Code scanning / zizmor

unpinned action reference Error

unpinned action reference
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check failure

Code scanning / zizmor

unpinned action reference Error

unpinned action reference
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check failure

Code scanning / zizmor

unpinned action reference Error

unpinned action reference
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check failure

Code scanning / zizmor

unpinned action reference Error

unpinned action reference
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check failure

Code scanning / zizmor

unpinned action reference Error

unpinned action reference
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check failure

Code scanning / zizmor

unpinned action reference Error

unpinned action reference
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check failure

Code scanning / zizmor

unpinned action reference Error

unpinned action reference
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check failure

Code scanning / zizmor

unpinned action reference Error

unpinned action reference
persist-credentials: false

- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check failure

Code scanning / zizmor

unpinned action reference Error

unpinned action reference
@github-actions
Copy link

github-actions bot commented Mar 18, 2026

Dependency License Review

  • 23 package(s) scanned
  • ✅ No license issues found
License distribution
License Packages
MIT 20
MIT OR Apache-2.0 1
ISC 1
Apache-2.0 1

- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'Apollo Vertex Lint' step
Uses Step
uses 'oven-sh/setup-bun' with ref 'v2', not a pinned commit hash
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'Apollo Vertex Registry Check' step
Uses Step
uses 'oven-sh/setup-bun' with ref 'v2', not a pinned commit hash
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'Apollo Vertex Registry Check' step
Uses Step
uses 'oven-sh/setup-bun' with ref 'v2', not a pinned commit hash
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'Commit Lint' step
Uses Step
uses 'oven-sh/setup-bun' with ref 'v2', not a pinned commit hash
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'Dependency Review' step
Uses Step
uses 'oven-sh/setup-bun' with ref 'v2', not a pinned commit hash
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'Notify Vertex Component Updates' step
Uses Step
uses 'oven-sh/setup-bun' with ref 'v2', not a pinned commit hash
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'PR Checks' step
Uses Step
uses 'oven-sh/setup-bun' with ref 'v2', not a pinned commit hash
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'PR Checks' step
Uses Step
uses 'oven-sh/setup-bun' with ref 'v2', not a pinned commit hash
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'Release' step
Uses Step
uses 'oven-sh/setup-bun' with ref 'v2', not a pinned commit hash
persist-credentials: false

- name: Setup Bun
uses: oven-sh/setup-bun@v2

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'Vercel Deployments' step
Uses Step
uses 'oven-sh/setup-bun' with ref 'v2', not a pinned commit hash
@ruudandriessen ruudandriessen force-pushed the ruudandriessen/use-bun-installer branch from 730a709 to 1ed76dd Compare March 18, 2026 11:19
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ruudandriessen ruudandriessen force-pushed the ruudandriessen/use-bun-installer branch from 1ed76dd to e3cacbc Compare March 18, 2026 11:24
@CalinaCristian
Copy link
Collaborator

CalinaCristian commented Mar 18, 2026

Dependency License Review

  • 23 package(s) scanned
  • ✅ No license issues found

License distribution

This looks wrong, it's not doing nested.

compared to:
image

@CalinaCristian
Copy link
Collaborator

CalinaCristian commented Mar 18, 2026

Doesn't look like a huge change for CI -- same times (if you check others) 🤔
Would be nice to see a diff on local install times without cache

BUN:
image

PNPM:
image

"clean": "turbo run clean && rm -rf .turbo && rm -rf node_modules",
"release": "pnpm --workspace-concurrency=1 --sort --filter './packages/*' --filter './web-packages/*' exec -- semantic-release",
"release:dry-run": "pnpm --workspace-concurrency=1 --sort --filter './packages/*' --filter './web-packages/*' exec -- semantic-release --dry-run",
"release": "for dir in packages/* web-packages/*; do [ -f \"$dir/package.json\" ] && (cd \"$dir\" && npx semantic-release); done",
Copy link
Collaborator

Choose a reason for hiding this comment

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

don't love this 😅

console.log('\n📦 Publishing to npm...');
execFileSync(
'pnpm',
'npm',
Copy link
Collaborator

Choose a reason for hiding this comment

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

this doesn't replace workspace:* deps

try {
const json = execSync('pnpm licenses list --json', { encoding: 'utf8', maxBuffer: 50 * 1024 * 1024 });
const data: Record<string, PackageInfo[]> = JSON.parse(json);
const json = execSync('npx -y license-checker --json --excludePrivatePackages', { encoding: 'utf8', maxBuffer: 50 * 1024 * 1024 });
Copy link
Collaborator

@CalinaCristian CalinaCristian Mar 18, 2026

Choose a reason for hiding this comment

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

pnpm was pretty strong here OOTB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants