chore(deps): require stable z-engine releases instead of dev branches - #37
Merged
Merged
Conversation
z-engine now ships stable tags for both supported PHP minors (8.4.2 on the 8.4 line, 8.5.0 on the 8.5 line), so the development-branch constraint is no longer needed. - require "lisachenko/z-engine": "~8.4.2 || ~8.5.0" — one stable release line per supported PHP minor. The tilde admits patch releases inside a line but never the next minor line, which would be built for a PHP this package does not claim to support; each z-engine tag also declares its own ~8.4.0/~8.5.0 platform requirement, so only one line can ever satisfy a given runtime. - keep the root "minimum-stability": "dev" / "prefer-stable": true pair: it is still required, but now only for lisachenko/php-shared-data-extension, which has no tags yet and is consumed as dev-main. The README says so explicitly instead of attributing the requirement to z-engine. - update README, AGENTS.md, the CI comment and the spikes setup snippet. Note on resolution order: until php-shared-data-extension drops its own dev-only z-engine requirement, that requirement is intersected with the constraint here and still resolves dev-master. Verified with a path repository against that package's updated branch, which resolves the tags. Verified on both minors: PHP 8.4.19 resolves z-engine 8.4.2 and PHP 8.5.9 resolves 8.5.0, 121/121 .phpt tests pass on each. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013foRd1XwLwqjUSkSWeWrMe
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.
What
z-engine now ships stable tags for both supported PHP minors —
8.4.2on the 8.4 line and8.5.0on the 8.5 line."lisachenko/z-engine": "8.4.x-dev || 8.5.x-dev"→"~8.4.2 || ~8.5.0".What does not change: the root stability pair
"minimum-stability": "dev"/"prefer-stable": truestay. They are still needed — but forlisachenko/php-shared-data-extension, which has no tags yet and is consumed asdev-main, not for z-engine any more. The README used to attribute the requirement to z-engine; it now says which dependency actually needs it, so it can be dropped in one step once that package is tagged.Resolution: confirmed stable
php-shared-data-extensionpublished its own dev-only z-engine requirement, which Composer intersected with the constraint here and resolved todev-master. That is fixed upstream — lisachenko/php-shared-data-extension#30 is merged — and resolution from Packagist now lands on the real tags with no path repository and no further change here:dev-main 45a7844dev-main 45a7844Why the tilde and not a caret
One z-engine release line per supported PHP minor:
~8.4.2admits patch releases inside the 8.4 line but never the 8.5 line,~8.5.0the same for 8.5. A caret would span both lines and any future one, so a z-engine built for PHP 8.6 could be installed before this package claims to support 8.6. Each z-engine tag also declares its own platform requirement (~8.4.0/~8.5.0), so only one line can satisfy a given runtime, andCore::init()still enforces the exact match at boot.Testing
Full
.phptsuite on both minors, against the Packagist-resolved stable tags above:Also ran earlier on PHP 8.5 against
dev-master— the pre-merge resolution — 121/121. No segfaults, bus errors, hung children or stuck runtimes on any run; the fork, preemption and rendezvous tests all completed normally.Docs touched alongside:
README.md(installation + requirements),AGENTS.md, the CI comment, and thespikes/README.mdvendor-tree setup snippet, which no longer needs theminimum-stability/prefer-stableconfig calls to require z-engine.spikes/VERDICTS.mdis left alone — it records what was measured at the time, against the commits named in it.