Problem/Motivation

11.3 release should be PHP 8.5 compatible, see https://wiki.php.net/todo/php85

Features implemented in 8.5

New deprecations https://wiki.php.net/rfc/deprecations_php_8_5 (see child issues)
Tracking of deprecations to commit https://github.com/php/php-src/issues/19468

Symfony https://github.com/symfony/symfony/issues/61772

There's symfony/polyfill-php85 could be added with NoDiscard RFC for batching

Steps to reproduce

https://github.com/symfony/polyfill-php85

Proposed resolution

As CI already running 8.5 enable the polyfill
Upgrade dependencies

Remaining tasks

discus adoption of PHP 8.5

Remaining tasks
- #3557585: Update to Composer 2.9.2 composer 2.9.1+ (has compatibility issues #3557585: Update to Composer 2.9.2)

already fixed dependencies
- https://github.com/minkphp/MinkBrowserKitDriver/releases/tag/v2.3.0 #3559412: Upgrade behat/mink and behat/mink-browserkit-driver for PHP 8.5
- https://github.com/phpspec/prophecy/releases/tag/v1.24.0 (phpspec+prophecy) #3559280: Upgrade phpspec/prophecy to 1.24
- https://github.com/symfony/symfony/pull/61662 6.4.26/7.4 branches #3552765: Update Composer dependencies for 11.3.0
- https://github.com/mck89/peast/releases/tag/v1.17.4
- https://github.com/phpspec/prophecy/releases/tag/v1.23.0
- https://github.com/sebastianbergmann/recursion-context/releases/tag/6.0.3
- https://github.com/Lullabot/php-webdriver/releases/tag/v2.0.7
- https://github.com/nikic/PHP-Parser/releases/tag/v5.6.1
- https://github.com/phpDocumentor/ReflectionDocBlock/releases/tag/5.6.3
- https://github.com/reactphp/promise/releases/tag/v3.3.0
- https://github.com/guzzle/guzzle/releases/tag/7.10.0
- https://getcomposer.org/changelog/2.8.11

- #3540531: Fix ToolkitGdTest for PHP 8.5
- #3546535: [meta] Deal with NULL as array key/offset

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet

Issue fork drupal-3523596

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

andypost created an issue. See original summary.

andypost’s picture

Issue summary: View changes

added list of implemented https://wiki.php.net/rfc#php_85

andypost’s picture

andypost’s picture

xjm’s picture

Title: Discus adoption of #NoDiscard and PHP 8.5 » Discuss adoption of #NoDiscard and PHP 8.5
xjm’s picture

mondrake made their first commit to this issue’s fork.

mondrake’s picture

I did not mean to open a fork… must have tapped something inadvertently.

andypost’s picture

First Phpstan error on 8.5 alpha3

     Internal error: AST failed to parse in located source (line 3): Syntax                             
     error, unexpected T_CLONE, expecting T_EXIT or T_STRING or T_READONLY or                           
     '(', Syntax error, unexpected T_VARIABLE, Syntax error, unexpected ')'                             
                                                                                                        
     <?php                                                                                              
                                                                                                        
     function clone(object $object, array $withProperties = []): object                                 
     {                                                                                                  
     }                                                                                                  
      while analysing file                                                                              
     /builds/issue/drupal-3523596/core/tests/Drupal/KernelTests/Core/Entity/ContentEntityCloneTest.php  
andypost’s picture

The ToolkitGdTest test fails probably because of

- https://github.com/php/php-src/pull/17375
- https://github.com/php/php-src/pull/19107

     ✘ Manipulations with 29
       ┐
       ├ Image 'image-test.gif' object after 'rotate_5' action has the correct color placement at corner '0' - Actual: {255,0,93,0}, Expected: {255,0,255,0}, Distance: 26244, Tolerance: 0
       ├ Failed asserting that 26244 is equal to 0 or is less than 0.             
       │
       │ /builds/issue/drupal-3523596/core/tests/Drupal/KernelTests/Core/Image/ToolkitGdTest.php:90
       │ /builds/issue/drupal-3523596/core/tests/Drupal/KernelTests/Core/Image/ToolkitGdTest.php:357
       ┴
     ✘ Manipulations with 30
       ┐
       ├ Image 'image-test.gif' object after 'rotate_transparent_5' action has the correct color placement at corner '0' - Actual: {255,93,0,46}, Expected: {255,255,255,127}, Distance: 97830, Tolerance: 0
       ├ Failed asserting that 97830 is equal to 0 or is less than 0.             
       │
       │ /builds/issue/drupal-3523596/core/tests/Drupal/KernelTests/Core/Image/ToolkitGdTest.php:90
       │ /builds/issue/drupal-3523596/core/tests/Drupal/KernelTests/Core/Image/ToolkitGdTest.php:357
       ┴
andypost’s picture

andypost’s picture

Also created 2 fixes for commited deprecations (will be released on August 13)

#3540525: Remove remaining usage of setAccessible()
#3540528: Clean-up deprecated non-standard cast names

andypost’s picture

andypost’s picture

A bit more deprecations

php message: PHP Deprecated: Case statements followed by a semicolon (;) are deprecated, use a colon (:) instead in /var/www/html/web/vendor/react/promise/src/functions.php on line 300

https://github.com/reactphp/promise/commit/d3998c8a5d3cff0b39b2f332da550...

php message: Failed to log error: Deprecated function: Function curl_close() is deprecated since 8.5, as it has no effect since PHP 8.0 in GuzzleHttp\Handler\CurlFactory->__destruct() (line 732 of /var/www/html/web/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php). #0 /var/www/html/web/core/includes/bootstrap.inc(104): _drupal_error_handler_real()
#1 /var/www/html/web/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(732): _drupal_error_handler()
#2 [internal function]: GuzzleHttp\Handler\CurlFactory->__destruct()
#3 {main}

need new issue for guzzle

andypost’s picture

https://github.com/nikic/PHP-Parser/commit/02dcdd74bb328ca0bd9b9e459ca25...

and one more https://github.com/sebastianbergmann/recursion-context/pull/32

Deprecated: Method SplObjectStorage::contains() is deprecated since 8.5, use method SplObjectStorage::offsetExists() instead in /builds/issue/drupal-3523596/vendor/sebastian/recursion-context/src/Context.php on line 129

PHP Deprecated:  Method SplObjectStorage::attach() is deprecated since 8.5, use method SplObjectStorage::offsetSet() instead in /builds/issue/drupal-3523596/vendor/sebastian/recursion-context/src/Context.php on line 130

vendor/sebastian/recursion-context/src/Context.php:148
    Method SplObjectStorage::contains() is deprecated since 8.5, use method SplObjectStorage::offsetExists() instead
andypost’s picture

Issue summary: View changes

Updated IS with curent state

andypost’s picture

Issue summary: View changes
andypost’s picture

Issue summary: View changes
mondrake’s picture

andypost’s picture

andypost’s picture

andypost’s picture

Filed separare issue for Guzzle upgrade #3542827: Upgrade Guzzle to 7.10 for PHP 8.5 support

andypost’s picture

