Skip to content

Track: PHP 8.6 pre-release follow-ups on master (windows artifacts, GA cleanups) #279

Description

@lisachenko

Tracking issue for the temporary accommodations #278 made while PHP 8.6 is pre-release (currently 8.6.0beta2 / nightly 8.6.0-dev on CI). Each item self-heals or carries a marker in the code; this issue is the single place to tick them off as the 8.6 release cycle progresses.

Blocked on the PHP release cycle

  • include/8.6/windows-x64-{nts,zts} engine definitions — windows.php.net publishes no build or devel pack for snapshot versions, so the windows generation legs currently skip cleanly (tools/generator/generate.php prints ==> SKIPPED, the workflow records generated=false). Once a tagged 8.6 build (RC or GA) is on windows.php.net, run one workflow_dispatch of generate-windows-headers.yml against master — the commit job pushes the artifacts, and CI's presence guards stop warning.
  • PHPStan phpVersion — pinned at 80500 in phpstan.dist.neon (with a TODO): PHPStan 2.2.9 still rejects 80600. Bump to 80600 once a PHPStan release accepts it.
  • php-cs-fixer unsupported-version allowance.php-cs-fixer.dist.php sets setUnsupportedPhpVersionAllowed(true) because the fixer caps supported syntax at PHP 8.5. Drop the call once php-cs-fixer lists 8.6 as supported.
  • Regenerate all 8.6 artifacts at GA — the committed linux/darwin definitions were generated from 8.6.0beta2 / nightly snapshots. On 8.6.0 GA the header-drift job (docker) and the darwin/windows generation workflows regenerate and diff automatically; expect one refresh commit if engine structures moved between beta2 and GA. composer install also stops needing --ignore-platform-req=php for local development on pre-release builds at that point.

Self-healing fallbacks to retire (optional cleanup after GA)

These keep working after GA (the stable path always wins), so removing them is tidiness, not correctness:

  • Docker -rc image fallbackresolveBaseImage() in tools/generator/generate.php plus the digest-resolution steps in ci.yml (header-drift, tests-internal-debug) fall back to php:8.6-rc-cli/-zts while Docker publishes only the -rc family. Consider removing once php:8.6-cli/-zts exist, or keep as permanent resilience for the next minor's pre-release window.
  • Nightly php-src source-ref fallback — native generation for X.Y.Z-dev builds fetches the three sliced sources from the PHP-X.Y branch / master instead of a release tag. Generic and harmless to keep; noted here for completeness.
  • Windows snapshot skip paths — the two -dev clean-skip exits in tools/generator/generate.php and the generated output gating in generate-windows-headers.yml become dead code paths on tagged builds; same keep-or-remove call as the docker fallback.

Docs to flip at GA

Refs: #278 (the 8.6 bump), #276 (cascade flow on 8.4), branch 8.5 (took over PHP 8.5 support).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions