You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
build(phar): replace humbug/box with native bin/build-phar.php script
Box 4.x has a known PHP 8.4 incompatibility (chdir() errno 20 in
endBuffering()). Replace it with bin/build-phar.php — a native PHP
Phar builder with no external dependencies.
Changes:
- composer.json: scripts.build → php -d phar.readonly=0 bin/build-phar.php
- Makefile: remove BOX var and _require-box guard; build target uses
PHAR_BUILDER = bin/build-phar.php; VERSION simplified to git tag only;
check-env shows PHAR builder status instead of box version
- README.md: remove humbug/box from requirements and quick build
- docs/BUILDING.md: rewrite around bin/build-phar.php; document why
native builder was chosen; remove all box.json references
The project uses a native PHP PHAR builder (`bin/build-phar.php`) instead of `humbug/box`.
58
+
59
+
**Why:** Box 4.x has a known compatibility issue with PHP 8.4 (`chdir(): Not a directory (errno 20)` during `endBuffering()`). The native builder avoids this bug entirely with no external dependency.
The version is stored in two places — keep them in sync:
181
+
The version is stored in one place:
220
182
221
183
1.`src/Core/Devkit.php` → `private const string VERSION = '1.0.0';`
222
-
2.`box.json` → `metadata.version`
223
184
224
-
The Makefile resolves the version via `git describe --tags --abbrev=0` first, falling back to`box.json` metadata, then`'dev'`. Always tag releases with `git tag vX.Y.Z` before running `make release`.
185
+
The Makefile resolves the version via `git describe --tags --abbrev=0`, falling back to `'dev'`. Always tag releases with `git tag vX.Y.Z` before running `make release`.
0 commit comments