Beta2 is tagged and all tests fail again because PDO constants are deprecated

    1 test triggered 3 PHP deprecations:
    
    1) /builds/issue/drupal-3523596/core/modules/mysql/src/Driver/Database/mysql/Connection.php:124
    Constant PDO::MYSQL_ATTR_USE_BUFFERED_QUERY is deprecated since 8.5, use Pdo\Mysql::ATTR_USE_BUFFERED_QUERY instead
    
    Triggered by:
    
    * Drupal\Tests\workflows\Kernel\ComplexWorkflowTypeTest::testLoadMultipleByType
      /builds/issue/drupal-3523596/core/modules/workflows/tests/src/Kernel/ComplexWorkflowTypeTest.php:27
    
    2) /builds/issue/drupal-3523596/core/modules/mysql/src/Driver/Database/mysql/Connection.php:128
    Constant PDO::MYSQL_ATTR_FOUND_ROWS is deprecated since 8.5, use Pdo\Mysql::ATTR_FOUND_ROWS instead
    
    Triggered by:
    
    * Drupal\Tests\workflows\Kernel\ComplexWorkflowTypeTest::testLoadMultipleByType
      /builds/issue/drupal-3523596/core/modules/workflows/tests/src/Kernel/ComplexWorkflowTypeTest.php:27
    
    3) /builds/issue/drupal-3523596/core/modules/mysql/src/Driver/Database/mysql/Connection.php:133
    Constant PDO::MYSQL_ATTR_MULTI_STATEMENTS is deprecated since 8.5, use Pdo\Mysql::ATTR_MULTI_STATEMENTS instead
    
    Triggered by:
    
    * Drupal\Tests\workflows\Kernel\ComplexWorkflowTypeTest::testLoadMultipleByType
      /builds/issue/drupal-3523596/core/modules/workflows/tests/src/Kernel/ComplexWorkflowTypeTest.php:27
andypost’s picture

Issue summary: View changes

tracking of deprecations https://github.com/php/php-src/issues/19468

    1) /builds/issue/drupal-3523596/core/modules/migrate/src/Plugin/migrate/process/Flatten.php:57
    ArrayIterator::__construct(): Using an object as a backing array for ArrayIterator is deprecated, as it allows violating class constraints and invariants
    
    Triggered by:
    
    * Drupal\Tests\migrate\Unit\process\FlattenTest::testFlatten#object
      /builds/issue/drupal-3523596/core/modules/migrate/tests/src/Unit/process/FlattenTest.php:30
catch’s picture

Title: Discuss adoption of #NoDiscard and PHP 8.5 » [meta] PHP 8.5 support

I think we should open a new issue to discuss #NoDiscard so retitling this one.

catch’s picture

Issue summary: View changes

Updated MR status in the issue summary a bit. It looks like justinrainbow/json-schema is planning to do a release tomorrow, if we're able to update to that next week then I think that will get us to clean phpunit test runs on PHP 8.5

@andypost are there already issues open for the remaining core changes like the mysql driver?

andypost’s picture

I need to file new issues for mysql, migrate and chr(), probably last 2 could be done in one task

The biggest challenge is #3540531: Fix ToolkitGdTest for PHP 8.5

PS: once justinrainbow/json-schema will be merged, composer should create another release and it will fix package manager tests

andypost’s picture

Issue summary: View changes

updated IS with new releases

andypost’s picture

Issue summary: View changes

Waiting for next composer release

https://github.com/composer/composer/pull/12517

andypost’s picture

The #Deprecated attribute now allowed for traits to deprecate https://github.com/php/php-src/commit/34a6e86282508d3b3c592d7156727204aa...

andypost’s picture

new depecations

5) /builds/issue/drupal-3523596/core/lib/Drupal/Component/DependencyInjection/Container.php:150
Using null as an array offset is deprecated, use an empty string instead
Triggered by:
* Drupal\Tests\Component\DependencyInjection\ContainerTest::testGetForNonExistentNULLService
  /builds/issue/drupal-3523596/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php:369
* Drupal\Tests\Component\DependencyInjection\PhpArrayContainerTest::testGetForNonExistentNULLService
  /builds/issue/drupal-3523596/core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php:369
6) /builds/issue/drupal-3523596/vendor/symfony/http-foundation/ResponseHeaderBag.php:162
Using null as an array offset is deprecated, use an empty string instead

and in unit tests

