Problem/Motivation

10.0.0-alpha4 and 9.4.0-alpha1 will be released next week. Several Composer dependencies can be updated to newer versions.

Proposed resolution

Update Composer dependencies to the latest minor and patch versions prior to 10.0.0-alpha4 and 9.4.0-alpha1.

Remaining tasks

NR.

User interface changes

N/A

API changes

Hopefully not.

Data model changes

N/A

Release notes snippet

10.0.x:
Drupal core's pinned Composer dependency versions have been updated for the latest minor and patch releases. The composer/xdebug-handler and sebastian/type dependencies have received major version updates that remove support for PHP versions not supported for Drupal 10.

Other branches:
10.0.x Drupal core's pinned Composer dependency versions have been updated for the latest minor and patch releases. The composer/xdebug-handler dependency has received a major version update that removes support for PHP versions not supported for Drupal 10.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

xjm created an issue. See original summary.

xjm’s picture

xjm’s picture

  1. +++ b/composer/Metapackage/CoreRecommended/composer.json
    @@ -29,33 +29,33 @@
    -        "symfony/polyfill-iconv": "v1.24.0",
    +        "symfony/polyfill-iconv": "v1.25.0",
             "symfony/polyfill-intl-grapheme": "v1.25.0",
    -        "symfony/polyfill-intl-idn": "v1.24.0",
    +        "symfony/polyfill-intl-idn": "v1.25.0",
             "symfony/polyfill-intl-normalizer": "v1.25.0",
             "symfony/polyfill-mbstring": "v1.25.0",
             "symfony/polyfill-php80": "v1.25.0",
    -        "symfony/polyfill-php81": "v1.24.0",
    -        "symfony/process": "v6.0.5",
    +        "symfony/polyfill-php81": "v1.25.0",
    +        "symfony/process": "v6.0.8",
    

    10.0.x through 9.4.x have minor updates on the polyfills.

  2. +++ b/composer/Metapackage/CoreRecommended/composer.json
    @@ -9,18 +9,18 @@
    -        "composer/semver": "3.2.6",
    +        "composer/semver": "3.3.2",
    ...
    -        "laminas/laminas-diactoros": "2.8.0",
    +        "laminas/laminas-diactoros": "2.9.2",
             "laminas/laminas-escaper": "2.9.0",
    -        "laminas/laminas-feed": "2.15.0",
    -        "laminas/laminas-stdlib": "3.6.1",
    +        "laminas/laminas-feed": "2.17.0",
    +        "laminas/laminas-stdlib": "3.7.1",
    

    Minor updates for 9.4.x. Should we increase constraints for forward-compatibility with the latest minors in case of sec releases? Could be a followup.

  3. +++ b/composer/Metapackage/PinnedDevDependencies/composer.json
    @@ -28,7 +28,7 @@
    -        "phpdocumentor/type-resolver": "1.5.1",
    +        "phpdocumentor/type-resolver": "1.6.1",
    

    Another minor update but probably low-impact.

The last submitted patch, 2: update-9.5.x.patch, failed testing. View results

xjm’s picture

Known random fail above in the results. I retested it.

xjm’s picture

Issue tags: +Needs followup

Tagging for a follow up for #3. I think we should keep the scope of this issue to doing the lockfile dependency updates for the forward branches.

longwave’s picture

Status: Needs review » Needs work

There are a bunch of dev dependencies that can be updated and laminas/laminas-diactoros 2.10.0 is also out.

longwave’s picture

9.4.x and 9.5.x:

Patches created with composer update --with=phpunit/phpunit:^8 --with=drupal/coder:8.3.13

+------------------------------------+----------+----------+
| Production Changes                 | From     | To       |
+------------------------------------+----------+----------+
| composer/semver                    | 3.2.6    | 3.3.2    |
| doctrine/lexer                     | 1.2.1    | 1.2.3    |
| laminas/laminas-diactoros          | 2.8.0    | 2.10.0   |
| laminas/laminas-feed               | 2.15.0   | 2.17.0   |
| laminas/laminas-stdlib             | 3.6.1    | 3.7.1    |
| symfony/console                    | v4.4.34  | v4.4.41  |
| symfony/debug                      | v4.4.31  | v4.4.41  |
| symfony/dependency-injection       | v4.4.34  | v4.4.41  |
| symfony/deprecation-contracts      | v2.5.0   | v2.5.1   |
| symfony/error-handler              | v4.4.34  | v4.4.41  |
| symfony/event-dispatcher           | v4.4.34  | v4.4.37  |
| symfony/event-dispatcher-contracts | v1.1.11  | v1.1.12  |
| symfony/http-client-contracts      | v2.5.0   | v2.5.1   |
| symfony/http-foundation            | v4.4.34  | v4.4.41  |
| symfony/http-kernel                | v4.4.35  | v4.4.41  |
| symfony/mime                       | v5.4.0   | v5.4.8   |
| symfony/polyfill-ctype             | v1.23.0  | v1.25.0  |
| symfony/polyfill-iconv             | v1.23.0  | v1.25.0  |
| symfony/polyfill-intl-idn          | v1.23.0  | v1.25.0  |
| symfony/polyfill-intl-normalizer   | v1.23.0  | v1.25.0  |
| symfony/polyfill-mbstring          | v1.23.1  | v1.25.0  |
| symfony/polyfill-php80             | v1.23.1  | v1.25.0  |
| symfony/process                    | v4.4.35  | v4.4.41  |
| symfony/routing                    | v4.4.34  | v4.4.41  |
| symfony/serializer                 | v4.4.35  | v4.4.41  |
| symfony/service-contracts          | v2.5.0   | v2.5.1   |
| symfony/translation                | v4.4.34  | v4.4.41  |
| symfony/translation-contracts      | v2.5.0   | v2.5.1   |
| symfony/validator                  | v4.4.35  | v4.4.41  |
| symfony/var-dumper                 | v5.4.0   | v5.4.8   |
| symfony/yaml                       | v4.4.34  | v4.4.37  |
| twig/twig                          | v2.14.11 | v2.14.13 |
+------------------------------------+----------+----------+

+------------------------------------+---------+---------+
| Dev Changes                        | From    | To      |
+------------------------------------+---------+---------+
| behat/mink                         | v1.9.0  | v1.10.0 |
| behat/mink-selenium2-driver        | v1.5.0  | v1.6.0  |
| composer/xdebug-handler            | 2.0.2   | 3.0.3   |
| doctrine/instantiator              | 1.4.0   | 1.4.1   |
| instaclick/php-webdriver           | 1.4.10  | 1.4.14  |
| justinrainbow/json-schema          | 5.2.11  | 5.2.12  |
| myclabs/deep-copy                  | 1.10.2  | 1.11.0  |
| phar-io/version                    | 3.1.0   | 3.2.1   |
| phpdocumentor/type-resolver        | 1.5.1   | 1.6.1   |
| phpspec/prophecy                   | 1.14.0  | v1.15.0 |
| phpunit/php-file-iterator          | 2.0.4   | 2.0.5   |
| phpunit/phpunit                    | 8.5.21  | 8.5.26  |
| react/promise                      | v2.8.0  | v2.9.0  |
| sebastian/global-state             | 3.0.1   | 3.0.2   |
| seld/jsonlint                      | 1.8.3   | 1.9.0   |
| seld/phar-utils                    | 1.1.2   | 1.2.0   |
| sirbrillig/phpcs-variable-analysis | v2.11.2 | v2.11.3 |
| squizlabs/php_codesniffer          | 3.6.1   | 3.6.2   |
| symfony/browser-kit                | v4.4.27 | v4.4.37 |
| symfony/css-selector               | v4.4.27 | v4.4.37 |
| symfony/dom-crawler                | v4.4.30 | v4.4.39 |
| symfony/filesystem                 | v4.4.27 | v4.4.39 |
| symfony/finder                     | v4.4.30 | v4.4.41 |
| symfony/lock                       | v4.4.33 | v4.4.40 |
| symfony/phpunit-bridge             | v5.4.0  | v5.4.8  |
+------------------------------------+---------+---------+

