Skip to content

PHP 8.6: Complete the image set once upstream support lands #100

Open

Description

@jakubboucek

Tracking issue for completing the PHP 8.6 image set. Apache and CLI RC images were added in #99. The RC functionality in sections 1–3 is implemented and locally verified in #102, which is still open as of 2026-10-13. Checked items below mean implementation and local verification, not a merged release or confirmed Docker Hub publication.

During the RC phase, functional dev/alpha/beta versions are acceptable; do not wait for stable releases to restore functionality.

1. memcached extension

PIE 1.5.2 runs on PHP 8.6. Stable memcached 3.4.0 does not compile against the changed PHP APIs, so the images use php-memcached/php-memcached:dev-master (reports 3.4.1dev), containing php-memcached-dev/php-memcached#580.

2. -debug variant (Xdebug + SPX)

  • Add php/Dockerfile-8.6-debug and the debug build/tag/push flow, including RC-specific tags (PHP 8.6: Restore memcached and add debug images #102).
  • Verify Xdebug 3.6.0alpha1 on PHP 8.6 RC3, including trace generation.
  • Verify SPX from 0.5.x-dev, including the web UI and HTTP profiling reports.
  • Run the extension test suite in Apache, CLI, and debug images: 23 tests in each, with one expected skip for the older PDO API.

Xdebug uses ^3.6@alpha; SPX uses 0.5.x-dev from the upstream v0.5 branch. SPX currently requires two temporary compiler flags: -Wno-error=old-style-declaration and -Dtypeof=__typeof__. CI=true separately prevents CPU-specific compilation via -march=native.

The debug Dockerfile uses the bundled frontend: in the tested Docker environment the external frontend resolved the published base instead of the freshly built local image. Copilot's finding in #102 is valid: printing loaded extensions and skipping tests for missing modules does not enforce the expected inventory. A separate follow-up is being designed on php-test-ext; it is not part of #102.

3. Working pie binary inside the RC images

  • Refresh php/build/pie.phar through the existing asset preparation flow and verify PIE 1.5.2 starts on PHP 8.6 and installs the required extensions.

PHP 8.6 support landed in PIE 1.5 (php/pie#667). No unstable PIE build is needed. Existing images require a rebuild to pick up the refreshed asset.

4. Stable phase (when 8.6 goes stable)

Follow the established RC-to-stable workflow (see commit 15f4faa, PHP 8.5 is now stable). This is the authoritative cleanup checklist; implementation rationale and original validation are recorded in #102.

  • Switch PHP 8.6 Apache/CLI base images and the debug parent to stable tags; remove RC-specific labels and tag generation.
  • Move latest / 8, cli / 8-cli, and debug / 8-debug aliases from the 8.5 scripts to 8.6.
  • Replace memcached dev-master with a compatible stable release containing the PHP 8.6 fixes.
  • Replace Xdebug ^3.6@alpha with stable package selection compatible with PHP 8.6.
  • Replace SPX 0.5.x-dev with stable package selection compatible with PHP 8.6.
  • Remove the temporary SPX CFLAGS override (-Wno-error=old-style-declaration, -Dtypeof=__typeof__) and its comments; verify the build succeeds without it. The first flag tolerates the ZTS TLS declaration warning under -Werror; the second accommodates PHP headers using typeof under SPX's strict C11 mode. Do not silently carry these RC exceptions into stable images: discuss any remaining upstream blocker with the maintainer.
  • Review CI=true separately and preserve portability across amd64 CPUs; remove it only if upstream no longer needs it to avoid -march=native.
  • Verify that the debug build uses the newly built stable Apache base, not an older published image. Preserve the bundled frontend unless replacement is verified to resolve the correct local base.
  • Update check-pulls.sh, test-php.sh, README, and the RC notes in build-notes.md / CLAUDE.md.
  • Update the PHP requirement in tools/composer.json (currently >=8.1 <=8.5) for the stable supported range. Review config.platform.php separately; it currently targets the tooling's minimum PHP version (8.1.0).
  • If the php-test-ext follow-up has landed, update its expected extension matrix and remove any obsolete RC exceptions.
  • Rebuild Apache, CLI, and debug images and verify extension inventory, the test suite, memcached sessions, Xdebug, and SPX before release.

Activity

  1. self-assigned this
    on Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions