Skip to content

chore: switch package manager to bun - #6

Merged
pkurcx merged 6 commits into
mainfrom
chore/bun
Sep 5, 2026
Merged

chore: switch package manager to bun#6
pkurcx merged 6 commits into
mainfrom
chore/bun

Conversation

@pkurcx

@pkurcx pkurcx commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Replace the pnpm workspace with bun (bun.lock, bunfig.toml with linker = "isolated", workspaces/overrides/trustedDependencies in the root manifest).
  • Run plain-ESM tooling under bun's runtime: bench (no oxc-node loader needed), postbuild, regen-snapshots, prepublishOnly, website bundle-engine.
  • Keep Node as runtime for AVA, the Docker matrix, Astro, Wrangler and Playwright.
  • CI: oven-sh/setup-bun + bun ci. The Linux Docker job installs inside the container (npx -y bun@1.4.2 ci) so Alpine images get musl builds of oxc-node/oxlint.
  • New smoke-bun-runtime job: runs the CLI under bun against the native and WASI bindings and diffs the outputs. publish depends on it.
  • Docs, oxfmt ignore list and script comments updated.

Verified locally

  • Root AVA suite: 333 passed
  • Website build, astro check, vitest (16) and Playwright e2e (15): passed
  • bun run bench under bun runtime: budgets met
  • bun ci: lockfile consistent

To watch on this run

  • wrangler-action detecting bun.lock
  • In-container npx bun ci on the node:*-alpine images

🤖 Generated with Claude Code

https://claude.ai/code/session_01WJqAgGwh52GqqMx1rfPzGn

pkurcx and others added 6 commits September 5, 2026 15:24
CI recreates it at publish time.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WJqAgGwh52GqqMx1rfPzGn
pnpm flips the mode whenever the root package is linked into a workspace
consumer, leaving a spurious diff behind.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WJqAgGwh52GqqMx1rfPzGn
`napi artifacts` rewrites the published loader's worker URL to the bare
package specifier, but a plain `napi build` emits the relative form, so
linking the local build made `predev` fail its worker-URL guard.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WJqAgGwh52GqqMx1rfPzGn
Replace the pnpm workspace with bun (isolated linker). Plain-ESM tooling
scripts (bench, postbuild, regen-snapshots, prepublish check, website
bundle-engine) run under bun; AVA, the Docker matrix, Astro, Wrangler and
Playwright stay on Node.

CI installs with `bun ci`. The Linux Docker job installs inside the
container so musl images get their own platform binaries. A new
smoke-bun-runtime job runs the CLI under bun against the native and WASI
bindings and diffs the outputs.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WJqAgGwh52GqqMx1rfPzGn
@pkurcx
pkurcx merged commit b06b4da into main Sep 5, 2026
38 checks passed
@pkurcx
pkurcx deleted the chore/bun branch September 5, 2026 14:04
pkurcx added a commit that referenced this pull request Sep 5, 2026
Replace the pnpm workspace with bun (isolated linker). Plain-ESM tooling
scripts (bench, postbuild, regen-snapshots, prepublish check, website
bundle-engine) run under bun; AVA, the Docker matrix, Astro, Wrangler and
Playwright stay on Node.

CI installs with `bun ci`. The Linux Docker job installs inside the
container so musl images get their own platform binaries; the macOS x64
job passes `--cpu=x64` to match the Rosetta Node. A new smoke-bun-runtime
job runs the CLI under bun against the native and WASI bindings.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WJqAgGwh52GqqMx1rfPzGn
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.

1 participant