ERROR: PHP Deprecated:  Method Drupal\sqlite\Driver\Database\sqlite\PDOConnection::sqliteCreateFunction() is deprecated since 8.5, use Pdo\Sqlite::createFunction() instead in /builds/issue/drupal-3523596/core/modules/sqlite/src/Driver/Database/sqlite/Connection.php on line 121
PHP Deprecated:  Method Drupal\sqlite\Driver\Database\sqlite\PDOConnection::sqliteCreateFunction() is deprecated since 8.5, use Pdo\Sqlite::createFunction() instead in /builds/issue/drupal-3523596/core/modules/sqlite/src/Driver/Database/sqlite/Connection.php on line 122
PHP Deprecated:  Method Drupal\sqlite\Driver\Database\sqlite\PDOConnection::sqliteCreateFunction() is deprecated since 8.5, use Pdo\Sqlite::createFunction() instead in /builds/issue/drupal-3523596/core/modules/sqlite/src/Driver/Database/sqlite/Connection.php on line 123
PHP Deprecated:  Method Drupal\sqlite\Driver\Database\sqlite\PDOConnection::sqliteCreateFunction() is deprecated since 8.5, use Pdo\Sqlite::createFunction() instead in /builds/issue/drupal-3523596/core/modules/sqlite/src/Driver/Database/sqlite/Connection.php on line 124
PHP Deprecated:  Method Drupal\sqlite\Driver\Database\sqlite\PDOConnection::sqliteCreateFunction() is deprecated since 8.5, use Pdo\Sqlite::createFunction() instead in /builds/issue/drupal-3523596/core/modules/sqlite/src/Driver/Database/sqlite/Connection.php on line 125
PHP Deprecated:  Method Drupal\sqlite\Driver\Database\sqlite\PDOConnection::sqliteCreateFunction() is deprecated since 8.5, use Pdo\Sqlite::createFunct
andypost’s picture

andypost’s picture

fixed some deprecations, needs to patch symfony with commited https://github.com/symfony/symfony/pull/61662

andypost’s picture

andypost’s picture

one more dependency needs update additionally to SF

    Asset Optimization Umami (Drupal\FunctionalTests\Asset\AssetOptimizationUmami)
     ✘ Asset aggregation
       ┐
       ├ Exception: Deprecated function: Using null as an array offset is deprecated, use an empty string instead
       ├ Peast\Syntax\Node\NumericLiteral->setRaw()() (Line: 118)  
andypost’s picture

Issue summary: View changes

added to IS https://github.com/mck89/peast/pull/72

all tests except GD (got fixes in master) and package manager are passing, so now needs to extract array index to #3546535: [meta] Deal with NULL as array key/offset
some changes require to be extracted into own tasks

andypost’s picture

andypost’s picture

mysql and pgsql tests are green!

sqlite getting locking error mostly every Functional test

Comment Access (Drupal\Tests\comment\Functional\CommentAccess)
     ✘ Cannot comment on entities you cannot view
       ┐
       ├ Drupal\Core\Entity\EntityStorageException: SQLSTATE[HY000]: General error: 5 database is locked: UPDATE "test23894424"."node" SET "vid"=:db_update_placeholder_0, "type"=:db_update_placeholder_1, "uuid"=:db_update_placeholder_2, "langcode"=:db_update_placeholder_3
andypost’s picture

As of PHP 8.5RC1 new nightmare https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_the_sleep_and_wa...

