Skip to content

chore: migrate from npm/node to bun across the stack#25

Merged
KailasMahavarkar merged 2 commits intomainfrom
chore/migrate-to-bun
Apr 10, 2026
Merged

chore: migrate from npm/node to bun across the stack#25
KailasMahavarkar merged 2 commits intomainfrom
chore/migrate-to-bun

Conversation

@KailasMahavarkar
Copy link
Copy Markdown
Collaborator

Summary

Full migration from npm/node+tsx to bun.

  • Dockerfile - oven/bun:alpine base image, bun install --frozen-lockfile, bun src/index.ts entrypoint. No more npx tsx.
  • bin/hyperstack.mjs - detects process.versions.bun at runtime. Under bun: spawns bun src/index.ts directly. Under node: falls back to tsx loader (backwards compat for node users).
  • package.json - test/start/dev scripts use bun. bun test replaces tsx --test.
  • bun.lock - migrated from package-lock.json via bun install.
  • CI - oven-sh/setup-bun@v2 replaces actions/setup-node. Matrix is now bun-version: [latest] across 3 OSes. No more Node 18/20/24 matrix.
  • tests/workflow-behaviour.test.ts - assertions updated to match bun-based CI matrix.
  • install.md - Option B (local fallback) now uses bun instead of Node + tsx.
  • README.md - from-source commands updated to bun.

Test plan

  • bun test - 8/8 pass locally
  • CI verify matrix passes (ubuntu/macos/windows × bun latest)
  • Docker image builds and MCP server starts

🤖 Generated with Claude Code

KailasMahavarkar and others added 2 commits April 10, 2026 16:37
- Dockerfile: oven/bun:alpine base image, bun install, bun src/index.ts entrypoint
- bin/hyperstack.mjs: detect process.versions.bun and skip tsx loader when running under bun
- package.json: test/start/dev scripts now use bun (bun test, bun src/index.ts, bun --watch)
- bun.lock: migrated from package-lock.json
- CI: replace actions/setup-node + npm with oven-sh/setup-bun + bun; matrix now uses bun-version
- tests/workflow-behaviour.test.ts: update assertions to match bun-based CI matrix
- install.md: Option B now uses bun instead of Node + tsx
- README.md: from-source commands updated to bun

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Workflow file is checked out with CRLF on Windows runners. The
strategy/matrix regex used \n which never matched after .* stopped
at \r. Normalise to LF once before all assertions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@KailasMahavarkar KailasMahavarkar merged commit 6926d70 into main Apr 10, 2026
4 checks passed
@KailasMahavarkar KailasMahavarkar deleted the chore/migrate-to-bun branch April 10, 2026 11:29
KailasMahavarkar added a commit that referenced this pull request Apr 14, 2026
* chore: migrate from npm/node to bun across the stack

- Dockerfile: oven/bun:alpine base image, bun install, bun src/index.ts entrypoint
- bin/hyperstack.mjs: detect process.versions.bun and skip tsx loader when running under bun
- package.json: test/start/dev scripts now use bun (bun test, bun src/index.ts, bun --watch)
- bun.lock: migrated from package-lock.json
- CI: replace actions/setup-node + npm with oven-sh/setup-bun + bun; matrix now uses bun-version
- tests/workflow-behaviour.test.ts: update assertions to match bun-based CI matrix
- install.md: Option B now uses bun instead of Node + tsx
- README.md: from-source commands updated to bun

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(tests): normalise CRLF before regex matching on Windows CI

Workflow file is checked out with CRLF on Windows runners. The
strategy/matrix regex used \n which never matched after .* stopped
at \r. Normalise to LF once before all assertions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
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