Conversation
ondrejmirtes
left a comment
There was a problem hiding this comment.
@phpstan-bot Check the CI logs and fix the build for PHP 8.5 The lowest does not pass but the highest passes. Research which versions of Doctrine packages started supporting PHP 8.5 and raise the minimum versions in composer.json so that the build passes.
|
Claude finished @ondrejmirtes's task in 16m 38s —— View job Fixing PHP 8.5 CI Build
AnalysisFailing job: Root cause: All 105 failures trace back to the same call chain: Lowest vs highest versions:
Other packages checked ( Note: Fix appliedBumped No other |
|
Claude finished @ondrejmirtes's task in 11m 35s —— View job Fixing PHP 8.5 CI Build (continued)
AnalysisThe previous fix bumped
FixBumped · · Branch |
|
@phpstan-bot 3.4.0 has setAccessible. There's now 4.x branch but it only supports PHP 8.1+, so we might need to conditionally update the workflow to require newer versions of this package for newer PHP versions. |
|
Claude finished @ondrejmirtes's task in 38m 48s —— View job Fixing PHP 8.5 CI Build — Conditional Version Requirements
Root Cause AnalysisThe persistence
Both pass on the Note on persistenceRegarding "3.4.0 has setAccessible" — correct, but the constraint is Fix Applied (build.yml)Added a conditional exclude:
- php-version: "8.5"
dependencies: "lowest"
include:
- php-version: "8.5"
dependencies: "lowest"
update-packages: "composer update doctrine/dbal doctrine/orm nesbot/carbon carbonphp/carbon-doctrine-types --no-interaction --no-progress"Why Commits on this branch
Note: CI may need a manual re-run on the latest commit ( · Branch |
Add PHP 8.5 to the lint, tests, and static-analysis job matrices in build.yml to ensure the extension is tested across all PHP versions from 7.4 through 8.5. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
doctrine/persistence 3.2.x calls ReflectionProperty::setAccessible() which is deprecated in PHP 8.5. This caused 105 test failures (30 errors + 75 failures) in the Tests (8.5, lowest) CI job because PHPUnit's convertDeprecationsToExceptions setting converts the deprecation notices to exceptions. The setAccessible() call was removed in doctrine/persistence 3.4.x since it has been a no-op since PHP 8.1. Co-authored-by: Ondřej Mirtes <ondrejmirtes@users.noreply.github.com>
doctrine/persistence 3.4.0 still calls ReflectionProperty::setAccessible() in RuntimeReflectionService.php:93, which is deprecated in PHP 8.5. The previous bump to ^3.4 was insufficient because 3.4.0 still contains the call. Version 3.4.3 (used in the highest dependency build which passes) does not contain this call. Co-authored-by: Ondřej Mirtes <ondrejmirtes@users.noreply.github.com>
The PHP 8.5 lowest dependency build fails with 30 errors from two deprecations: 1. doctrine/dbal 3.3.8: PDO::sqliteCreateFunction() deprecated in PHP 8.5 (use Pdo\Sqlite::createFunction() instead) 2. doctrine/orm 2.16.0: null as array offset deprecated in PHP 8.5 These are fixed in newer versions (highest build passes with DBAL 3.10.4 and ORM 2.20.9). Rather than raising global minimums, use the existing update-packages matrix pattern to conditionally require PHP 8.5-compatible versions only for that PHP version's lowest build. Co-authored-by: Ondřej Mirtes <ondrejmirtes@users.noreply.github.com>
carbonphp/carbon-doctrine-types 1.0.0 (installed at --prefer-lowest) conflicts with doctrine/dbal ^3.9. Adding carbonphp/carbon-doctrine-types:^3 to the update-packages command resolves the conflict. Co-authored-by: Ondřej Mirtes <ondrejmirtes@users.noreply.github.com>
composer require with specific version constraints fails due to conflicts between carbonphp/carbon-doctrine-types and doctrine/dbal. Instead, use composer update to selectively update only the Doctrine packages (dbal, orm) and their carbon dependencies to their highest compatible versions while keeping all other packages at their lowest. This avoids the conflict by letting composer resolve the compatible set naturally. Co-authored-by: Ondřej Mirtes <ondrejmirtes@users.noreply.github.com>
8377714 to
493dc2c
Compare
Summary
build.ymlTest plan
🤖 Generated with Claude Code