* GH Actions: run against PHP 8.3
What with PHP 8.3 being close to the first RC, I'd like to suggest enabling runs against PHP 8.3 for the linting and test runs.
* Linting passes on PHP 8.3, so I propose to not allow new failures to be introduced there.
* The test runs, however, do not pass against PHP 8.3, so I'm marking those as `experimental` for now to allow for fixing the issue(s).
As for the compatibility issues (based on the test runs):
* PR 11599 fixes all known deprecation notices.
* There is, however, one test failure, which I'm not exactly sure how to fix, so I'm leaving this for the maintainers to decide upon.
Details:
Prior to PHP 8.3, `ReflectionMethod` could set a `private` method on a parent class to accessible. This is no longer possible in PHP 8.3 since php/php-src 9470 and breaks the `Composer\Test\Repository\ComposerRepositoryTest::testWhatProvides` test.
Also see: https://3v4l.org/8YcIk/rfc#vgit.master
* GH Actions: update addition of PHP 8.3
* Don't add PHP 8.3 to the `lint` workflow.
* Replace the PHP 8.2 extra builds instead of adding to them for `test`.
* Don't allow builds to fail.
---------
Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
* Fix ClassLoader to be serializable
* Fix CI to use the source bin/composer as process for "composer" runs incl within simple-phpunit
* Store the closure statically to avoid serialization issues in a cleaner way
A number of predefined actions have had major release, which warrant an update to the workflow(s).
These updates don't actually contain any changed functionality, they are mostly just a change of the Node version used by the action itself (from Node 14 to Node 16).
Refs:
* https://github.com/actions/checkout/releases
P.S.: looks like there are some more actions in use which have had new major releases. As those actually _do_ contain changed functionality, I've excluded the others from this PR.
A number of predefined actions have had major release, which warrant an update to the workflow(s).
These updates don't actually contain any changed functionality, they are mostly just a change of the Node version used by the action itself (from Node 14 to Node 16).
Refs:
* https://github.com/actions/checkout/releases
P.S.: looks like there are some more actions in use which have had new major releases. As those actually _do_ contain changed functionality, I've excluded the others from this PR.
Turns out the default setting for `error_reporting` used by the SetupPHP action is `error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT` and `display_errors` is set to `Off`.
For the purposes of CI, I'd recommend running with `E_ALL` and `display_errors=On` to ensure **all** PHP notices are shown.
* PHPStan: Remove autoload_files directive as it is not necessary anymore
* PHPStan: Add error exclusions for sapi_windows_set_ctrl_handler function
* PHPStan: Add error exclusions for ZipArchive::LIBZIP_VERSION
* PHPStan: Require phpstan ^0.12.26
* Ensure zip ext is available on gh actions
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>