Skip to content

Commit 936bccc

Browse files
authored
chore: migrate from pnpm to bun (#369)
## Summary - Switch monorepo package manager from pnpm to Bun - Remove deprecated `@mheob/eslint-config` and `@mheob/prettier-config` packages - Add `baseJsConfig` to `@mheob/oxlint-config` for opt-in regexp plugin rules ## Changes - **Package manager**: Replace pnpm workspaces + `pnpm-lock.yaml` with Bun workspaces + `bun.lock`; add `bunfig.toml` - **CI/CD**: Switch GitHub Actions from `pnpm/action-setup` + `setup-node` to `oven-sh/setup-bun` - **Husky hooks**: Replace `pnpm exec` with `bunx`; remove `use-correct-pm` check - **Dependencies**: Replace pnpm `catalog:` references with explicit versions in all `package.json` files - **Removed packages**: Delete `packages/eslint-config` and `packages/prettier-config` (superseded by oxlint/oxfmt) - **Removed cursor rules**: Remove `.cursor/rules/` directory - **oxlint-config**: Extract regexp plugin rules from `baseConfig` into a new `baseJsConfig` that consumers can opt into - **Docs**: Update `CLAUDE.md`, `CONTRIBUTING.md`, `README.md` files, and Claude agent/skill configs ## Motivation Bun is significantly faster than pnpm for installs and script execution, and it natively supports workspaces without a separate workspace YAML file. The `eslint-config` and `prettier-config` packages have been superseded by the Rust-based `oxlint-config` and `oxfmt-config` packages which are already in use. ## Breaking Changes - `@mheob/eslint-config` and `@mheob/prettier-config` are no longer published from this repository - `baseConfig` in `@mheob/oxlint-config` no longer includes regexp rules; use the new `baseJsConfig` instead ## Summary by CodeRabbit * **New Features** * Added a JavaScript-focused lint config export (baseJsConfig) and a JS-specific config set. * **Breaking Changes** * Tooling and CI migrated from pnpm/Node scripts to Bun; repo scripts and workflows now expect Bun/Node ≥24. * Legacy ESLint/Prettier package surfaces removed—migrate to OXLint/OXFmt configs. * **Documentation** * Many READMEs and contribution docs updated with Bun commands, peer-dep instructions, and config usage examples.
1 parent 7c013c2 commit 936bccc

111 files changed

Lines changed: 1930 additions & 50810 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/readme-oxlint-config.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
'@mheob/oxlint-config': patch
3+
---
4+
5+
docs: rewrite README to accurately reflect the source code
6+
7+
- Document the previously missing `baseJsConfig` export and its JS plugins (`regexp`, `jsonc`, `yml`)
8+
- Fix `baseConfig` plugin table (remove plugins that belong to `baseJsConfig`)
9+
- Remove non-existent `toml` plugin section
10+
- Correct `tailwindcss/` rule prefixes to `better-tailwindcss/`
11+
- Add `react-hooks` to the `reactConfig` plugin table
12+
- Add peer dependency install snippets for optional configs
13+
- Replace all `ni` install commands with `bun add -D`

.claude/agents/git-versioning.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ best practices. You help developers create clean, meaningful version history tha
2929

3030
## Commit Message Convention
3131

32-
This project uses **Commitizen** (`nr commit` is available), so follow the **Conventional Commits** specification strictly:
32+
This project uses **Commitizen** (`bun run commit` is available), so follow the **Conventional Commits** specification strictly:
3333

3434
```
3535
<type>(<scope>): <subject>
@@ -107,9 +107,9 @@ When creating branches, use the pattern: `<type>/<short-description>` Examples:
107107

108108
Before creating commits, consider running relevant checks:
109109

110-
- `nr lint` - Ensure no linting errors
111-
- `nr typecheck` - Ensure TypeScript compiles
112-
- `nr test` - Ensure tests pass
110+
- `bun run lint` - Ensure no linting errors
111+
- `bun run typecheck` - Ensure TypeScript compiles
112+
- `bun run test` - Ensure tests pass
113113

114114
If any checks fail, inform the user and suggest fixes before committing.
115115

.claude/skills/create-commit/SKILL.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ agent: git-versioning
1616
## Your tasks
1717

1818
- make a feature branch is active
19-
- create changeset if needed (at least an empty changeset); don't write the change message too short
19+
- create changeset for each commit (at least an empty one, if no changeset is needed); don't write the change message too short
2020
- create a single git commit or multiple commits if it makes more sense based on the above changes
2121

2222
## Structure
@@ -44,9 +44,8 @@ Describe the area of the codebase affected by the change, e.g. `feat(auth): add
4444

4545
**Package scopes** (one per package):
4646

47-
- `eslint``@mheob/eslint-config`
47+
- `oxfmt``@mheob/oxfmt-config`
4848
- `oxlint``@mheob/oxlint-config`
49-
- `prettier``@mheob/prettier-config`
5049
- `internal``@mheob/internal`
5150
- `tsconfig``@mheob/tsconfig`
5251

.claude/skills/create-pr/SKILL.md

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,20 @@
22
name: create-pr
33
description: Create a Pull Request
44
user-invocable: true
5-
allowed-tools: Bash(az*), Bash(git*), Bash(nr*)
5+
allowed-tools: Bash(gh*), Bash(git*), Bash(bun run*)
66
agent: git-versioning
77
---
88

9-
Create a _DRAFT_ Pull Request based on all commits in the current branch that differ from `develop`.
9+
Create a Pull Request based on all commits in the current branch that differ from `develop`.
10+
11+
Check for an available changeset.
1012

1113
- the title is written as conventional commit with a max length of 50 characters
1214
- the description is organized in "Summary", "Changes", "Motivation" and if useful any additional context
13-
- use our template: @.azuredevops/pull_request_template.md
1415

1516
Make sure the description is clear and concise, and that it provides enough information for reviewers to understand the purpose
1617
and impact of the changes.
1718

18-
If possible extract the Jira ticket number (NBP-0000) from the branch name and replace all instances of `NBP-XXX` in the
19-
description.
20-
21-
Use Azure DevOps as remote. If you can use the Azure DevOps MCP us it, otherwise make sure the `az` CLI should be installed and
22-
configured. If not describe how to use the `az` CLI to create the PR on Azure DevOps.
23-
2419
Do not use the `--no-verify` if not really need.
2520

2621
Do not mention an co-author or generator.

.cspell.json

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,12 @@
1111
"**/package.json",
1212
"**/pnpm-lock.yaml",
1313
"**/pnpm-workspace.yaml",
14-
"**/turbo.json",
15-
"packages/eslint-config/src/typegen.d.ts",
14+
"**/turbo.json"
1615
],
1716
"import": ["@cspell/dict-de-de/cspell-ext.json"],
1817
"language": "en,de,lorem",
1918
"version": "0.2",
2019
"words": [
21-
"antfu",
2220
"astro",
2321
"backreference",
2422
"breakline",
@@ -53,6 +51,6 @@
5351
"unocss",
5452
"vitepress",
5553
"vuejs",
56-
"yoda",
57-
],
54+
"yoda"
55+
]
5856
}

.cursor/rules/any-inside-generic-functions.mdc

Lines changed: 0 additions & 42 deletions
This file was deleted.

.cursor/rules/default-exports.mdc

Lines changed: 0 additions & 43 deletions
This file was deleted.

.cursor/rules/default-typescript.mdc

Lines changed: 0 additions & 37 deletions
This file was deleted.

.cursor/rules/discriminated-unions.mdc

Lines changed: 0 additions & 61 deletions
This file was deleted.

.cursor/rules/enums.mdc

Lines changed: 0 additions & 49 deletions
This file was deleted.

0 commit comments

Comments
 (0)