Problem/Motivation

Packages were held back because of the older version of PHP should now be upgradable since we use PHP 7.2.

Proposed resolution

Upgrade all the packages we can.

Remaining tasks

Test all the things.

User interface changes

None.

API changes

None (hopefully).

Data model changes

None.

Release notes snippet

+-------------------------------+---------+---------+
| Production Changes            | From    | To      |
+-------------------------------+---------+---------+
| guzzlehttp/guzzle             | 6.3.3   | 6.5.2   |
| symfony/class-loader          | v3.4.35 | v3.4.36 |
| symfony/console               | v4.4.0  | v4.4.2  |
| symfony/debug                 | v4.4.0  | v4.4.2  |
| symfony/dependency-injection  | v4.4.0  | v4.4.2  |
| symfony/error-handler         | v4.4.0  | v4.4.2  |
| symfony/event-dispatcher      | v4.4.0  | v4.4.2  |
| symfony/http-foundation       | v4.4.0  | v4.4.2  |
| symfony/http-kernel           | v4.4.0  | v4.4.2  |
| symfony/mime                  | v5.0.0  | v5.0.2  |
| symfony/polyfill-ctype        | v1.12.0 | v1.13.1 |
| symfony/polyfill-iconv        | v1.12.0 | v1.13.1 |
| symfony/polyfill-intl-idn     | v1.12.0 | v1.13.1 |
| symfony/polyfill-mbstring     | v1.12.0 | v1.13.1 |
| symfony/polyfill-php72        | v1.12.0 | v1.13.1 |
| symfony/polyfill-php73        | v1.12.0 | v1.13.1 |
| symfony/process               | v4.4.0  | v4.4.2  |
| symfony/routing               | v4.4.0  | v4.4.2  |
| symfony/serializer            | v4.4.0  | v4.4.2  |
| symfony/service-contracts     | v2.0.0  | v2.0.1  |
| symfony/translation           | v4.4.0  | v4.4.2  |
| symfony/translation-contracts | v2.0.0  | v2.0.1  |
| symfony/validator             | v4.4.0  | v4.4.2  |
| symfony/var-dumper            | v5.0.0  | v5.0.2  |
| symfony/yaml                  | v4.4.0  | v4.4.2  |
+-------------------------------+---------+---------+

+------------------------+--------+--------+
| Dev Changes            | From   | To     |
+------------------------+--------+--------+
| drupal/coder           | 8.3.6  | 8.3.7  |
| symfony/browser-kit    | v4.4.0 | v4.4.2 |
| symfony/css-selector   | v4.4.0 | v4.4.2 |
| symfony/dom-crawler    | v4.4.0 | v4.4.2 |
| symfony/filesystem     | v4.4.0 | v4.4.2 |
| symfony/finder         | v4.4.0 | v4.4.2 |
| symfony/lock           | v4.4.0 | v4.4.2 |
| symfony/phpunit-bridge | v4.4.0 | v4.4.2 |
+------------------------+--------+--------+

Comments

Manuel Garcia created an issue. See original summary.

manuel garcia’s picture

Status: Active » Needs review
StatusFileSize
new78.13 KB

Steps taken to generate this patch:

1. checked out the 9.0.x branch (last commit 125a331dc300abb5d383ed2b3dfe1e6c08c14e9d)
2. removed the vendor directory
3. Ensured that composer.lock is checked out (not modified).
4. Run composer update

manuel garcia’s picture

StatusFileSize
new126.27 KB

On #3079791: Bump Drupal's minimum PHP version to 7.2 as soon as 9.0.x is branched (a higher version may be required later) comment #26 @hussainweb commented:

Another issue I thought about. What about the packages that were held back because of the older version of PHP and now can be updated because of PHP 7.2. For that, I ran composer update in a PHP 7.2.22 container and got this diff for composer files only.

Apart from the updates, most notably, the package ircmaxell/password-compat was removed. I don't know why we even have this as this is for forward compatibility for PHP >= 5.3.7. The functions already exist in PHP 5.5.

This patch was uploaded there however it no longer applies on 9.0.x:

