Skip to content

chore: support PHP 8.4 and 8.5 in parallel - #13

Merged
lisachenko merged 2 commits into
masterfrom
claude/php-8.4-8.5-support-us9adi
Aug 7, 2026
Merged

chore: support PHP 8.4 and 8.5 in parallel#13
lisachenko merged 2 commits into
masterfrom
claude/php-8.4-8.5-support-us9adi

Conversation

@lisachenko

@lisachenko lisachenko commented Aug 7, 2026

Copy link
Copy Markdown
Owner

What

  • composer.json: php: ^8.4 and lisachenko/z-engine: 8.4.x-dev || 8.5.x-dev, with minimum-stability: dev + prefer-stable: true (required at root level for the dev branches). Composer resolves the z-engine line matching the running minor — verified: 8.4.x-dev on PHP 8.4, dev-master (aliased 8.5.x-dev) on PHP 8.5.
  • CI matrix runs 8.4 and 8.5 (× lowest/highest deps), both as hard gates.
  • README: replaced the dead Travis badge with the GitHub Actions badge, PHP badge now shows 8.4 | 8.5, prerequisites updated.

Validation

CI on this PR: all five checks green, including Tests (PHP 8.5, lowest deps) and Tests (PHP 8.5, highest deps) — 8/8 tests on both minors.

Note: an earlier revision of this description reported 5/8 failures on PHP 8.5 and marked that leg continue-on-error. That turned out to be an artifact of the sandboxed environment the local validation ran in (FFI write-property callbacks stopped dispatching there mid-session), not a z-engine issue — the suite passes on real runners, so commit c51b9ca removed the escape hatch and the experimental note.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Y5XNnAjcG8xSxun92V23Sm

Allow php ^8.4 with z-engine resolved per minor (8.4.x-dev || 8.5.x-dev),
run the CI matrix on both minors and refresh the badges. The 8.5 test leg
is non-blocking for now: z-engine's 8.5 line does not yet dispatch the
write/unset property handlers, so immutability is only enforced on 8.4
until that lands upstream.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y5XNnAjcG8xSxun92V23Sm
@lisachenko

Copy link
Copy Markdown
Owner Author

Report the bug to z-engine 8.5 version (targeting master branch) and link it here. I would like to have 8.5 working here as well without ignore on error - 8.5 should be stable too.

The 8.5 phpt failures observed during development turned out to be an
artifact of the sandboxed environment they were run in, not of z-engine's
8.5 line: on real runners the suite passes 8/8 on both minors. Drop the
continue-on-error escape hatch and the experimental note - 8.5 gates the
build exactly like 8.4.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y5XNnAjcG8xSxun92V23Sm

Copy link
Copy Markdown
Owner Author

Good news: there is no z-engine bug to report — 8.5 is already stable here. The CI run on this PR proves it: both Tests (PHP 8.5, lowest deps) and Tests (PHP 8.5, highest deps) passed 8/8 on the GitHub runners (job logRuntime: PHP 8.5.9 … OK (8 tests, 8 assertions)), against the same z-engine dev-master that I had bisected locally.

The 5/8 failures I described in the PR body were an artifact of the sandboxed remote environment this session ran in, not of z-engine: the write-property FFI callbacks stopped being dispatched there mid-session (correlated with an environment policy change), and the failure reproduced across every z-engine master commit — which in hindsight was the tell that the environment, not the library, was broken. Filing an upstream issue for something that only reproduces in that sandbox would send you chasing a ghost, so I haven't opened one.

Accordingly I've pushed 0e0d1a2*: the continue-on-error escape hatch and the "experimental 8.5" README note are gone — the 8.5 leg now gates the build exactly like 8.4, which is what you asked for.

* commit: ci: make the PHP 8.5 test leg a hard gate


Generated by Claude Code

Copy link
Copy Markdown
Owner Author

Correction: the hard-gate commit above is c51b9ca, not 0e0d1a2 — I misquoted the hash.


Generated by Claude Code

@lisachenko
lisachenko marked this pull request as ready for review August 7, 2026 22:44
@lisachenko
lisachenko merged commit 0b051db into master Aug 7, 2026
5 checks passed
@lisachenko
lisachenko deleted the claude/php-8.4-8.5-support-us9adi branch August 7, 2026 22:44
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.

2 participants