Problem/Motivation

We should ship Drupal 8.9 with the latest versions of all our dependencies. A number of these are currently out of date.

Proposed resolution

Update all dependencies except those covered by:

Remaining tasks

Figure out the correct composer command to do this neatly. Fix up any test changes required (hopefully none)

User interface changes

None

API changes

None

Data model changes

None

Release notes snippet (for the actual release note)

The following PHP dependencies have changed since 8.8.0


Notice: Undefined property: stdClass::$source in /Users/alex/.composer/vendor/davidrjonas/composer-lock-diff/composer-lock-diff on line 212

Notice: Trying to get property of non-object in /Users/alex/.composer/vendor/davidrjonas/composer-lock-diff/composer-lock-diff on line 212

Notice: Undefined property: stdClass::$source in /Users/alex/.composer/vendor/davidrjonas/composer-lock-diff/composer-lock-diff on line 212

Notice: Trying to get property of non-object in /Users/alex/.composer/vendor/davidrjonas/composer-lock-diff/composer-lock-diff on line 212

Notice: Undefined property: stdClass::$source in /Users/alex/.composer/vendor/davidrjonas/composer-lock-diff/composer-lock-diff on line 212

Notice: Trying to get property of non-object in /Users/alex/.composer/vendor/davidrjonas/composer-lock-diff/composer-lock-diff on line 212
+--------------------------------------+-----------+-----------+
| Production Changes                   | From      | To        |
+--------------------------------------+-----------+-----------+
| asm89/stack-cors                     | 1.2.0     | 1.3.0     |
| composer/semver                      | 1.5.0     | 1.5.1     |
| drupal/core                          | 8.8.x-dev | 8.9.x-dev |
| drupal/core-project-message          | 8.8.x-dev | 8.9.x-dev |
| drupal/core-vendor-hardening         | 8.8.x-dev | 8.9.x-dev |
| egulias/email-validator              | 2.1.11    | 2.1.17    |
| guzzlehttp/guzzle                    | 6.3.3     | 6.5.3     |
| pear/archive_tar                     | 1.4.8     | 1.4.9     |
| pear/console_getopt                  | v1.4.2    | v1.4.3    |
| pear/pear-core-minimal               | v1.10.9   | v1.10.10  |
| pear/pear_exception                  | v1.0.0    | v1.0.1    |
| psr/log                              | 1.1.0     | 1.1.3     |
| symfony/class-loader                 | v3.4.35   | v3.4.40   |
| symfony/console                      | v3.4.35   | v3.4.40   |
| symfony/debug                        | v3.4.35   | v3.4.40   |
| symfony/dependency-injection         | v3.4.35   | v3.4.40   |
| symfony/event-dispatcher             | v3.4.35   | v3.4.40   |
| symfony/http-foundation              | v3.4.35   | v3.4.40   |
| symfony/http-kernel                  | v3.4.35   | v3.4.40   |
| symfony/polyfill-ctype               | v1.12.0   | v1.15.0   |
| symfony/polyfill-iconv               | v1.12.0   | v1.15.0   |
| symfony/polyfill-mbstring            | v1.12.0   | v1.15.0   |
| symfony/polyfill-php56               | v1.12.0   | v1.15.0   |
| symfony/polyfill-php70               | v1.12.0   | v1.15.0   |
| symfony/polyfill-util                | v1.12.0   | v1.15.0   |
| symfony/process                      | v3.4.35   | v3.4.40   |
| symfony/routing                      | v3.4.35   | v3.4.40   |
| symfony/serializer                   | v3.4.35   | v3.4.40   |
| symfony/translation                  | v3.4.35   | v3.4.40   |
| symfony/validator                    | v3.4.35   | v3.4.40   |
| symfony/yaml                         | v3.4.35   | v3.4.40   |
| twig/twig                            | v1.42.3   | v1.42.5   |
| typo3/phar-stream-wrapper            | v3.1.3    | v3.1.4    |
| wikimedia/composer-merge-plugin      | v1.4.1    | REMOVED   |
| zendframework/zend-diactoros         | 1.8.7     | REMOVED   |
| zendframework/zend-escaper           | 2.6.1     | REMOVED   |
| zendframework/zend-feed              | 2.12.0    | REMOVED   |
| zendframework/zend-stdlib            | 3.2.1     | REMOVED   |
| laminas/laminas-diactoros            | NEW       | 1.8.7p2   |
| laminas/laminas-escaper              | NEW       | 2.6.1     |
| laminas/laminas-feed                 | NEW       | 2.12.2    |
| laminas/laminas-stdlib               | NEW       | 3.2.1     |
| laminas/laminas-zendframework-bridge | NEW       | 1.0.3     |
| symfony/polyfill-intl-idn            | NEW       | v1.15.0   |
| symfony/polyfill-php72               | NEW       | v1.15.0   |
+--------------------------------------+-----------+-----------+

+-----------------------------------+-----------+---------+
| Dev Changes                       | From      | To      |
+-----------------------------------+-----------+---------+
| behat/mink                        | a534fe7   | v1.8.1  |
| behat/mink-browserkit-driver      | 1.3.3     | v1.3.4  |
| behat/mink-selenium2-driver       | 1.3.x-dev | v1.4.0  |
| composer/ca-bundle                | 1.2.4     | 1.2.7   |
| composer/composer                 | 1.9.1     | 1.10.6  |
| composer/spdx-licenses            | 1.5.2     | 1.5.3   |
| composer/xdebug-handler           | 1.3.3     | 1.4.1   |
| drupal/coder                      | 8.3.6     | 8.3.8   |
| instaclick/php-webdriver          | 1.4.6     | 1.4.7   |
| justinrainbow/json-schema         | 5.2.8     | 5.2.9   |
| phpdocumentor/reflection-docblock | 4.3.2     | 4.3.4   |
| phpspec/prophecy                  | 1.9.0     | v1.10.3 |
| seld/jsonlint                     | 1.7.1     | 1.8.0   |
| seld/phar-utils                   | 1.0.1     | 1.1.0   |
| squizlabs/php_codesniffer         | 3.5.0     | 3.5.5   |
| symfony/browser-kit               | v3.4.35   | v3.4.40 |
| symfony/css-selector              | v3.4.35   | v3.4.40 |
| symfony/dom-crawler               | v3.4.35   | v3.4.40 |
| symfony/filesystem                | v3.4.35   | v3.4.40 |
| symfony/finder                    | v3.4.35   | v3.4.40 |
| symfony/lock                      | v3.4.35   | v3.4.40 |
| symfony/phpunit-bridge            | v3.4.35   | v3.4.39 |
| webmozart/assert                  | 1.5.0     | 1.8.0   |
+-----------------------------------+-----------+---------+

Where possible Drupal has been updated to use the latest minor.patch version available.

Highlights:

  • Zend components have been updated to Laminas components
  • Guzzle has been updated to 6.5.3
  • Symfony components have been update to v3.4.40
  • New Symfony polyfills for PHP 7.2 and for idn_to_ascii() and idn_to_utf8() functions
  • The wikimedia composer merge plugin has been removed
  • asm/cors has been updated to 1.3.0
  • Behat libraries have been updated to proper releases
CommentFileSizeAuthor
#64 3122112-2-53.patch87.84 KBalexpott
#63 3122112-63.patch92.32 KBhussainweb
#63 interdiff-53-63.txt6.66 KBhussainweb
#53 3122112-2-53.patch87.84 KBalexpott
#53 50-53-interdiff.txt2.78 KBalexpott
#51 3122112-2-50.patch84.77 KBalexpott
#51 48-50-interdiff.txt18.28 KBalexpott
#48 3122112-2-48.patch96.91 KBalexpott
#48 47-48-interdiff.txt10.94 KBalexpott
#47 3122112-2-47.patch87.98 KBalexpott
#31 3122112-31.patch89.95 KBalexpott
#31 30-31-interdiff.txt1.81 KBalexpott
#30 21-30-interdiff.txt27.88 KBalexpott
#30 3122112-30.patch88.14 KBalexpott
#21 3122112-21.patch94.24 KBlongwave
#19 3122112-19.patch152.89 KBjungle
#16 3122112-16.patch158.19 KBjungle
#10 interdiff.3122112.6-9.txt1.81 KBlongwave
#9 interdiff.3122112.6-9.txt0 byteslongwave
#9 3122112-9.patch104.38 KBlongwave
#6 3122112-6.patch102.58 KBlongwave
#5 interdiff.3122112.4-5.txt4.37 KBlongwave
#5 3122112-5.patch90.73 KBlongwave
#4 3122112-4.patch90.48 KBlongwave
#3 3122112-3.patch118.05 KBlongwave
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

longwave created an issue. See original summary.

longwave’s picture

