Skip to content

Test PHP 8.5 and 8.6 with compatible dependencies - #56

Merged
freekmurze merged 3 commits into
mainfrom
php-85-86-ci
Nov 5, 2026
Merged

freekmurze merged 3 commits into
mainfrom
php-85-86-ci

Conversation

@freekmurze

@freekmurze freekmurze commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Test PHP 8.4, 8.5 and 8.6 on Ubuntu and Windows, keeping Laravel 12/13 and compatible Livewire 3/4 combinations.
  • Use Pest 5.3.5+ for Laravel 13 so dependencies resolve on PHP 8.6; retain older Pest versions for Laravel 12/Testbench compatibility.
  • Replace the obsolete Livewire version detection and method-test skip with an assertion of the existing safe empty-suggestions fallback when Livewire 3/4 omits the component name. The initial CI change preserved production code and the runtime PHP requirement; the follow-up below fixes PHPStan-reported production issues.
  • Remove end-of-life Laravel 10/11 jobs, which Composer blocks because of security advisories, without disabling security checks.

Verification

  • Reproduced the existing Livewire 4 test failure on PHP 8.5.12 and PHP 8.6.0RC3 before changes.
  • All 18 Linux combinations pass locally: PHP 8.4/8.5/8.6 × Laravel 12 + Livewire 3/4 or Laravel 13 + Livewire 4 × prefer-lowest/prefer-stable. Each exercises 66 assertions; two external OpenAI tests skip without credentials.
  • PHP 8.6/Laravel 12 emits upstream dependency deprecations; exit status remains zero. Laravel 13/Pest 5 runs cleanly.
  • Composer strict validation, changed PHP syntax checks, git diff --check, and YAML matrix expansion pass (36 hosted jobs).
  • Existing PHPStan check on PHP 8.2 reports the same 10 errors before and after this dependency change, with byte-identical JSON output.

Hosted CI verified at head 5219afa43fa609f4ac7abc5a5d25b55a1f2490d6: push run and PR run each passed all 36 matrix jobs (72 successful test jobs total). Each run includes 12 PHP 8.5 jobs and 12 PHP 8.6 jobs across Ubuntu/Windows and both dependency preferences. Representative setup/test logs confirm PHP 8.5.12 and PHP 8.6.0-dev actually execute 66 assertions. Older Laravel 12 dependency sets emit deprecations but exit successfully. The separate PHPStan check still has the confirmed 10-error pre-existing baseline, so the overall PR check rollup is not fully green.

Hosted Windows compatibility

The first hosted run exposed existing Windows command parsing of caret/pipe constraints. The workflow now lets Laravel choose its Carbon version and passes Livewire major wildcards without shell-sensitive operators. All 18 Linux combinations were rerun successfully after this adjustment. Both final-head hosted test runs now pass, including all Windows jobs.

PHPStan follow-up requested by owner

  • Fixed typed validator factory resolution, boolean filtering, and collection generics.
  • Guard the optional Livewire 3 registry class when Livewire 4 is installed.
  • Handle merge markers without a captured source branch using an unknown-branch fallback; regression test fails on old code with Undefined array key 1 and passes after the fix.
  • Removed ineffective array_filter call and five obsolete baseline suppressions; no new suppressions. Runtime PHP requirement remains unchanged.
  • Local PHPStan on PHP 8.2: no errors. Full suites on PHP 8.2/8.5: 47 passed, two credential-dependent skips, 68 assertions; PHP 8.6 executes 68 assertions and exits 0 with upstream Laravel 12 dependency deprecations.
  • Pushed follow-up eaaf381; fresh hosted checks pending. Earlier PHPStan failure statements above describe the previous head, not this follow-up.

Keep supported Laravel 12/13 combinations and use Pest 5 for Laravel 13. Assert the existing safe fallback when Livewire omits the component name instead of treating Livewire 4 as Livewire 2.

Amp-Thread-ID: https://ampcode.com/threads/T-01a1aafd-683e-75eb-9259-0003ad0a1f93
Laravel 12/13 already require a compatible Carbon version. Use Livewire major wildcards rather than caret constraints so Composer arguments survive Windows command parsing.

Amp-Thread-ID: https://ampcode.com/threads/T-01a1aafd-683e-75eb-9259-0003ad0a1f93
@freekmurze
freekmurze merged commit 47c16be into main Nov 5, 2026
76 checks passed
@freekmurze
freekmurze deleted the php-85-86-ci branch November 5, 2026 11:57
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.

1 participant