10.0.x:

Patch created with composer update --with=drupal/coder:8.3.13

+------------------------------------+---------+---------+
| Production Changes                 | From    | To      |
+------------------------------------+---------+---------+
| composer/installers                | v2.0.1  | v2.1.1  |
| composer/semver                    | 3.3.1   | 3.3.2   |
| doctrine/lexer                     | 1.2.2   | 1.2.3   |
| guzzlehttp/guzzle                  | 7.4.1   | 7.4.2   |
| symfony/console                    | v6.0.5  | v6.0.8  |
| symfony/dependency-injection       | v6.0.3  | v6.0.8  |
| symfony/deprecation-contracts      | v3.0.0  | v3.0.1  |
| symfony/error-handler              | v6.0.3  | v6.0.8  |
| symfony/event-dispatcher-contracts | v3.0.0  | v3.0.1  |
| symfony/http-foundation            | v6.0.3  | v6.0.8  |
| symfony/http-kernel                | v6.0.4  | v6.0.8  |
| symfony/mime                       | v6.0.3  | v6.0.8  |
| symfony/polyfill-iconv             | v1.24.0 | v1.25.0 |
| symfony/polyfill-intl-idn          | v1.24.0 | v1.25.0 |
| symfony/polyfill-php81             | v1.24.0 | v1.25.0 |
| symfony/process                    | v6.0.5  | v6.0.8  |
| symfony/routing                    | v6.0.3  | v6.0.8  |
| symfony/serializer                 | v6.0.3  | v6.0.8  |
| symfony/service-contracts          | v3.0.0  | v3.0.1  |
| symfony/string                     | v6.0.3  | v6.0.8  |
| symfony/translation-contracts      | v3.0.0  | v3.0.1  |
| symfony/validator                  | v6.0.3  | v6.0.8  |
| symfony/var-dumper                 | v6.0.3  | v6.0.8  |
| twig/twig                          | v3.3.8  | v3.3.10 |
+------------------------------------+---------+---------+

+------------------------------------+---------+---------+
| Dev Changes                        | From    | To      |
+------------------------------------+---------+---------+
| behat/mink-selenium2-driver        | v1.5.0  | v1.6.0  |
| doctrine/instantiator              | 1.4.0   | 1.4.1   |
| instaclick/php-webdriver           | 1.4.10  | 1.4.14  |
| justinrainbow/json-schema          | 5.2.11  | 5.2.12  |
| mglaman/phpstan-drupal             | 1.1.9   | 1.1.16  |
| myclabs/deep-copy                  | 1.10.2  | 1.11.0  |
| phar-io/version                    | 3.1.0   | 3.2.1   |
| phpdocumentor/type-resolver        | 1.6.0   | 1.6.1   |
| phpstan/phpstan                    | 1.4.0   | 1.6.5   |
| phpunit/php-code-coverage          | 9.2.10  | 9.2.15  |
| phpunit/phpunit                    | 9.5.11  | 9.5.20  |
| sebastian/environment              | 5.1.3   | 5.1.4   |
| sebastian/global-state             | 5.0.3   | 5.0.5   |
| sebastian/type                     | 2.3.4   | 3.0.0   |
| seld/jsonlint                      | 1.8.3   | 1.9.0   |
| sirbrillig/phpcs-variable-analysis | v2.11.2 | v2.11.3 |
| symfony/dom-crawler                | v6.0.3  | v6.0.6  |
| symfony/filesystem                 | v6.0.6  | v6.0.7  |
| symfony/finder                     | v6.0.3  | v6.0.8  |
| symfony/lock                       | v6.0.3  | v6.0.7  |
| symfony/phpunit-bridge             | v6.0.3  | v6.0.8  |
+------------------------------------+---------+---------+

