Skip to content

ci: add PHP 8.6 to the test matrix - #681

Merged
fain182 merged 1 commit into
mainfrom
claude/php-8-6-matrix-7yh2sj
Sep 22, 2026
Merged

fain182 merged 1 commit into
mainfrom
claude/php-8-6-matrix-7yh2sj

Conversation

@fain182

@fain182 fain182 commented Sep 22, 2026

Copy link
Copy Markdown
Collaborator

Run the test suite and the phar smoke tests on PHP 8.6 as well, on the same footing as every other supported version: a failure there fails the build.

The build job installs with --ignore-platform-req=php+ because phpspec/prophecy enumerates the PHP versions it supports one by one (php 8.2.* || 8.3.* || 8.4.* || 8.5.*) rather than using a caret range, so composer cannot resolve on 8.6 at all without relaxing the upper platform bound. It is the only dependency that needs this, and it will keep needing it after 8.6 is released, until prophecy tags a version that lists 8.6.

Marked fail-fast: false on smoke-test-phar, which had no such setting, so one version failing no longer cancels the others.

Accept 8.6 as a --target-php-version too: without it, both jobs would fail outright, because TargetPhpVersion::create(null) defaults to the runtime version and rejects anything outside VALID_PHP_VERSIONS. nikic/php-parser's PhpVersion::fromString has no upper bound, so the parser handles the new target as is.

Run the test suite and the phar smoke tests on PHP 8.6 as well, on the
same footing as every other supported version: a failure there fails
the build.

The build job installs with --ignore-platform-req=php+ because
phpspec/prophecy enumerates the PHP versions it supports one by one
(php 8.2.* || 8.3.* || 8.4.* || 8.5.*) rather than using a caret
range, so composer cannot resolve on 8.6 at all without relaxing the
upper platform bound. It is the only dependency that needs this, and
it will keep needing it after 8.6 is released, until prophecy tags a
version that lists 8.6.

Marked fail-fast: false on smoke-test-phar, which had no such setting,
so one version failing no longer cancels the others.

Accept 8.6 as a --target-php-version too: without it, both jobs would
fail outright, because TargetPhpVersion::create(null) defaults to the
runtime version and rejects anything outside VALID_PHP_VERSIONS.
nikic/php-parser's PhpVersion::fromString has no upper bound, so the
parser handles the new target as is.

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

codecov Bot commented Sep 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.72%. Comparing base (8fbdbd2) to head (96bf992).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##               main     #681   +/-   ##
=========================================
  Coverage     97.72%   97.72%           
  Complexity      767      767           
=========================================
  Files           102      102           
  Lines          2199     2199           
=========================================
  Hits           2149     2149           
  Misses           50       50           
Flag Coverage Δ
highest 97.54% <100.00%> (ø)
lowest 97.49% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/CLI/TargetPhpVersion.php 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@fain182
fain182 merged commit 6941fbd into main Sep 22, 2026
41 checks passed
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