Skip to content

Remove Bun and migrate tooling to Vite+ - #26

Merged
SegaraRai merged 2 commits into
mainfrom
codex/remove-bun-runtime
Jul 31, 2026
Merged

Remove Bun and migrate tooling to Vite+#26
SegaraRai merged 2 commits into
mainfrom
codex/remove-bun-runtime

Conversation

@SegaraRai

@SegaraRai SegaraRai commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Summary

  • remove Bun from local tooling and GitHub Actions
  • migrate tests and benchmarks to Vite+ Test
  • replace Bun SQLite coverage with better-sqlite3 for the synchronous Drizzle adapter
  • replace Bun shell, glob, and environment APIs with Node.js APIs
  • migrate package builds from tsup to Vite+ vp pack while preserving ESM/CJS, declarations, source maps, and development/production conditional exports
  • remove redundant standalone tooling dependencies and disable pnpm's automatic installation of unused optional peers
  • update migration generation for Prisma 7 and refresh generated Drizzle metadata
  • update workspace documentation, LLM documentation, and measured bundle sizes

Why

The repository had moved task orchestration, formatting, and linting to Vite+, but tests, benchmarks, build scripts, SQLite integration tests, and CI still depended on Bun. tsup also duplicated library packaging functionality now provided by Vite+.

This completes the toolchain consolidation so the project uses pnpm, Node.js, and Vite+ consistently. It also removes platform-sensitive fixture symlinks that behaved differently on Windows and Linux.

Impact

There is no intended public API change. The existing package entry points, ESM/CJS formats, declaration files, and development conditional exports are preserved. Historical Prisma 5/6/7 and Drizzle 0.30/0.39/0.44/0.45/1.0 RC compatibility fixtures remain covered.

Updated measured core bundle sizes include:

  • binary: 3.37 KiB minified / 1.45 KiB gzipped
  • string: 4.15 KiB minified / 1.82 KiB gzipped
  • both: 7.24 KiB minified / 2.76 KiB gzipped

Validation

  • vp install --frozen-lockfile
  • vp run check
  • vp run build
  • vp run typecheck
  • vp run test — 31 files, 157 tests
  • vp run bench
  • vp run attw
  • vp run build:docs
  • vp run build:examples
  • pnpm peers check
  • git diff --check

TypeDoc completes with its existing documentation warnings and no errors.

Summary by CodeRabbit

  • New Features
    • Synchronous Drizzle examples now support Better SQLite and other synchronous database drivers.
    • Prisma configurations now support Node.js runtimes.
  • Documentation
    • Updated setup, build, testing, installation, and synchronous database guidance.
    • Refreshed core package bundle-size measurements.
  • Refactor
    • Standardized builds, tests, benchmarks, and scripts on Vite Plus and Node.js tooling.
    • Updated migration generation and database test infrastructure.
  • Tests
    • Migrated test utilities and examples to the Vite Plus test runner.

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e0181b6a-1911-4b9e-be80-5f8c678c7ad8

📥 Commits