(Coder update requires more work, see #3262874: Update Coder to 8.3.15)

longwave’s picture

| composer/xdebug-handler            | 2.0.2   | 3.0.3   |

The breaking change here is dropping support for PHP below 7.2.5, which doesn't affect us; as this is a dev dependency only I don't see a problem with a major bump here.

Spokje’s picture

Status: Needs review » Reviewed & tested by the community

- TestBot = green
- Got the same results as @longwave when applying the given composer update commands.
- PHP 7.2 isn't supported by any 9.x/10.x release

RTBC for me.

mallezie’s picture

Status: Reviewed & tested by the community » Needs work

The updates for phpstan (and phpstan-drupal) add new checks, and thus need an updated baseline.
Above patch will fail on a full phpstan run. (For D10 only that is).

See #3278916: Update phpstan/phpstan to latest version.

Might be easiest to leave the phpstan and phpstan-drupal out of this issue, and defer to the other one.
We should do #3259353: Run full phpstan on composer change (or even better #3259355: Always do a full phpstan analysis on DrupalCI)

longwave’s picture

Rerolled 10.0.x patch with composer update --with=drupal/coder:8.3.13 --with=phpstan/phpstan:1.4.0 --with=mglaman/phpstan-drupal:1.1.9

+------------------------------------+---------+---------+
| Production Changes                 | From    | To      |
+------------------------------------+---------+---------+
| composer/installers                | v2.0.1  | v2.1.1  |
| composer/semver                    | 3.3.1   | 3.3.2   |
| doctrine/lexer                     | 1.2.2   | 1.2.3   |
| guzzlehttp/guzzle                  | 7.4.1   | 7.4.2   |
| symfony/console                    | v6.0.5  | v6.0.8  |
| symfony/dependency-injection       | v6.0.3  | v6.0.8  |
| symfony/deprecation-contracts      | v3.0.0  | v3.0.1  |
| symfony/error-handler              | v6.0.3  | v6.0.8  |
| symfony/event-dispatcher-contracts | v3.0.0  | v3.0.1  |
| symfony/http-foundation            | v6.0.3  | v6.0.8  |
| symfony/http-kernel                | v6.0.4  | v6.0.8  |
| symfony/mime                       | v6.0.3  | v6.0.8  |
| symfony/polyfill-iconv             | v1.24.0 | v1.25.0 |
| symfony/polyfill-intl-idn          | v1.24.0 | v1.25.0 |
| symfony/polyfill-php81             | v1.24.0 | v1.25.0 |
| symfony/process                    | v6.0.5  | v6.0.8  |
| symfony/routing                    | v6.0.3  | v6.0.8  |
| symfony/serializer                 | v6.0.3  | v6.0.8  |
| symfony/service-contracts          | v3.0.0  | v3.0.1  |
| symfony/string                     | v6.0.3  | v6.0.8  |
| symfony/translation-contracts      | v3.0.0  | v3.0.1  |
| symfony/validator                  | v6.0.3  | v6.0.8  |
| symfony/var-dumper                 | v6.0.3  | v6.0.8  |
| twig/twig                          | v3.3.8  | v3.3.10 |
+------------------------------------+---------+---------+

+------------------------------------+---------+---------+
| Dev Changes                        | From    | To      |
+------------------------------------+---------+---------+
| behat/mink-selenium2-driver        | v1.5.0  | v1.6.0  |
| doctrine/instantiator              | 1.4.0   | 1.4.1   |
| instaclick/php-webdriver           | 1.4.10  | 1.4.14  |
| justinrainbow/json-schema          | 5.2.11  | 5.2.12  |
| myclabs/deep-copy                  | 1.10.2  | 1.11.0  |
| phar-io/version                    | 3.1.0   | 3.2.1   |
| phpdocumentor/type-resolver        | 1.6.0   | 1.6.1   |
| phpunit/php-code-coverage          | 9.2.10  | 9.2.15  |
| phpunit/phpunit                    | 9.5.11  | 9.5.20  |
| sebastian/environment              | 5.1.3   | 5.1.4   |
| sebastian/global-state             | 5.0.3   | 5.0.5   |
| sebastian/type                     | 2.3.4   | 3.0.0   |
| seld/jsonlint                      | 1.8.3   | 1.9.0   |
| sirbrillig/phpcs-variable-analysis | v2.11.2 | v2.11.3 |
| symfony/dom-crawler                | v6.0.3  | v6.0.6  |
| symfony/filesystem                 | v6.0.6  | v6.0.7  |
| symfony/finder                     | v6.0.3  | v6.0.8  |
| symfony/lock                       | v6.0.3  | v6.0.7  |
| symfony/phpunit-bridge             | v6.0.3  | v6.0.8  |
+------------------------------------+---------+---------+

#8 is still valid for the 9.x patches.

Status: Needs review » Needs work

The last submitted patch, 12: 3278162-12-10.0.x.patch, failed testing. View results

longwave’s picture

Status: Needs work » Needs review

Random fail in WidgetOEmbedTest

mallezie’s picture

Status: Needs review » Reviewed & tested by the community

Looks good now to me.

longwave’s picture

Priority: Major » Critical

I think this is critical for 9.4.0-alpha1.

xjm’s picture

+++ b/composer/Metapackage/PinnedDevDependencies/composer.json
@@ -48,27 +48,27 @@
-        "sebastian/type": "2.3.4",
+        "sebastian/type": "3.0.0",

Major update here that seems to involve dropping PHP 7 support:

https://github.com/sebastianbergmann/type/commit/af0117b3c50858a8669027d...

We need to test these patches on PHP 7 too. I'll queue 'em.

Edit: I'm silly. That was the D10 patch. I thought it was the 9.4 one. Cancelling test runs.

longwave’s picture

Oops, didn't spot that one, but it's an indirect dependency of PHPUnit only, so I don't think it's an issue for us either. Drupal 10 only supports PHP 8.1, no need to queue PHP 7.x or even 8.0 tests there :)