I tried to produce a patch for this but even just updating a single Symfony dependency means I get laminas/* instead of zendframework/*, I don't see how to tell Composer to stop doing this.

longwave’s picture

Status: Active » Needs review
FileSize
118.05 KB

Thanks to @jungle for suggesting to delete the "vendor" directory, that stopped Composer from automatically replacing the Zend components.

I used this command to update almost everything:

composer outdated|cut -d" " -f1|grep -v ^Package|grep -v phpunit/phpunit|grep -v laminas|grep -v codesniffer|grep -v doctrine/common|xargs composer update

This skips the following:

  • PHPUnit (as we want to stay on 6.x in the release)
  • Any Laminas components, handled in the separate issue
  • PHP CodeSniffer, handled in the separate issue
  • doctrine/common, which brings in three new dependencies that we don't need or use

This results in the following lock diff:

$ composer-lock-diff --no-links
+---------------------------------+---------+----------+
| Production Changes              | From    | To       |
+---------------------------------+---------+----------+
| asm89/stack-cors                | 1.2.0   | 1.3.0    |
| composer/installers             | v1.7.0  | v1.8.0   |
| composer/semver                 | 1.5.0   | 1.5.1    |
| 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/inflector              | v1.2.0  | 1.3.1    |
| doctrine/lexer                  | 1.0.2   | 1.2.0    |
| egulias/email-validator         | 2.1.11  | 2.1.17   |
| guzzlehttp/guzzle               | 6.3.3   | 6.5.2    |
| masterminds/html5               | 2.3.0   | 2.7.0    |
| pear/console_getopt             | v1.4.2  | v1.4.3   |
| pear/pear-core-minimal          | v1.10.9 | v1.10.10 |
| pear/pear_exception             | v1.0.0  | v1.0.1   |
| psr/log                         | 1.1.0   | 1.1.3    |
| stack/builder                   | v1.0.5  | v1.0.6   |
| symfony/class-loader            | v3.4.35 | v3.4.38  |
| symfony/console                 | v3.4.35 | v3.4.38  |
| symfony/debug                   | v3.4.35 | v3.4.38  |
| symfony/dependency-injection    | v3.4.35 | v3.4.38  |
| symfony/event-dispatcher        | v3.4.35 | v3.4.38  |
| symfony/http-foundation         | v3.4.35 | v3.4.38  |
| symfony/http-kernel             | v3.4.35 | v3.4.38  |
| symfony/polyfill-ctype          | v1.12.0 | v1.14.0  |
| symfony/polyfill-iconv          | v1.12.0 | v1.14.0  |
| symfony/polyfill-mbstring       | v1.12.0 | v1.14.0  |
| symfony/polyfill-php56          | v1.12.0 | v1.14.0  |
| symfony/polyfill-php70          | v1.12.0 | v1.14.0  |
| symfony/polyfill-util           | v1.12.0 | v1.14.0  |
| symfony/process                 | v3.4.35 | v3.4.38  |
| symfony/psr-http-message-bridge | v1.1.2  | v1.2.0   |
| symfony/routing                 | v3.4.35 | v3.4.38  |
| symfony/serializer              | v3.4.35 | v3.4.38  |
| symfony/translation             | v3.4.35 | v3.4.38  |
| symfony/validator               | v3.4.35 | v3.4.38  |
| symfony/yaml                    | v3.4.35 | v3.4.38  |
| twig/twig                       | v1.42.3 | v1.42.5  |
| typo3/phar-stream-wrapper       | v3.1.3  | v3.1.4   |
| symfony/polyfill-intl-idn       | NEW     | v1.14.0  |
| symfony/polyfill-php72          | NEW     | v1.14.0  |
+---------------------------------+---------+----------+

+--------------------------------------+---------+---------+
| Dev Changes                          | From    | To      |
+--------------------------------------+---------+---------+
| behat/mink-browserkit-driver         | 1.3.3   | v1.3.4  |
| composer/ca-bundle                   | 1.2.4   | 1.2.6   |
| composer/composer                    | 1.9.1   | 1.10.1  |
| composer/spdx-licenses               | 1.5.2   | 1.5.3   |
| composer/xdebug-handler              | 1.3.3   | 1.4.1   |
| doctrine/instantiator                | 1.0.5   | 1.3.0   |
| instaclick/php-webdriver             | 1.4.6   | 1.4.7   |
| jcalderonzumba/gastonjs              | v1.0.2  | v1.2.0  |
| jcalderonzumba/mink-phantomjs-driver | v0.3.2  | v0.3.3  |
| justinrainbow/json-schema            | 5.2.8   | 5.2.9   |
| myclabs/deep-copy                    | 1.7.0   | 1.9.5   |
| phpdocumentor/reflection-common      | 1.0.1   | 2.0.0   |
| phpdocumentor/reflection-docblock    | 4.3.2   | 5.1.0   |
| phpdocumentor/type-resolver          | 0.5.1   | 1.1.0   |
| phpspec/prophecy                     | 1.9.0   | v1.10.3 |
| seld/jsonlint                        | 1.7.1   | 1.7.2   |
| seld/phar-utils                      | 1.0.1   | 1.1.0   |
| symfony/browser-kit                  | v3.4.35 | v3.4.38 |
| symfony/css-selector                 | v3.4.35 | v3.4.38 |
| symfony/dom-crawler                  | v3.4.35 | v4.4.5  |
| symfony/filesystem                   | v3.4.35 | v3.4.38 |
| symfony/finder                       | v3.4.35 | v3.4.38 |
| symfony/lock                         | v3.4.35 | v3.4.38 |
| symfony/phpunit-bridge               | v3.4.35 | v3.4.38 |
| webmozart/assert                     | 1.5.0   | 1.7.0   |
+--------------------------------------+---------+---------+
longwave’s picture

So we can't update any of Doctrine or stack/builder because I forgot about the PHP 7.0 requirement, but we can still do these I think:

$ composer-lock-diff --no-links
+------------------------------+---------+----------+
| Production Changes           | From    | To       |
+------------------------------+---------+----------+
| asm89/stack-cors             | 1.2.0   | 1.3.0    |
| composer/installers          | v1.7.0  | v1.8.0   |
| composer/semver              | 1.5.0   | 1.5.1    |
| egulias/email-validator      | 2.1.11  | 2.1.17   |
| guzzlehttp/guzzle            | 6.3.3   | 6.5.2    |
| masterminds/html5            | 2.3.0   | 2.7.0    |
| pear/console_getopt          | v1.4.2  | v1.4.3   |
| pear/pear-core-minimal       | v1.10.9 | v1.10.10 |
| pear/pear_exception          | v1.0.0  | v1.0.1   |
| psr/log                      | 1.1.0   | 1.1.3    |
| symfony/class-loader         | v3.4.35 | v3.4.38  |
| symfony/console              | v3.4.35 | v3.4.38  |
| symfony/debug                | v3.4.35 | v3.4.38  |
| symfony/dependency-injection | v3.4.35 | v3.4.38  |
| symfony/event-dispatcher     | v3.4.35 | v3.4.38  |
| symfony/http-foundation      | v3.4.35 | v3.4.38  |
| symfony/http-kernel          | v3.4.35 | v3.4.38  |
| symfony/polyfill-ctype       | v1.12.0 | v1.14.0  |
| symfony/polyfill-iconv       | v1.12.0 | v1.14.0  |
| symfony/polyfill-mbstring    | v1.12.0 | v1.14.0  |
| symfony/polyfill-php56       | v1.12.0 | v1.14.0  |
| symfony/polyfill-php70       | v1.12.0 | v1.14.0  |
| symfony/polyfill-util        | v1.12.0 | v1.14.0  |
| symfony/process              | v3.4.35 | v3.4.38  |
| symfony/routing              | v3.4.35 | v3.4.38  |
| symfony/serializer           | v3.4.35 | v3.4.38  |
| symfony/translation          | v3.4.35 | v3.4.38  |
| symfony/validator            | v3.4.35 | v3.4.38  |
| symfony/yaml                 | v3.4.35 | v3.4.38  |
| twig/twig                    | v1.42.3 | v1.42.5  |
| typo3/phar-stream-wrapper    | v3.1.3  | v3.1.4   |
| symfony/polyfill-intl-idn    | NEW     | v1.14.0  |
| symfony/polyfill-php72       | NEW     | v1.14.0  |
+------------------------------+---------+----------+

+--------------------------------------+---------+---------+
| Dev Changes                          | From    | To      |
+--------------------------------------+---------+---------+
| behat/mink-browserkit-driver         | 1.3.3   | v1.3.4  |
| composer/ca-bundle                   | 1.2.4   | 1.2.6   |
| composer/composer                    | 1.9.1   | 1.10.1  |
| composer/spdx-licenses               | 1.5.2   | 1.5.3   |
| composer/xdebug-handler              | 1.3.3   | 1.4.1   |
| instaclick/php-webdriver             | 1.4.6   | 1.4.7   |
| jcalderonzumba/gastonjs              | v1.0.2  | v1.2.0  |
| jcalderonzumba/mink-phantomjs-driver | v0.3.2  | v0.3.3  |
| justinrainbow/json-schema            | 5.2.8   | 5.2.9   |
| phpdocumentor/reflection-docblock    | 4.3.2   | 4.3.4   |
| phpspec/prophecy                     | 1.9.0   | v1.10.3 |
| seld/jsonlint                        | 1.7.1   | 1.7.2   |
| seld/phar-utils                      | 1.0.1   | 1.1.0   |
| symfony/browser-kit                  | v3.4.35 | v3.4.38 |
| symfony/css-selector                 | v3.4.35 | v3.4.38 |
| symfony/dom-crawler                  | v3.4.35 | v3.4.38 |
| symfony/filesystem                   | v3.4.35 | v3.4.38 |
| symfony/finder                       | v3.4.35 | v3.4.38 |
| symfony/lock                         | v3.4.35 | v3.4.38 |
| symfony/phpunit-bridge               | v3.4.35 | v3.4.38 |
| webmozart/assert                     | 1.5.0   | 1.7.0   |
+--------------------------------------+---------+---------+
longwave’s picture

So we run into the same issue that we had in Drupal 9.0 where the latest symfony/dom-crawler contains a regression, we can explicitly avoid this by adding:

        "symfony/dom-crawler": "^3.4.0 !=3.4.38"
longwave’s picture

A few more updates, and since the Laminas changeover landed this is much easier as we can just run "composer update" on the correct PHP version.

$ composer-lock-diff --no-links
+--------------------------------------+---------+----------+
| Production Changes                   | From    | To       |
+--------------------------------------+---------+----------+
| asm89/stack-cors                     | 1.2.0   | 1.3.0    |
| composer/installers                  | v1.7.0  | v1.9.0   |
| composer/semver                      | 1.5.0   | 1.5.1    |
| egulias/email-validator              | 2.1.11  | 2.1.17   |
| guzzlehttp/guzzle                    | 6.3.3   | 6.5.2    |
| laminas/laminas-diactoros            | 1.8.7   | 1.8.7p2  |
| laminas/laminas-feed                 | 2.12.0  | 2.12.2   |
| laminas/laminas-zendframework-bridge | 1.0.1   | 1.0.3    |
| masterminds/html5                    | 2.3.0   | 2.7.0    |
| pear/console_getopt                  | v1.4.2  | v1.4.3   |
| pear/pear-core-minimal               | v1.10.9 | v1.10.10 |
| pear/pear_exception                  | v1.0.0  | v1.0.1   |
| psr/log                              | 1.1.0   | 1.1.3    |
| symfony/class-loader                 | v3.4.35 | v3.4.39  |
| symfony/console                      | v3.4.35 | v3.4.39  |
| symfony/debug                        | v3.4.35 | v3.4.39  |
| symfony/dependency-injection         | v3.4.35 | v3.4.39  |
| symfony/event-dispatcher             | v3.4.35 | v3.4.39  |
| symfony/http-foundation              | v3.4.35 | v3.4.39  |
| symfony/http-kernel                  | v3.4.35 | v3.4.39  |
| symfony/polyfill-ctype               | v1.12.0 | v1.15.0  |
| symfony/polyfill-iconv               | v1.12.0 | v1.15.0  |
| symfony/polyfill-mbstring            | v1.12.0 | v1.15.0  |
| symfony/polyfill-php56               | v1.12.0 | v1.15.0  |
| symfony/polyfill-php70               | v1.12.0 | v1.15.0  |
| symfony/polyfill-util                | v1.12.0 | v1.15.0  |
| symfony/process                      | v3.4.35 | v3.4.39  |
| symfony/routing                      | v3.4.35 | v3.4.39  |
| symfony/serializer                   | v3.4.35 | v3.4.39  |
| symfony/translation                  | v3.4.35 | v3.4.39  |
| symfony/validator                    | v3.4.35 | v3.4.39  |
| symfony/yaml                         | v3.4.35 | v3.4.39  |
| twig/twig                            | v1.42.3 | v1.42.5  |
| typo3/phar-stream-wrapper            | v3.1.3  | v3.1.4   |
| symfony/polyfill-intl-idn            | NEW     | v1.15.0  |
| symfony/polyfill-php72               | NEW     | v1.15.0  |
+--------------------------------------+---------+----------+

+--------------------------------------+---------+---------+
| Dev Changes                          | From    | To      |
+--------------------------------------+---------+---------+
| behat/mink-browserkit-driver         | 1.3.3   | v1.3.4  |
| composer/ca-bundle                   | 1.2.4   | 1.2.7   |
| composer/composer                    | 1.9.1   | 1.10.5  |
| composer/spdx-licenses               | 1.5.2   | 1.5.3   |
| composer/xdebug-handler              | 1.3.3   | 1.4.1   |
| drupal/coder                         | 8.3.7   | 8.3.8   |
| instaclick/php-webdriver             | 1.4.6   | 1.4.7   |
| jcalderonzumba/gastonjs              | v1.0.2  | v1.2.0  |
| jcalderonzumba/mink-phantomjs-driver | v0.3.2  | v0.3.3  |
| justinrainbow/json-schema            | 5.2.8   | 5.2.9   |
| phpdocumentor/reflection-docblock    | 4.3.2   | 4.3.4   |
| phpspec/prophecy                     | 1.9.0   | v1.10.3 |
| seld/jsonlint                        | 1.7.1   | 1.7.2   |
| seld/phar-utils                      | 1.0.1   | 1.1.0   |
| squizlabs/php_codesniffer            | 3.5.0   | 3.5.4   |
| symfony/browser-kit                  | v3.4.35 | v3.4.39 |
| symfony/css-selector                 | v3.4.35 | v3.4.39 |
| symfony/dom-crawler                  | v3.4.35 | v3.4.39 |
| symfony/filesystem                   | v3.4.35 | v3.4.39 |
| symfony/finder                       | v3.4.35 | v3.4.39 |
| symfony/lock                         | v3.4.35 | v3.4.39 |
| symfony/phpunit-bridge               | v3.4.35 | v3.4.39 |
| webmozart/assert                     | 1.5.0   | 1.7.0   |
+--------------------------------------+---------+---------+

Status: Needs review » Needs work

The last submitted patch, 6: 3122112-6.patch, failed testing. View results

catch’s picture

Priority: Normal » Critical

Bumping to critical. Especially important given the release has a lifetime of 18 months.

longwave’s picture

Two fixes required here due to upstream changes:

For the Symfony change I tried to accommodate both formats in the regex. For the Guzzle change I am not sure if we can easily handle both versions of the message.

longwave’s picture

FileSize
1.81 KB

Bad interdiff in #9, correct version uploaded here.

jungle’s picture

Issue summary: View changes

Hi @longwave, I'd suggest closing RTBC'd, #3121885: Update coder to 8.3.8 to avoid conflicts. How do you think?

Both here and #3127674: Update dependencies for Drupal 9.0 included the new version of coder.

#3104015: Replace ZendFramework/* dependencies with their Laminas equivalents was fixed, so I am removing it from IS.

longwave’s picture

Doesn't that coder fix actually need to go in first, because it has some coding standards changes? Happy to reroll this when that happens.

jungle’s picture

Status: Needs review » Postponed

Yes, it does fix CS violations. Then let's postpone here. Thank you!

catch’s picture

Status: Postponed » Needs work

Would prefer not to postpone here, if there are updates we can't do, we can remove them from this issue into a (postponed) follow-up.

jungle’s picture

Issue tags: +Needs reroll

#3121885: Update coder to 8.3.8 just got committed, needs reroll

jungle’s picture

Status: Needs work » Needs review
Issue tags: -Needs reroll
FileSize
158.19 KB

deleted

jungle’s picture

deleted

jungle’s picture

Status: Needs review » Needs work

I should use a lower version of PHP. try to reroll with 7.1 next

jungle’s picture

Status: Needs work » Needs review
FileSize
152.89 KB
$ composer-lock-diff --no-links
+--------------------------------------+---------+----------+
| Production Changes                   | From    | To       |
+--------------------------------------+---------+----------+
| asm89/stack-cors                     | 1.2.0   | 1.3.0    |
| composer/installers                  | v1.7.0  | v1.9.0   |
| composer/semver                      | 1.5.0   | 1.5.1    |
| doctrine/annotations                 | v1.4.0  | 1.10.1   |
| doctrine/cache                       | v1.6.2  | 1.10.0   |
| doctrine/collections                 | v1.4.0  | 1.6.4    |
| doctrine/common                      | v2.7.3  | 2.12.0   |
| doctrine/inflector                   | v1.2.0  | 1.3.1    |
| egulias/email-validator              | 2.1.11  | 2.1.17   |
| guzzlehttp/guzzle                    | 6.3.3   | 6.5.3    |
| laminas/laminas-diactoros            | 1.8.7   | 1.8.7p2  |
| laminas/laminas-feed                 | 2.12.0  | 2.12.2   |
| laminas/laminas-zendframework-bridge | 1.0.1   | 1.0.3    |
| masterminds/html5                    | 2.3.0   | 2.7.0    |
| pear/console_getopt                  | v1.4.2  | v1.4.3   |
| pear/pear-core-minimal               | v1.10.9 | v1.10.10 |
| pear/pear_exception                  | v1.0.0  | v1.0.1   |
| psr/log                              | 1.1.0   | 1.1.3    |
| symfony/class-loader                 | v3.4.35 | v3.4.39  |
| symfony/console                      | v3.4.35 | v3.4.39  |
| symfony/debug                        | v3.4.35 | v3.4.39  |
| symfony/dependency-injection         | v3.4.35 | v3.4.39  |
| symfony/event-dispatcher             | v3.4.35 | v3.4.39  |
| symfony/http-foundation              | v3.4.35 | v3.4.39  |
| symfony/http-kernel                  | v3.4.35 | v3.4.39  |
| symfony/polyfill-ctype               | v1.12.0 | v1.15.0  |
| symfony/polyfill-iconv               | v1.12.0 | v1.15.0  |
| symfony/polyfill-mbstring            | v1.12.0 | v1.15.0  |
| symfony/polyfill-php56               | v1.12.0 | v1.15.0  |
| symfony/polyfill-php70               | v1.12.0 | v1.15.0  |
| symfony/polyfill-util                | v1.12.0 | v1.15.0  |
| symfony/process                      | v3.4.35 | v3.4.39  |
| symfony/psr-http-message-bridge      | v1.1.2  | v1.2.0   |
| symfony/routing                      | v3.4.35 | v3.4.39  |
| symfony/serializer                   | v3.4.35 | v3.4.39  |
| symfony/translation                  | v3.4.35 | v3.4.39  |
| symfony/validator                    | v3.4.35 | v3.4.39  |
| symfony/yaml                         | v3.4.35 | v3.4.39  |
| twig/twig                            | v1.42.3 | v1.42.5  |
| typo3/phar-stream-wrapper            | v3.1.3  | v3.1.4   |
| doctrine/event-manager               | NEW     | 1.1.0    |
| doctrine/persistence                 | NEW     | 1.3.7    |
| doctrine/reflection                  | NEW     | 1.2.1    |
| symfony/polyfill-intl-idn            | NEW     | v1.15.0  |
| symfony/polyfill-php72               | NEW     | v1.15.0  |
+--------------------------------------+---------+----------+

+--------------------------------------+---------+---------+
| Dev Changes                          | From    | To      |
+--------------------------------------+---------+---------+
| behat/mink-browserkit-driver         | 1.3.3   | v1.3.4  |
| composer/ca-bundle                   | 1.2.4   | 1.2.7   |
| composer/composer                    | 1.9.1   | 1.10.5  |
| composer/spdx-licenses               | 1.5.2   | 1.5.3   |
| composer/xdebug-handler              | 1.3.3   | 1.4.1   |
| doctrine/instantiator                | 1.0.5   | 1.3.0   |
| instaclick/php-webdriver             | 1.4.6   | 1.4.7   |
| jcalderonzumba/gastonjs              | v1.0.2  | v1.2.0  |
| jcalderonzumba/mink-phantomjs-driver | v0.3.2  | v0.3.3  |
| justinrainbow/json-schema            | 5.2.8   | 5.2.9   |
| myclabs/deep-copy                    | 1.7.0   | 1.9.5   |
| phar-io/manifest                     | 1.0.1   | 1.0.3   |
| phar-io/version                      | 1.0.1   | 2.0.1   |
| phpdocumentor/reflection-common      | 1.0.1   | 2.0.0   |
| phpdocumentor/reflection-docblock    | 4.3.2   | 4.3.4   |
| phpdocumentor/type-resolver          | 0.5.1   | 1.0.1   |
| phpspec/prophecy                     | 1.9.0   | v1.10.3 |
| phpunit/php-code-coverage            | 5.3.2   | 6.1.4   |
| phpunit/php-file-iterator            | 1.4.5   | 2.0.2   |
| phpunit/php-timer                    | 1.0.9   | 2.1.2   |
| phpunit/php-token-stream             | 2.0.2   | 3.1.1   |
| phpunit/phpunit                      | 6.5.14  | 7.5.20  |
| phpunit/phpunit-mock-objects         | 5.0.10  | REMOVED |
| sebastian/comparator                 | 2.1.3   | 3.0.2   |
| sebastian/diff                       | 2.0.1   | 3.0.2   |
| sebastian/environment                | 3.1.0   | 4.2.3   |
| sebastian/resource-operations        | 1.0.0   | 2.0.1   |
| seld/jsonlint                        | 1.7.1   | 1.7.2   |
| seld/phar-utils                      | 1.0.1   | 1.1.0   |
| squizlabs/php_codesniffer            | 3.5.4   | 3.5.5   |
| symfony/browser-kit                  | v3.4.35 | v3.4.39 |
| symfony/css-selector                 | v3.4.35 | v3.4.39 |
| symfony/dom-crawler                  | v3.4.35 | v3.4.39 |
| symfony/filesystem                   | v3.4.35 | v3.4.39 |
| symfony/finder                       | v3.4.35 | v3.4.39 |
| symfony/lock                         | v3.4.35 | v3.4.39 |
| symfony/phpunit-bridge               | v3.4.35 | v3.4.39 |
| webmozart/assert                     | 1.5.0   | 1.8.0   |
+--------------------------------------+---------+---------+
jungle’s picture

PHP 7.1.32 used to run composer and the following are details of new packages and removed package

New packages:

$ composer why doctrine/event-manager
doctrine/common       2.12.0  requires  doctrine/event-manager (^1.0)  
doctrine/persistence  1.3.7   requires  doctrine/event-manager (^1.0)  
$ composer why doctrine/persistence 
doctrine/common  2.12.0  requires  doctrine/persistence (^1.1)  
$ composer why doctrine/reflection
doctrine/common       2.12.0  requires  doctrine/reflection (^1.0)  
doctrine/persistence  1.3.7   requires  doctrine/reflection (^1.2)  
$ composer why doctrine/common
drupal/core  8.9.x-dev  requires  doctrine/common (^2.7)  
$ composer why  symfony/polyfill-intl-idn
egulias/email-validator  2.1.17  requires  symfony/polyfill-intl-idn (^1.10)  
guzzlehttp/guzzle        6.5.3   requires  symfony/polyfill-intl-idn (^1.11)  
$ composer why symfony/polyfill-php72
symfony/polyfill-intl-idn  v1.15.0  requires  symfony/polyfill-php72 (^1.10)  
$ composer why egulias/email-validator
drupal/core  8.9.x-dev  requires  egulias/email-validator (^2.0) 
$ composer why phpunit/phpunit-mock-objects 
phpunit/phpunit  6.5.14  requires  phpunit/phpunit-mock-objects (^5.0.9) 
longwave’s picture

Drupal 8.x has a minimum PHP requirement of 7.0.8. Some of these packages such as doctrine/annotations:1.10.1 require PHP 7.1. We need to produce the lock file on PHP 7.0.8, or force Composer into installing as if it were on PHP 7.0.8 - this is what I do:

Edit the following into the root composer.json:

    "config": {
        "platform": {
            "php": "7.0.8"
        },
        "preferred-install": "dist",
        "autoloader-suffix": "Drupal8"
    },

This forces Composer to install as if it were using PHP 7.0.8, but in fact I have 7.4 locally:

$ php -v
PHP 7.4.4 (cli) (built: Mar 20 2020 13:47:45) ( NTS )

Run composer update as normal:

$ COMPOSER_ROOT_VERSION=8.9.x-dev composer update --with-dependencies

Now we can check that e.g. a newer doctrine/annotations is not allowed:

$ composer why-not doctrine/annotations:1.10.1
doctrine/annotations  1.10.1  requires  php (^7.1 but 7.0.8 is installed)  

Edit the platform section out of composer.json again:

    "config": {
        "preferred-install": "dist",
        "autoloader-suffix": "Drupal8"
    },

Update the lock file hash again:

$ COMPOSER_ROOT_VERSION=8.9.x-dev composer update --lock

This should have produced a composer.lock for PHP 7.0.8 even though I have 7.4 locally. This has the following interdiff with #19:

$ composer-lock-diff --no-links
+---------------------------------+--------+---------+
| Production Changes              | From   | To      |
+---------------------------------+--------+---------+
| doctrine/annotations            | 1.10.1 | v1.4.0  |
| doctrine/cache                  | 1.10.0 | v1.6.2  |
| doctrine/collections            | 1.6.4  | v1.4.0  |
| doctrine/common                 | 2.12.0 | v2.7.3  |
| doctrine/event-manager          | 1.1.0  | REMOVED |
| doctrine/inflector              | 1.3.1  | v1.2.0  |
| doctrine/persistence            | 1.3.7  | REMOVED |
| doctrine/reflection             | 1.2.1  | REMOVED |
| symfony/psr-http-message-bridge | v1.2.0 | v1.1.2  |
+---------------------------------+--------+---------+

+---------------------------------+--------+--------+
| Dev Changes                     | From   | To     |
+---------------------------------+--------+--------+
| doctrine/instantiator           | 1.3.0  | 1.0.5  |
| myclabs/deep-copy               | 1.9.5  | 1.7.0  |
| phar-io/manifest                | 1.0.3  | 1.0.1  |
| phar-io/version                 | 2.0.1  | 1.0.1  |
| phpdocumentor/reflection-common | 2.0.0  | 1.0.1  |
| phpdocumentor/type-resolver     | 1.0.1  | 0.5.1  |
| phpunit/php-code-coverage       | 6.1.4  | 5.3.2  |
| phpunit/php-file-iterator       | 2.0.2  | 1.4.5  |
| phpunit/php-timer               | 2.1.2  | 1.0.9  |
| phpunit/php-token-stream        | 3.1.1  | 2.0.2  |
| phpunit/phpunit                 | 7.5.20 | 6.5.14 |
| sebastian/comparator            | 3.0.2  | 2.1.3  |
| sebastian/diff                  | 3.0.2  | 2.0.1  |
| sebastian/environment           | 4.2.3  | 3.1.0  |
| sebastian/resource-operations   | 2.0.1  | 1.0.0  |
| phpunit/phpunit-mock-objects    | NEW    | 5.0.10 |
+---------------------------------+--------+--------+

The actual set of changes in this patch are:

$ composer-lock-diff --no-links
+--------------------------------------+---------+----------+
| Production Changes                   | From    | To       |
+--------------------------------------+---------+----------+
| asm89/stack-cors                     | 1.2.0   | 1.3.0    |
| composer/installers                  | v1.7.0  | v1.9.0   |
| composer/semver                      | 1.5.0   | 1.5.1    |
| egulias/email-validator              | 2.1.11  | 2.1.17   |
| guzzlehttp/guzzle                    | 6.3.3   | 6.5.3    |
| laminas/laminas-diactoros            | 1.8.7   | 1.8.7p2  |
| laminas/laminas-feed                 | 2.12.0  | 2.12.2   |
| laminas/laminas-zendframework-bridge | 1.0.1   | 1.0.3    |
| masterminds/html5                    | 2.3.0   | 2.7.0    |
| pear/console_getopt                  | v1.4.2  | v1.4.3   |
| pear/pear-core-minimal               | v1.10.9 | v1.10.10 |
| pear/pear_exception                  | v1.0.0  | v1.0.1   |
| psr/log                              | 1.1.0   | 1.1.3    |
| symfony/class-loader                 | v3.4.35 | v3.4.39  |
| symfony/console                      | v3.4.35 | v3.4.39  |
| symfony/debug                        | v3.4.35 | v3.4.39  |
| symfony/dependency-injection         | v3.4.35 | v3.4.39  |
| symfony/event-dispatcher             | v3.4.35 | v3.4.39  |
| symfony/http-foundation              | v3.4.35 | v3.4.39  |
| symfony/http-kernel                  | v3.4.35 | v3.4.39  |
| symfony/polyfill-ctype               | v1.12.0 | v1.15.0  |
| symfony/polyfill-iconv               | v1.12.0 | v1.15.0  |
| symfony/polyfill-mbstring            | v1.12.0 | v1.15.0  |
| symfony/polyfill-php56               | v1.12.0 | v1.15.0  |
| symfony/polyfill-php70               | v1.12.0 | v1.15.0  |
| symfony/polyfill-util                | v1.12.0 | v1.15.0  |
| symfony/process                      | v3.4.35 | v3.4.39  |
| symfony/routing                      | v3.4.35 | v3.4.39  |
| symfony/serializer                   | v3.4.35 | v3.4.39  |
| symfony/translation                  | v3.4.35 | v3.4.39  |
| symfony/validator                    | v3.4.35 | v3.4.39  |
| symfony/yaml                         | v3.4.35 | v3.4.39  |
| twig/twig                            | v1.42.3 | v1.42.5  |
| typo3/phar-stream-wrapper            | v3.1.3  | v3.1.4   |
| symfony/polyfill-intl-idn            | NEW     | v1.15.0  |
| symfony/polyfill-php72               | NEW     | v1.15.0  |
+--------------------------------------+---------+----------+

+--------------------------------------+---------+---------+
| Dev Changes                          | From    | To      |
+--------------------------------------+---------+---------+
| behat/mink-browserkit-driver         | 1.3.3   | v1.3.4  |
| composer/ca-bundle                   | 1.2.4   | 1.2.7   |
| composer/composer                    | 1.9.1   | 1.10.5  |
| composer/spdx-licenses               | 1.5.2   | 1.5.3   |
| composer/xdebug-handler              | 1.3.3   | 1.4.1   |
| instaclick/php-webdriver             | 1.4.6   | 1.4.7   |
| jcalderonzumba/gastonjs              | v1.0.2  | v1.2.0  |
| jcalderonzumba/mink-phantomjs-driver | v0.3.2  | v0.3.3  |
| justinrainbow/json-schema            | 5.2.8   | 5.2.9   |
| phpdocumentor/reflection-docblock    | 4.3.2   | 4.3.4   |
| phpspec/prophecy                     | 1.9.0   | v1.10.3 |
| seld/jsonlint                        | 1.7.1   | 1.7.2   |
| seld/phar-utils                      | 1.0.1   | 1.1.0   |
| squizlabs/php_codesniffer            | 3.5.4   | 3.5.5   |
| symfony/browser-kit                  | v3.4.35 | v3.4.39 |
| symfony/css-selector                 | v3.4.35 | v3.4.39 |
| symfony/dom-crawler                  | v3.4.35 | v3.4.39 |
| symfony/filesystem                   | v3.4.35 | v3.4.39 |
| symfony/finder                       | v3.4.35 | v3.4.39 |
| symfony/lock                         | v3.4.35 | v3.4.39 |
| symfony/phpunit-bridge               | v3.4.35 | v3.4.39 |
| webmozart/assert                     | 1.5.0   | 1.8.0   |
+--------------------------------------+---------+---------+
jungle’s picture

@longwave, thanks for your correction and detailed steps.

Followed the steps in #21, got the exactly same composer.lock file on my local.

If someone wants to repeat it again from scratch, remember to add symfony/dom-crawler manually first to the require-dev section, see the reason in #5

-        "symfony/browser-kit": "^3.4.0"
+        "symfony/browser-kit": "^3.4.0",
+        "symfony/dom-crawler": "^3.4.0 !=3.4.38" 

RTBC +1

jungle’s picture

https://git.drupalcode.org/project/drupal/-/blob/8.8.x/core/modules/quic...

Core is directly dependent upon prophecy, we should always declare dependents that we are using and not rely on the fact that they are pulled in transitively. Everywhere that we have use Prophecy\Argument; for example. If phpunit decides to replace prophecy with something else, or bumps the version of it to something incompatible with our usage, our code breaks.

“Webdriver” class is in the instaclick/php-webdriver dep, which is a dep of behat/mink etc, but we’re using it directly.

-- @mixologic

#5/#22 reminded me what @mixologic commented on Mar 21st on slack.

Should it be done here, or a separate issue? Doubt instaclick/php-webdriver is not the only one.

jungle’s picture

Not sure whether 3072872 should be closed or not

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

jungle’s picture

Version: 9.1.x-dev » 8.9.x-dev
jungle’s picture

BTW, composer/installers updated in #3126566

xjm’s picture

Issue tags: +beta target
alexpott’s picture

Status: Needs review » Needs work

We shouldn't update masterminds/html5 or jcalderonzumba/* - the PhantomJS stuff because it is very fickle with versions and basically unsupported at this point. The html5 library has proved tricky because of the amp project and it's library. See #3040037: Update masterminds/html5 to 2.7.5 for more.

alexpott’s picture

Status: Needs work » Needs review
FileSize
88.14 KB
27.88 KB

This patch makes the change to the root composer.json to say we're not compatible - ie. "symfony/dom-crawler": "^3.4.0 !=3.4.38"

And does composer update "symfony/*" "behat/*" "composer/*" "instaclick/*" "justinrainbow/*" "phpdocumentor/*" "phpspec/*" "seld/*" "squizlabs/*" "webmozart/*" "typo3/*" "twig/*" "psr/*" "pear/*" "laminas/*" "guzzlehttp/*" "egulias/*" "asm89/*"

I performed the update on PHP 7.0

+--------------------------------------+---------+----------+
| Production Changes                   | From    | To       |
+--------------------------------------+---------+----------+
| asm89/stack-cors                     | 1.2.0   | 1.3.0    |
| composer/installers                  | v1.7.0  | v1.9.0   |
| composer/semver                      | 1.5.0   | 1.5.1    |
| egulias/email-validator              | 2.1.11  | 2.1.17   |
| guzzlehttp/guzzle                    | 6.3.3   | 6.5.3    |
| laminas/laminas-diactoros            | 1.8.7   | 1.8.7p2  |
| laminas/laminas-feed                 | 2.12.0  | 2.12.2   |
| laminas/laminas-zendframework-bridge | 1.0.1   | 1.0.3    |
| pear/console_getopt                  | v1.4.2  | v1.4.3   |
| pear/pear-core-minimal               | v1.10.9 | v1.10.10 |
| pear/pear_exception                  | v1.0.0  | v1.0.1   |
| psr/log                              | 1.1.0   | 1.1.3    |
| symfony/class-loader                 | v3.4.35 | v3.4.40  |
| symfony/console                      | v3.4.35 | v3.4.40  |
| symfony/debug                        | v3.4.35 | v3.4.40  |
| symfony/dependency-injection         | v3.4.35 | v3.4.40  |
| symfony/event-dispatcher             | v3.4.35 | v3.4.40  |
| symfony/http-foundation              | v3.4.35 | v3.4.40  |
| symfony/http-kernel                  | v3.4.35 | v3.4.40  |
| symfony/polyfill-ctype               | v1.12.0 | v1.15.0  |
| symfony/polyfill-iconv               | v1.12.0 | v1.15.0  |
| symfony/polyfill-mbstring            | v1.12.0 | v1.15.0  |
| symfony/polyfill-php56               | v1.12.0 | v1.15.0  |
| symfony/polyfill-php70               | v1.12.0 | v1.15.0  |
| symfony/polyfill-util                | v1.12.0 | v1.15.0  |
| symfony/process                      | v3.4.35 | v3.4.40  |
| symfony/routing                      | v3.4.35 | v3.4.40  |
| symfony/serializer                   | v3.4.35 | v3.4.40  |
| symfony/translation                  | v3.4.35 | v3.4.40  |
| symfony/validator                    | v3.4.35 | v3.4.40  |
| symfony/yaml                         | v3.4.35 | v3.4.40  |
| twig/twig                            | v1.42.3 | v1.42.5  |
| typo3/phar-stream-wrapper            | v3.1.3  | v3.1.4   |
| symfony/polyfill-intl-idn            | NEW     | v1.15.0  |
| symfony/polyfill-php72               | NEW     | v1.15.0  |
+--------------------------------------+---------+----------+

+-----------------------------------+---------+---------+
| Dev Changes                       | From    | To      |
+-----------------------------------+---------+---------+
| behat/mink-browserkit-driver      | 1.3.3   | v1.3.4  |
| composer/ca-bundle                | 1.2.4   | 1.2.7   |
| composer/composer                 | 1.9.1   | 1.10.5  |
| composer/spdx-licenses            | 1.5.2   | 1.5.3   |
| composer/xdebug-handler           | 1.3.3   | 1.4.1   |
| instaclick/php-webdriver          | 1.4.6   | 1.4.7   |
| justinrainbow/json-schema         | 5.2.8   | 5.2.9   |
| phpdocumentor/reflection-docblock | 4.3.2   | 4.3.4   |
| phpspec/prophecy                  | 1.9.0   | v1.10.3 |
| seld/jsonlint                     | 1.7.1   | 1.8.0   |
| seld/phar-utils                   | 1.0.1   | 1.1.0   |
| squizlabs/php_codesniffer         | 3.5.4   | 3.5.5   |
| symfony/browser-kit               | v3.4.35 | v3.4.40 |
| symfony/css-selector              | v3.4.35 | v3.4.40 |
| symfony/dom-crawler               | v3.4.35 | v3.4.40 |
| symfony/filesystem                | v3.4.35 | v3.4.40 |
| symfony/finder                    | v3.4.35 | v3.4.40 |
| symfony/lock                      | v3.4.35 | v3.4.40 |
| symfony/phpunit-bridge            | v3.4.35 | v3.4.40 |
| webmozart/assert                  | 1.5.0   | 1.8.0   |
+-----------------------------------+---------+---------+

alexpott’s picture

I missed out the test fixes from #24. Here's a patch with them in.

alexpott’s picture

After applying #31 if you run composer update today on PHP 7.0 it does

> Drupal\Composer\Composer::ensureComposerVersion
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 3 updates, 0 removals
  - Updating jcalderonzumba/gastonjs (v1.0.2 => v1.2.0): Loading from cache
    Cleaning: jcalderonzumba/gastonjs
  - Updating jcalderonzumba/mink-phantomjs-driver (v0.3.2 => v0.3.3): Loading from cache
    Cleaning: jcalderonzumba/mink-phantomjs-driver
  - Updating masterminds/html5 (2.3.0 => 2.7.0): Loading from cache
    Cleaning: masterminds/html5

So our code is updated without touching jcalderonzumba/* and masterminds/html5.

longwave’s picture

If we don't want to update some packages should we pin to a tighter version in composer.json?

alexpott’s picture

Well - it's tricky because we're compatible and we don't want projects that have higher version constraints to have problems. Fortunately this is the last time we need to do this on Drupal 8 like this. And in Drupal 9 we've managed to get more of our dependencies in the right place... hopefully including masterminds/html5

longwave’s picture

Can we require-dev a tighter constraint for tests and leave the wider one in require?

alexpott’s picture

@longwave I dunno I'd leave this hornets nest alone. We've gone a long way without resolving that.

Status: Needs review » Needs work

The last submitted patch, 31: 3122112-31.patch, failed testing. View results

alexpott’s picture

Status: Needs work » Needs review

It was a random fail in ComposerHookTest...

longwave’s picture

Status: Needs review » Reviewed & tested by the community

I diffed #21 and #31 and the only changes are minor version bumps in Symfony and a few other components, and masterminds/html5 and jcalderonzumba/* are no longer updated at all, so this looks good to me.

xjm’s picture

Status: Reviewed & tested by the community » Needs work

The release note here is not really that helpful (and also inaccurate -- if we were updating to the latest versions of all dependencies, we'd have like Symfony 5.1 and Twig 3, etc.). See the dependency updates section of the 8.8.0 release notes for the format to use for less significant dependency updates. Thanks!

alexpott’s picture

Issue summary: View changes
Status: Needs work » Reviewed & tested by the community

I've tried to do what's requested in #40.

I've run into several problems:

  • The release note example doesn't differentiate between development and production dependencies but this is key information for people deciding on what to do. Trying to account for such differences is going to take a lot of words.
  • The release note example says "Symfony packages (from 3.4.26 to 3.4.35)." but there are also the symfony polyfills.
  • The release note says things have been updated "from" but it doesn't specify which from is it the last patch release of the previous minor? Not sute

So in order to overcome that and provide something useful as the basis for the real release note the section here is now a lock diff from 8.8.0 to 8.9.x with this patch applied. And then a small section of highlights mostly focused on the production changes and major version updates.

alexpott’s picture

Somewhat amazingly this issue doesn't conflict with #3126566: Allow Drupal to work with Composer 2 - which just landed. Queuing a retest anyways.

  • catch committed ea9403e on 8.9.x
    Issue #3122112 by longwave, alexpott, jungle, xjm: Update dependencies...
catch’s picture

Status: Reviewed & tested by the community » Fixed

Committed ea9403e and pushed to 8.9.x. Thanks!

  • catch committed 4e1329a on 8.9.x
    Revert "Issue #3122112 by longwave, alexpott, jungle, xjm: Update...
catch’s picture

Status: Fixed » Needs work

Reverted due to #3134648: [backport, needs scheduling] Don't pin the composer/installers version in drupal/core-recommended. We can recommit this without the composer/installers update.

alexpott’s picture

Status: Needs work » Needs review
FileSize
87.98 KB

New patch created with composer update "symfony/*" "behat/*" "instaclick/*" "justinrainbow/*" "phpdocumentor/*" "phpspec/*" "seld/*" "squizlabs/*" "webmozart/*" "typo3/*" "twig/*" "psr/*" "pear/*" "laminas/*" "guzzlehttp/*" "egulias/*" "asm89/*" "composer/semver" "composer/composer"

To avoid updating composer/installers but update other composer packages.

Here's the update done by the patch:

+--------------------------------------+---------+----------+
| Production Changes                   | From    | To       |
+--------------------------------------+---------+----------+
| asm89/stack-cors                     | 1.2.0   | 1.3.0    |
| composer/semver                      | 1.5.0   | 1.5.1    |
| egulias/email-validator              | 2.1.11  | 2.1.17   |
| guzzlehttp/guzzle                    | 6.3.3   | 6.5.3    |
| laminas/laminas-diactoros            | 1.8.7   | 1.8.7p2  |
| laminas/laminas-feed                 | 2.12.0  | 2.12.2   |
| laminas/laminas-zendframework-bridge | 1.0.1   | 1.0.3    |
| pear/console_getopt                  | v1.4.2  | v1.4.3   |
| pear/pear-core-minimal               | v1.10.9 | v1.10.10 |
| pear/pear_exception                  | v1.0.0  | v1.0.1   |
| psr/log                              | 1.1.0   | 1.1.3    |
| symfony/class-loader                 | v3.4.35 | v3.4.40  |
| symfony/console                      | v3.4.35 | v3.4.40  |
| symfony/debug                        | v3.4.35 | v3.4.40  |
| symfony/dependency-injection         | v3.4.35 | v3.4.40  |
| symfony/event-dispatcher             | v3.4.35 | v3.4.40  |
| symfony/http-foundation              | v3.4.35 | v3.4.40  |
| symfony/http-kernel                  | v3.4.35 | v3.4.40  |
| symfony/polyfill-ctype               | v1.12.0 | v1.15.0  |
| symfony/polyfill-iconv               | v1.12.0 | v1.15.0  |
| symfony/polyfill-mbstring            | v1.12.0 | v1.15.0  |
| symfony/polyfill-php56               | v1.12.0 | v1.15.0  |
| symfony/polyfill-php70               | v1.12.0 | v1.15.0  |
| symfony/polyfill-util                | v1.12.0 | v1.15.0  |
| symfony/process                      | v3.4.35 | v3.4.40  |
| symfony/psr-http-message-bridge      | v1.1.2  | v1.2.0   |
| symfony/routing                      | v3.4.35 | v3.4.40  |
| symfony/serializer                   | v3.4.35 | v3.4.40  |
| symfony/translation                  | v3.4.35 | v3.4.40  |
| symfony/validator                    | v3.4.35 | v3.4.40  |
| symfony/yaml                         | v3.4.35 | v3.4.40  |
| twig/twig                            | v1.42.3 | v1.42.5  |
| typo3/phar-stream-wrapper            | v3.1.3  | v3.1.4   |
| symfony/polyfill-intl-idn            | NEW     | v1.15.0  |
| symfony/polyfill-php72               | NEW     | v1.15.0  |
+--------------------------------------+---------+----------+

+-----------------------------------+---------+---------+
| Dev Changes                       | From    | To      |
+-----------------------------------+---------+---------+
| behat/mink-browserkit-driver      | 1.3.3   | v1.3.4  |
| composer/composer                 | 1.9.1   | 1.10.6  |
| instaclick/php-webdriver          | 1.4.6   | 1.4.7   |
| justinrainbow/json-schema         | 5.2.8   | 5.2.9   |
| phpdocumentor/reflection-common   | 1.0.1   | 2.1.0   |
| phpdocumentor/reflection-docblock | 4.3.2   | 5.1.0   |
| phpdocumentor/type-resolver       | 0.5.1   | 1.1.0   |
| phpspec/prophecy                  | 1.9.0   | v1.10.3 |
| seld/jsonlint                     | 1.7.1   | 1.8.0   |
| seld/phar-utils                   | 1.0.1   | 1.1.0   |
| squizlabs/php_codesniffer         | 3.5.4   | 3.5.5   |
| symfony/browser-kit               | v3.4.35 | v3.4.40 |
| symfony/css-selector              | v3.4.35 | v3.4.40 |
| symfony/dom-crawler               | v3.4.35 | v4.2.12 |
| symfony/filesystem                | v3.4.35 | v3.4.40 |
| symfony/finder                    | v3.4.35 | v3.4.40 |
| symfony/lock                      | v3.4.35 | v3.4.40 |
| symfony/phpunit-bridge            | v3.4.35 | v3.4.39 |
| webmozart/assert                  | 1.5.0   | 1.8.0   |
+-----------------------------------+---------+---------+

I'll update the issue summary next.

alexpott’s picture

Ah we need to add the --with-all-dependencies flag.

composer update "symfony/*" "behat/*" "instaclick/*" "justinrainbow/*" "phpdocumentor/*" "phpspec/*" "seld/*" "squizlabs/*" "webmozart/*" "typo3/*" "twig/*" "psr/*" "pear/*" "laminas/*" "guzzlehttp/*" "egulias/*" "asm89/*" "composer/semver" "composer/composer" --with-all-dependencies

Results in:

+--------------------------------------+---------+----------+
| Production Changes                   | From    | To       |
+--------------------------------------+---------+----------+
| asm89/stack-cors                     | 1.2.0   | 1.3.0    |
| composer/semver                      | 1.5.0   | 1.5.1    |
| doctrine/lexer                       | 1.0.2   | 1.2.0    |
| egulias/email-validator              | 2.1.11  | 2.1.17   |
| guzzlehttp/guzzle                    | 6.3.3   | 6.5.3    |
| laminas/laminas-diactoros            | 1.8.7   | 1.8.7p2  |
| laminas/laminas-feed                 | 2.12.0  | 2.12.2   |
| laminas/laminas-zendframework-bridge | 1.0.1   | 1.0.3    |
| pear/console_getopt                  | v1.4.2  | v1.4.3   |
| pear/pear-core-minimal               | v1.10.9 | v1.10.10 |
| pear/pear_exception                  | v1.0.0  | v1.0.1   |
| psr/log                              | 1.1.0   | 1.1.3    |
| symfony/class-loader                 | v3.4.35 | v3.4.40  |
| symfony/console                      | v3.4.35 | v3.4.40  |
| symfony/debug                        | v3.4.35 | v3.4.40  |
| symfony/dependency-injection         | v3.4.35 | v3.4.40  |
| symfony/event-dispatcher             | v3.4.35 | v3.4.40  |
| symfony/http-foundation              | v3.4.35 | v3.4.40  |
| symfony/http-kernel                  | v3.4.35 | v3.4.40  |
| symfony/polyfill-ctype               | v1.12.0 | v1.15.0  |
| symfony/polyfill-iconv               | v1.12.0 | v1.15.0  |
| symfony/polyfill-mbstring            | v1.12.0 | v1.15.0  |
| symfony/polyfill-php56               | v1.12.0 | v1.15.0  |
| symfony/polyfill-php70               | v1.12.0 | v1.15.0  |
| symfony/polyfill-util                | v1.12.0 | v1.15.0  |
| symfony/process                      | v3.4.35 | v3.4.40  |
| symfony/psr-http-message-bridge      | v1.1.2  | v1.2.0   |
| symfony/routing                      | v3.4.35 | v3.4.40  |
| symfony/serializer                   | v3.4.35 | v3.4.40  |
| symfony/translation                  | v3.4.35 | v3.4.40  |
| symfony/validator                    | v3.4.35 | v3.4.40  |
| symfony/yaml                         | v3.4.35 | v3.4.40  |
| twig/twig                            | v1.42.3 | v1.42.5  |
| typo3/phar-stream-wrapper            | v3.1.3  | v3.1.4   |
| symfony/polyfill-intl-idn            | NEW     | v1.15.0  |
| symfony/polyfill-php72               | NEW     | v1.15.0  |
+--------------------------------------+---------+----------+

+-----------------------------------+---------+---------+
| Dev Changes                       | From    | To      |
+-----------------------------------+---------+---------+
| behat/mink-browserkit-driver      | 1.3.3   | v1.3.4  |
| composer/ca-bundle                | 1.2.4   | 1.2.7   |
| composer/composer                 | 1.9.1   | 1.10.6  |
| composer/spdx-licenses            | 1.5.2   | 1.5.3   |
| composer/xdebug-handler           | 1.3.3   | 1.4.1   |
| doctrine/instantiator             | 1.0.5   | 1.3.0   |
| instaclick/php-webdriver          | 1.4.6   | 1.4.7   |
| justinrainbow/json-schema         | 5.2.8   | 5.2.9   |
| phpdocumentor/reflection-common   | 1.0.1   | 2.1.0   |
| phpdocumentor/reflection-docblock | 4.3.2   | 5.1.0   |
| phpdocumentor/type-resolver       | 0.5.1   | 1.1.0   |
| phpspec/prophecy                  | 1.9.0   | v1.10.3 |
| seld/jsonlint                     | 1.7.1   | 1.8.0   |
| seld/phar-utils                   | 1.0.1   | 1.1.0   |
| squizlabs/php_codesniffer         | 3.5.4   | 3.5.5   |
| symfony/browser-kit               | v3.4.35 | v3.4.40 |
| symfony/css-selector              | v3.4.35 | v3.4.40 |
| symfony/dom-crawler               | v3.4.35 | v4.2.12 |
| symfony/filesystem                | v3.4.35 | v3.4.40 |
| symfony/finder                    | v3.4.35 | v3.4.40 |
| symfony/lock                      | v3.4.35 | v3.4.40 |
| symfony/phpunit-bridge            | v3.4.35 | v3.4.39 |
| webmozart/assert                  | 1.5.0   | 1.8.0   |
+-----------------------------------+---------+---------+

composer/installers remains at 1.7.0

alexpott’s picture

Issue summary: View changes

Updated release note.

jungle’s picture

Coder 8.3.9 just released, should it be included?

alexpott’s picture

Doh forgot to downgrade my php 7.0. me--

+--------------------------------------+---------+----------+
| Production Changes                   | From    | To       |
+--------------------------------------+---------+----------+
| asm89/stack-cors                     | 1.2.0   | 1.3.0    |
| composer/semver                      | 1.5.0   | 1.5.1    |
| egulias/email-validator              | 2.1.11  | 2.1.17   |
| guzzlehttp/guzzle                    | 6.3.3   | 6.5.3    |
| laminas/laminas-diactoros            | 1.8.7   | 1.8.7p2  |
| laminas/laminas-feed                 | 2.12.0  | 2.12.2   |
| laminas/laminas-zendframework-bridge | 1.0.1   | 1.0.3    |
| pear/console_getopt                  | v1.4.2  | v1.4.3   |
| pear/pear-core-minimal               | v1.10.9 | v1.10.10 |
| pear/pear_exception                  | v1.0.0  | v1.0.1   |
| psr/log                              | 1.1.0   | 1.1.3    |
| symfony/class-loader                 | v3.4.35 | v3.4.40  |
| symfony/console                      | v3.4.35 | v3.4.40  |
| symfony/debug                        | v3.4.35 | v3.4.40  |
| symfony/dependency-injection         | v3.4.35 | v3.4.40  |
| symfony/event-dispatcher             | v3.4.35 | v3.4.40  |
| symfony/http-foundation              | v3.4.35 | v3.4.40  |
| symfony/http-kernel                  | v3.4.35 | v3.4.40  |
| symfony/polyfill-ctype               | v1.12.0 | v1.15.0  |
| symfony/polyfill-iconv               | v1.12.0 | v1.15.0  |
| symfony/polyfill-mbstring            | v1.12.0 | v1.15.0  |
| symfony/polyfill-php56               | v1.12.0 | v1.15.0  |
| symfony/polyfill-php70               | v1.12.0 | v1.15.0  |
| symfony/polyfill-util                | v1.12.0 | v1.15.0  |
| symfony/process                      | v3.4.35 | v3.4.40  |
| symfony/routing                      | v3.4.35 | v3.4.40  |
| symfony/serializer                   | v3.4.35 | v3.4.40  |
| symfony/translation                  | v3.4.35 | v3.4.40  |
| symfony/validator                    | v3.4.35 | v3.4.40  |
| symfony/yaml                         | v3.4.35 | v3.4.40  |
| twig/twig                            | v1.42.3 | v1.42.5  |
| typo3/phar-stream-wrapper            | v3.1.3  | v3.1.4   |
| symfony/polyfill-intl-idn            | NEW     | v1.15.0  |
| symfony/polyfill-php72               | NEW     | v1.15.0  |
+--------------------------------------+---------+----------+

+-----------------------------------+---------+---------+
| Dev Changes                       | From    | To      |
+-----------------------------------+---------+---------+
| behat/mink-browserkit-driver      | 1.3.3   | v1.3.4  |
| composer/ca-bundle                | 1.2.4   | 1.2.7   |
| composer/composer                 | 1.9.1   | 1.10.6  |
| composer/spdx-licenses            | 1.5.2   | 1.5.3   |
| composer/xdebug-handler           | 1.3.3   | 1.4.1   |
| instaclick/php-webdriver          | 1.4.6   | 1.4.7   |
| justinrainbow/json-schema         | 5.2.8   | 5.2.9   |
| phpdocumentor/reflection-docblock | 4.3.2   | 4.3.4   |
| phpspec/prophecy                  | 1.9.0   | v1.10.3 |
| seld/jsonlint                     | 1.7.1   | 1.8.0   |
| seld/phar-utils                   | 1.0.1   | 1.1.0   |
| squizlabs/php_codesniffer         | 3.5.4   | 3.5.5   |
| symfony/browser-kit               | v3.4.35 | v3.4.40 |
| symfony/css-selector              | v3.4.35 | v3.4.40 |
| symfony/dom-crawler               | v3.4.35 | v3.4.40 |
| symfony/filesystem                | v3.4.35 | v3.4.40 |
| symfony/finder                    | v3.4.35 | v3.4.40 |
| symfony/lock                      | v3.4.35 | v3.4.40 |
| symfony/phpunit-bridge            | v3.4.35 | v3.4.39 |
| webmozart/assert                  | 1.5.0   | 1.8.0   |
+-----------------------------------+---------+---------+

New patch. And updated release note.

alexpott’s picture

@jungle I don't think so. That would make 8.9.x ahead of 9.x branch which does not make sense. Also we'd then need to check for coding standards changes. I think we shuold get that upgrade done in 9.x first.

alexpott’s picture

And now with the test fixes and dom-crawler constraint.

alexpott’s picture

Issue summary: View changes

Fixed release note - symfony/phpunit-bridge goes to v3.4.39 because composer/composer 1.10.6 conflicts with it.

hussainweb’s picture

I'm just wondering. It seems to me that the changes in composer/installers 1.9 are a problem. The patch here only updated it 1.8, which shouldn't be a problem. From information on packagist, the dependencies for both versions 1.7 and 1.8 are identical.
- https://packagist.org/packages/composer/installers#v1.8.0
- https://packagist.org/packages/composer/installers#v1.7.0

alexpott’s picture

@hussainweb the patch in #30 updated it to v1.9.0. The problem is odd. It's update how 8.8.x core-recommended project resolve their dependencies. If the 8.9.x-dev version of core-recommended locks to a higher stable version of composer/installers then running composer update on an 8.8.5 core-recommended project will result in composer resolving to upgrade composer/installers to the latest locked version and therefore update core-recommended to 8.9.x-dev and therefore surprisingly update you to 8.9.x-dev :)

See https://github.com/composer/composer/issues/8882 and #3134648: [backport, needs scheduling] Don't pin the composer/installers version in drupal/core-recommended for more.

The tldr; is until we've resolved the above we cannot update the locked version of composer/installers in the core-recommended project.

jungle’s picture

Re #52, @alexpott, thanks for your reply, filed #3134731: Update coder to 8.3.9

The last submitted patch, 51: 3122112-2-50.patch, failed testing. View results

greg.1.anderson’s picture

The composer.json on the current HEAD of the 8.9.x branch still says "composer/installers": "^1.0.24", leaving open the possibility that core might accidentally be updated to 1.9.0 again in the future. (n.b. the Composer bug only happens when 1.9.0 gets into drupal/core-recommended, so there is no danger that an end user could cause problems for themselves by updating composer/installers.) Maybe there should be a test on the 8.9.x branch that fails if anything other than composer/installers 1.7.0 ends up in the lock file?

n.b. composer/installers is different (causes the Composer update bug) not due to its contents, but due to the fact that it is a) in drupal/core-recommended, and b) is a top-level dependency in the Composer project template. (At least we THINK these are the necessary conditions; this bug is not well-understood yet.) Any change of version for composer/installers in drupal/core-recommended in 8.9.x dev from what it was in 8.8.x will cause this bug.

I suppose we could also avoid this bug by removing composer/installers from drupal/core-recommended. We'd just have to special-case it in the metapackage creation script. Since composer/installers does not run in the Drupal page-serving path, it seems plausible and reasonable to not lock its version in drupal/core-recommended.

If we did that, then we wouldn't need a test on the composer/installers version, and could even update its version in 8.9.x.

alexpott’s picture

@greg.1.anderson I think the "remove composer/installers" from composer/Metapackage/CoreRecommended/composer.json in #59 is an excellent idea. Let's pursue that in #3134648: [backport, needs scheduling] Don't pin the composer/installers version in drupal/core-recommended and keep this issue about updating all the other deps.

hussainweb’s picture

I applied the patch in #53 and here's the changes in versions

+--------------------------------------+---------+----------+-------------------------------------------------------------------------------+
| Production Changes                   | From    | To       | Compare                                                                       |
+--------------------------------------+---------+----------+-------------------------------------------------------------------------------+
| asm89/stack-cors                     | 1.2.0   | 1.3.0    | https://github.com/asm89/stack-cors/compare/1.2.0...1.3.0                     |
| composer/semver                      | 1.5.0   | 1.5.1    | https://github.com/composer/semver/compare/1.5.0...1.5.1                      |
| egulias/email-validator              | 2.1.11  | 2.1.17   | https://github.com/egulias/EmailValidator/compare/2.1.11...2.1.17             |
| guzzlehttp/guzzle                    | 6.3.3   | 6.5.3    | https://github.com/guzzle/guzzle/compare/6.3.3...6.5.3                        |
| laminas/laminas-diactoros            | 1.8.7   | 1.8.7p2  | https://github.com/laminas/laminas-diactoros/compare/1.8.7...1.8.7p2          |
| laminas/laminas-feed                 | 2.12.0  | 2.12.2   | https://github.com/laminas/laminas-feed/compare/2.12.0...2.12.2               |
| laminas/laminas-zendframework-bridge | 1.0.1   | 1.0.3    | https://github.com/laminas/laminas-zendframework-bridge/compare/1.0.1...1.0.3 |
| pear/console_getopt                  | v1.4.2  | v1.4.3   | https://github.com/pear/Console_Getopt/compare/v1.4.2...v1.4.3                |
| pear/pear-core-minimal               | v1.10.9 | v1.10.10 | https://github.com/pear/pear-core-minimal/compare/v1.10.9...v1.10.10          |
| pear/pear_exception                  | v1.0.0  | v1.0.1   | https://github.com/pear/PEAR_Exception/compare/v1.0.0...v1.0.1                |
| psr/log                              | 1.1.0   | 1.1.3    | https://github.com/php-fig/log/compare/1.1.0...1.1.3                          |
| symfony/class-loader                 | v3.4.35 | v3.4.40  | https://github.com/symfony/class-loader/compare/v3.4.35...v3.4.40             |
| symfony/console                      | v3.4.35 | v3.4.40  | https://github.com/symfony/console/compare/v3.4.35...v3.4.40                  |
| symfony/debug                        | v3.4.35 | v3.4.40  | https://github.com/symfony/debug/compare/v3.4.35...v3.4.40                    |
| symfony/dependency-injection         | v3.4.35 | v3.4.40  | https://github.com/symfony/dependency-injection/compare/v3.4.35...v3.4.40     |
| symfony/event-dispatcher             | v3.4.35 | v3.4.40  | https://github.com/symfony/event-dispatcher/compare/v3.4.35...v3.4.40         |
| symfony/http-foundation              | v3.4.35 | v3.4.40  | https://github.com/symfony/http-foundation/compare/v3.4.35...v3.4.40          |
| symfony/http-kernel                  | v3.4.35 | v3.4.40  | https://github.com/symfony/http-kernel/compare/v3.4.35...v3.4.40              |
| symfony/polyfill-ctype               | v1.12.0 | v1.15.0  | https://github.com/symfony/polyfill-ctype/compare/v1.12.0...v1.15.0           |
| symfony/polyfill-iconv               | v1.12.0 | v1.15.0  | https://github.com/symfony/polyfill-iconv/compare/v1.12.0...v1.15.0           |
| symfony/polyfill-mbstring            | v1.12.0 | v1.15.0  | https://github.com/symfony/polyfill-mbstring/compare/v1.12.0...v1.15.0        |
| symfony/polyfill-php56               | v1.12.0 | v1.15.0  | https://github.com/symfony/polyfill-php56/compare/v1.12.0...v1.15.0           |
| symfony/polyfill-php70               | v1.12.0 | v1.15.0  | https://github.com/symfony/polyfill-php70/compare/v1.12.0...v1.15.0           |
| symfony/polyfill-util                | v1.12.0 | v1.15.0  | https://github.com/symfony/polyfill-util/compare/v1.12.0...v1.15.0            |
| symfony/process                      | v3.4.35 | v3.4.40  | https://github.com/symfony/process/compare/v3.4.35...v3.4.40                  |
| symfony/routing                      | v3.4.35 | v3.4.40  | https://github.com/symfony/routing/compare/v3.4.35...v3.4.40                  |
| symfony/serializer                   | v3.4.35 | v3.4.40  | https://github.com/symfony/serializer/compare/v3.4.35...v3.4.40               |
| symfony/translation                  | v3.4.35 | v3.4.40  | https://github.com/symfony/translation/compare/v3.4.35...v3.4.40              |
| symfony/validator                    | v3.4.35 | v3.4.40  | https://github.com/symfony/validator/compare/v3.4.35...v3.4.40                |
| symfony/yaml                         | v3.4.35 | v3.4.40  | https://github.com/symfony/yaml/compare/v3.4.35...v3.4.40                     |
| twig/twig                            | v1.42.3 | v1.42.5  | https://github.com/twigphp/Twig/compare/v1.42.3...v1.42.5                     |
| typo3/phar-stream-wrapper            | v3.1.3  | v3.1.4   | https://github.com/TYPO3/phar-stream-wrapper/compare/v3.1.3...v3.1.4          |
| symfony/polyfill-intl-idn            | NEW     | v1.15.0  |                                                                               |
| symfony/polyfill-php72               | NEW     | v1.15.0  |                                                                               |
+--------------------------------------+---------+----------+-------------------------------------------------------------------------------+

+-----------------------------------+---------+---------+---------------------------------------------------------------------------+
| Dev Changes                       | From    | To      | Compare                                                                   |
+-----------------------------------+---------+---------+---------------------------------------------------------------------------+
| behat/mink-browserkit-driver      | 1.3.3   | v1.3.4  | https://github.com/minkphp/MinkBrowserKitDriver/compare/1.3.3...v1.3.4    |
| composer/ca-bundle                | 1.2.4   | 1.2.7   | https://github.com/composer/ca-bundle/compare/1.2.4...1.2.7               |
| composer/composer                 | 1.9.1   | 1.10.6  | https://github.com/composer/composer/compare/1.9.1...1.10.6               |
| composer/spdx-licenses            | 1.5.2   | 1.5.3   | https://github.com/composer/spdx-licenses/compare/1.5.2...1.5.3           |
| composer/xdebug-handler           | 1.3.3   | 1.4.1   | https://github.com/composer/xdebug-handler/compare/1.3.3...1.4.1          |
| instaclick/php-webdriver          | 1.4.6   | 1.4.7   | https://github.com/instaclick/php-webdriver/compare/1.4.6...1.4.7         |
| justinrainbow/json-schema         | 5.2.8   | 5.2.9   | https://github.com/justinrainbow/json-schema/compare/5.2.8...5.2.9        |
| phpdocumentor/reflection-docblock | 4.3.2   | 4.3.4   | https://github.com/phpDocumentor/ReflectionDocBlock/compare/4.3.2...4.3.4 |
| phpspec/prophecy                  | 1.9.0   | v1.10.3 | https://github.com/phpspec/prophecy/compare/1.9.0...v1.10.3               |
| seld/jsonlint                     | 1.7.1   | 1.8.0   | https://github.com/Seldaek/jsonlint/compare/1.7.1...1.8.0                 |
| seld/phar-utils                   | 1.0.1   | 1.1.0   | https://github.com/Seldaek/phar-utils/compare/1.0.1...1.1.0               |
| squizlabs/php_codesniffer         | 3.5.4   | 3.5.5   | https://github.com/squizlabs/PHP_CodeSniffer/compare/3.5.4...3.5.5        |
| symfony/browser-kit               | v3.4.35 | v3.4.40 | https://github.com/symfony/browser-kit/compare/v3.4.35...v3.4.40          |
| symfony/css-selector              | v3.4.35 | v3.4.40 | https://github.com/symfony/css-selector/compare/v3.4.35...v3.4.40         |
| symfony/dom-crawler               | v3.4.35 | v3.4.40 | https://github.com/symfony/dom-crawler/compare/v3.4.35...v3.4.40          |
| symfony/filesystem                | v3.4.35 | v3.4.40 | https://github.com/symfony/filesystem/compare/v3.4.35...v3.4.40           |
| symfony/finder                    | v3.4.35 | v3.4.40 | https://github.com/symfony/finder/compare/v3.4.35...v3.4.40               |
| symfony/lock                      | v3.4.35 | v3.4.40 | https://github.com/symfony/lock/compare/v3.4.35...v3.4.40                 |
| symfony/phpunit-bridge            | v3.4.35 | v3.4.39 | https://github.com/symfony/phpunit-bridge/compare/v3.4.35...v3.4.39       |
| webmozart/assert                  | 1.5.0   | 1.8.0   | https://github.com/webmozart/assert/compare/1.5.0...1.8.0                 |
+-----------------------------------+---------+---------+---------------------------------------------------------------------------+

This is the list of outdated packages which are semver compatible. I know we're ignoring composer/installers and drupal/coder in this issue. And of course drupal/* are just path repositories. Should we be targeting updating the rest?

!  ~/w/d/drupal   8.9.x ~…  composer outdated --minor-only
    1/1:	http://repo.packagist.org/p/provider-latest$81f82eb1b8a787b1d0f4596b6e09dd0b573618016deb2e7374e4668daecfa775.json
    Finished: success: 1, skipped: 0, failure: 0, total: 1
composer/installers                  v1.7.0    v1.9.0            A multi-framework Composer library installer
doctrine/annotations                 v1.4.0    1.10.2            Docblock Annotations Parser
doctrine/cache                       v1.6.2    1.10.0            Caching library offering an object-oriented API for many cache backends
doctrine/collections                 v1.4.0    1.6.4             Collections Abstraction library
doctrine/common                      v2.7.3    2.12.0            Common Library for Doctrine projects
doctrine/inflector                   v1.2.0    1.4.0             Common String Manipulations with regard to casing and singular/plural rules.
doctrine/instantiator                1.0.5     1.3.0             A small, lightweight utility to instantiate objects in PHP without invoking their constructors
doctrine/lexer                       1.0.2     1.2.0             PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.
drupal/coder                         8.3.8     8.3.9             Coder is a library to review Drupal code.
drupal/core                          8.9.x-dev 8.9.x-dev 682bd3c Drupal is an open source content management platform powering millions of websites and applications.
drupal/core-project-message          8.9.x-dev 8.9.x-dev e9a4155 Adds a message after Composer installation.
drupal/core-vendor-hardening         8.9.x-dev 8.9.x-dev 39beb55 Hardens the vendor directory for when it's in the docroot.
fabpot/goutte                        v3.2.3    v3.3.0            A simple PHP Web Scraper
jcalderonzumba/gastonjs              v1.0.2    v1.2.0            PhantomJS API based server for webpage automation
jcalderonzumba/mink-phantomjs-driver v0.3.2    v0.3.3            PhantomJS driver for Mink framework
masterminds/html5                    2.3.0     2.7.0             An HTML5 parser and serializer.
myclabs/deep-copy                    1.7.0     1.9.5             Create deep copies (clones) of your objects
phar-io/manifest                     1.0.1     1.0.3             Component for reading phar.io manifest information from a PHP Archive (PHAR)
phpunit/phpunit-mock-objects         5.0.10    5.0.10            Mock Object library for PHPUnit
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
stack/builder                        v1.0.5    v1.0.6            Builder for stack middlewares based on HttpKernelInterface.
symfony/phpunit-bridge               v3.4.39   v3.4.40           Symfony PHPUnit Bridge
symfony/psr-http-message-bridge      v1.1.2    v1.3.0            PSR HTTP message bridge
greg.1.anderson’s picture

If we postpone this issue on #3134648: [backport, needs scheduling] Don't pin the composer/installers version in drupal/core-recommended, then we could let composer/installers bump up to its latest stable here.

hussainweb’s picture

Out of the packages I listed above, only 3 can be updated given PHP 7.0 constraints. I am attaching the patch here.

This is the relevant interdiff:

diff --git a/composer/Metapackage/CoreRecommended/composer.json b/composer/Metapackage/CoreRecommended/composer.json
index bb61b7f757..3674ca0fa9 100644
--- a/composer/Metapackage/CoreRecommended/composer.json
+++ b/composer/Metapackage/CoreRecommended/composer.json
@@ -27,7 +27,7 @@
         "laminas/laminas-feed": "2.12.2",
         "laminas/laminas-stdlib": "3.2.1",
         "laminas/laminas-zendframework-bridge": "1.0.3",
-        "masterminds/html5": "2.3.0",
+        "masterminds/html5": "2.7.0",
         "paragonie/random_compat": "v9.99.99",
         "pear/archive_tar": "1.4.9",
         "pear/console_getopt": "v1.4.3",
diff --git a/composer/Metapackage/PinnedDevDependencies/composer.json b/composer/Metapackage/PinnedDevDependencies/composer.json
index c56a9d0def..7a71b62329 100644
--- a/composer/Metapackage/PinnedDevDependencies/composer.json
+++ b/composer/Metapackage/PinnedDevDependencies/composer.json
@@ -20,8 +20,8 @@
         "drupal/coder": "8.3.8",
         "fabpot/goutte": "v3.2.3",
         "instaclick/php-webdriver": "1.4.7",
-        "jcalderonzumba/gastonjs": "v1.0.2",
-        "jcalderonzumba/mink-phantomjs-driver": "v0.3.2",
+        "jcalderonzumba/gastonjs": "v1.2.0",
+        "jcalderonzumba/mink-phantomjs-driver": "v0.3.3",
         "justinrainbow/json-schema": "5.2.9",
         "mikey179/vfsstream": "v1.6.8",
         "myclabs/deep-copy": "1.7.0",
alexpott’s picture

@hussainweb please read earlier discussions in this issue about not updating those dependencies. See #29. Re-uploading #53

Fortunately the issue summary wasn't updated for #63 so that's still correct.

hussainweb’s picture

Status: Needs review » Reviewed & tested by the community

Ah, apologies. I missed that. I only saw the discussion regarding drupal/coder. In that case, there are no other updates that can be applied and should be good for RTBC.

  • catch committed e07ea17 on 8.9.x
    Issue #3122112 by alexpott, longwave, jungle, hussainweb, catch, xjm,...
catch’s picture

Status: Reviewed & tested by the community » Fixed

Committed e07ea17 and pushed to 8.9.x. Thanks!

xjm’s picture

Issue tags: +8.9.0 release notes

Status: Fixed » Closed (fixed)

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