Reviewing files that changed from the base of the PR and between 1b506b1 and 63281dc.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (92)
  • .github/workflows/publish.yml
  • .github/workflows/test.yml
  • WORKSPACE.md
  • packages/core/README.md
  • packages/core/drizzle/migrations.e2e-binary/meta/0000_snapshot.json
  • packages/core/drizzle/migrations.e2e-binary/meta/_journal.json
  • packages/core/drizzle/migrations.e2e-string/meta/0000_snapshot.json
  • packages/core/drizzle/migrations.e2e-string/meta/_journal.json
  • packages/core/drizzle/migrations/meta/0000_snapshot.json
  • packages/core/drizzle/migrations/meta/_journal.json
  • packages/core/examples/common/client-base.ts
  • packages/core/examples/core-only/client.string.test.ts
  • packages/core/examples/drizzle-orm-sync/client.binary.test.ts
  • packages/core/examples/drizzle-orm-sync/client.string.test.ts
  • packages/core/examples/drizzle-orm-sync/entrypoint.all.ts
  • packages/core/examples/drizzle-orm-sync/server.binary.ts
  • packages/core/examples/drizzle-orm-sync/server.string.ts
  • packages/core/examples/drizzle-orm/client.binary.test.ts
  • packages/core/examples/drizzle-orm/client.string.test.ts
  • packages/core/examples/drizzle-orm/index-performance.binary.test.ts
  • packages/core/examples/drizzle-orm/index-performance.string.test.ts
  • packages/core/examples/drizzle-orm/sorting.binary.test.ts
  • packages/core/examples/prisma/client.binary.test.ts
  • packages/core/examples/prisma/client.string.test.ts
  • packages/core/examples/rolldown.config.ts
  • packages/core/package.json
  • packages/core/prisma.config.ts
  • packages/core/prisma/migrations/migration_lock.toml
  • packages/core/prisma/schema.prisma
  • packages/core/public/llms-full.txt
  • packages/core/public/llms.txt
  • packages/core/scripts/copy-assets.ts
  • packages/core/scripts/generate-migrations.ts
  • packages/core/src/bases.test.ts
  • packages/core/src/drizzle/common.test.ts
  • packages/core/src/drizzle/runtime-sync.test.ts
  • packages/core/src/drizzle/runtime-sync.ts
  • packages/core/src/drizzle/runtime.test.ts
  • packages/core/src/drizzle/runtime.ts
  • packages/core/src/drizzle/schema.test.ts
  • packages/core/src/factory.test.ts
  • packages/core/src/lib/decimal-binary.test.ts
  • packages/core/src/lib/decimal-string.test.ts
  • packages/core/src/lib/fractional-indexing-binary.bench.ts
  • packages/core/src/lib/fractional-indexing-binary.test.ts
  • packages/core/src/lib/fractional-indexing-string.bench.ts
  • packages/core/src/lib/fractional-indexing-string.test.ts
  • packages/core/src/lib/utils.test.ts
  • packages/core/src/prisma/extension.test.ts
  • packages/core/src/prisma/schema.test.ts
  • packages/core/test/common.ts
  • packages/core/test/drizzle.e2e-binary.ts
  • packages/core/test/drizzle.e2e-string.ts
  • packages/core/test/drizzle.ts
  • packages/core/test/prisma.ts
  • packages/core/tsconfig.json
  • packages/core/tsup.config.ts
  • packages/core/vite.config.ts
  • packages/examples/common/schemas/schema.prisma
  • packages/examples/common/test/basic.drizzle.test.ts
  • packages/examples/common/test/basic.prisma.test.ts
  • packages/examples/common/tsconfig.json
  • packages/examples/drizzle-v0-30/package.json
  • packages/examples/drizzle-v0-30/src/server.ts
  • packages/examples/drizzle-v0-30/test-utils.ts
  • packages/examples/drizzle-v0-30/test/basic.test.ts
  • packages/examples/drizzle-v0-40/package.json
  • packages/examples/drizzle-v0-40/src/server.ts
  • packages/examples/drizzle-v0-40/test-utils.ts
  • packages/examples/drizzle-v0-40/test/basic.test.ts
  • packages/examples/drizzle-v0-44/package.json
  • packages/examples/drizzle-v0-44/src/server.ts
  • packages/examples/drizzle-v0-44/test-utils.ts
  • packages/examples/drizzle-v0-44/test/basic.test.ts
  • packages/examples/drizzle-v0-45/package.json
  • packages/examples/drizzle-v0-45/test/basic.test.ts
  • packages/examples/drizzle-v1/package.json
  • packages/examples/drizzle-v1/test/basic.test.ts
  • packages/examples/prisma-v5/package.json
  • packages/examples/prisma-v5/prisma/schema.prisma
  • packages/examples/prisma-v5/src/server.ts
  • packages/examples/prisma-v5/test-utils.ts
  • packages/examples/prisma-v5/test/basic.test.ts
  • packages/examples/prisma-v6/package.json
  • packages/examples/prisma-v6/prisma/schema.prisma
  • packages/examples/prisma-v6/src/server.ts
  • packages/examples/prisma-v6/test-utils.ts
  • packages/examples/prisma-v6/test/basic.test.ts
  • packages/examples/prisma-v7/package.json
  • packages/examples/prisma-v7/test/basic.test.ts
  • pnpm-workspace.yaml
  • vite.config.ts

📝 Walkthrough

Walkthrough

The workspace migrated from Bun-oriented CI, testing, database examples, scripts, and packaging to Vite+, Node.js, Better SQLite, and pnpm. Documentation, migration metadata, Prisma configuration, and example packages were updated accordingly.

Changes

Vite+ and Node.js tooling

Layer / File(s) Summary
Vite+ build and workspace tooling
.github/workflows/*, vite.config.ts, packages/core/vite.config.ts, packages/core/scripts/*, pnpm-workspace.yaml, packages/core/tsconfig.json
CI, builds, tests, benchmarks, scripts, TypeScript settings, and peer handling now use Vite+ and Node.js.
Better SQLite test and example integration
packages/core/test/*, packages/core/examples/drizzle-orm-sync/*, packages/core/src/drizzle/runtime-sync.test.ts
Synchronous Drizzle setup and examples now use Better SQLite, with updated migration discovery and driver documentation.
Core tests and benchmarks on Vite+ Test
packages/core/src/**/*.test.ts, packages/core/src/lib/*.bench.ts, packages/core/examples/**/*.test.ts
Test imports and assertions were migrated to Vite+ Test, and benchmarks use its bench API.
Example packages and Prisma runtime updates
packages/examples/**
Example packages remove Bun-specific dependencies and Prisma runtime settings while updating test imports and shared utility paths.
Migration metadata and documentation
packages/core/drizzle/migrations/**, packages/core/README.md, packages/core/public/llms*.txt
Migration metadata was regenerated or reformatted, and documentation now describes pnpm and synchronous database drivers.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Poem

A rabbit hops where Bun once ran,
Vite+ commands now lead the plan.
Better SQLite fills the tray,
Tests and builds go a brighter way.
JSON blooms in tidy rows—
Node-powered carrots for all who knows!

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/remove-bun-runtime

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@SegaraRai
SegaraRai marked this pull request as ready for review July 31, 2026 00:39
@SegaraRai
SegaraRai merged commit 2738276 into main Jul 31, 2026
1 of 2 checks passed
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