Repository navigation
Build Linux ZTS turbo binaries for PHP 8.3-8.5 too - #6706
Merged
Merged
Conversation
Thread-safe PHP on Linux before 8.6 got no binary since the Linux ZTS legs were retired: the php:*-zts Docker images (the base of FrankenPHP) and the musl variants never had one. With the shared core a ZTS leg only compiles the per-version shim, so every Linux target now builds both variants for every minor. - build-php.sh builds the newest release of the minor, resolved from php.net at build time (the releases API, or the pre-release one for a minor without a stable release yet, like 8.6) and verified against the published sha256, instead of a pinned tarball, so the weekly image rebuild and the musl legs follow new patch releases and release candidates on their own; turbo-build-image.yml publishes gnu-php8.3-zts, gnu-php8.4-zts and gnu-php8.5-zts - turbo-compile and turbo-compile-musl-arm64 gain a ts dimension instead of 8.6-only include entries; macOS stays NTS-only - turbo-differential runs the gnu ZTS legs in their build image, turbo-differential-musl every musl ZTS leg - turbo-docker-run loads the 8.5 ZTS binaries into php:8.5-zts-bookworm and php:8.5-zts-alpine - TURBO_RETIRED_BINARIES is empty again Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LSeeJXEA18Ma6X4qyx1xMx
ondrejmirtes
force-pushed
the
turbo-linux-zts
branch
from
October 8, 2026 16:44
dc6b72f to
eea3376
Compare
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.
Thread-safe PHP on Linux before 8.6 has had no turbo binary since the Linux ZTS legs were retired. That leaves out the
php:*-ztsDocker images (the base of FrankenPHP's), and musl ZTS 8.3–8.5 never had one at all. With the shared core (#6703) a ZTS leg only compiles the per-version shim and links it against the platform's existing core, so every Linux target now builds both variants for every minor:That's 12 new binaries (bold), each a thin extension of at most ~130 KB, since they reuse the existing cores. macOS stays NTS-only.
build-php.shno longer pins tarballs. At build time it resolves the newest release of the requested minor from php.net and verifies the download against the published sha256. It uses the releases API, or for a minor without a stable release yet (8.6 today) the<minor>.0entry of the pre-release API. The weekly image rebuild and the musl legs therefore follow new patch releases and release candidates on their own; 8.6 moves from RC2 to today's RC3.turbo-build-image.ymlpublishesgnu-php8.3-zts,gnu-php8.4-ztsandgnu-php8.5-zts(built from this branch with workflow_dispatch, so this PR's run can pull them). The musl ZTS legs build the same release in Alpine, as they already did for 8.6.turbo-compileandturbo-compile-musl-arm64get atsmatrix dimension instead of 8.6-only include entries.turbo-differentialruns the gnu ZTS legs in their build image, andturbo-differential-muslruns every musl ZTS leg.turbo-docker-runloads the 8.5 ZTS binaries into the officialphp:8.5-zts-bookwormandphp:8.5-zts-alpineimages.TURBO_RETIRED_BINARIESis empty again. Otherwise the commit job would delete the binaries this brings back.🤖 Generated with Claude Code
https://claude.ai/code/session_01LSeeJXEA18Ma6X4qyx1xMx
Closes phpstan/phpstan#15422