Open
Conversation
Replace Yarn 1 with Bun 1.3.13 for package management and script running. Quote glob patterns in npm-run-all2 scripts for bun shell compatibility. Set minimumReleaseAge to 7 days in bunfig.toml. - Add bun to .tool-versions - Replace yarn.lock with bun.lock (both projects) - Add bunfig.toml with 7-day release age gate - Dockerfile: install bun via official script instead of yarn - compose.yml: use bun install --frozen-lockfile and bunx playwright - CI workflows: use oven-sh/setup-bun alongside setup-node - Update yarn commands to bun in AGENTS.md and usage_rules.md
Also remove node from .tool-versions since Playwright only runs inside the Docker container, which installs its own node via nodesource.
Only the test-demo job needs node on PATH (Phoenix.Test.Playwright spawns node_modules/playwright/cli.js via its #!/usr/bin/env node shebang). The other jobs only run bun scripts, and bun intercepts node shebangs when executing JS.
Persists Chromium downloads across container restarts so `playwright install` doesn't redownload on every startup.
Contributor
There was a problem hiding this comment.
Pull request overview
Migrates the repo’s JavaScript package management and script execution from Yarn 1 to Bun (v1.3.13), updating local dev, Docker, and CI workflows to use Bun and introducing Bun configuration to gate very new releases.
Changes:
- Replaced Yarn commands/lockfiles with Bun equivalents (incl. adding
bunfig.tomlandbun.lockin root anddemo/). - Updated Docker + Compose startup steps to install dependencies and run Playwright via Bun, including a Playwright browser cache volume.
- Updated CI workflows to set up Bun and run JS-related scripts via Bun.
Reviewed changes
Copilot reviewed 10 out of 14 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
usage_rules.md |
Updates documented test commands from yarn to bun run. |
AGENTS.md |
Updates documented lint command from yarn to bun run. |
.tool-versions |
Switches tool version tracking from Node to Bun. |
bunfig.toml |
Adds Bun install policy (minimumReleaseAge). |
bun.lock |
Adds Bun lockfile for root JS deps. |
demo/bunfig.toml |
Adds Bun install policy for demo project. |
demo/bun.lock |
Adds Bun lockfile for demo JS deps. |
demo/package.json |
Updates scripts to use Bun and quotes run-p globs for Bun shell compatibility. |
compose.yml |
Uses Bun for installs and Playwright; adds Playwright cache volume. |
Dockerfile |
Installs Bun via official script; uses Bun for dependency installs during image build. |
.github/workflows/elixir-main.yml |
Uses Bun in the Elixir mainline workflow for JS deps/linting. |
.github/workflows/ci.yml |
Uses Bun in CI for JS deps/linting and demo Playwright execution. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Pin oven-sh/setup-bun to commit SHA in all workflows (matches repo convention for action pinning) - Clean apt lists after installing nodejs/unzip in Dockerfile - Remove duplicate STARTUP_COMMAND_1 in compose.yml
Member
|
|
pehbehbeh
reviewed
Apr 25, 2026
pehbehbeh
reviewed
Apr 25, 2026
Bun's native parallel script runner replaces the run-p binary, so npm-run-all2 is no longer needed.
pehbehbeh
requested changes
Apr 29, 2026
Co-authored-by: Phil-Bastian Berndt <me@pbb.io>
Co-authored-by: Phil-Bastian Berndt <me@pbb.io>
pehbehbeh
approved these changes
Apr 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace Yarn 1 with Bun 1.3.13 for package management and script running. Quote glob patterns in npm-run-all2 scripts for bun shell compatibility. Set minimumReleaseAge to 7 days in bunfig.toml.