- Issue created by @Gábor Hojtsy
- 🇫🇷France andypost
Filed one more child 📌 [PHP 8.4] ReflectionMethod costructor deprecated with one argument Needs review
- 🇫🇷France andypost
beta updates (via commit 2ad2c6b1c4) fixed https://github.com/php-fig/http-factory/commit/2e735aa9fca24c41454faae25...
- 🇫🇷France andypost
updated vendor patch as
vendor/psr/http-factory/src/UploadedFileFactoryInterface.php
is fixed - 🇬🇧United Kingdom catch
Tentatively tagging this for 10.3 and 11.0 release highlights. It would be pretty nice to be able to say we're compatible with PHP 8.4 before it's even released, although feels like there might be more breaking changes before it gets to rc, so maybe only really possible for 11.0 rather than 10.3. If there's still outstanding issues or we're not convinced about 8.4 stability, we could change this to 10.4/11.1.
- 🇫🇷France andypost
As release schedule updated PHP feature freeze (13 Aug) and first beta at Aug 15 2024
Added to IS
- 🇫🇷France andypost
ATM the real blocker to pass tests is "prophecy" as usual, all failed tests are caused by not fixed (nullable types) when mocks are instantiated
- 🇫🇷France andypost
btw the commit can be split to new issue https://git.drupalcode.org/project/drupal/-/merge_requests/7783/diffs?co...
- 🇫🇷France andypost
Composer's dependency fixed https://github.com/jsonrainbow/json-schema/releases/tag/5.3.0
- 🇫🇷France andypost
Only 1 failed test left (see #22) https://git.drupalcode.org/issue/drupal-3427903/-/pipelines/226036/test_...
Also there's a lot of deprecations because of prophecy but they could be added to ignored deprecations
- 🇬🇧United Kingdom catch
That build test failure looks familiar and is something to do with sqlite, 🐛 GenerateThemeTest::testContribStarterkitDevSnapshotWithGitNotInstalled fails on sqlite Needs review shows the same error.
- 🇫🇷France andypost
now all tests passed https://git.drupalcode.org/issue/drupal-3427903/-/pipelines/226076/test_...
the commit needs own issue
- 🇺🇸United States rfay Palisade, CO, USA
DDEV HEAD has PHP8.4.0alpha2 now, this should help with resolving the various issues. This will be updated and be in the next DDEV release, but is already available easily via HEAD, even using Homebrew. See https://ddev.readthedocs.io/en/stable/developers/building-contributing/#...
- 🇫🇷France andypost
I pushed to CI 8.4alpha3 using patch so in 2 weeks first beta should arive
Ref https://git.drupalcode.org/project/drupalci_environments/-/commit/753d2a...
- 🇫🇷France andypost
PHP released alpha4 instead of broken alpha3
- 🇫🇷France andypost
Guzzle fixed after 📌 Update composer dependencies prior to 11.0.0 Fixed
- 🇺🇸United States xjm
Moving to target 11.1.0/10.4.0. Some or all of the fixes might still be backportable to the patch branches, but targeting the minors will help us keep track of things as we get closer to the PHP 8.4.0 release.
- 🇫🇷France andypost
Voting for 8.4 deprecations closed
- Deprecate passingE_USER_ERROR
totrigger_error()
- RemoveE_STRICT
error level and deprecateE_STRICT
constant - 🇫🇷France andypost
All tests pass now except
BigPipeTest
📌 Stop passing E_USER_ERROR to trigger_error() on PHP 8.4 Active1) Drupal\Tests\big_pipe\Functional\BigPipeTest::testBigPipe Two new watchdog entries. Failed asserting that 6 matches expected 4. /builds/issue/drupal-3427903/core/modules/big_pipe/tests/src/Functional/BigPipeTest.php:195
- 🇫🇷France andypost
composer finally released https://getcomposer.org/changelog/2.7.8
production 8.4 image updated so less changes in pipeline
- 🇫🇷France andypost
One more deprecation commited https://wiki.php.net/rfc/deprecate-get-post-sessions
- 🇫🇷France andypost
- 🇫🇷France andypost
New child as backportable to 10.3 📌 Update mikey179/vfsstream to v1.6.12 for PHP 8.4 Needs review
- 🇫🇷France andypost
- 🇫🇷France andypost
PHPstan fixed by pcov added 8.4 image and now only BigPipe test fails
- 🇫🇷France andypost
Commited 2 more
- 📌 PHP 8.4 session.use_only_cookies and session.use_trans_sid are deprecated Active
- [#3470080]one more simple fix 📌 Remove deprecated in PHP 8.4 the \E_STRICT usage Active
- 🇫🇷France andypost
First green run!
The changes in the fix probably needs split 📌 Stop passing E_USER_ERROR to trigger_error() on PHP 8.4 Active
- 🇫🇷France andypost
PHP 8.4 allow to use `#[Deprecated]` attribute even for class/interface constants https://3v4l.org/rGPoD/rfc
class A { #[Deprecated] const A='a'; } interface B { #[Deprecated] const B='b'; } var_dump(A::A); var_dump(B::B);
results
Deprecated: Constant A::A is deprecated in /in/rGPoD on line 11 string(1) "a" Deprecated: Constant B::B is deprecated in /in/rGPoD on line 12 string(1) "b"
- 🇫🇷France andypost
Fixed in 11.x 📌 Remove deprecated in PHP 8.4 the \E_STRICT usage Active
- 🇫🇷France andypost
Deprecation of
E_STRICT
just commited and fix backported to 10.4 in 📌 Remove deprecated in PHP 8.4 the \E_STRICT usage Active - 🇫🇷France andypost
I pushed update of PHP CI image to 8.4.0 RC1 and a lots of new deprecations appeared... both in core and vendors(
- 🇫🇷France andypost
New deprecations
- https://github.com/composer/composer/commit/8ae6fa1205897dcfc57867542c94...
- https://github.com/sebastianbergmann/phpunit/commit/d7d8e73cfc78788ff6c7.../builds/issue/drupal-3427903/core/lib/Drupal/Core/Mail/Plugin/Mail/PhpMail.php:101 str_getcsv(): the $escape parameter must be provided as its default value will change /builds/issue/drupal-3427903/vendor/composer/composer/src/Composer/Util/Silencer.php:36 Constant E_STRICT is deprecated
- 🇫🇷France andypost
one more child 📌 Fix https://wiki.php.net/rfc/deprecations_php_8_4#deprecate_proprietary_csv_escaping_mechanism Active
- 🇫🇷France andypost
Filed 📌 Update phpunit/phpunit to 10.5.35 for PHP 8.4 Active
composer patch should wait for 2.7.10
- 🇫🇷France andypost
And the last issue filed with patch 📌 Fix closures in tests for PHP 8.4 Active
- 🇫🇷France andypost
Filed minor upgrade for composer 📌 Upgrade composer to 2.8.0 for PHP 8.4 Active
- 🇺🇸United States rfay Palisade, CO, USA
Just stopping by to say thanks for all your work on this!
- 🇫🇷France andypost
Composer dependencies been updated so remaining incompatibilities are 3 packages + phpstan (still using patches)
The only blocker is 📌 Stop passing E_USER_ERROR to trigger_error() on PHP 8.4 Active
PS: RTBC and waiting for commit [#3477324
- 🇫🇷France andypost
added for discussion ✨ Adopt #[Deprecated] attribute Active
- 🇫🇷France andypost
Phpstan no longer needs patching but composer 2.8.1 (core build test) need to resolve https://github.com/composer/composer/issues/12150#issuecomment-2423790429
Still 2 issues to fix
- 📌 Fix https://wiki.php.net/rfc/deprecations_php_8_4#deprecate_proprietary_csv_escaping_mechanism Active
- 📌 Stop passing E_USER_ERROR to trigger_error() on PHP 8.4 Active - 🇫🇷France andypost
composer fixed the issue so waiting for 2.8.2 release to update images
- 🇫🇷France andypost
Filed open-telemetry upgrade 📌 Upgrade open-telemetry packages for PHP 8.4 Active
So only Mink and Prophecy releases left to wait
- 🇫🇷France andypost
For 10.4 tricky backport required as of beta state 🐛 Big pipe cannot handle (GET) form redirects (EnforcedResponseException) Needs work
- 🇫🇷France andypost
Updated IS as there's one dependency waiting for release (Prophecy) and the only issue left 📌 Stop passing E_USER_ERROR to trigger_error() on PHP 8.4 Active
- 🇫🇷France andypost
Prophecy has new release so filed last dependency upgrade - 📌 upgrade prophecy to 1.20 Active
PS: 10.5/10.4 branches require more upgrades (guzzle at least) via 📌 Update Composer dependencies for 10.4.0-beta1 Active
- 🇫🇷France andypost
So only 1 failure for 10.4 left
---- Drupal\Tests\Core\Database\ConditionTest ---- Status Group Filename Line Function -------------------------------------------------------------------------------- Fail Other phpunit-77.xml 0 Drupal\Tests\Core\Database\Conditio PHPUnit Test failed to complete; Error: PHPUnit 9.6.21 by Sebastian Bergmann and contributors. Testing Drupal\Tests\Core\Database\ConditionTest ....................... 23 / 23 (100%) Time: 00:00.194, Memory: 8.00 MB OK (23 tests, 33 assertions) Remaining self deprecation notices (4) 1x: Invalid characters in query operator: IS NOT NULL) ;INSERT INTO {test} (name) VALUES ('test12345678'); -- 1x in ConditionTest::testCompileWithSqlInjectionForOperator from Drupal\Tests\Core\Database 1x: Invalid characters in query operator: IS NOT NULL) UNION ALL SELECT name, pass FROM {users_field_data} -- 1x in ConditionTest::testCompileWithSqlInjectionForOperator from Drupal\Tests\Core\Database 1x: Invalid characters in query operator: IS NOT NULL) UNION ALL SELECT name FROM {TEST_UPPERCASE} -- 1x in ConditionTest::testCompileWithSqlInjectionForOperator from Drupal\Tests\Core\Database 1x: Invalid characters in query operator: = 1 UNION ALL SELECT password FROM user WHERE uid = 1x in ConditionTest::testCompileWithSqlInjectionForOperator from Drupal\Tests\Core\Database
- 🇫🇷France andypost
The last remaining bit is to enable CI 📌 [PP-2] Add core testing withPHP 8.4 Postponed
- 🇨🇦Canada Liam Morland Ontario, CA 🇨🇦
I have added PHP 8.4 and Drupal 10.4 and 11.1 to the PHP support page → .
- 🇫🇷France andypost
10.4/10.5 still needs 🐛 Big pipe cannot handle (GET) form redirects (EnforcedResponseException) Needs work
- 🇫🇷France andypost
andypost → changed the visibility of the branch 10.5.x to hidden.
- 🇫🇷France andypost
andypost → changed the visibility of the branch 10.4.x to hidden.
- 🇫🇷France andypost
Used to run pipelines for the current 10.4 and 10.5 and both are green!
- https://git.drupalcode.org/issue/drupal-3427903/-/pipelines/378581
- https://git.drupalcode.org/issue/drupal-3427903/-/pipelines/378594So closing this one and 10.4.0 release post can mention about compatibility like https://www.drupal.org/blog/drupal-11-1-0 →
Automatically closed - issue fixed for 2 weeks with no activity.