feat: support PHP 8.4 and 8.5 in parallel (installable on 8.6 nightly) - #13
Merged
Merged
Conversation
z-engine now bundles generated engine definitions for both supported
minors and selects the right set at boot, hiding all version-dependent
header complexity from this package. Accordingly:
- composer.json widens php to ^8.4 (8.4, 8.5 and 8.6 nightly all
install; the engine boots only on minors z-engine has definitions
for) and takes z-engine as 8.4.x-dev || 8.5.x-dev
- CI runs every engine-touching job on a {8.4, 8.5} matrix, plus an
experimental analysis-only job on PHP 8.6 nightly (the PHPStan layer
needs no engine)
- the debug-build Dockerfile handles PHP 8.5's statically linked
opcache (no opcache.so to load)
- README badge/requirements, AGENTS.md and CONTRIBUTING describe the
parallel-support model
Verified: full suite green on PHP 8.4.24 (debug build, incl. the
destructive internal group) and PHP 8.5.9 against the unified z-engine
branch; PHPStan, stubs:check and cs:check green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0184AgTjKVX4S6qmvRsdM6dt
…e per minor Per review on z-engine#142, z-engine keeps its one-minor-per-release-line model; the 8.4.x-dev || 8.5.x-dev constraint is what makes this package run on PHP 8.4 and 8.5 in parallel (composer resolves the 8.4 branch on 8.4 and master on 8.5). Reword README, AGENTS, CONTRIBUTING and the CI header to describe that mechanism instead of a single dual-version z-engine install. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0184AgTjKVX4S6qmvRsdM6dt
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.
Summary
Widens the package from single-minor (
~8.4.0) to PHP 8.4 and 8.5 in parallel, withcomposer installadditionally working on 8.6 nightly for the engine-free analysis layer. z-engine keeps its one-minor-per-release-line model; the parallel support comes from the8.4.x-dev || 8.5.x-devconstraint, which lets composer resolve the z-engine line matching the running platform (the8.4branch on PHP 8.4,mastervia its8.5.x-devalias on PHP 8.5). z-engine owns all version-dependent header complexity — this package needed no source changes, only constraints, CI and docs.What changed
php: ^8.4(8.4 / 8.5 / 8.6-nightly all install);lisachenko/z-engine: 8.4.x-dev || 8.5.x-dev.{8.4, 8.5}matrix, plus acontinue-on-errorPHP 8.6 nightly job running the analysis suite only (the PHPStan layer needs no engine; installed with--ignore-platform-req=php+).opcache.soto load).8.4 | 8.5) and requirements, AGENTS.md §1 (version matching) and CONTRIBUTING describe the per-minor z-engine resolution model.Verification
All 16 CI checks are green on both matrix legs, including the 8.6-nightly experimental job. Locally the full suite was also run against PHP 8.4.24 on a
--enable-debugbuild (including the destructive internal group with process isolation) and PHP 8.5.9, plus PHPStan level max,stubs:checkandcs:check.Note
An earlier companion PR (z-engine#142) proposed teaching one z-engine branch both minors; it was closed by design — z-engine stays one-minor-per-line, and this PR is self-contained.
🤖 Generated with Claude Code
https://claude.ai/code/session_0184AgTjKVX4S6qmvRsdM6dt