Problem/Motivation

Although #3584277: [random test failure] ComposerRequirementTest::testComposerInfoShown fixes a commonly occurring random fail in package_manager tests, grep shows a *lot* of other usage of State to control various stuff about package manager tests. These are are ripe for random failures, too. Let's convert all of them to KeyValue per the parent meta.

Steps to reproduce

git checkout main
cd core/modules/package_manager/tests
egrep -ir state -l | sort

Proposed resolution

Replace State with KeyValue. All of the following files inside core/modules/package_manager/tests match "state". They need investigation to rule out false positives, but it's an initial TODO list of things to check and possibly convert:

  1. ./modules/fixture_manipulator/src/FixtureManipulator.php
  2. ./modules/fixture_manipulator/src/StageFixtureManipulator.php
  3. ./modules/package_manager_bypass/src/ComposerStagerExceptionTrait.php
  4. ./modules/package_manager_bypass/src/LoggingBeginner.php
  5. ./modules/package_manager_bypass/src/LoggingCommitter.php
  6. ./modules/package_manager_bypass/src/LoggingDecoratorTrait.php
  7. ./modules/package_manager_bypass/src/MockPathLocator.php
  8. ./modules/package_manager_bypass/src/NoOpStager.php
  9. ./modules/package_manager_bypass/src/PackageManagerBypassServiceProvider.php
  10. ./modules/package_manager_test_validation/package_manager_test_validation.services.yml
  11. ./modules/package_manager_test_validation/src/EventSubscriber/TestSubscriber.php
  12. ./modules/package_manager_test_validation/src/PackageManagerTestValidationServiceProvider.php
  13. ./modules/package_manager_test_validation/src/TestExecutableFinder.php See #3584277: [random test failure] ComposerRequirementTest::testComposerInfoShown
  14. ./modules/package_manager_test_validation/src/TestSandboxDatabaseUpdatesValidator.php
  15. ./src/Kernel/DirectWriteTest.php
  16. ./src/Kernel/LockFileValidatorTest.php
  17. ./src/Kernel/PackageManagerKernelTestBase.php
  18. ./src/Kernel/PhpExtensionsValidatorTest.php
  19. ./src/Kernel/ProjectInfoTest.php
  20. ./src/Kernel/SandboxManagerBaseTest.php
  21. ./src/Kernel/StageCommitExceptionTest.php
  22. ./src/Traits/ComposerInstallersTrait.php

Remaining tasks

  1. Review above list.
  2. Any time "state" means the State service, convert to using KeyValue instead.
  3. Open MR
  4. Reviews / refinements
  5. RTBC

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet

Comments

dww created an issue. See original summary.

dww’s picture

This might be the solution to a bunch of the problems at #3508109: [random test failure] Package manager random build failures. Not calling this duplicate, but definitely related.