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.
This (small) change needs a little explaining....
First of all, the
setup-php
action, by default uses a "production"-type ini file. This means thaterror_reporting
is set toE_ALL & ~E_DEPRECATED & ~E_STRICT
anddisplay_errors
is set toOff
.For the purposes of CI, I'd recommend running with
-1
(always include all error levels on all PHP versions) anddisplay_errors=On
to ensure all PHP notices are shown.This is now fixed by adding the
ini-values
setting tosetup-php
.I've also made minor other tweaks to the
setup-php
config:tools: composer
is not needed as Composer is installed by default.extension: xdebug
is not the correct way to enablexdebug
for code coverage.coverage: xdebug
is (and is Xdebug cross-version compatible for Xdebug 2 and 3).Second of all, a change was made in PHPUnit 8.5.21 and 9.5.10, which changes the default value of the PHPUnit
convertDeprecationsToExceptions
attribute fromtrue
tofalse
, meaning that tests would no longer fail on deprecation notices.Not great for open source packages which generally need to handle deprecations in a timely matter so as not to block other packages.
So adding the
convertDeprecationsToExceptions
attribute and explicitly setting the value totrue
brings back the old behaviour and will allow for failing the tests on deprecation notices.