chore: migrate from pnpm to bun#369
Conversation
These packages have been replaced by oxlint-config and oxfmt-config, which use the faster Rust-based toolchain (OXLint/OXFmt). BREAKING CHANGE: @mheob/eslint-config and @mheob/prettier-config are no longer published from this repository.
Switch the monorepo from pnpm workspaces to Bun workspaces. This includes: - Replace pnpm-workspace.yaml with Bun's native workspace support in package.json - Replace pnpm-lock.yaml with bun.lock - Add bunfig.toml for Bun configuration - Update GitHub Actions workflows to use oven-sh/setup-bun - Update Husky hooks to use bunx instead of pnpm exec - Remove pnpm-specific .npmrc settings - Replace catalog: dependency references with explicit versions
Extract regexp plugin rules from the base config into a new baseJsConfig that extends baseConfig. This allows consumers to opt into regexp linting separately, as it requires the eslint-plugin-regexp JS plugin. The new baseJsConfig is exported alongside the existing configs.
Update documentation, Claude agent configs, and skill definitions to reflect the migration from pnpm to Bun as the package manager. Also expand the oxfmt-config README with full usage documentation.
🦋 Changeset detectedLatest commit: 89d8824 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 |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
WalkthroughMigrates the monorepo from pnpm/ESLint/Prettier to Bun/OXLint/OXFmt, removes the Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
PR Review: Migrate from pnpm to BunGreat work on this migration! This is a well-executed package manager migration with thoughtful architecture improvements. Here's my detailed review: ✅ StrengthsMigration Quality
Architecture Improvements
Code Quality
🔍 Potential Issues & Recommendations1. GitHub Actions SHA Pinning Issue (Minor Security Concern)Location: uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe # v2Issue: The SHA Fix: Use the complete SHA or the semantic version tag: uses: oven-sh/setup-bun@v2 # or use complete 40-char SHA2. Missing NPM Provenance Configuration (Best Practice)Location: Suggestion: Consider adding - name: Create Release Pull Request or Publish to npm
uses: changesets/action@v1
with:
publish: bun run release
provenance: true # ← Add thisThis leverages the 3. Bun Version Compatibility (Documentation)Location: You're using
4. Peer Dependencies Auto-Install (Potential Surprise)Location: peerDependencies = trueThis auto-installs peer dependencies, which is convenient but could surprise users expecting explicit installation. Consider documenting this behavior in CONTRIBUTING.md so contributors understand why peers are auto-installed. 5. Turbo Cache Strategy (Performance)Question: Does Turborepo's caching work optimally with Bun's different node_modules structure compared to pnpm? You might want to verify that:
6. Breaking Change Communication (Documentation)The PR body clearly states the breaking changes, but consider:
🐛 Code-Specific Observationsoxlint-config ArchitectureThe refactor splitting // base-js.ts properly extends baseConfig
export const baseJsConfig = defineConfig({
extends: [baseConfig], // ✅ Good composition
jsPlugins: ['eslint-plugin-regexp'],
// ... regexp rules
});This allows users to avoid JS plugin dependencies if they only need native OXLint rules. Well done! Husky HooksThe pre-commit hook correctly skips in CI: [ -n "$CI" ] && exit 0This is good practice. However, consider if you want to run some basic checks in CI even if they're skipped locally (e.g., 🎯 Performance ConsiderationsBun Performance Benefits: You should see:
Potential Concerns:
🔒 Security Review✅ No security concerns identified
📋 Checklist Before Merge
🎉 Overall AssessmentVerdict: ✅ Approve with minor fixes This is a high-quality migration that's well-documented and thoughtfully executed. The only critical issue is the incomplete SHA in GitHub Actions, which will cause workflow failures. Once that's fixed, this is ready to merge. The architectural improvements (splitting Estimated Risk: Low (after fixing the SHA issue) Review powered by Claude Code 🤖 |
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (4)
packages/oxlint-config/package.json (1)
11-11:⚠️ Potential issue | 🟡 MinorIncorrect homepage URL.
The
homepagepoints topackages/oxfmt-configbut should point topackages/oxlint-configfor this package. It appears the URLs were swapped between the two packages.🐛 Proposed fix
- "homepage": "https://github.com/mheob/config/tree/main/packages/oxfmt-config", + "homepage": "https://github.com/mheob/config/tree/main/packages/oxlint-config",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/oxlint-config/package.json` at line 11, The package.json in this package has an incorrect "homepage" value pointing to "packages/oxfmt-config"; update the "homepage" field in this package.json to the correct URL that ends with "packages/oxlint-config" so the link reflects this package (edit the "homepage" key in package.json).packages/oxfmt-config/package.json (1)
11-11:⚠️ Potential issue | 🟡 MinorIncorrect homepage URL.
The
homepagepoints topackages/oxlint-configbut should point topackages/oxfmt-configfor this package.🐛 Proposed fix
- "homepage": "https://github.com/mheob/config/tree/main/packages/oxlint-config", + "homepage": "https://github.com/mheob/config/tree/main/packages/oxfmt-config",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/oxfmt-config/package.json` at line 11, The package.json "homepage" field is pointing to the wrong package path; update the "homepage" value to use the correct repository path for this package by changing the URL segment "packages/oxlint-config" to "packages/oxfmt-config" so the homepage accurately reflects this package (verify the "homepage" key in package.json and replace the incorrect path)..claude/skills/create-commit/SKILL.md (1)
5-5:⚠️ Potential issue | 🟡 MinorUpdate allowed-tools to use Bun instead of pnpm.
The
allowed-toolsstill referencesBash(pnpm changeset:*)but should be updated toBash(bun changeset:*)orBash(bunx changeset:*)to align with the migration to Bun.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.claude/skills/create-commit/SKILL.md at line 5, Update the allowed-tools entry by replacing the token Bash(pnpm changeset:*) with Bash(bun changeset:*) or Bash(bunx changeset:*) so the allowed-tools list reflects the Bun migration; specifically locate the allowed-tools line that currently contains "Bash(pnpm changeset:*)" and swap it to the chosen Bun invocation (e.g., "Bash(bun changeset:*)") ensuring the rest of the comma-separated entries remain unchanged..claude/agents/git-versioning.md (1)
84-99:⚠️ Potential issue | 🟡 MinorAzure DevOps PR instructions are inconsistent with updated create-pr skill.
This section still references Azure DevOps (
azCLI) for PR creation, but the.claude/skills/create-pr/SKILL.mdwas updated to use GitHub CLI (gh). Consider updating this section for consistency.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.claude/agents/git-versioning.md around lines 84 - 99, The Azure DevOps PR section in git-versioning.md is out of sync with the updated create-pr skill; replace references to the `az` CLI and "Azure DevOps" with the GitHub CLI (`gh`) workflow described in .claude/skills/create-pr/SKILL.md, update the step list to show using `gh` to create a draft PR, keep the required title/description/template guidance (reference @.azuredevops/pull_request_template.md if still used or switch to the repo's GitHub PR template), and retain the Jira ticket extraction guidance (extract NBP-XXXX from branch name) so the instructions in git-versioning.md match the `create-pr` skill behavior and flags used by `gh`.
🧹 Nitpick comments (2)
.cspell.json (1)
12-13: Consider removing obsolete pnpm ignore paths.Since the repository has migrated to Bun, the
**/pnpm-lock.yamland**/pnpm-workspace.yamlentries inignorePathsare no longer needed and can be removed for cleanup.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.cspell.json around lines 12 - 13, Remove the obsolete pnpm ignore entries from the cspell configuration: open .cspell.json and delete the "**/pnpm-lock.yaml" and "**/pnpm-workspace.yaml" items from the ignorePaths array so the file no longer lists pnpm-related paths (these entries are no longer needed after migrating to Bun).package.json (1)
23-23: Inconsistent command format:bun lintvsbun run lint.For consistency with other scripts in this file and across the repository (which use
bun run <script>), consider usingbun run linthere.📝 Suggested fix
-"version-packages": "changeset version && bun lint", +"version-packages": "changeset version && bun run lint",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@package.json` at line 23, The "version-packages" npm script currently uses "bun lint" which is inconsistent with other scripts; update the script value for "version-packages" (the package.json script key "version-packages") to use "bun run lint" instead of "bun lint" so it matches the repository's standard command format.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/agents/git-versioning.md:
- Around line 110-112: The docs reference npm scripts that don't exist in
package.json: remove or update the doc lines mentioning `bun run typecheck` and
`bun run test`, or add the missing scripts to the root package.json;
specifically either delete/update the two bullets referencing `typecheck` and
`test` to only mention `bun run lint`, or add `"typecheck": "turbo run
typecheck"` and `"test": "turbo run test"` to the root package.json scripts
section so `bun run typecheck` and `bun run test` work as documented.
In `@CLAUDE.md`:
- Line 41: Update the typo in the markdown reference: replace "exlint.config.ts"
with "oxlint.config.ts" in the list entry (the README/CLAUDE.md line that
describes the Root OXLint config) so the filename matches the actual tooling
name.
In `@packages/commitlint-config/package.json`:
- Line 27: The package.json build script uses "bun build" which doesn't emit
.d.ts files, causing the declared "types": "dist/index.d.ts" to be missing;
update the "build" pipeline (the "build" script in package.json) to run bun
build first and then invoke the TypeScript compiler (tsc) in declaration-only
mode using the project's tsconfig.json (e.g., tsc --emitDeclarationOnly -p
tsconfig.json) so that dist/index.d.ts is generated; ensure tsconfig.json has
"declaration": true and its outDir matches the dist folder referenced by the
"types" field.
---
Outside diff comments:
In @.claude/agents/git-versioning.md:
- Around line 84-99: The Azure DevOps PR section in git-versioning.md is out of
sync with the updated create-pr skill; replace references to the `az` CLI and
"Azure DevOps" with the GitHub CLI (`gh`) workflow described in
.claude/skills/create-pr/SKILL.md, update the step list to show using `gh` to
create a draft PR, keep the required title/description/template guidance
(reference @.azuredevops/pull_request_template.md if still used or switch to the
repo's GitHub PR template), and retain the Jira ticket extraction guidance
(extract NBP-XXXX from branch name) so the instructions in git-versioning.md
match the `create-pr` skill behavior and flags used by `gh`.
In @.claude/skills/create-commit/SKILL.md:
- Line 5: Update the allowed-tools entry by replacing the token Bash(pnpm
changeset:*) with Bash(bun changeset:*) or Bash(bunx changeset:*) so the
allowed-tools list reflects the Bun migration; specifically locate the
allowed-tools line that currently contains "Bash(pnpm changeset:*)" and swap it
to the chosen Bun invocation (e.g., "Bash(bun changeset:*)") ensuring the rest
of the comma-separated entries remain unchanged.
In `@packages/oxfmt-config/package.json`:
- Line 11: The package.json "homepage" field is pointing to the wrong package
path; update the "homepage" value to use the correct repository path for this
package by changing the URL segment "packages/oxlint-config" to
"packages/oxfmt-config" so the homepage accurately reflects this package (verify
the "homepage" key in package.json and replace the incorrect path).
In `@packages/oxlint-config/package.json`:
- Line 11: The package.json in this package has an incorrect "homepage" value
pointing to "packages/oxfmt-config"; update the "homepage" field in this
package.json to the correct URL that ends with "packages/oxlint-config" so the
link reflects this package (edit the "homepage" key in package.json).
---
Nitpick comments:
In @.cspell.json:
- Around line 12-13: Remove the obsolete pnpm ignore entries from the cspell
configuration: open .cspell.json and delete the "**/pnpm-lock.yaml" and
"**/pnpm-workspace.yaml" items from the ignorePaths array so the file no longer
lists pnpm-related paths (these entries are no longer needed after migrating to
Bun).
In `@package.json`:
- Line 23: The "version-packages" npm script currently uses "bun lint" which is
inconsistent with other scripts; update the script value for "version-packages"
(the package.json script key "version-packages") to use "bun run lint" instead
of "bun lint" so it matches the repository's standard command format.
🪄 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: 540b57c9-41c0-4c4f-8f44-a818c45d5d73
⛔ Files ignored due to path filters (2)
bun.lockis excluded by!**/*.lockpnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (108)
.changeset/readme-oxlint-config.md.claude/agents/git-versioning.md.claude/skills/create-commit/SKILL.md.claude/skills/create-pr/SKILL.md.cspell.json.cursor/rules/any-inside-generic-functions.mdc.cursor/rules/default-exports.mdc.cursor/rules/default-typescript.mdc.cursor/rules/discriminated-unions.mdc.cursor/rules/enums.mdc.cursor/rules/import-type.mdc.cursor/rules/installing-libraries.mdc.cursor/rules/interface-extends.mdc.cursor/rules/jsdoc-comments.mdc.cursor/rules/naming-conventions.mdc.cursor/rules/no-unchecked-indexed-access.mdc.cursor/rules/optional-properties.mdc.cursor/rules/readonly-properties.mdc.cursor/rules/return-types.mdc.cursor/rules/throwing.mdc.github/workflows/check.yml.github/workflows/release.yml.gitignore.husky/commit-msg.husky/pre-commit.husky/pre-push.npmrcCLAUDE.mdCONTRIBUTING.mdbunfig.tomlpackage.jsonpackages/commitlint-config/package.jsonpackages/eslint-config/CHANGELOG.mdpackages/eslint-config/LICENSEpackages/eslint-config/README.mdpackages/eslint-config/bin/index.mjspackages/eslint-config/package.jsonpackages/eslint-config/scripts/typegen.tspackages/eslint-config/scripts/utils/pnpm-workspace.tspackages/eslint-config/scripts/versiongen.tspackages/eslint-config/src/cli.tspackages/eslint-config/src/cli/constants.tspackages/eslint-config/src/cli/index.tspackages/eslint-config/src/cli/run.tspackages/eslint-config/src/cli/stages/update-eslint-files.tspackages/eslint-config/src/cli/stages/update-package-json.tspackages/eslint-config/src/cli/stages/update-vscode-settings.tspackages/eslint-config/src/cli/types.tspackages/eslint-config/src/cli/utils.tspackages/eslint-config/src/cli/versions-map.generated.tspackages/eslint-config/src/config-presets.tspackages/eslint-config/src/configs/astro.tspackages/eslint-config/src/configs/command.tspackages/eslint-config/src/configs/comments.tspackages/eslint-config/src/configs/disables.tspackages/eslint-config/src/configs/ignores.tspackages/eslint-config/src/configs/imports.tspackages/eslint-config/src/configs/index.tspackages/eslint-config/src/configs/javascript.tspackages/eslint-config/src/configs/jsdoc.tspackages/eslint-config/src/configs/jsonc.tspackages/eslint-config/src/configs/jsx.tspackages/eslint-config/src/configs/markdown.tspackages/eslint-config/src/configs/nextjs.tspackages/eslint-config/src/configs/node.tspackages/eslint-config/src/configs/perfectionist.tspackages/eslint-config/src/configs/prettier.tspackages/eslint-config/src/configs/react.tspackages/eslint-config/src/configs/regexp.tspackages/eslint-config/src/configs/sort.tspackages/eslint-config/src/configs/stylistic.tspackages/eslint-config/src/configs/svelte.tspackages/eslint-config/src/configs/test.tspackages/eslint-config/src/configs/toml.tspackages/eslint-config/src/configs/typescript.tspackages/eslint-config/src/configs/unicorn.tspackages/eslint-config/src/configs/vue.tspackages/eslint-config/src/configs/yaml.tspackages/eslint-config/src/factory.tspackages/eslint-config/src/globs.tspackages/eslint-config/src/index.tspackages/eslint-config/src/plugins.tspackages/eslint-config/src/typegen.d.tspackages/eslint-config/src/types.tspackages/eslint-config/src/utils/array.tspackages/eslint-config/src/utils/checks.tspackages/eslint-config/src/utils/index.tspackages/eslint-config/src/utils/linting.tspackages/eslint-config/src/utils/package.tspackages/eslint-config/src/utils/parser.tspackages/eslint-config/tsconfig.jsonpackages/eslint-config/tsdown.config.tspackages/internal/package.jsonpackages/oxfmt-config/README.mdpackages/oxfmt-config/package.jsonpackages/oxlint-config/README.mdpackages/oxlint-config/package.jsonpackages/oxlint-config/src/base-js.tspackages/oxlint-config/src/base.tspackages/oxlint-config/src/index.tspackages/prettier-config/CHANGELOG.mdpackages/prettier-config/LICENSEpackages/prettier-config/README.mdpackages/prettier-config/package.jsonpackages/prettier-config/src/index.tspackages/prettier-config/tsconfig.jsonpnpm-workspace.yamlturbo.json
💤 Files with no reviewable changes (84)
- .cursor/rules/return-types.mdc
- .npmrc
- .cursor/rules/import-type.mdc
- .cursor/rules/jsdoc-comments.mdc
- .gitignore
- .cursor/rules/any-inside-generic-functions.mdc
- .cursor/rules/discriminated-unions.mdc
- packages/eslint-config/src/utils/parser.ts
- packages/eslint-config/src/utils/package.ts
- .cursor/rules/throwing.mdc
- packages/prettier-config/LICENSE
- packages/eslint-config/tsconfig.json
- pnpm-workspace.yaml
- packages/prettier-config/CHANGELOG.md
- packages/prettier-config/tsconfig.json
- .cursor/rules/default-exports.mdc
- packages/eslint-config/LICENSE
- packages/eslint-config/src/cli/versions-map.generated.ts
- .cursor/rules/optional-properties.mdc
- packages/eslint-config/src/cli.ts
- .cursor/rules/default-typescript.mdc
- packages/eslint-config/CHANGELOG.md
- .cursor/rules/no-unchecked-indexed-access.mdc
- packages/eslint-config/scripts/utils/pnpm-workspace.ts
- packages/eslint-config/src/utils/array.ts
- packages/eslint-config/src/index.ts
- packages/prettier-config/package.json
- packages/eslint-config/src/utils/index.ts
- packages/eslint-config/src/plugins.ts
- packages/eslint-config/src/configs/regexp.ts
- packages/eslint-config/src/configs/imports.ts
- packages/prettier-config/README.md
- packages/eslint-config/tsdown.config.ts
- packages/eslint-config/src/configs/command.ts
- .cursor/rules/installing-libraries.mdc
- packages/eslint-config/bin/index.mjs
- packages/eslint-config/src/cli/index.ts
- .cursor/rules/interface-extends.mdc
- .cursor/rules/readonly-properties.mdc
- packages/eslint-config/src/configs/vue.ts
- packages/eslint-config/src/configs/test.ts
- packages/eslint-config/src/cli/types.ts
- packages/eslint-config/src/configs/unicorn.ts
- packages/oxlint-config/src/base.ts
- packages/prettier-config/src/index.ts
- packages/eslint-config/scripts/typegen.ts
- packages/eslint-config/src/configs/toml.ts
- .cursor/rules/naming-conventions.mdc
- packages/eslint-config/src/configs/jsx.ts
- packages/eslint-config/src/configs/ignores.ts
- packages/eslint-config/src/utils/checks.ts
- packages/eslint-config/src/configs/jsdoc.ts
- packages/eslint-config/src/configs/perfectionist.ts
- packages/eslint-config/src/configs/comments.ts
- packages/eslint-config/package.json
- packages/eslint-config/src/cli/utils.ts
- packages/eslint-config/src/configs/jsonc.ts
- packages/eslint-config/src/cli/stages/update-vscode-settings.ts
- packages/eslint-config/src/configs/markdown.ts
- packages/eslint-config/src/configs/stylistic.ts
- packages/eslint-config/src/configs/sort.ts
- packages/eslint-config/src/cli/stages/update-eslint-files.ts
- packages/eslint-config/src/config-presets.ts
- packages/eslint-config/src/configs/prettier.ts
- packages/eslint-config/src/configs/yaml.ts
- packages/eslint-config/src/configs/javascript.ts
- packages/eslint-config/src/cli/constants.ts
- packages/eslint-config/src/configs/node.ts
- packages/eslint-config/src/configs/nextjs.ts
- packages/eslint-config/src/configs/svelte.ts
- packages/eslint-config/src/configs/astro.ts
- packages/eslint-config/src/utils/linting.ts
- packages/eslint-config/src/configs/react.ts
- packages/eslint-config/src/configs/disables.ts
- packages/eslint-config/src/types.ts
- packages/eslint-config/src/cli/run.ts
- packages/eslint-config/src/configs/index.ts
- packages/eslint-config/src/globs.ts
- packages/eslint-config/src/factory.ts
- packages/eslint-config/scripts/versiongen.ts
- packages/eslint-config/src/configs/typescript.ts
- packages/eslint-config/README.md
- packages/eslint-config/src/cli/stages/update-package-json.ts
- .cursor/rules/enums.mdc
- Bump oven-sh/setup-bun commit hash to latest v2 - Remove the automated Claude Code Review workflow
- Bump cspell from v9 to v10 - Bump turbo to v2.9.4 - Remove ts-node (no longer needed with Bun's native TS support)
Use `bun run --bun` to ensure scripts run binaries through Bun's runtime instead of Node.js, which improves startup time and consistency across all packages.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
|
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
package.json (1)
27-43: Please split dependency version bumps into a dedicated versioning PR/workflow.Lines 27-43 bundle broad tooling version upgrades with the package-manager migration, which makes rollout and regression triage harder.
Based on learnings
In the mheob/config repository, version bumps are handled through a separate workflow task, not directly in the PRs.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@package.json` around lines 27 - 43, This PR mixes package-manager migration with tool version bumps; revert the bumped versions in package.json for the listed devDependencies (e.g. "@changesets/cli", "@commitlint/cli", "@mheob/*" entries, "turbo", "typescript", "husky", "lint-staged", etc.) so the migration commit only contains package-manager changes, then open a separate versioning PR/workflow that updates those dependency versions via the established workflow used in mheob/config; ensure the new PR references the dedicated versioning automation and updates any related changelog/workflow files there.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@package.json`:
- Around line 64-68: The package.json currently sets packageManager to Bun which
violates the repo policy; update the packageManager field to "pnpm@10.24.0" and
replace any Bun-specific usages in package.json (e.g., scripts and workspace
entries that reference Bun or use bun-commands) with pnpm equivalents (adjust
script commands in the "scripts" section and any workspace/tooling entries so
they use pnpm CLI semantics), ensuring the "trustedDependencies" block remains
intact and all package.json references to Bun are removed or converted to
pnpm-compatible commands.
---
Nitpick comments:
In `@package.json`:
- Around line 27-43: This PR mixes package-manager migration with tool version
bumps; revert the bumped versions in package.json for the listed devDependencies
(e.g. "@changesets/cli", "@commitlint/cli", "@mheob/*" entries, "turbo",
"typescript", "husky", "lint-staged", etc.) so the migration commit only
contains package-manager changes, then open a separate versioning PR/workflow
that updates those dependency versions via the established workflow used in
mheob/config; ensure the new PR references the dedicated versioning automation
and updates any related changelog/workflow files there.
🪄 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: b93bbc95-141d-475b-a676-eb8cf6ec6fdc
⛔ Files ignored due to path filters (1)
bun.lockis excluded by!**/*.lock
📒 Files selected for processing (9)
.claude/skills/create-pr/SKILL.md.github/workflows/check.yml.github/workflows/claude-code-review.yml.github/workflows/release.ymlpackage.jsonpackages/commitlint-config/package.jsonpackages/internal/package.jsonpackages/oxfmt-config/package.jsonpackages/oxlint-config/package.json
💤 Files with no reviewable changes (1)
- .github/workflows/claude-code-review.yml
🚧 Files skipped from review as they are similar to previous changes (7)
- .github/workflows/check.yml
- .github/workflows/release.yml
- .claude/skills/create-pr/SKILL.md
- packages/internal/package.json
- packages/oxlint-config/package.json
- packages/oxfmt-config/package.json
- packages/commitlint-config/package.json
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mheob/oxlint-config@1.0.1 ### Patch Changes - [#369](#369) ([@mheob](https://github.com/mheob)): docs: rewrite README to accurately reflect the source code - Document the previously missing `baseJsConfig` export and its JS plugins (`regexp`, `jsonc`, `yml`) - Fix `baseConfig` plugin table (remove plugins that belong to `baseJsConfig`) - Remove non-existent `toml` plugin section - Correct `tailwindcss/` rule prefixes to `better-tailwindcss/` - Add `react-hooks` to the `reactConfig` plugin table - Add peer dependency install snippets for optional configs - Replace all `ni` install commands with `bun add -D`



Summary
@mheob/eslint-configand@mheob/prettier-configpackagesbaseJsConfigto@mheob/oxlint-configfor opt-in regexp plugin rulesChanges
pnpm-lock.yamlwith Bun workspaces +bun.lock; addbunfig.tomlpnpm/action-setup+setup-nodetooven-sh/setup-bunpnpm execwithbunx; removeuse-correct-pmcheckcatalog:references with explicit versions in allpackage.jsonfilespackages/eslint-configandpackages/prettier-config(superseded by oxlint/oxfmt).cursor/rules/directorybaseConfiginto a newbaseJsConfigthat consumers can opt intoCLAUDE.md,CONTRIBUTING.md,README.mdfiles, and Claude agent/skill configsMotivation
Bun is significantly faster than pnpm for installs and script execution, and it natively supports workspaces without a separate workspace YAML file. The
eslint-configandprettier-configpackages have been superseded by the Rust-basedoxlint-configandoxfmt-configpackages which are already in use.Breaking Changes
@mheob/eslint-configand@mheob/prettier-configare no longer published from this repositorybaseConfigin@mheob/oxlint-configno longer includes regexp rules; use the newbaseJsConfiginsteadSummary by CodeRabbit
New Features
Breaking Changes
Documentation