Skip to content

Add Bun as Javascript runtime and package manager and add PHP 8.4 and 8.5 as options - #540

Merged
dbpolito merged 8 commits into
kool-dev:mainfrom
FelipeEstevanatto:main
Nov 12, 2026
Merged

dbpolito merged 8 commits into
kool-dev:mainfrom
FelipeEstevanatto:main

Conversation

@FelipeEstevanatto

Copy link
Copy Markdown
Contributor
Issue #535
🪲 Bug Fix No
🧰 Improvement Yes
🏆 Feature Yes
📝 Refactor No
❌ Removed No
📖 Documentation Yes
⚠️ Break Change No

Description
Adds Bun as a JavaScript runtime and package manager option, as requested in my issue #535.

  • New Vanilla Bun preset (kool create bunjs), parallel to Vanilla Node.js.
  • bun option on the shared wizards pick-node-pkg-mgr and pick-laravel-node (Laravel, Symfony, CodeIgniter, WordPress).
  • Explicit bun option on Next.js, Nuxt.js, Express.js, AdonisJS, and Laravel Octane.
  • JS frameworks that pick Bun run on oven/bun:1; Laravel uses Bun only for Vite assets. npm/yarn remain the defaults.
  • CLI support for the official Bun image: kool docker --user (oven/bun ignores kool's ASUSER entrypoint), kool create uses a folder name relative to the mounted cwd so absolute paths write to the host, and kool status ignores Compose V2 warning noise.
  • Drops obsolete Compose version: keys from remaining templates/presets/docs.
    Also adds PHP 8.4 and 8.5 to the PHP version wizards (kooldev/php:8.4 / 8.4-nginx and 8.5 / 8.5-nginx), listed above the existing 8.3 choice. Default remains PHP 8.2. Laravel Octane stays on the 8.2 Swoole/RoadRunner images.
    Notes
    AdonisJS on the Bun runtime is experimental (Adonis targets Node). A dedicated kooldev/bun image is still an option later if preferred over oven/bun:1.

FelipeEstevanatto and others added 5 commits August 25, 2026 18:28
Adds a Vanilla Bun preset and Bun options across JS/PHP stacks so
users can pick Bun the same way they pick npm or yarn. JS frameworks
(Next, Nuxt, Express, Adonis) swap the app service to oven/bun:1;
Laravel uses Bun only for Vite via a one-off kool docker helper.

Co-authored-by: Cursor <cursoragent@cursor.com>
Compose V2 ignores the top-level `version` attribute and warns on
it, which also broke `kool status` by mixing that warning into
service/container-id parsing. Remove version from the remaining
compose templates, presets, and docs examples.

Co-authored-by: Cursor <cursoragent@cursor.com>
oven/bun ignores kool's ASUSER entrypoint, so `kool docker` now
accepts --user to keep scaffolded files owned by the host user.
`kool create` passes a folder name relative to the mounted cwd so
absolute paths like /tmp/app are not written into the container's
own /tmp. `kool status` ignores Compose warning lines mixed into
combined output, and the compose parser no longer emits version 3.7.

Co-authored-by: Cursor <cursoragent@cursor.com>
kooldev/php already publishes 8.4/8.5 and *-nginx tags. Surface them
in pick-php (Laravel, Symfony, CodeIgniter, vanilla PHP) and in the
create-project scaffolding recipes, listed above the existing 8.3
choice. Default remains PHP 8.2.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added release-drafter:added Release drafter: Added release-drafter:changed Release drafter: Changed release-drafter:documentation Release drafter: Documentation release-drafter:minor Release drafter: Minor release-drafter:patch Release drafter: Patch labels Aug 25, 2026
FelipeEstevanatto and others added 3 commits October 22, 2026 21:44
Sync with kool-dev/kool through 9b50b3d. Resolve conflicts in the docker and status commands so the fork's Bun/Compose output parsing and --user support coexist with upstream's agent env vars and workspace-aware status.
@dbpolito

Copy link
Copy Markdown
Member

Merged current main and pushed 0fb78a6 to add the missing Vanilla Bun setup script, update its documentation, and add a real preset-install regression test. The shared templates/kool.yml fallback is working; no separate Bun kool.yml is needed. Validation: go test ./... passes; built the CLI, created a fresh Bun project, ran kool run setup with KOOL_APP_PORT=39840 (3000 was already occupied), and confirmed HTTP Hello World. Removed the smoke-test container/network afterward. Security maintenance is intentionally deferred at the maintainer’s request; no scan suppressions or bypasses were added. Framework-variant smoke tests and required approval/checks remain before merge.

@dbpolito
dbpolito merged commit ea9454e into kool-dev:main Nov 12, 2026
8 of 9 checks passed
@dbpolito

Copy link
Copy Markdown
Member

Published in 3.8.0, with all six standalone binaries and their SHA-256 files attached. Related feature issue #535 is closed as completed. Thanks @FelipeEstevanatto!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-drafter:added Release drafter: Added release-drafter:changed Release drafter: Changed release-drafter:documentation Release drafter: Documentation release-drafter:minor Release drafter: Minor release-drafter:patch Release drafter: Patch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants