Related issue for Drupal 8.8/8.9: #3044175: [DO NOT COMMIT] Vendor minimum testing issue
Problem/Motivation
Since testbot only tests issues with the vendor versions in the composer lock file, we need a way to test against older vendor versions that are permitted in our composer.json in order to avoid committing code that may not work with an earlier dependency.
Proposed resolution
Keep an RTBC issue with a patch to run composer update --prefer-lowest against the codebase prior to running the test suite.
Remaining tasks
User interface changes
API changes
Data model changes
Release notes snippet
| Comment | File | Size | Author |
|---|---|---|---|
| #28 | 3104474-28.patch | 2.31 KB | longwave |
| #27 | 3104474-27.patch | 507 bytes | longwave |
| #26 | 3104474-26.patch | 259.73 KB | longwave |
| #25 | 3104474-25.patch | 259.4 KB | longwave |
| #22 | interdiff.txt | 19.56 KB | mile23 |
Comments
Comment #2
mile23Let's get things started.
Comment #3
mile23Comment #5
mile23Tons of errors like this:
We're solving it in #3020296: Remove Symfony's classloader as it does not exist in Symfony 4
Let's take the deprecation message at its word and see what happens.
Comment #7
mile23Added this version of the error message to the deprecation list.
Comment #9
mile23The log file for the last test says:
However, #3001542: Update Guzzle from 6.3.0 to 6.3.3 tells us that we need 6.3.3 or better. Change record: https://www.drupal.org/node/3001550
See also: #3104473: Use version of guzzlehttp/guzzle ^6.5.2
Comment #11
mile23Reroll after #3104473: Use version of guzzlehttp/guzzle ^6.5.2
Fail/error messages like this:
...Led me to trying to update symfony components to be 4.4.2 like they are in the lock file. But that didn't change anything.
However, updating phpspec/prophecy did yield passing tests. We have 1.9.0 in our lock file, but ^1.8 lets us pass tests with --prefer-lowest.
So here is that patch.
Comment #13
mile23After #3039611: Update core PHP dependencies for 8.8.x we use phpdocumentor/reflection-docblock 4.3.2. When we update with --prefer-lowest, it does this:
This leads to fails in some of our serialization tests, specifically:
Drupal\Tests\serialization\Unit\Normalizer\DateTimeIso8601NormalizerTestDrupal\Tests\serialization\Unit\Normalizer\DateTimeNormalizerTestDrupal\Tests\serialization\Unit\Normalizer\TimestampNormalizerTestSo here we explicitly require it at ^4. Setting at ^3 led to more failures.
Comment #15
mile23And it turns out phpdocumentor/reflection-docblock ^4 isn't right, because it leads to a bunch of fails in
Drupal\Tests\content_moderation\Unit\LatestRevisionCheckTest.This patch reverts our phpspec/prophecy spec back to ^1.7 and explicitly requires phpdocumentor/reflection-docblock ^4.1.
This suggests that phpspec/prophecy might actually be dependent on phpdocumentor/reflection-docblock ^4.1 and might need an upstream fix for their min.
Comment #16
mile23Should have left phpspec/prophecy at ^1.8 because it's a regression from #11.
Comment #18
mile23I can't repro the functional javascript fails locally, so I'm copying some of the changed constraints from #3044175-48: [DO NOT COMMIT] Vendor minimum testing issue
(behat/mink and behat/mink-goutte-driver were last updated in core/composer.json in 2015: #2578815: Upgrade behat/mink and behat/mink-goutte-driver)
Comment #20
mile23The one fail is
TestSiteApplicationTest::testInstallScript()so I've marked it incomplete with a link to #2962157: TestSiteApplicationTest requires a database despite being a unit test like its other incomplete friends in the same test class.I've related existing issues here, and we probably need a follow-up for the behat/*, instaclick/*, and phpdocumentor/* families, related to both this issue and #3044175: [DO NOT COMMIT] Vendor minimum testing issue
Comment #22
mile23Includes patch from #2962157-70: TestSiteApplicationTest requires a database despite being a unit test
Comment #25
longwaveLet's try reviving this;
composer update --prefer-loweston 9.2.x:Comment #26
longwavedrupal/core requires symfony/yaml:^4.4.19 so we need that in the root composer.json or --prefer-lowest builds us an incompatible lockfile.
Comment #27
longwaveMeh, cspell - let's try it the way #2 did.
Comment #28
longwaveWe need at least Coder 8.3.10 and cspell still bites us, so we need the new word in the dictionary.
Comment #30
longwaveWhoops, forgot I had started doing this here as well. However this might as well be closed as duplicate of #3044175: [DO NOT COMMIT] Vendor minimum testing issue, no point having two issues doing the same thing.