PHP Deprecated:  The __wakeup() serialization magic method has been deprecated. Implement __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /builds/issue/drupal-3523596/core/lib/Drupal/Core/Database/Query/Query.php on line 14
Deprecated: The __sleep() serialization magic method has been deprecated. Implement __serialize() instead (or in addition, if support for old PHP versions is necessary) in /builds/issue/drupal-3523596/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php on line 19
Deprecated: The __sleep() serialization magic method has been deprecated. Implement __serialize() instead (or in addition, if support for old PHP versions is necessary) in /builds/issue/drupal-3523596/core/lib/Drupal/Core/DependencyInjection/DependencySerializationTrait.php on line 12
Deprecated: The __wakeup() serialization magic method has been deprecated. Implement __unserialize() instead (or in additio
Job's log exceeded limit of 4194304 bytes.
andypost’s picture

steinmb’s picture

Regarding #45 - https://wiki.php.net/rfc/soft-deprecate-sleep-wakeup could alter this specific deprecation

andypost’s picture

@steinmb yes, there's hope it will be accepted for 8.5 but IMO it's too late, that's why SF already fixed their code and Laravel doing the same

andypost’s picture

andypost’s picture

Serialization needs revert as went in as soft-deprecation https://github.com/php/php-src/commit/fc353966f3976f733a2d038ce9b29016c4...

andypost’s picture

As of RC2 and Symfony update mostly green and serialization no longer fail

new deprecation

Php Unit Api Get Test Classes (Drupal\KernelTests\Core\Test\PhpUnitApiGetTestClasses)
     ✘ Equality with All·tests
       ┐
       ├ PHPUnit\Framework\Exception: PHP Warning:  The float 1.1805916207174113E+21 is not representable as an int, cast occurred in /builds/issue/drupal-3523596/vendor/sebastian/exporter/src/Exporter.php on line 358
       ├ Warning: The float 1.1805916207174113E+21 is not representable as an int, cast occurred in /builds/issue/drupal-3523596/vendor/sebastian/exporter/src/Exporter.php on line 358
       ├ PHP Warning:  The float 1.1805916207174113E+21 is not representable as an int, cast occurred in /builds/issue/drupal-3523596/vendor/sebastian/exporter/src/Exporter.php on line 358
mondrake’s picture

andypost’s picture

andypost’s picture

Issue summary: View changes

only 2 dependencies waiting for release
- mck89/peast
- minkphp/MinkBrowserKitDriver

Symfony packages upgrade required and composer constraints to allow install core on 8.5

at Drupal side 2 issues
- #3540531: Fix ToolkitGdTest for PHP 8.5
- #3546535: [meta] Deal with NULL as array key/offset

andypost’s picture

andypost’s picture

andypost’s picture

andypost’s picture

As newer masterminds/html5 fail our tests it makes sense to start transition to native HTML5 parser #3463613: Explore PHP 8.4 native HTML 5 parser vs html5-php

andypost’s picture

Issue summary: View changes

SF updates landed and #3553296: Fix string type hints to Container getters for PHP 8.5 should fix component unit test

andypost’s picture

Added patch for AVIF/HEIF to 8.5 PHP CI image but I see no changes in GD tests
Tests: 120, Assertions: 1277, Failures: 27.

Previous pipeline showed 1 new failure which no longer valid

 ✘ Node page administrator
       ┐
       ├ Failed asserting that two arrays are identical.
       ┊ ---·Expected
       ┊ +++·Actual
       ┊ @@ @@
       ┊  Array &0 [
       ┊ -····'QueryCount'·=>·525,
       ┊ -····'CacheGetCount'·=>·550,
       ┊ +····'QueryCount'·=>·522,
       ┊ +····'CacheGetCount'·=>·530,
       ┊      'CacheGetCountByBin' => Array &1 [
       ┊ -········'config'·=>·201,
       ┊ -········'bootstrap'·=>·28,
       ┊ -········'discovery'·=>·112,
       ┊ +········'config'·=>·195,
       ┊ +········'bootstrap'·=>·27,
       ┊ +········'discovery'·=>·110,
       ┊          'data' => 72,
       ┊ +········'entity'·=>·23,
       ┊          'dynamic_page_cache' => 2,
       ┊ -········'default'·=>·45,
       ┊ -········'entity'·=>·23,
       ┊ +········'default'·=>·34,
       ┊          'render' => 39,
       ┊          'menu' => 28,
       ┊      ],
       ┊ -····'CacheSetCount'·=>·455,
       ┊ +····'CacheSetCount'·=>·456,
       ┊      'CacheDeleteCount' => 0,
       ┊      'CacheTagInvalidationCount' => 0,
       ┊      'CacheTagLookupQueryCount' => 47,
       │
       │ /builds/issue/drupal-3523596/core/tests/Drupal/Tests/PerformanceTestTrait.php:692
       │ /builds/issue/drupal-3523596/core/profiles/demo_umami/tests/src/FunctionalJavascript/OpenTelemetryAuthenticatedPerformanceTest.php:123
andypost’s picture

Upgrade to 2.9.0-RC1 version of composer caused one more failure

To turn the feature off entirely, you can set "block-insecure" to false in your "audit" config.

Components Tagged Release (Drupal\BuildTests\Composer\Component\ComponentsTaggedRelease)
     ✔ Release tagging with 1.0.x-dev
     ✘ Release tagging with 1.0.0-beta1
       ┐
       ├ COMMAND: COMPOSER_ROOT_VERSION="1.0.0-beta1" composer update drupal/core*
       ├ OUTPUT:                                                                  
       ├ ERROR: > Drupal\Composer\Composer::ensureComposerVersion                 
       ├ Loading composer repositories with package information                   
       ├ Updating dependencies                                                    
       ├ Your requirements could not be resolved to an installable set of packages.
       ├                                                                          
       ├   Problem 1                                                              
       ├     - Root composer.json requires drupal/core 1.0.0-beta1 (exact version match), found drupal/core[1.0.0-beta1] but these were not loaded, because they are affected by security advisories. To ignore the advisories, add ("SA-CORE-2023-004", "SA-CORE-2023-005") to the audit "ignore" config. To turn the feature off entirely, you can set "block-insecure" to false in your "audit" config.
       ├                                                                          
       ├ Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
       ├                                                                          
       ├                                                                          
       ├ Failed asserting that 2 matches expected 0.                              
       │
       │ /builds/issue/drupal-3546535/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:314
       │ /builds/issue/drupal-3546535/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:304
       │ /builds/issue/drupal-3546535/core/tests/Drupal/BuildTests/Composer/Component/ComponentsTaggedReleaseTest.php:54
       ┴
     ✘ Release tagging with 1.0.0-rc1
       ┐
       ├ COMMAND: COMPOSER_ROOT_VERSION="1.0.0-rc1" composer update drupal/core*  
       ├ OUTPUT:                                                                  
       ├ ERROR: > Drupal\Composer\Composer::ensureComposerVersion                 
       ├ Loading composer repositories with package information                   
       ├ Updating dependencies                                                    
       ├ Your requirements could not be resolved to an installable set of packages.
       ├                                                                          
       ├   Problem 1                                                              
       ├     - Root composer.json requires drupal/core 1.0.0-rc1 (exact version match), found drupal/core[1.0.0-rc1] but these were not loaded, because they are affected by security advisories. To ignore the advisories, add ("SA-CORE-2023-004", "SA-CORE-2023-005") to the audit "ignore" config. To turn the feature off entirely, you can set "block-insecure" to false in your "audit" config.
       ├                                                                          
       ├ Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
       ├                                                                          
       ├                                                                          
       ├ Failed asserting that 2 matches expected 0.                              
       │
       │ /builds/issue/drupal-3546535/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:314
       │ /builds/issue/drupal-3546535/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:304
       │ /builds/issue/drupal-3546535/core/tests/Drupal/BuildTests/Composer/Component/ComponentsTaggedReleaseTest.php:54
       ┴
     ✘ Release tagging with 1.0.0
       ┐
       ├ COMMAND: COMPOSER_ROOT_VERSION="1.0.0" composer update drupal/core*      
       ├ OUTPUT:                                                                  
       ├ ERROR: > Drupal\Composer\Composer::ensureComposerVersion                 
       ├ Loading composer repositories with package information                   
       ├ Updating dependencies                                                    
       ├ Your requirements could not be resolved to an installable set of packages.
       ├                                                                          
       ├   Problem 1                                                              
       ├     - Root composer.json requires drupal/core 1.0.0 (exact version match: 1.0.0 or 1.0.0.0), found drupal/core[1.0.0] but these were not loaded, because they are affected by security advisories. To ignore the advisories, add ("SA-CORE-2023-004", "SA-CORE-2023-005") to the audit "ignore" config. To turn the feature off entirely, you can set "block-insecure" to false in your "audit" config.
       ├                                                                          
       ├ Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
       ├                                                                          
       ├                                                                          
       ├ Failed asserting that 2 matches expected 0.                              
       │
       │ /builds/issue/drupal-3546535/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:314
       │ /builds/issue/drupal-3546535/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:304
       │ /builds/issue/drupal-3546535/core/tests/Drupal/BuildTests/Composer/Component/ComponentsTaggedReleaseTest.php:54
       ┴
    
    FAILURES!
    Tests: 4, Assertions: 28, Failures: 3.
catch’s picture

Do we need to change COMMAND: COMPOSER_ROOT_VERSION="1.0.0-rc1" to a higher version?

alexpott’s picture

We should be making something up from the \Drupal::VERSION constant in these tests I guess - it'll be a better test rather then disabling composer features. We should open an issue to update composer and decouple this discussion from the PHP upgrade stuff.

andypost’s picture

andypost changed the visibility of the branch 3523596-php-8-5-testing-rc2 to hidden.

mondrake’s picture

andypost’s picture

filed #3559280: Upgrade phpspec/prophecy to 1.24 as build tests are green now but new regression after #3557167: Fix deprecations in \Drupal\Core\ImageToolkit\ImageToolkitManager::getDefaultToolkitId() due to kernel testing

    1) /builds/issue/drupal-3523596/core/lib/Drupal/Core/ImageToolkit/ImageToolkitManager.php:65
    Using null as an array offset is deprecated, use an empty string instead
    
    Triggered by:
    
    * Drupal\Tests\filter\Kernel\EntityLinksTest::testMediaEntity#0
      /builds/issue/drupal-3523596/core/modules/filter/tests/src/Kernel/EntityLinksTest.php:247
    
    * Drupal\Tests\filter\Kernel\EntityLinksTest::testMediaEntity#1
      /builds/issue/drupal-3523596/core/modules/filter/tests/src/Kernel/EntityLinksTest.php:247
    
    * Drupal\Tests\filter\Kernel\EntityLinksTest::testMediaEntity#4
      /builds/issue/drupal-3523596/core/modules/filter/tests/src/Kernel/EntityLinksTest.php:247
    
    * Drupal\Tests\filter\Kernel\EntityLinksTest::testMediaEntity#5
      /builds/issue/drupal-3523596/core/modules/filter/tests/src/Kernel/EntityLinksTest.php:247
    
    OK, but there were issues!
    Tests: 10, Assertions: 290, Deprecations: 1.
andypost’s picture

Issue summary: View changes

Updated IS and filed #3559286: Fix EntityLinksTest for PHP 8.5 regression fix as pipeline are green again

andypost’s picture

Issue summary: View changes
andypost’s picture

Status: Active » Reviewed & tested by the community

Consider it fixed!

PS: composer issue is no loner about compatibility #3557585: Update to Composer 2.9.2

catch’s picture

Status: Reviewed & tested by the community » Needs work

We should add PHP 8.5 to the on-commit pipeline, currently it only includes PHP 8.4 and 8.3. e.g. https://git.drupalcode.org/project/drupal/-/pipelines/669360

Would be good to keep that to three environments still, - so three databases and three PHP versions. Maybe we can update sqlite or postgresql to PHP 8.4 and run MySQL against PHP 8.5?

alexpott’s picture

catch’s picture

Status: Needs work » Fixed
Issue tags: +11.3.0 release highlights

Just committed that one. I think we can mark this fixed then!

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.