chore: prepare Symfony 8 compatibility#23
Merged
qdequippe merged 7 commits intoqdequippe:mainfrom Apr 20, 2026
Merged
Conversation
Separate quality checks (php-cs-fixer, rector, phpstan, composer audit) from test execution to allow independent scheduling and clearer failure signals. Tests workflow now runs a PHP 8.3/8.4/8.5 x Symfony 7.3/7.4/8.0/8.1 matrix to prepare Symfony 8 compatibility.
Switch from caret to open lower-bound constraint to allow installing on PHP 8.5, which is required for the new test matrix and upcoming Symfony 8 compatibility.
35f9515 to
bb6a91f
Compare
Keep require/require-dev sections alphabetically sorted on each composer update to reduce noise in future dependency diffs.
bb6a91f to
820b1a6
Compare
Widen the constraint from ^7.2 to ^7.2 || ^8.0 so projects migrating to Symfony 8 can install phpdftk. The previous constraint silently capped the CI matrix at symfony/process 7.x even on Sf 8 rows. The library only relies on long-stable Process and ExecutableFinder API (__construct, run, isSuccessful, getOutput, getErrorOutput, getExitCode, find). PHPStan passes against symfony/process 8.0.8.
qdequippe
requested changes
Apr 20, 2026
Drop the explicit 'coverage: none' from setup-php so the default xdebug driver is installed. Without it, 'phpunit --coverage-clover' aborts with "No code coverage driver available" which, combined with failOnWarning=true in phpunit.xml, exits with code 1 before running any test.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #23 +/- ##
=========================================
Coverage 98.02% 98.02%
Complexity 78 78
=========================================
Files 10 10
Lines 304 304
=========================================
Hits 298 298
Misses 6 6 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
qdequippe
approved these changes
Apr 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
✅ Type of PR
🗒️ Description
Prepare the package for Symfony 8 and PHP 8.5 support, and reorganize CI into two focused workflows. Library remains compatible with both Symfony 7 and Symfony 8.
🚶➡️ Behavior
Lintworkflow (php-cs-fixer, rector, phpstan, composer audit/validate) and a dedicatedTestsworkflow.Testsnow runs a matrix across PHP 8.3 / 8.4 / 8.5 and Symfony 7.2 / 7.3 / 7.4 / 8.0 / 8.1 (usingSYMFONY_REQUIRE+--prefer-stable --ignore-platform-req=php+).composer.jsonPHP constraint relaxed from^8.3to>=8.3to allow installation on PHP 8.5.composer.jsonsymfony/processconstraint widened from^7.2to^7.2 || ^8.0so downstream projects can migrate to Symfony 8 without resolution failures. Code uses only long-stableProcess/ExecutableFinderAPI — no BC break applies.composer.jsonnow enablessort-packagesto keep dependency sections tidy.🧪 Steps to test
Lintworkflow passes.Testsworkflow runs all matrix combinations and they succeed.composer validatelocally — should pass.composer installon PHP 8.3, 8.4, 8.5 — should succeed.