$ git apply --index --verbose composer-only-diff_0.diff 
Checking patch composer.lock...
error: while searching for:
        },
        {
            "name": "brumann/polyfill-unserialize",
            "version": "v1.0.3",
            "source": {
                "type": "git",
                "url": "https://github.com/dbrumann/polyfill-unserialize.git",
                "reference": "844d7e44b62a1a3d5c68cfb7ebbd59c17ea0fd7b"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/dbrumann/polyfill-unserialize/zipball/844d7e44b62a1a3d5c68cfb7ebbd59c17ea0fd7b",
                "reference": "844d7e44b62a1a3d5c68cfb7ebbd59c17ea0fd7b",
                "shasum": ""
            },
            "require": {

error: patch failed: composer.lock:60
error: composer.lock: patch does not apply

Uploading it here for transparency.

manuel garcia’s picture

Issue summary: View changes
manuel garcia’s picture

StatusFileSize
new93.57 KB

Let's try this again.

Status: Needs review » Needs work

The last submitted patch, 5: 3091418-5.patch, failed testing. View results

manuel garcia’s picture

Here is the composer lock diff for #5:

$ composer-lock-diff 
+------------------------+---------+---------+--------------------------------------------------------------------+
| Production Changes     | From    | To      | Compare                                                            |
+------------------------+---------+---------+--------------------------------------------------------------------+
| doctrine/annotations   | v1.4.0  | v1.8.0  | https://github.com/doctrine/annotations/compare/v1.4.0...v1.8.0    |
| doctrine/cache         | v1.6.2  | v1.8.1  | https://github.com/doctrine/cache/compare/v1.6.2...v1.8.1          |
| doctrine/collections   | v1.4.0  | v1.6.2  | https://github.com/doctrine/collections/compare/v1.4.0...v1.6.2    |
| doctrine/common        | v2.7.3  | v2.11.0 | https://github.com/doctrine/common/compare/v2.7.3...v2.11.0        |
| doctrine/inflector     | v1.2.0  | v1.3.0  | https://github.com/doctrine/inflector/compare/v1.2.0...v1.3.0      |
| doctrine/lexer         | 1.0.2   | 1.1.0   | https://github.com/doctrine/lexer/compare/1.0.2...1.1.0            |
| guzzlehttp/guzzle      | 6.3.3   | 6.4.1   | https://github.com/guzzle/guzzle/compare/6.3.3...6.4.1             |
| psr/log                | 1.1.0   | 1.1.1   | https://github.com/php-fig/log/compare/1.1.0...1.1.1               |
| symfony/error-handler  | b9953ac | debf92a | https://github.com/symfony/error-handler/compare/b9953ac...debf92a |
| doctrine/event-manager | NEW     | v1.0.0  |                                                                    |
| doctrine/persistence   | NEW     | 1.1.1   |                                                                    |
| doctrine/reflection    | NEW     | v1.0.0  |                                                                    |
+------------------------+---------+---------+--------------------------------------------------------------------+

+--------------------------------------+--------+---------+--------------------------------------------------------------------------------+
| Dev Changes                          | From   | To      | Compare                                                                        |
+--------------------------------------+--------+---------+--------------------------------------------------------------------------------+
| doctrine/instantiator                | 1.0.5  | 1.2.0   | https://github.com/doctrine/instantiator/compare/1.0.5...1.2.0                 |
| jcalderonzumba/gastonjs              | v1.0.2 | v1.2.0  | https://github.com/jcalderonzumba/gastonjs/compare/v1.0.2...v1.2.0             |
| jcalderonzumba/mink-phantomjs-driver | v0.3.2 | v0.3.3  | https://github.com/jcalderonzumba/MinkPhantomJSDriver/compare/v0.3.2...v0.3.3  |
| justinrainbow/json-schema            | 5.2.8  | 5.2.9   | https://github.com/justinrainbow/json-schema/compare/5.2.8...5.2.9             |
| mikey179/vfsstream                   | v1.6.7 | v1.6.8  | https://github.com/bovigo/vfsStream/compare/v1.6.7...v1.6.8                    |
| myclabs/deep-copy                    | 1.7.0  | 1.9.3   | https://github.com/myclabs/DeepCopy/compare/1.7.0...1.9.3                      |
| phar-io/manifest                     | 1.0.1  | 1.0.3   | https://github.com/phar-io/manifest/compare/1.0.1...1.0.3                      |
| phar-io/version                      | 1.0.1  | 2.0.1   | https://github.com/phar-io/version/compare/1.0.1...2.0.1                       |
| phpdocumentor/reflection-common      | 1.0.1  | 2.0.0   | https://github.com/phpDocumentor/ReflectionCommon/compare/1.0.1...2.0.0        |
| phpdocumentor/type-resolver          | 0.5.1  | 1.0.1   | https://github.com/phpDocumentor/TypeResolver/compare/0.5.1...1.0.1            |
| phpunit/php-code-coverage            | 5.3.2  | 6.1.4   | https://github.com/sebastianbergmann/php-code-coverage/compare/5.3.2...6.1.4   |
| phpunit/php-file-iterator            | 1.4.5  | 2.0.2   | https://github.com/sebastianbergmann/php-file-iterator/compare/1.4.5...2.0.2   |
| phpunit/php-timer                    | 1.0.9  | 2.1.2   | https://github.com/sebastianbergmann/php-timer/compare/1.0.9...2.1.2           |
| phpunit/php-token-stream             | 2.0.2  | 3.1.1   | https://github.com/sebastianbergmann/php-token-stream/compare/2.0.2...3.1.1    |
| phpunit/phpunit                      | 6.5.14 | 7.5.17  | https://github.com/sebastianbergmann/phpunit/compare/6.5.14...7.5.17           |
| phpunit/phpunit-mock-objects         | 5.0.10 | REMOVED |                                                                                |
| sebastian/comparator                 | 2.1.3  | 3.0.2   | https://github.com/sebastianbergmann/comparator/compare/2.1.3...3.0.2          |
| sebastian/diff                       | 2.0.1  | 3.0.2   | https://github.com/sebastianbergmann/diff/compare/2.0.1...3.0.2                |
| sebastian/environment                | 3.1.0  | 4.2.2   | https://github.com/sebastianbergmann/environment/compare/3.1.0...4.2.2         |
| sebastian/resource-operations        | 1.0.0  | 2.0.1   | https://github.com/sebastianbergmann/resource-operations/compare/1.0.0...2.0.1 |
| seld/jsonlint                        | 1.7.1  | 1.7.2   | https://github.com/Seldaek/jsonlint/compare/1.7.1...1.7.2                      |
| squizlabs/php_codesniffer            | 3.5.0  | 3.5.2   | https://github.com/squizlabs/PHP_CodeSniffer/compare/3.5.0...3.5.2             |
+--------------------------------------+--------+---------+--------------------------------------------------------------------------------+
manuel garcia’s picture

I went back in time to 3ed75506489dc2cd8bfd62d6a2ce01ff9ce81cf3 and applied the patch on #3 to have a look at the composer lock diff, here it is:

$ composer-lock-diff 
+---------------------------------+---------+----------+----------------------------------------------------------------------------+
| Production Changes              | From    | To       | Compare                                                                    |
+---------------------------------+---------+----------+----------------------------------------------------------------------------+
| brumann/polyfill-unserialize    | v1.0.3  | v1.0.4   | https://github.com/dbrumann/polyfill-unserialize/compare/v1.0.3...v1.0.4   |
| composer/installers             | v1.6.0  | v1.7.0   | https://github.com/composer/installers/compare/v1.6.0...v1.7.0             |
| doctrine/annotations            | v1.2.7  | v1.8.0   | https://github.com/doctrine/annotations/compare/v1.2.7...v1.8.0            |
| doctrine/cache                  | v1.6.2  | v1.8.0   | https://github.com/doctrine/cache/compare/v1.6.2...v1.8.0                  |
| doctrine/collections            | v1.3.0  | v1.6.2   | https://github.com/doctrine/collections/compare/v1.3.0...v1.6.2            |
| doctrine/common                 | v2.6.2  | v2.11.0  | https://github.com/doctrine/common/compare/v2.6.2...v2.11.0                |
| doctrine/inflector              | v1.1.0  | v1.3.0   | https://github.com/doctrine/inflector/compare/v1.1.0...v1.3.0              |
| doctrine/lexer                  | v1.0.1  | 1.1.0    | https://github.com/doctrine/lexer/compare/v1.0.1...1.1.0                   |
| egulias/email-validator         | 2.1.7   | 2.1.11   | https://github.com/egulias/EmailValidator/compare/2.1.7...2.1.11           |
| guzzlehttp/psr7                 | 1.4.2   | 1.6.1    | https://github.com/guzzle/psr7/compare/1.4.2...1.6.1                       |
| masterminds/html5               | 2.3.0   | 2.7.0    | https://github.com/Masterminds/html5-php/compare/2.3.0...2.7.0             |
| paragonie/random_compat         | v2.0.18 | v9.99.99 | https://github.com/paragonie/random_compat/compare/v2.0.18...v9.99.99      |
| pear/archive_tar                | 1.4.6   | 1.4.7    | https://github.com/pear/Archive_Tar/compare/1.4.6...1.4.7                  |
| pear/console_getopt             | v1.4.1  | v1.4.2   | https://github.com/pear/Console_Getopt/compare/v1.4.1...v1.4.2             |
| pear/pear-core-minimal          | v1.10.7 | v1.10.9  | https://github.com/pear/pear-core-minimal/compare/v1.10.7...v1.10.9        |
| psr/log                         | 1.0.2   | 1.1.0    | https://github.com/php-fig/log/compare/1.0.2...1.1.0                       |
| symfony/class-loader            | v3.4.26 | v3.4.31  | https://github.com/symfony/class-loader/compare/v3.4.26...v3.4.31          |
| symfony/console                 | v3.4.26 | v3.4.31  | https://github.com/symfony/console/compare/v3.4.26...v3.4.31               |
| symfony/debug                   | v3.4.26 | v3.4.31  | https://github.com/symfony/debug/compare/v3.4.26...v3.4.31                 |
| symfony/dependency-injection    | v3.4.26 | v3.4.31  | https://github.com/symfony/dependency-injection/compare/v3.4.26...v3.4.31  |
| symfony/event-dispatcher        | v3.4.26 | v3.4.31  | https://github.com/symfony/event-dispatcher/compare/v3.4.26...v3.4.31      |
| symfony/http-foundation         | v3.4.27 | v3.4.31  | https://github.com/symfony/http-foundation/compare/v3.4.27...v3.4.31       |
| symfony/http-kernel             | v3.4.26 | v3.4.31  | https://github.com/symfony/http-kernel/compare/v3.4.26...v3.4.31           |
| symfony/polyfill-ctype          | v1.11.0 | v1.12.0  | https://github.com/symfony/polyfill-ctype/compare/v1.11.0...v1.12.0        |
| symfony/polyfill-iconv          | v1.11.0 | v1.12.0  | https://github.com/symfony/polyfill-iconv/compare/v1.11.0...v1.12.0        |
| symfony/polyfill-mbstring       | v1.11.0 | v1.12.0  | https://github.com/symfony/polyfill-mbstring/compare/v1.11.0...v1.12.0     |
| symfony/polyfill-php70          | v1.11.0 | v1.12.0  | https://github.com/symfony/polyfill-php70/compare/v1.11.0...v1.12.0        |
| symfony/process                 | v3.4.26 | v3.4.31  | https://github.com/symfony/process/compare/v3.4.26...v3.4.31               |
| symfony/psr-http-message-bridge | v1.1.2  | v1.2.0   | https://github.com/symfony/psr-http-message-bridge/compare/v1.1.2...v1.2.0 |
| symfony/routing                 | v3.4.26 | v3.4.31  | https://github.com/symfony/routing/compare/v3.4.26...v3.4.31               |
| symfony/serializer              | v3.4.26 | v3.4.31  | https://github.com/symfony/serializer/compare/v3.4.26...v3.4.31            |
| symfony/translation             | v3.4.26 | v3.4.31  | https://github.com/symfony/translation/compare/v3.4.26...v3.4.31           |
| symfony/validator               | v3.4.26 | v3.4.31  | https://github.com/symfony/validator/compare/v3.4.26...v3.4.31             |
| symfony/yaml                    | v3.4.26 | v3.4.31  | https://github.com/symfony/yaml/compare/v3.4.26...v3.4.31                  |
| twig/twig                       | v1.38.4 | v1.42.3  | https://github.com/twigphp/Twig/compare/v1.38.4...v1.42.3                  |
| zendframework/zend-diactoros    | 1.4.1   | 1.8.7    | https://github.com/zendframework/zend-diactoros/compare/1.4.1...1.8.7      |
| zendframework/zend-escaper      | 2.5.2   | 2.6.1    | https://github.com/zendframework/zend-escaper/compare/2.5.2...2.6.1        |
| zendframework/zend-feed         | 2.7.0   | 2.12.0   | https://github.com/zendframework/zend-feed/compare/2.7.0...2.12.0          |
| zendframework/zend-stdlib       | 3.0.1   | 3.2.1    | https://github.com/zendframework/zend-stdlib/compare/3.0.1...3.2.1         |
| doctrine/event-manager          | NEW     | v1.0.0   |                                                                            |
| doctrine/persistence            | NEW     | 1.1.1    |                                                                            |
| doctrine/reflection             | NEW     | v1.0.0   |                                                                            |
| ralouphie/getallheaders         | NEW     | 3.0.3    |                                                                            |
+---------------------------------+---------+----------+----------------------------------------------------------------------------+

+--------------------------------------+---------+---------+-------------------------------------------------------------------------------+
| Dev Changes                          | From    | To      | Compare                                                                       |
+--------------------------------------+---------+---------+-------------------------------------------------------------------------------+
| composer/ca-bundle                   | 1.1.4   | 1.2.4   | https://github.com/composer/ca-bundle/compare/1.1.4...1.2.4                   |
| composer/composer                    | 1.8.5   | 1.9.0   | https://github.com/composer/composer/compare/1.8.5...1.9.0                    |
| composer/spdx-licenses               | 1.5.1   | 1.5.2   | https://github.com/composer/spdx-licenses/compare/1.5.1...1.5.2               |
| doctrine/instantiator                | 1.0.5   | 1.2.0   | https://github.com/doctrine/instantiator/compare/1.0.5...1.2.0                |
| instaclick/php-webdriver             | 1.4.5   | 1.4.6   | https://github.com/instaclick/php-webdriver/compare/1.4.5...1.4.6             |
| ircmaxell/password-compat            | v1.0.4  | REMOVED |                                                                               |
| jcalderonzumba/gastonjs              | v1.0.2  | v1.2.0  | https://github.com/jcalderonzumba/gastonjs/compare/v1.0.2...v1.2.0            |
| jcalderonzumba/mink-phantomjs-driver | v0.3.2  | v0.3.3  | https://github.com/jcalderonzumba/MinkPhantomJSDriver/compare/v0.3.2...v0.3.3 |
| mikey179/vfsstream                   | v1.6.5  | v1.6.7  | https://github.com/bovigo/vfsStream/compare/v1.6.5...v1.6.7                   |
| myclabs/deep-copy                    | 1.7.0   | 1.9.3   | https://github.com/myclabs/DeepCopy/compare/1.7.0...1.9.3                     |
| phpdocumentor/reflection-docblock    | 2.0.4   | 4.3.2   | https://github.com/phpDocumentor/ReflectionDocBlock/compare/2.0.4...4.3.2     |
| phpspec/prophecy                     | v1.7.0  | 1.8.1   | https://github.com/phpspec/prophecy/compare/v1.7.0...1.8.1                    |
| sebastian/exporter                   | 3.1.0   | 3.1.2   | https://github.com/sebastianbergmann/exporter/compare/3.1.0...3.1.2           |
| squizlabs/php_codesniffer            | 3.4.2   | 3.5.0   | https://github.com/squizlabs/PHP_CodeSniffer/compare/3.4.2...3.5.0            |
| symfony/browser-kit                  | v3.4.26 | v4.3.4  | https://github.com/symfony/browser-kit/compare/v3.4.26...v4.3.4               |
| symfony/css-selector                 | v3.4.26 | v3.4.31 | https://github.com/symfony/css-selector/compare/v3.4.26...v3.4.31             |
| symfony/dom-crawler                  | v3.4.26 | v4.3.4  | https://github.com/symfony/dom-crawler/compare/v3.4.26...v4.3.4               |
| symfony/filesystem                   | v3.4.28 | v4.3.4  | https://github.com/symfony/filesystem/compare/v3.4.28...v4.3.4                |
| symfony/finder                       | v3.4.28 | v4.3.4  | https://github.com/symfony/finder/compare/v3.4.28...v4.3.4                    |
| symfony/phpunit-bridge               | v3.4.26 | v3.4.31 | https://github.com/symfony/phpunit-bridge/compare/v3.4.26...v3.4.31           |
| theseer/tokenizer                    | 1.1.2   | 1.1.3   | https://github.com/theseer/tokenizer/compare/1.1.2...1.1.3                    |
| phpdocumentor/reflection-common      | NEW     | 2.0.0   |                                                                               |
| phpdocumentor/type-resolver          | NEW     | 1.0.1   |                                                                               |
| webmozart/assert                     | NEW     | 1.5.0   |                                                                               |
+--------------------------------------+---------+---------+-------------------------------------------------------------------------------+
manuel garcia’s picture

Looks like the failures are due to deprecation notices:

"Symfony\Component\DomCrawler\Crawler::text()" will normalize whitespaces by default in Symfony 5.0, set the second "$normalizeWhitespace" argument to false to retrieve the non-normalized version of the text.

Seems to be triggered by calls to WebAssert::pageTextContains()

manuel garcia’s picture

I've noticed that the behat packages we require-dev are archived repositories:

These repos is actually forks of

Which do seem to be alive still.

In any case this is probably something we should address as this is what we've got on our composer.json at this moment:

"require-dev": {
        "behat/mink": "1.7.x-dev",
        "behat/mink-goutte-driver": "^1.2",
        "behat/mink-selenium2-driver": "1.3.x-dev",
        ....
manuel garcia’s picture

OK ends up that those are package alias for minkphp packages so we're ok on that side.

That said, we've apparently been chasing a new release for years: https://github.com/minkphp/Mink/issues/787

See #3078671: Pin behat/mink and behat/mink-selenium2-driver to use resolvable release

xjm’s picture

Issue tags: +Amsterdam2019

xjm credited hussainweb.

xjm’s picture

Also adding credit for Hussain.

xjm’s picture

And crossposting with myself apparently.

jibran’s picture

This is not that stright forward. I think we need to take the following steps:

gábor hojtsy’s picture

@jibran: re #16: I think for #3080837: [meta] PHP (and JS) dependencies to consider decoupling or removing we got as far as we could in Drupal 8.8? #3009213: [META] Update / reconsider PHP dependencies for Drupal 9 links back to here as one of its steps, so I don't think we should wait around in a circle :)

I don't think there is harm in updating a dependency that may turn out to be removable later. Unless there is a lot of work to make it work with Drupal 9, but until we try we'll not know. So let's try?

jibran’s picture

I don't think there is harm in updating a dependency that may turn out to be removable later.

That would be fine as long as we remove them before beta because after beta it would be BC break.

Yeah, let's not block this issue then. We can also skip the new deprecation errors to make the patch green and unblock the alpha. We'll keep removing them till beta.

Do we have to make sure there is no BC break during these updates? I'd say yes.

gábor hojtsy’s picture

@jibran: IMHO now would be the time to break BC, this is about Drupal 9. When to break BC if not now? Also for skipped deprecations, I think we should cross the bridge (ie. discuss) when we get there :)

gábor hojtsy’s picture

Discussed mechanics of how to roll this patch. @jibran pointed out he has steps outlined at https://gist.github.com/jibran/dd8ac842a239d6a2dc7af80bd69eb19f from earlier. For Drupal 9: php 5.5.9 should be changed to 7.2.x. And each composer command should be prefixed by COMPOSER_ROOT_VERSION=9.0.x-dev apparently.

jibran’s picture

Assigned: Unassigned » jibran

On PHP 7.2.3 we have

composer outdated -D
behat/mink-selenium2-driver  1.3.x-dev 0a09c43 dev-master 3ab9f31
drupal/coder                 8.3.6             8.3.7
drupal/core                  9.0.x-dev         9.0.x-dev 1e5bc7b
drupal/core-project-message  9.0.x-dev         9.0.x-dev 30f8699
drupal/core-vendor-hardening 9.0.x-dev         9.0.x-dev 43a46dd
justinrainbow/json-schema    5.2.8             5.2.9
phpunit/phpunit              6.5.14            8.5.0
symfony/browser-kit          v4.4.0            v4.4.1
symfony/css-selector         v4.4.0            v4.4.1
symfony/debug                v4.4.0            v4.4.1
symfony/dom-crawler          v4.4.0            v4.4.1
symfony/filesystem           v4.4.0            v4.4.1
symfony/finder               v4.4.0            v4.4.1
symfony/lock                 v4.4.0            v4.4.1
symfony/phpunit-bridge       v4.4.0            v5.0.1

We can't update behat/mink-selenium2-driver as stated in previous comments. We can ignore drupal/core-*packages. We need a dedicated issue for phpunit/phpunit 8 and symfony/phpunit-bridge 5, if we don't already have and it would be non-alpha blocker as it is a dev dependency and can be updated after alpha.

We can update
drupal/coder symfony/browser-kit symfony/css-selector symfony/debug symfony/dom-crawler symfony/filesystem symfony/finder symfony/lock though.

jibran’s picture

Status: Needs work » Needs review
StatusFileSize
new48.43 KB

I had to revert symfony/mime, symfony/var-dumper to biring in PHP 7.2.3 compataible version. Here is the change details:

composer-lock-diff --no-links
+-------------------------------+--------+---------+
| Production Changes            | From   | To      |
+-------------------------------+--------+---------+
| doctrine/annotations          | v1.4.0 | v1.8.0  |
| doctrine/cache                | v1.6.2 | 1.10.0  |
| doctrine/collections          | v1.4.0 | 1.6.4   |
| doctrine/common               | v2.7.3 | v2.11.0 |
| doctrine/inflector            | v1.2.0 | 1.3.1   |
| doctrine/lexer                | 1.0.2  | 1.2.0   |
| guzzlehttp/guzzle             | 6.3.3  | 6.5.0   |
| symfony/debug                 | v4.4.0 | v4.4.1  |
| symfony/mime                  | v5.0.0 | v4.4.1  |
| symfony/service-contracts     | v2.0.0 | v1.1.8  |
| symfony/translation-contracts | v2.0.0 | v1.1.7  |
| symfony/var-dumper            | v5.0.0 | v4.4.1  |
| doctrine/event-manager        | NEW    | 1.1.0   |
| doctrine/persistence          | NEW    | 1.2.0   |
| doctrine/reflection           | NEW    | v1.0.0  |
+-------------------------------+--------+---------+

+-----------------------+--------+--------+
| Dev Changes           | From   | To     |
+-----------------------+--------+--------+
| doctrine/instantiator | 1.0.5  | 1.3.0  |
| drupal/coder          | 8.3.6  | 8.3.7  |
| symfony/browser-kit   | v4.4.0 | v4.4.1 |
| symfony/css-selector  | v4.4.0 | v4.4.1 |
| symfony/dom-crawler   | v4.4.0 | v4.4.1 |
| symfony/filesystem    | v4.4.0 | v4.4.1 |
| symfony/finder        | v4.4.0 | v4.4.1 |
| symfony/lock          | v4.4.0 | v4.4.1 |
+-----------------------+--------+--------+
jibran’s picture

Assigned: jibran » Unassigned

Feel free to work on this.

Status: Needs review » Needs work

The last submitted patch, 22: 3091418-22.patch, failed testing. View results

manuel garcia’s picture

Status: Needs work » Needs review
StatusFileSize
new954 bytes
new49.15 KB

So nice to see progress on this, thanks!

I had a look at the failing test, I believe it's due to this change in Guzzle https://github.com/guzzle/guzzle/pull/2081

So all we have to do is update our test to assert for the updated message.

effulgentsia’s picture

Does the Guzzle update from 6.3 to 6.5 require PHP 7.2? If not, let's update it in a separate issue that we can cherry pick to 8.9. Same for any other library that doesn't require the PHP version bump.

jibran’s picture

I agree with #26 but it is just one testing change so let's update it here. Let's open new issue for 8.9.x.

catch’s picture

Agreed with #27, there's no way to cherry-pick commits to composer.json/composer.lock between 9.x and 8.x, so we're always going to have to do a manually backported patch. They definitely need their own separate 8.9.x issues though.

gábor hojtsy’s picture

Given we only had that single test fix required and no other changes needed, what is left here to do?

longwave’s picture

Guzzle 6.5.0 is causing issues for some PHP installs in #3100785: Use of undefined constant INTL_IDNA_VARIANT_UTS46 in Guzzle 6.5.0 so I wonder if we should wait for Guzzle 6.5.1, which is hopefully soon as per https://github.com/guzzle/guzzle/issues/2448

tedbow’s picture

StatusFileSize
new71.5 KB

This is reroll but also added the new guzzle release 6.5.2

Generally looks good. Lets see about tests

tedbow’s picture

Here is how I made #31

git checkout 9.0.x
git pull
rm vendor
composer install
composer update symfony/*
composer update drupal/coder
composer update doctrine/*
composer update guzzlehttp/guzzle

Then I applied the update to change to \Drupal\Tests\migrate\Functional\process\DownloadFunctionalTest::testExceptionThrow() from #25 after confirming the test will fail without it.

greg.1.anderson’s picture

This all looks good to me, and I'm pretty much ready to RTBC it. I just have one question, though. I noticed this:

$ composer why-not symfony/class-loader:^4
drupal/core  9.0.x-dev  requires  symfony/class-loader (~3.4.0)  

Sure enough, drupal/core's composer.json still requires ~3.4.0 of symfony/class-loader. Is there any reason why this Symfony component alone is still being pinned to 3.x, or could we bump this dependency up to 4.x like the others?

xjm’s picture

Issue tags: +Needs followup

I'd also like to find out about #33. I think we can file a followup for it since there aren't any changes to core/composer.json in this patch yet.

We probably also want a followup for 8.9.x, though that's really just something we address every minor and not directly needed here.

mile23’s picture

It looks like symfony/class-loader doesn't have a release after 3.4. In fact:

The ClassLoader component was removed in Symfony 4.0. As an alternative, use any of the class loading optimizations provided by Composer.

We should probably remove it from drupal/core if symfony 4 is our baseline.

greg.1.anderson’s picture

Status: Needs review » Reviewed & tested by the community

Created #3103008: Update or remove symfony/class-loader version on 9.0.x as a follow-up for symfony/class-loader, although that issue still needs to be fleshed out a bit.

RTBC'ed.

greg.1.anderson’s picture

#35: Ah yes, that component is in fact deprecated. Changed the follow-up issue to "update or remove" it.

berdir’s picture

See #3020296: Remove Symfony's classloader as it does not exist in Symfony 4, that and related issues have been around for a while.

mile23’s picture

catch’s picture

Priority: Normal » Major
Status: Reviewed & tested by the community » Needs work

The Doctrine website is showing several of the versions updated to here as unsupported, with newer versions in development (but not released yet) and only older versions still supported (some still more recent than the versions we're on).

Went through a few.

I have no idea why they have essentially 'dead end' versions with releases from two months ago, it could possibly be their website not updated fully yet, but I think we need to investigate a bit more.

  1. +++ b/composer.lock
    @@ -244,30 +244,30 @@
             {
                 "name": "doctrine/annotations",
    -            "version": "v1.4.0",
    +            "version": "v1.8.0",
                 "source": {
    

    I don't think we can go to doctrine/annotations 1.8

    1.8 is unsupported, 2.0 is upcoming, 1.7 is supported, according to

    https://www.doctrine-project.org/projects/annotations.html

  2. +++ b/composer.lock
    @@ -308,37 +308,42 @@
             {
                 "name": "doctrine/cache",
    -            "version": "v1.6.2",
    +            "version": "1.10.0",
    

    Similarly doctrine/cache 1.10 is unmaintained, only 1.8 is

    https://www.doctrine-project.org/projects/cache.html

  3. +++ b/composer.lock
    @@ -372,44 +377,53 @@
             {
                 "name": "doctrine/collections",
    -            "version": "v1.4.0",
    +            "version": "1.6.4",
    

    This is OK.

    https://www.doctrine-project.org/projects/collections.html

  4. +++ b/composer.lock
    @@ -438,44 +452,53 @@
                 "name": "doctrine/common",
    -            "version": "v2.7.3",
    +            "version": "v2.11.0",
                 "source": {
    

    This is also OK.

    https://www.doctrine-project.org/projects/common.html

  5. +++ b/composer.lock
    @@ -507,35 +604,39 @@
             {
                 "name": "doctrine/inflector",
    -            "version": "v1.2.0",
    +            "version": "1.3.1",
    

    And this is OK too.

    https://www.doctrine-project.org/projects/inflector.html

  6. +++ b/composer.lock
    @@ -585,32 +686,34 @@
             {
                 "name": "doctrine/lexer",
    -            "version": "1.0.2",
    +            "version": "1.2.0",
                 "source": {
    

    Can't update this one for the same reason

    https://www.doctrine-project.org/projects/lexer.html

  7. +++ b/composer.lock
    @@ -645,7 +748,165 @@
    -            "time": "2019-06-08T11:03:04+00:00"
    +            "time": "2019-10-30T14:39:59+00:00"
    +        },
    +        {
    +            "name": "doctrine/persistence",
    +            "version": "1.3.3",
    +            "source": {
    +                "type": "git",
    +                "url": "https://github.com/doctrine/persistence.git",
    +                "reference": "99b196bbd4715a94fa100fac664a351ffa46d6a5"
    +            },
    +            "dist": {
    

    This one is OK. https://www.doctrine-project.org/projects/persistence.html

catch’s picture

Priority: Major » Critical

OK I might have found part of the problem here, see this announcement:

https://www.doctrine-project.org/2018/07/12/common-2-9-and-dbal-2-8-and-...

So doctrine/lexer is explained by this:

Doctrine\Common\Lexer is deprecated, use Doctrine\Common\Lexer\AbstractLexer from doctrine/lexer or migrate to hoa/compiler instead;

edit: no it's not I misread.

We may have to spin these ones off into dedicated issues.

traviscarden’s picture

Status: Needs work » Needs review
Related issues: +#3104265: Update Composer dependencies on Doctrine components in 9.0.x
StatusFileSize
new43.18 KB

Created #3104265: Update Composer dependencies on Doctrine components in 9.0.x. Here's a patch without the doctrine/* updates. Changes:

$ composer-lock-diff --no-links
+-------------------------------+---------+---------+
| Production Changes            | From    | To      |
+-------------------------------+---------+---------+
| guzzlehttp/guzzle             | 6.3.3   | 6.5.2   |
| symfony/class-loader          | v3.4.35 | v3.4.36 |
| symfony/console               | v4.4.0  | v4.4.2  |
| symfony/debug                 | v4.4.0  | v4.4.2  |
| symfony/dependency-injection  | v4.4.0  | v4.4.2  |
| symfony/error-handler         | v4.4.0  | v4.4.2  |
| symfony/event-dispatcher      | v4.4.0  | v4.4.2  |
| symfony/http-foundation       | v4.4.0  | v4.4.2  |
| symfony/http-kernel           | v4.4.0  | v4.4.2  |
| symfony/mime                  | v5.0.0  | v5.0.2  |
| symfony/polyfill-ctype        | v1.12.0 | v1.13.1 |
| symfony/polyfill-iconv        | v1.12.0 | v1.13.1 |
| symfony/polyfill-intl-idn     | v1.12.0 | v1.13.1 |
| symfony/polyfill-mbstring     | v1.12.0 | v1.13.1 |
| symfony/polyfill-php72        | v1.12.0 | v1.13.1 |
| symfony/polyfill-php73        | v1.12.0 | v1.13.1 |
| symfony/process               | v4.4.0  | v4.4.2  |
| symfony/routing               | v4.4.0  | v4.4.2  |
| symfony/serializer            | v4.4.0  | v4.4.2  |
| symfony/service-contracts     | v2.0.0  | v2.0.1  |
| symfony/translation           | v4.4.0  | v4.4.2  |
| symfony/translation-contracts | v2.0.0  | v2.0.1  |
| symfony/validator             | v4.4.0  | v4.4.2  |
| symfony/var-dumper            | v5.0.0  | v5.0.2  |
| symfony/yaml                  | v4.4.0  | v4.4.2  |
+-------------------------------+---------+---------+

+------------------------+--------+--------+
| Dev Changes            | From   | To     |
+------------------------+--------+--------+
| drupal/coder           | 8.3.6  | 8.3.7  |
| symfony/browser-kit    | v4.4.0 | v4.4.2 |
| symfony/css-selector   | v4.4.0 | v4.4.2 |
| symfony/dom-crawler    | v4.4.0 | v4.4.2 |
| symfony/filesystem     | v4.4.0 | v4.4.2 |
| symfony/finder         | v4.4.0 | v4.4.2 |
| symfony/lock           | v4.4.0 | v4.4.2 |
| symfony/phpunit-bridge | v4.4.0 | v4.4.2 |
+------------------------+--------+--------+

p.s. - @jibran, thanks for turning me on to davidrjonas/composer-lock-diff. What a great tool!

xjm’s picture

Issue tags: -Needs followup

Thanks @TravisCarden!

I've been going back and forth about what should be updated in composer.json and when. Given the fact that the Guzzle update is a bugfix and we're changing a test for it, I'm wondering if we should be updating the core/composer.json requirements for Guzzle to ^6.5.2? Thoughts?

xjm’s picture

Issue tags: +9.0.0 release notes
greg.1.anderson’s picture

I am always of a mind that, for any given project, if you run composer update --prefer-lowest (this is the "min" part of "min/max testing), then you should get a release that is usable. In order for this to work, each dependency in composer.json must list the minimum version of that component that will work.

It is an aspirational goal to someday do some form of min/max testing on Drupal. In support of that, I would be +1 on pinning the guzzle version as suggested in #43.

xjm’s picture

Status: Needs review » Needs work

Thanks Greg! Based on that, NW to bump the requirement for Guzzle.

greg.1.anderson’s picture

When we are bumping the Composer dependencies for a major Drupal version release, perhaps we should also make a policy that we increase all of the version constraints for all components listed explicitly in core/composer.json to whatever minimum version they happen to resolve to in composer.lock at that time. Folks will already be adjusting their code to work with the new version of Drupal; it seems like the need for supporting anything older than what is in composer.lock would therefore be minimal. While this is not required, doing this reduces the number of versions of dependencies supported by Drupal, and reduces the number of valid versions of dependencies that are potential solutions from the Composer resolver. (This does not help the current default algorithm, which tries all permutations, but we already have some Composer plugins which optimize this, and such a reduction might help future versions of these do even better.)

Overall, I care 2/10, but it seems like a good idea.

mile23’s picture

Status: Needs work » Reviewed & tested by the community
Related issues: +#3104474: D9, PHP 7.2 vendor min Testing issue - DO NOT COMMIT

New child, based on #46 and #24/25 to preserve scope here: #3104473: Use version of guzzlehttp/guzzle ^6.5.2

Added #3104474: D9, PHP 7.2 vendor min Testing issue - DO NOT COMMIT to do min testing on D9.

Patch in #42 still applies, and tests are green so LGTM.

catch’s picture

  • catch committed 0885820 on 9.0.x
    Issue #3091418 by Manuel Garcia, jibran, tedbow, TravisCarden, xjm, greg...
catch’s picture

Status: Reviewed & tested by the community » Fixed

Committed/pushed to 9.0.x, thanks!

wim leers’s picture

#49 that is this issue 😅

longwave’s picture

xjm’s picture

🎉

Status: Fixed » Closed (fixed)

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

gábor hojtsy’s picture

Title: Update composer dependencies on 9.0.x » Update composer dependencies on 9.0.x following PHP 7.2 requirement

I cloned this into #3109261: Update composer dependencies on 9.0.x following PHP 7.3 requirement following #3106075: Bump minimum PHP for Drupal 9 to PHP 7.3. No idea what that will entail, it would be great if someone could try :) Retitling this for specificity.

xjm’s picture

Issue summary: View changes