xjm’s picture

Queued lower PHP runs for the right patches this time.

xjm’s picture

+++ b/composer/Metapackage/PinnedDevDependencies/composer.json
@@ -8,58 +8,58 @@
         "sebastian/type": "1.1.4",

Confirmed that it's not being updated in the 9.5.x patch.

xjm’s picture

We should document on https://www.drupal.org/about/core/policies/core-dependency-policies/mana... that the baseline needs to be updated (and how to do that) whenever phpstan is updated.

xjm’s picture

Issue summary: View changes

OK, tests are green for the lower PHP versions on the 9.x branches.

  • xjm committed 342ad34 on 10.0.x
    Issue #3278162 by longwave, xjm, mallezie, Spokje: Update Composer...

  • xjm committed 9cc4bbe on 9.5.x
    Issue #3278162 by longwave, xjm, mallezie, Spokje: Update Composer...

  • xjm committed aea299a on 9.4.x
    Issue #3278162 by longwave, xjm, mallezie, Spokje: Update Composer...
xjm’s picture

Committed #12 to 10.0.x, and #8 to 9.5.x and 9.4.x. Thanks!

xjm’s picture

Status: Reviewed & tested by the community » Needs work
Issue tags: +10.0.0 release notes, +9.4.0 release notes

Setting NW for the docs updates.

xjm’s picture

Oh we also need the followups for #3.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Wim Leers’s picture

Version: 9.5.x-dev » 9.4.x-dev
Issue tags: -Needs followup
xjm’s picture

The needed docs updates are documented in #21 -- see #11.

Wim Leers’s picture

I have no idea how or where to document #11.

catch’s picture

Status: Fixed » Closed (fixed)

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