Replace Yarn with Bun as the package manager#1606
Conversation
- Remove Yarn configuration (.yarnrc.yml, yarn.lock, .yarn/) - Remove packageManager field from package.json - Update all CI/CD workflows to use Bun commands - Update Mise tooling configuration to use Bun - Generate bun.lock
🦋 Changeset detectedLatest commit: 2e0927c The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2e0927cd8d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
This PR is being reviewed by Cursor Bugbot
Details
You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
| version: yarn changeset version | ||
| publish: yarn npm publish --tolerate-republish | ||
| version: bun changeset version | ||
| publish: bunx npm publish |
There was a problem hiding this comment.
Publish command loses idempotency flag for retries
Medium Severity
The publish command changed from yarn npm publish --tolerate-republish to bunx npm publish, dropping the --tolerate-republish flag. This Yarn-specific flag allows the publish command to succeed even if the package version was already published, which is essential for retrying partially failed CI runs. Without it, retrying a publish workflow after a partial failure will error out when encountering already-published versions. The standard npm publish command has no equivalent flag.


Summary
.yarnrc.yml,yarn.lock,.yarn/directory) and thepackageManagerfield frompackage.jsonmain.yml,typedoc.yml,version-or-publish.yml) to use Bun commands (bun install --frozen-lockfile,bun run,bunx)bun.lockas the new lockfileTest plan
bun run buildpasses locallybun run testpasses locally (47 test files, 134 tests)Note
Medium Risk
Switches the project’s package manager and updates CI/release commands, which can affect install determinism and publishing behavior if Bun/npm invocation differs from Yarn.
Overview
Migrates the repo from Yarn to Bun by removing Yarn-specific config (
.yarnrc.yml,.yarn/ignore) and introducing abun.locklockfile plus Mise configuration to install Bun.Updates GitHub Actions workflows to run installs, formatting, builds, tests, typedoc generation, and Changesets version/publish steps via
bun/bunxinstead ofyarn, and adds a Changesets patch entry documenting the migration.Written by Cursor Bugbot for commit 2e0927c. This will update automatically on new commits. Configure here.