Problem/Motivation

Our automated tests have implicit dependencies (i.e., not documented or asserted, if even well-known) on apparently arbitrary environment configuration details, leading to tests failing in unpredictable ways depending on where they're run. The result is developers waiting for long test runs that are doomed to fail from the start and then getting cryptic and misleading error messages that don't help them identify or solve the actual problem.

Steps to reproduce

Proposed resolution

We should identify ambient or environment-level preconditions for tests to run and assert their correctness at the beginning of test test runs and exit early with helpful, explicit error messages. (Eventually, we should eliminate as many such dependencies as possible, but let's start here.)

Remaining tasks

  1. ⛔ Identify as many environment-level test dependencies
  2. ⛔ Assert their correctness at the beginning of test runs and, if unmet, fail early with clear error messages explaining how to fix the problem
  3. ⛔ Create a follow-up issue to eliminate as much of the environment-sensitivity as possible
  4. ⛔ Create a follow-up issue to ensure that there's parity between production requirements and test preconditions. (We don't want tests to require different conditions than production code!)

User interface changes

API changes

Data model changes

Original report

In #3319497-6: Build test failure on local in 8.x-2.x due to drupal core packages being added to vendor.json and #3319497-7: Build test failure on local in 8.x-2.x due to drupal core packages being added to vendor.json, we discovered that \Drupal\Tests\package_manager\Build\TemplateProjectTestBase::createVendorRepository() behaves in an environment-dependent way.

Once AU moves into Drupal core, it's unacceptable for its tests to not work on environments with certain additional packages installed in a certain way.

That'd violate the testing gate.

The patch in #3319497-6: Build test failure on local in 8.x-2.x due to drupal core packages being added to vendor.json provides momentary relief to unblock the people working on AU, but does not provide a systemic solution yet. This issue exists to do precisely that: solve it systemically. Or, at the very least, fail explicitly.

Comments

Wim Leers created an issue. See original summary.

wim leers’s picture

Title: TemplateProjectTestBase::createVendorRepository() needs to be hardened for tests to run reliably (or it must fail explicitly) » [PP-1] TemplateProjectTestBase::createVendorRepository() needs to be hardened for tests to run reliably (or it must fail explicitly)
Status: Active » Postponed

#3319507: Add symlink support to Composer Stager 2.0, require that version, and simplify UX & tests accordingly is related, and probably the solution we come up with here (or alternatively the detection logic to fail explicitly) should point to the docs that introduces. Marking this as postponed on that, because it needs to exist first for this to be a comprehensive solution. It's possible we work on both in tandem, but this should not land without #3319507: Add symlink support to Composer Stager 2.0, require that version, and simplify UX & tests accordingly being done too.

tedbow’s picture

Status: Postponed » Active

unblocked

tedbow’s picture

Title: [PP-1] TemplateProjectTestBase::createVendorRepository() needs to be hardened for tests to run reliably (or it must fail explicitly) » TemplateProjectTestBase::createVendorRepository() needs to be hardened for tests to run reliably (or it must fail explicitly)
wim leers’s picture

@tedbow: so you disagree with what I wrote in #2 — that #3319507: Add symlink support to Composer Stager 2.0, require that version, and simplify UX & tests accordingly should happen first?

wim leers’s picture

Status: Active » Needs work
StatusFileSize
new1.17 KB

Here's a start for how we could harden against this.

But I still haven't figured out what it is about #3319497: Build test failure on local in 8.x-2.x due to drupal core packages being added to vendor.json that it fixed this. So that's why I started adding debug output. Hopefully @tedbow or @Travis.Carden can continue this 🤞

traviscarden’s picture

Title: TemplateProjectTestBase::createVendorRepository() needs to be hardened for tests to run reliably (or it must fail explicitly) » Assert known preconditions for test runs and fail early if unmet
Issue summary: View changes

Updating issue title and summary.

wim leers’s picture

🤩👍

wim leers’s picture

Observations, not conclusions:

  • I was trying to run the tests on Drupal 9.4.5 (I changed to a different branch which had an additional contrib module installed through composer) and got
    $ php core/scripts/run-tests.sh --sqlite /tmp/test.sqlite --url http://core.test --module automatic_updates --types PHPUnit-Build --verbose
    
    Drupal test run
    ---------------
    
    Tests to be run:
      - Drupal\Tests\automatic_updates\Build\CoreUpdateTest
    
    Test run started:
      Wednesday, November 9, 2022 - 13:18
    
    Test summary
    ------------
    
    Drupal\Tests\automatic_updates\Build\CoreUpdateTest            0 passes   1 fails                            
    
    Test run duration: 1 min 20 sec
    
    Detailed test results
    ---------------------
    
    
    ---- Drupal\Tests\automatic_updates\Build\CoreUpdateTest ----
    
    
    Status    Group      Filename          Line Function                            
    --------------------------------------------------------------------------------
    Fail      Other      phpunit-262.xml      0 Drupal\Tests\automatic_updates\Buil
        PHPUnit Test failed to complete; Error: PHPUnit 9.5.26 by Sebastian
        Bergmann and contributors.
        
        Testing Drupal\Tests\automatic_updates\Build\CoreUpdateTest
        FFFF                                                                4 / 4
        (100%)
        
        Time: 01:19.740, Memory: 24.50 MB
        
        There were 4 failures:
        
        1) Drupal\Tests\automatic_updates\Build\CoreUpdateTest::testApi
        COMMAND: COMPOSER_MIRROR_PATH_REPOS=1 composer create-project
        drupal/recommended-project project --stability dev --repository
        '{"type":"path","url":"composer/Template/RecommendedProject"}'
        OUTPUT: 
        ERROR: Creating a "drupal/recommended-project" project at
        "./project"
        Installing drupal/recommended-project (dev-main)
          - Installing drupal/recommended-project (dev-main): Mirroring from
        composer/Template/RecommendedProject
        Created project in
        /private/tmp/build_workspace_35e9e09a172d669d2c21575e46b2f6c74Wzo5A/project
        Loading composer repositories with package information
        Updating dependencies
        Your requirements could not be resolved to an installable set of packages.
        
          Problem 1
            - Root composer.json requires drupal/core-recommended ^9.4 ->
        satisfiable by drupal/core-recommended[9.8.0].
            - drupal/core-recommended 9.8.0 requires drupal/decoupled_pages ~1.0.0
        -> could not be found in any version, there may be a typo in the package
        name.
        
        Potential causes:
         - A typo in the package name
         - The package is not available in a stable-enough version according to
        your minimum-stability setting
           see <https://getcomposer.org/doc/04-schema.md#minimum-stability>
        for more details.
         - It's a private package and you forgot to add a custom repository to
        find it
        
        Read <https://getcomposer.org/doc/articles/troubleshooting.md> for
        further common problems.
        
        
        Failed asserting that 2 matches expected 0.
        
        /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php:96
        /Users/wim.leers/core/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:317
        /Users/wim.leers/core/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:304
        /Users/wim.leers/core/modules/automatic_updates/package_manager/tests/src/Build/TemplateProjectTestBase.php:379
        /Users/wim.leers/core/modules/automatic_updates/package_manager/tests/src/Build/TemplateProjectTestBase.php:233
        /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/UpdateTestBase.php:17
        /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/CoreUpdateTest.php:39
        /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/CoreUpdateTest.php:65
        /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestResult.php:728
        /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php:673
        /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:661
        /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/Command.php:144
        /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/Command.php:97
        
        2) Drupal\Tests\automatic_updates\Build\CoreUpdateTest::testUi
        COMMAND: COMPOSER_MIRROR_PATH_REPOS=1 composer create-project
        drupal/recommended-project project --stability dev --repository
        '{"type":"path","url":"composer/Template/RecommendedProject"}'
        OUTPUT: 
        ERROR: Creating a "drupal/recommended-project" project at
        "./project"
        Installing drupal/recommended-project (dev-main)
          - Installing drupal/recommended-project (dev-main): Mirroring from
        composer/Template/RecommendedProject
        Created project in
        /private/tmp/build_workspace_c3f2c6ac4af187a449fa80d4e3f23c8c3JJVZB/project
        Loading composer repositories with package information
    Updating dependencies
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires drupal/core-recommended ^9.4 ->
    satisfiable by drupal/core-recommended[9.8.0].
        - drupal/core-recommended 9.8.0 requires drupal/decoupled_pages ~1.0.0
    -> could not be found in any version, there may be a typo in the package
    name.
    
    Potential causes:
     - A typo in the package name
     - The package is not available in a stable-enough version according to
    your minimum-stability setting
       see <https://getcomposer.org/doc/04-schema.md#minimum-stability>
    for more details.
     - It's a private package and you forgot to add a custom repository to
    find it
    
    Read <https://getcomposer.org/doc/articles/troubleshooting.md> for
    further common problems.
    
    
    Failed asserting that 2 matches expected 0.
    
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php:96
    /Users/wim.leers/core/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:317
    /Users/wim.leers/core/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:304
    /Users/wim.leers/core/modules/automatic_updates/package_manager/tests/src/Build/TemplateProjectTestBase.php:379
    /Users/wim.leers/core/modules/automatic_updates/package_manager/tests/src/Build/TemplateProjectTestBase.php:233
    /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/UpdateTestBase.php:17
    /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/CoreUpdateTest.php:39
    /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/CoreUpdateTest.php:95
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestResult.php:728
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php:673
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:661
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/Command.php:144
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/Command.php:97
    
    3) Drupal\Tests\automatic_updates\Build\CoreUpdateTest::testCron with data
    set "RecommendedProject" ('RecommendedProject')
    COMMAND: COMPOSER_MIRROR_PATH_REPOS=1 composer create-project
    drupal/recommended-project project --stability dev --repository
    '{"type":"path","url":"composer/Template/RecommendedProject"}'
    OUTPUT: 
    ERROR: Creating a "drupal/recommended-project" project at
    "./project"
    Installing drupal/recommended-project (dev-main)
      - Installing drupal/recommended-project (dev-main): Mirroring from
    composer/Template/RecommendedProject
    Created project in
    /private/tmp/build_workspace_0043a741d569e4792ddd01a5ba15601dL3o0dV/project
    Loading composer repositories with package information
    Updating dependencies
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires drupal/core-recommended ^9.4 ->
    satisfiable by drupal/core-recommended[9.8.0].
        - drupal/core-recommended 9.8.0 requires drupal/decoupled_pages ~1.0.0
    -> could not be found in any version, there may be a typo in the package
    name.
    
    Potential causes:
     - A typo in the package name
     - The package is not available in a stable-enough version according to
    your minimum-stability setting
       see <https://getcomposer.org/doc/04-schema.md#minimum-stability>
    for more details.
     - It's a private package and you forgot to add a custom repository to
    find it
    
    Read <https://getcomposer.org/doc/articles/troubleshooting.md> for
    further common problems.
    
    
    Failed asserting that 2 matches expected 0.
    
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php:96
    /Users/wim.leers/core/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:317
    /Users/wim.leers/core/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:304
    /Users/wim.leers/core/modules/automatic_updates/package_manager/tests/src/Build/TemplateProjectTestBase.php:379
    /Users/wim.leers/core/modules/automatic_updates/package_manager/tests/src/Build/TemplateProjectTestBase.php:233
    /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/UpdateTestBase.php:17
    /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/CoreUpdateTest.php:39
    /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/CoreUpdateTest.php:131
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestResult.php:728
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php:673
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php:673
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:661
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/Command.php:144
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/Command.php:97
    
    4) Drupal\Tests\automatic_updates\Build\CoreUpdateTest::testCron with data
    set "LegacyProject" ('LegacyProject')
    COMMAND: COMPOSER_MIRROR_PATH_REPOS=1 composer create-project
    drupal/legacy-project project --stability dev --repository
    '{"type":"path","url":"composer/Template/LegacyProject"}'
    OUTPUT: 
    ERROR: Creating a "drupal/legacy-project" project at
    "./project"
    Installing drupal/legacy-project (dev-main)
      - Installing drupal/legacy-project (dev-main): Mirroring from
    composer/Template/LegacyProject
    Created project in
    /private/tmp/build_workspace_127c7bea3481722e0c5660331cf29ecaV1VGDB/project
    Loading composer repositories with package information
    Updating dependencies
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires drupal/core-recommended ^9.4 ->
    satisfiable by drupal/core-recommended[9.8.0].
        - drupal/core-recommended 9.8.0 requires drupal/decoupled_pages ~1.0.0
    -> could not be found in any version, there may be a typo in the package
    name.
    
    Potential causes:
     - A typo in the package name
     - The package is not available in a stable-enough version according to
    your minimum-stability setting
       see <https://getcomposer.org/doc/04-schema.md#minimum-stability>
    for more details.
     - It's a private package and you forgot to add a custom repository to
    find it
    
    Read <https://getcomposer.org/doc/articles/troubleshooting.md> for
    further common problems.
    
    
    Failed asserting that 2 matches expected 0.
    
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php:96
    /Users/wim.leers/core/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:317
    /Users/wim.leers/core/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:304
    /Users/wim.leers/core/modules/automatic_updates/package_manager/tests/src/Build/TemplateProjectTestBase.php:379
    /Users/wim.leers/core/modules/automatic_updates/package_manager/tests/src/Build/TemplateProjectTestBase.php:233
    /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/UpdateTestBase.php:17
    /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/CoreUpdateTest.php:39
    /Users/wim.leers/core/modules/automatic_updates/tests/src/Build/CoreUpdateTest.php:131
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestResult.php:728
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php:673
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php:673
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:661
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/Command.php:144
    /Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/Command.php:97
    
    FAILURES!
    Tests: 4, Assertions: 172, Failures: 4.
    
    
  • Which interestingly yielded
    wim.leers at MacBookPro-WimLeers in ~/core on ama-9.4.5*
    $ composer info
    acquia/drupal-environment-detector             1.5.2     Provides common methods for detecting the current A...
    asm89/stack-cors                               1.3.0     Cross-origin resource sharing library and stack mid...
    behat/mink                                     v1.10.0   Browser controller/emulator abstraction for PHP
    behat/mink-selenium2-driver                    v1.6.0    Selenium2 (WebDriver) driver for Mink framework
    chi-teck/drupal-code-generator                 2.6.1     Drupal code generator
    composer/ca-bundle                             1.3.2     Lets you find a path to the system CA bundle, and i...
    composer/composer                              2.2.14    Composer helps you declare, manage and install depe...
    composer/installers                            v1.12.0   A multi-framework Composer library installer
    composer/metadata-minifier                     1.0.0     Small utility library that handles metadata minific...
    composer/pcre                                  1.0.1     PCRE wrapping library that offers type-safe preg_* ...
    composer/semver                                3.3.2     Semver library that offers utilities, version const...
    composer/spdx-licenses                         1.5.7     SPDX licenses list and validation library.
    composer/xdebug-handler                        3.0.3     Restarts a process without Xdebug.
    consolidation/annotated-command                4.5.6     Initialize Symfony Console commands from annotated ...
    consolidation/config                           2.1.1     Provide configuration services for a commandline tool.
    consolidation/filter-via-dot-access-data       2.0.2     This project uses dflydev/dot-access-data to provid...
    consolidation/log                              2.1.1     Improved Psr-3 / Psr\Log logger based on Symfony Co...
    consolidation/output-formatters                4.2.2     Format text by applying transformations provided by...
    consolidation/robo                             3.0.10    Modern task runner
    consolidation/self-update                      2.0.5     Provides a self:update command for Symfony Console ...
    consolidation/site-alias                       3.1.5     Manage alias records for local and remote sites.
    consolidation/site-process                     4.2.0     A thin wrapper around the Symfony Process Component...
    dealerdirect/phpcodesniffer-composer-installer v0.7.2    PHP_CodeSniffer Standards Composer Installer Plugin
    dflydev/dot-access-data                        v3.0.1    Given a deep data structure, access data by dot not...
    doctrine/annotations                           1.13.2    Docblock Annotations Parser
    doctrine/instantiator                          1.4.1     A small, lightweight utility to instantiate objects...
    doctrine/lexer                                 1.2.3     PHP Doctrine Lexer parser library that can be used ...
    doctrine/reflection                            1.2.3     The Doctrine Reflection project is a simple library...
    drupal/coder                                   8.3.15    Coder is a library to review Drupal code.
    drupal/core                                    9.4.x-dev Drupal is an open source content management platfor...
    drupal/core-project-message                    9.4.x-dev Adds a message after Composer installation.
    drupal/core-vendor-hardening                   9.4.x-dev Hardens the vendor directory for when it's in the d...
    drupal/decoupled_pages                         1.0.0     Provides a quick and simple way to define new Drupa...
    drupal/migmag                                  1.8.1     Toolset and utilities for Drupal migrations.
    drupal/migrate_plus                            5.3.0     Enhancements to core migration support.
    drush/drush                                    11.2.1    Drush is a command line shell and scripting interfa...
    easyrdf/easyrdf                                1.1.1     EasyRdf is a PHP library designed to make it easy t...
    egulias/email-validator                        3.2       A library for validating emails against several RFCs
    enlightn/security-checker                      v1.10.0   A PHP dependency vulnerabilities scanner based on t...
    friends-of-behat/mink-browserkit-driver        v1.5.0    Symfony2 BrowserKit driver for Mink framework
    grasmash/expander                              2.0.3     Expands internal property references in PHP arrays ...
    guzzlehttp/guzzle                              7.5.0     Guzzle is a PHP HTTP client library
    guzzlehttp/promises                            1.5.2     Guzzle promises library
    guzzlehttp/psr7                                2.4.1     PSR-7 message implementation that also provides com...
    instaclick/php-webdriver                       1.4.14    PHP WebDriver for Selenium 2
    justinrainbow/json-schema                      5.2.12    A library to validate a json schema.
    laminas/laminas-diactoros                      2.11.1    PSR HTTP Message implementations
    laminas/laminas-escaper                        2.9.0     Securely and safely escape HTML, HTML attributes, J...
    laminas/laminas-feed                           2.17.0    provides functionality for consuming RSS and Atom f...
    laminas/laminas-stdlib                         3.7.1     SPL extensions, array utilities, error handlers, an...
    league/container                               4.2.0     A fast and intuitive dependency injection container.
    league/uri                                     6.5.0     URI manipulation library
    league/uri-components                          2.4.0     URI components manipulation library
    league/uri-interfaces                          2.3.0     Common interface for URI representation
    masterminds/html5                              2.7.5     An HTML5 parser and serializer.
    mikey179/vfsstream                             v1.6.10   Virtual file system to mock the real file system in...
    myclabs/deep-copy                              1.11.0    Create deep copies (clones) of your objects
    nikic/php-parser                               v4.15.1   A PHP parser written in PHP
    pear/archive_tar                               1.4.14    Tar file management class with compression support ...
    pear/console_getopt                            v1.4.3    More info available on: http://pear.php.net/package...
    pear/pear-core-minimal                         v1.10.11  Minimal set of PEAR core files to be used as compos...
    pear/pear_exception                            v1.0.2    The PEAR Exception base class.
    phar-io/manifest                               2.0.3     Component for reading phar.io manifest information ...
    phar-io/version                                3.2.1     Library for handling version information and constr...
    phpdocumentor/reflection-common                2.2.0     Common reflection classes used by phpdocumentor to ...
    phpdocumentor/reflection-docblock              5.3.0     With this component, a library can provide support ...
    phpdocumentor/type-resolver                    1.6.1     A PSR-5 based resolver of Class names, Types and St...
    phpspec/prophecy                               v1.15.0   Highly opinionated mocking framework for PHP 5.3+
    phpspec/prophecy-phpunit                       v2.0.1    Integrating the Prophecy mocking library in PHPUnit...
    phpstan/phpdoc-parser                          1.5.1     PHPDoc parser with support for nullable, intersecti...
    phpunit/php-code-coverage                      9.2.18    Library that provides collection, processing, and r...
    phpunit/php-file-iterator                      3.0.6     FilterIterator implementation that filters files ba...
    phpunit/php-invoker                            3.1.1     Invoke callables with a timeout
    phpunit/php-text-template                      2.0.4     Simple template engine.
    phpunit/php-timer                              5.0.3     Utility class for timing
    phpunit/phpunit                                9.5.26    The PHP Unit Testing framework.
    psr/cache                                      1.0.1     Common interface for caching libraries
    psr/container                                  1.1.2     Common Container Interface (PHP FIG PSR-11)
    psr/http-client                                1.0.1     Common interface for HTTP clients
    psr/http-factory                               1.0.1     Common interfaces for PSR-7 HTTP message factories
    psr/http-message                               1.0.1     Common interface for HTTP messages
    psr/log                                        1.1.4     Common interface for logging libraries
    psy/psysh                                      v0.11.8   An interactive shell for modern PHP.
    ralouphie/getallheaders                        3.0.3     A polyfill for getallheaders.
    react/promise                                  v2.9.0    A lightweight implementation of CommonJS Promises/A...
    sebastian/cli-parser                           1.0.1     Library for parsing CLI options
    sebastian/code-unit                            1.0.8     Collection of value objects that represent the PHP ...
    sebastian/code-unit-reverse-lookup             2.0.3     Looks up which function or method a line of code be...
    sebastian/comparator                           4.0.8     Provides the functionality to compare PHP values fo...
    sebastian/complexity                           2.0.2     Library for calculating the complexity of PHP code ...
    sebastian/diff                                 4.0.4     Diff implementation
    sebastian/environment                          5.1.4     Provides functionality to handle HHVM/PHP environments
    sebastian/exporter                             4.0.5     Provides the functionality to export PHP variables ...
    sebastian/global-state                         5.0.5     Snapshotting of global state
    sebastian/lines-of-code                        1.0.3     Library for counting the lines of code in PHP sourc...
    sebastian/object-enumerator                    4.0.4     Traverses array structures and object graphs to enu...
    sebastian/object-reflector                     2.0.4     Allows reflection of object attributes, including i...
    sebastian/recursion-context                    4.0.4     Provides functionality to recursively process PHP v...
    sebastian/resource-operations                  3.0.3     Provides a list of PHP built-in functions that oper...
    sebastian/type                                 3.2.0     Collection of value objects that represent the type...
    sebastian/version                              3.0.2     Library that helps with managing the version number...
    seld/jsonlint                                  1.9.0     JSON Linter
    seld/phar-utils                                1.2.0     PHAR file format utilities, for when PHP phars you up
    sirbrillig/phpcs-variable-analysis             v2.11.3   A PHPCS sniff to detect problems with variables.
    slevomat/coding-standard                       7.2.1     Slevomat Coding Standard for PHP_CodeSniffer comple...
    squizlabs/php_codesniffer                      3.6.2     PHP_CodeSniffer tokenizes PHP, JavaScript and CSS f...
    stack/builder                                  v1.0.6    Builder for stack middleware based on HttpKernelInt...
    symfony-cmf/routing                            2.3.4     Extends the Symfony routing component for dynamic r...
    symfony/browser-kit                            v4.4.37   Simulates the behavior of a web browser, allowing y...
    symfony/console                                v4.4.45   Eases the creation of beautiful and testable comman...
    symfony/css-selector                           v4.4.37   Converts CSS selectors to XPath expressions
    symfony/debug                                  v4.4.44   Provides tools to ease debugging PHP code
    symfony/dependency-injection                   v4.4.42   Allows you to standardize and centralize the way ob...
    symfony/deprecation-contracts                  v2.5.2    A generic function and convention to trigger deprec...
    symfony/dom-crawler                            v4.4.42   Eases DOM navigation for HTML and XML documents
    symfony/error-handler                          v4.4.41   Provides tools to manage errors and ease debugging ...
    symfony/event-dispatcher                       v4.4.44   Provides tools that allow your application componen...
    symfony/event-dispatcher-contracts             v1.1.13   Generic abstractions related to dispatching event
    symfony/filesystem                             v4.4.42   Provides basic utilities for the filesystem
    symfony/finder                                 v4.4.44   Finds files and directories via an intuitive fluent...
    symfony/http-client-contracts                  v2.5.2    Generic abstractions related to HTTP clients
    symfony/http-foundation                        v4.4.41   Defines an object-oriented layer for the HTTP speci...
    symfony/http-kernel                            v4.4.42   Provides a structured process for converting a Requ...
    symfony/lock                                   v4.4.40   Creates and manages locks, a mechanism to provide e...
    symfony/mime                                   v5.4.9    Allows manipulating MIME messages
    symfony/phpunit-bridge                         v5.4.8    Provides utilities for PHPUnit, especially user dep...
    symfony/polyfill-ctype                         v1.26.0   Symfony polyfill for ctype functions
    symfony/polyfill-iconv                         v1.25.0   Symfony polyfill for the Iconv extension
    symfony/polyfill-intl-grapheme                 v1.26.0   Symfony polyfill for intl's grapheme_* functions
    symfony/polyfill-intl-idn                      v1.26.0   Symfony polyfill for intl's idn_to_ascii and idn_to...
    symfony/polyfill-intl-normalizer               v1.26.0   Symfony polyfill for intl's Normalizer class and re...
    symfony/polyfill-mbstring                      v1.26.0   Symfony polyfill for the Mbstring extension
    symfony/polyfill-php80                         v1.26.0   Symfony polyfill backporting some PHP 8.0+ features...
    symfony/process                                v4.4.44   Executes commands in sub-processes
    symfony/psr-http-message-bridge                v2.1.2    PSR HTTP message bridge
    symfony/routing                                v4.4.41   Maps an HTTP request to a set of configuration vari...
    symfony/serializer                             v4.4.42   Handles serializing and deserializing data structur...
    symfony/service-contracts                      v2.5.2    Generic abstractions related to writing services
    symfony/string                                 v5.4.13   Provides an object-oriented API to strings and deal...
    symfony/translation                            v4.4.41   Provides tools to internationalize your application
    symfony/translation-contracts                  v2.5.2    Generic abstractions related to translation
    symfony/validator                              v4.4.41   Provides tools to validate values
    symfony/var-dumper                             v5.4.13   Provides mechanisms for walking through any arbitra...
    symfony/yaml                                   v4.4.45   Loads and dumps YAML files
    theseer/tokenizer                              1.2.1     A small library for converting tokenized PHP source...
    twig/twig                                      v2.15.1   Twig, the flexible, fast, and secure template langu...
    typo3/phar-stream-wrapper                      v3.1.7    Interceptors for PHP's native phar:// stream handling
    webflo/drupal-finder                           1.2.2     Helper class to locate a Drupal installation from a...
    webmozart/assert                               1.11.0    Assertions to validate method input/output with nic...
    webmozart/path-util                            2.3.0     A robust cross-platform utility for normalizing, co...
    wim.leers at MacBookPro-WimLeers in ~/core on ama-9.4.5*
    $ composer status
    wim.leers at MacBookPro-WimLeers in ~/core on ama-9.4.5*
    $ composer status
    You have changes in the following dependencies:
    /Users/wim.leers/core/vendor/behat/mink-selenium2-driver
    /Users/wim.leers/core/vendor/composer/composer
    /Users/wim.leers/core/vendor/drupal/core-project-message
    /Users/wim.leers/core/vendor/drupal/core-vendor-hardening
    /Users/wim.leers/core/vendor/easyrdf/easyrdf
    /Users/wim.leers/core/vendor/friends-of-behat/mink-browserkit-driver
    /Users/wim.leers/core/vendor/instaclick/php-webdriver
    /Users/wim.leers/core/vendor/masterminds/html5
    /Users/wim.leers/core/vendor/mikey179/vfsstream
    /Users/wim.leers/core/vendor/pear/archive_tar
    /Users/wim.leers/core/vendor/pear/console_getopt
    /Users/wim.leers/core/vendor/squizlabs/php_codesniffer
    /Users/wim.leers/core/vendor/stack/builder
    /Users/wim.leers/core/vendor/symfony-cmf/routing
    /Users/wim.leers/core/vendor/symfony/psr-http-message-bridge
    /Users/wim.leers/core/vendor/symfony/validator
    You have version variations in the following dependencies:
    core
    /Users/wim.leers/core/vendor/drupal/core-project-message
    /Users/wim.leers/core/vendor/drupal/core-vendor-hardening
    Use --verbose (-v) to see a list of files
    wim.leers at MacBookPro-WimLeers in ~/core on ama-9.4.5*
    $ composer status -v
    You have changes in the following dependencies:
    /Users/wim.leers/core/vendor/behat/mink-selenium2-driver:
        ./tests/Selenium2Config.php
        
        ./tests/Custom/WebDriverTest.php
        
        ./tests/Custom/DesiredCapabilitiesTest.php
        
        ./tests/Custom/WindowNameTest.php
        
        ./tests/Custom/TimeoutTest.php
    /Users/wim.leers/core/vendor/composer/composer:
        ./bin/composer
        
        ./bin/compile
    /Users/wim.leers/core/vendor/drupal/core-project-message:
        /Users/wim.leers/core/vendor/drupal/core-project-message is a symbolic link.
    /Users/wim.leers/core/vendor/drupal/core-vendor-hardening:
        /Users/wim.leers/core/vendor/drupal/core-vendor-hardening is a symbolic link.
    /Users/wim.leers/core/vendor/easyrdf/easyrdf:
        ./scripts/copyright_updater.php
    /Users/wim.leers/core/vendor/friends-of-behat/mink-browserkit-driver:
        ./tests/BrowserKitConfig.php
        
        ./tests/Custom/BaseUrlTest.php
        
        ./tests/Custom/ErrorHandlingTest.php
    /Users/wim.leers/core/vendor/instaclick/php-webdriver:
        ./test/Test/WebDriver/ExceptionTest.php
        
        ./test/Test/WebDriver/StorageTest.php
        
        ./test/Test/WebDriver/WebDriverTestBase.php
        
        ./test/CI/Travis/setup_apache.sh
        
        ./test/CI/Travis/setup_selenium.sh
        
        ./test/Assets/index.html
        
        ./doc/README.md
    /Users/wim.leers/core/vendor/masterminds/html5:
        ./bin/entities.php
    /Users/wim.leers/core/vendor/mikey179/vfsstream:
        ./src/test/patches/php8-return-types.diff
        
        ./src/test/resources/filesystemcopy/withSubfolders/subfolder1/file1.txt
        
        ./src/test/resources/filesystemcopy/withSubfolders/aFile.txt
        
        ./src/test/phpt/bug71287.phpt
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperLargeFileTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperFlockTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperAlreadyRegisteredTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamDirectoryIssue18TestCase.php
        
        ./src/test/php/org/bovigo/vfs/Issue104TestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperWithoutRootTestCase.php
        
        ./src/test/php/org/bovigo/vfs/DirectoryIterationTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamAbstractContentTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamFileTestCase.php
        
        ./src/test/php/org/bovigo/vfs/QuotaTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamZipTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperFileTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperBaseTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamDirectoryIssue134TestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperQuotaTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperSetOptionTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperFileTimesTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamExLockTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamBlockTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperDirSeparatorTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamUmaskTestCase.php
        
        ./src/test/php/org/bovigo/vfs/FilenameTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamGlobTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamResolveIncludePathTestCase.php
        
        ./src/test/php/org/bovigo/vfs/UnlinkTestCase.php
        
        ./src/test/php/org/bovigo/vfs/PermissionsTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperDirTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperUnregisterTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamContainerIteratorTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperStreamSelectTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamDirectoryTestCase.php
        
        ./src/test/php/org/bovigo/vfs/proxy/vfsStreamWrapperRecordingProxy.php
        
        ./src/test/php/org/bovigo/vfs/content/StringBasedFileContentTestCase.php
        
        ./src/test/php/org/bovigo/vfs/content/LargeFileContentTestCase.php
        
        ./src/test/php/org/bovigo/vfs/visitor/vfsStreamPrintVisitorTestCase.php
        
        ./src/test/php/org/bovigo/vfs/visitor/vfsStreamStructureVisitorTestCase.php
        
        ./src/test/php/org/bovigo/vfs/visitor/vfsStreamAbstractVisitorTestCase.php
        
        ./src/test/bootstrap.php
    /Users/wim.leers/core/vendor/pear/archive_tar:
        ./tests/deadlinks.phpt
        
        ./tests/text-0.txt
        
        ./tests/relativesymlink.phpt
        
        ./tests/dirtraversal.phpt
        
        ./tests/invalidchecksum.phpt
        
        ./tests/phpt_test.php.inc
        
        ./tests/longfilename.phpt
        
        ./tests/out_of_path_symlink.tar
        
        ./tests/out_of_path_fnames.phpt
        
        ./tests/pax.phpt
        
        ./tests/invalidblock.phpt
        
        ./tests/symlink_disallow.phpt
        
        ./tests/testperms.tar
        
        ./tests/hamidTARtester2.tar
        
        ./tests/512nbytesfile.phpt
        
        ./tests/testpax.tar
        
        ./tests/setup.php.inc
        
        ./tests/longsymlinks.phpt
        
        ./tests/testsymlink.tar
        
        ./tests/symlink.phpt
        
        ./tests/relativesymlink.tar
        
        ./tests/permissions.phpt
        
        ./tests/testblock1/a.txt
        
        ./tests/testblock1/bugTriggeringPng.png
        
        ./tests/testblock3/randombytes.txt
        
        ./tests/testblock3/1024bytes.txt
        
        ./docs/Archive_Tar.txt
    /Users/wim.leers/core/vendor/pear/console_getopt:
        ./tests/bug10557.phpt
        
        ./tests/bug13140.phpt
        
        ./tests/bug11068.phpt
        
        ./tests/001-getopt.phpt
    /Users/wim.leers/core/vendor/squizlabs/php_codesniffer:
        ./tests/AllTests.php
        
        ./tests/TestSuite7.php
        
        ./tests/TestSuite.php
        
        ./tests/bootstrap.php
        
        ./tests/FileList.php
        
        ./tests/Core/AllTests.php
        
        ./tests/Core/ErrorSuppressionTest.php
        
        ./tests/Core/AbstractMethodUnitTest.php
        
        ./tests/Core/IsCamelCapsTest.php
        
        ./tests/Core/Filters/Filter/AcceptTest.xml
        
        ./tests/Core/Filters/Filter/AcceptTest.php
        
        ./tests/Core/Ruleset/RuleInclusionTest-include.xml
        
        ./tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.php
        
        ./tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.xml
        
        ./tests/Core/Ruleset/RuleInclusionTest.php
        
        ./tests/Core/Ruleset/RuleInclusionTest.xml
        
        ./tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.xml
        
        ./tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.php
        
        ./tests/Core/File/FindEndOfStatementTest.inc
        
        ./tests/Core/File/GetMemberPropertiesTest.php
        
        ./tests/Core/File/FindImplementedInterfaceNamesTest.php
        
        ./tests/Core/File/IsReferenceTest.inc
        
        ./tests/Core/File/FindImplementedInterfaceNamesTest.inc
        
        ./tests/Core/File/IsReferenceTest.php
        
        ./tests/Core/File/FindEndOfStatementTest.php
        
        ./tests/Core/File/GetMemberPropertiesTest.inc
        
        ./tests/Core/File/FindExtendedClassNameTest.php
        
        ./tests/Core/File/GetMethodPropertiesTest.php
        
        ./tests/Core/File/FindStartOfStatementTest.php
        
        ./tests/Core/File/GetMethodParametersTest.inc
        
        ./tests/Core/File/GetMethodPropertiesTest.inc
        
        ./tests/Core/File/FindExtendedClassNameTest.inc
        
        ./tests/Core/File/FindStartOfStatementTest.inc
        
        ./tests/Core/File/GetMethodParametersTest.php
        
        ./tests/Core/Tokenizer/StableCommentWhitespaceTest.php
        
        ./tests/Core/Tokenizer/AnonClassParenthesisOwnerTest.inc
        
        ./tests/Core/Tokenizer/ArrayKeywordTest.inc
        
        ./tests/Core/Tokenizer/BitwiseOrTest.php
        
        ./tests/Core/Tokenizer/NullsafeObjectOperatorTest.php
        
        ./tests/Core/Tokenizer/GotoLabelTest.inc
        
        ./tests/Core/Tokenizer/StableCommentWhitespaceWinTest.php
        
        ./tests/Core/Tokenizer/GotoLabelTest.php
        
        ./tests/Core/Tokenizer/StableCommentWhitespaceWinTest.inc
        
        ./tests/Core/Tokenizer/ArrayKeywordTest.php
        
        ./tests/Core/Tokenizer/AnonClassParenthesisOwnerTest.php
        
        ./tests/Core/Tokenizer/StableCommentWhitespaceTest.inc
        
        ./tests/Core/Tokenizer/BitwiseOrTest.inc
        
        ./tests/Core/Tokenizer/NullsafeObjectOperatorTest.inc
        
        ./tests/Core/Tokenizer/DefaultKeywordTest.php
        
        ./tests/Core/Tokenizer/ShortArrayTest.inc
        
        ./tests/Core/Tokenizer/FinallyTest.inc
        
        ./tests/Core/Tokenizer/DoubleArrowTest.inc
        
        ./tests/Core/Tokenizer/ScopeSettingWithNamespaceOperatorTest.inc
        
        ./tests/Core/Tokenizer/NamedFunctionCallArgumentsTest.inc
        
        ./tests/Core/Tokenizer/AttributesTest.php
        
        ./tests/Core/Tokenizer/UndoNamespacedNameSingleTokenTest.php
        
        ./tests/Core/Tokenizer/BackfillFnTokenTest.inc
        
        ./tests/Core/Tokenizer/BackfillMatchTokenTest.inc
        
        ./tests/Core/Tokenizer/BackfillNumericSeparatorTest.php
        
        ./tests/Core/Tokenizer/AttributesTest.inc
        
        ./tests/Core/Tokenizer/BackfillMatchTokenTest.php
        
        ./tests/Core/Tokenizer/BackfillFnTokenTest.php
        
        ./tests/Core/Tokenizer/UndoNamespacedNameSingleTokenTest.inc
        
        ./tests/Core/Tokenizer/BackfillNumericSeparatorTest.inc
        
        ./tests/Core/Tokenizer/DefaultKeywordTest.inc
        
        ./tests/Core/Tokenizer/FinallyTest.php
        
        ./tests/Core/Tokenizer/ShortArrayTest.php
        
        ./tests/Core/Tokenizer/NamedFunctionCallArgumentsTest.php
        
        ./tests/Core/Tokenizer/ScopeSettingWithNamespaceOperatorTest.php
        
        ./tests/Core/Tokenizer/DoubleArrowTest.php
        
        ./tests/Core/Autoloader/TestFiles/Sub/C.inc
        
        ./tests/Core/Autoloader/TestFiles/B.inc
        
        ./tests/Core/Autoloader/TestFiles/C.inc
        
        ./tests/Core/Autoloader/TestFiles/A.inc
        
        ./tests/Core/Autoloader/DetermineLoadedClassTest.php
        
        ./tests/Core/Sniffs/AbstractArraySniffTestable.php
        
        ./tests/Core/Sniffs/AbstractArraySniffTest.php
        
        ./tests/Core/Sniffs/AbstractArraySniffTest.inc
        
        ./tests/Standards/AllSniffs.php
        
        ./tests/Standards/AbstractSniffUnitTest.php
        
        ./CodeSniffer.conf
    /Users/wim.leers/core/vendor/stack/builder:
        ./tests/unit/Stack/StackedHttpKernelTest.php
        
        ./tests/unit/Stack/BuilderTest.php
        
        ./tests/bootstrap.php
        
        ./tests/functional/ApplicationTest.php
    /Users/wim.leers/core/vendor/symfony-cmf/routing:
        ./tests/Unit/Candidates/CandidatesTest.php
        
        ./tests/Unit/Enhancer/RouteObject.php
        
        ./tests/Unit/Enhancer/RouteContentEnhancerTest.php
        
        ./tests/Unit/Enhancer/FieldPresenceEnhancerTest.php
        
        ./tests/Unit/Enhancer/FieldMapEnhancerTest.php
        
        ./tests/Unit/Enhancer/FieldByClassEnhancerTest.php
        
        ./tests/Unit/Enhancer/ContentRepositoryEnhancerTest.php
        
        ./tests/Unit/NestedMatcher/UrlMatcherTest.php
        
        ./tests/Unit/NestedMatcher/NestedMatcherTest.php
        
        ./tests/Unit/Routing/ContentAwareGeneratorTest.php
        
        ./tests/Unit/Routing/RouteMock.php
        
        ./tests/Unit/Routing/ChainRouterTest.php
        
        ./tests/Unit/Routing/PagedRouteCollectionTest.php
        
        ./tests/Unit/Routing/DynamicRouterTest.php
        
        ./tests/Unit/Routing/LazyRouteCollectionTest.php
        
        ./tests/Unit/Routing/ProviderBasedGeneratorTest.php
        
        ./tests/Unit/DependencyInjection/Compiler/RegisterRouteEnhancersPassTest.php
        
        ./tests/Unit/DependencyInjection/Compiler/RegisterRoutersPassTest.php
    /Users/wim.leers/core/vendor/symfony/psr-http-message-bridge:
        ./Tests/Fixtures/App/Controller/PsrRequestController.php
        
        ./Tests/Fixtures/App/Kernel44.php
        
        ./Tests/Fixtures/App/Kernel.php
        
        ./Tests/Fixtures/Response.php
        
        ./Tests/Fixtures/Stream.php
        
        ./Tests/Fixtures/Uri.php
        
        ./Tests/Fixtures/UploadedFile.php
        
        ./Tests/Fixtures/ServerRequest.php
        
        ./Tests/Fixtures/Message.php
        
        ./Tests/Functional/ControllerTest.php
        
        ./Tests/Functional/CovertTest.php
        
        ./Tests/Factory/AbstractHttpMessageFactoryTest.php
        
        ./Tests/Factory/HttpFoundationFactoryTest.php
        
        ./Tests/Factory/PsrHttpFactoryTest.php
        
        ./Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php
        
        ./Tests/EventListener/PsrResponseListenerTest.php
    /Users/wim.leers/core/vendor/symfony/validator:
        ./Resources/translations/validators.mn.xlf
        
        ./Resources/translations/validators.my.xlf
        
        ./Resources/translations/validators.nb.xlf
        
        ./Resources/translations/validators.az.xlf
        
        ./Resources/translations/validators.tl.xlf
        
        ./Resources/translations/validators.cs.xlf
        
        ./Resources/translations/validators.uk.xlf
        
        ./Resources/translations/validators.sr_Latn.xlf
        
        ./Resources/translations/validators.bg.xlf
        
        ./Resources/translations/validators.bs.xlf
        
        ./Resources/translations/validators.uz.xlf
        
        ./Resources/translations/validators.th.xlf
        
        ./Resources/translations/validators.ca.xlf
        
        ./Resources/translations/validators.be.xlf
        
        ./Resources/translations/validators.sk.xlf
        
        ./Resources/translations/validators.ro.xlf
        
        ./Resources/translations/validators.pt_BR.xlf
        
        ./Resources/translations/validators.id.xlf
        
        ./Resources/translations/validators.hu.xlf
        
        ./Resources/translations/validators.fi.xlf
        
        ./Resources/translations/validators.da.xlf
        
        ./Resources/translations/validators.gl.xlf
        
        ./Resources/translations/validators.es.xlf
        
        ./Resources/translations/validators.it.xlf
        
        ./Resources/translations/validators.sl.xlf
        
        ./Resources/translations/validators.de.xlf
        
        ./Resources/translations/validators.et.xlf
        
        ./Resources/translations/validators.pt.xlf
        
        ./Resources/translations/validators.eu.xlf
        
        ./Resources/translations/validators.hr.xlf
        
        ./Resources/translations/validators.he.xlf
        
        ./Resources/translations/validators.zh_CN.xlf
        
        ./Resources/translations/validators.en.xlf
        
        ./Resources/translations/validators.ja.xlf
        
        ./Resources/translations/validators.el.xlf
        
        ./Resources/translations/validators.sv.xlf
        
        ./Resources/translations/validators.pl.xlf
        
        ./Resources/translations/validators.fa.xlf
        
        ./Resources/translations/validators.hy.xlf
        
        ./Resources/translations/validators.fr.xlf
        
        ./Resources/translations/validators.zh_TW.xlf
        
        ./Resources/translations/validators.sr_Cyrl.xlf
        
        ./Resources/translations/validators.sq.xlf
        
        ./Resources/translations/validators.ru.xlf
        
        ./Resources/translations/validators.lt.xlf
        
        ./Resources/translations/validators.tr.xlf
        
        ./Resources/translations/validators.ar.xlf
        
        ./Resources/translations/validators.lb.xlf
        
        ./Resources/translations/validators.cy.xlf
        
        ./Resources/translations/validators.af.xlf
        
        ./Resources/translations/validators.lv.xlf
        
        ./Resources/translations/validators.nl.xlf
        
        ./Resources/translations/validators.nn.xlf
        
        ./Resources/translations/validators.vi.xlf
        
        ./Resources/translations/validators.no.xlf
    You have version variations in the following dependencies:
    core:
        From 9.4.x-dev to 9.4.x-dev
    /Users/wim.leers/core/vendor/drupal/core-project-message:
        From 9.4.x-dev to 9.4.x-dev
    /Users/wim.leers/core/vendor/drupal/core-vendor-hardening:
        From 9.4.x-dev to 9.4.x-dev
    

    as output.

  • I then switched back to 9.5.x (plain 9.5, with just the AU dependencies added), and got:
    wim.leers at MacBookPro-WimLeers in ~/core on ama-9.4.5*
    $ git checkout 9.5.x
    Switched to branch '9.5.x'
    Your branch and 'origin/9.5.x' have diverged,
    and have 3 and 10 different commits each, respectively.
      (use "git pull" to merge the remote branch into yours)
    php core/scripts/run-tests.sh --sqlite /tmp/test.sqlite --url http://core.test --module automatic_updates --types PHPUnit-Build --verbose
    
    Drupal test run
    ---------------
    
    Tests to be run:
      - Drupal\Tests\automatic_updates\Build\CoreUpdateTest
    
    Test run started:
      Wednesday, November 9, 2022 - 13:21
    
    Test summary
    ------------
    
    Drupal\Tests\automatic_updates\Build\CoreUpdateTest            0 passes   1 fails                            
    
    Test run duration: 1 min 16 sec
    
    Detailed test results
    ---------------------
    
    
    ---- Drupal\Tests\automatic_updates\Build\CoreUpdateTest ----
    
    
    Status    Group      Filename          Line Function                            
    --------------------------------------------------------------------------------
    Fail      Other      phpunit-263.xml      0 Drupal\Tests\automatic_updates\Buil
        PHPUnit Test failed to complete; Error: PHPUnit 9.5.26 by Sebastian
        Bergmann and contributors.
        
        Testing Drupal\Tests\automatic_updates\Build\CoreUpdateTest
        FFFF                                                                4 / 4
        (100%)
        
        Time: 01:15.660, Memory: 24.50 MB
        
        There were 4 failures:
        
        1) Drupal\Tests\automatic_updates\Build\CoreUpdateTest::testApi
        COMMAND: COMPOSER_MIRROR_PATH_REPOS=1 composer create-project
        drupal/recommended-project project --stability dev --repository
        '{"type":"path","url":"composer/Template/RecommendedProject"}'
        OUTPUT: 
        ERROR: Creating a "drupal/recommended-project" project at
        "./project"
        Installing drupal/recommended-project (dev-main)
          - Installing drupal/recommended-project (dev-main): Mirroring from
        composer/Template/RecommendedProject
        Created project in
        /private/tmp/build_workspace_866b83efb44a625cd675bfa2b9338033D0nsX1/project
        Loading composer repositories with package information
        Updating dependencies
        Your requirements could not be resolved to an installable set of packages.
        
          Problem 1
            - Root composer.json requires drupal/core-recommended ^9.5 ->
        satisfiable by drupal/core-recommended[9.8.0].
            - drupal/core-recommended 9.8.0 requires composer/ca-bundle ~1.3.3
        -> found composer/ca-bundle[1.3.2] but it does not match the constraint.
          Problem 2
            - Root composer.json requires drupal/core-dev ^9.5 -> satisfiable by
        drupal/core-dev[9.8.0].
            - drupal/core-dev 9.8.0 requires mikey179/vfsstream ^1.6.11 -> found
        mikey179/vfsstream[v1.6.10] but it does not match the constraint.
        
        
        
        Failed asserting that 2 matches expected 0.
        
    ✁
    

    and

    wim.leers at MacBookPro-WimLeers in ~/core on 9.5.x*
    $ composer status -v
    You have changes in the following dependencies:
    /Users/wim.leers/core/vendor/behat/mink-selenium2-driver:
        ./tests/Selenium2Config.php
        
        ./tests/Custom/WebDriverTest.php
        
        ./tests/Custom/DesiredCapabilitiesTest.php
        
        ./tests/Custom/WindowNameTest.php
        
        ./tests/Custom/TimeoutTest.php
    /Users/wim.leers/core/vendor/composer/composer:
        ./bin/composer
        
        ./bin/compile
    /Users/wim.leers/core/vendor/drupal/core-project-message:
        /Users/wim.leers/core/vendor/drupal/core-project-message is a symbolic link.
    /Users/wim.leers/core/vendor/drupal/core-vendor-hardening:
        /Users/wim.leers/core/vendor/drupal/core-vendor-hardening is a symbolic link.
    /Users/wim.leers/core/vendor/easyrdf/easyrdf:
    ✁
    You have version variations in the following dependencies:
    core:
        From 9.4.x-dev to 9.5.x-dev
    /Users/wim.leers/core/vendor/drupal/core-project-message:
        From 9.4.x-dev to 9.5.x-dev
    /Users/wim.leers/core/vendor/drupal/core-vendor-hardening:
        From 9.4.x-dev to 9.5.x-dev
    
  • Silly, I switched branches without doing composer install! Let's do that:
    wim.leers at MacBookPro-WimLeers in ~/core on 9.5.x*
    $ composer install
    > Drupal\Composer\Composer::ensureComposerVersion
    Installing dependencies from lock file (including require-dev)
    Verifying lock file contents can be installed on current platform.
    Package operations: 3 installs, 34 updates, 28 removals
      - Removing webmozart/path-util (2.3.0)
      - Removing webflo/drupal-finder (1.2.2)
      - Removing symfony/string (v5.4.13)
      - Removing symfony/polyfill-intl-grapheme (v1.26.0)
      - Removing psy/psysh (v0.11.8)
      - Removing psr/http-client (1.0.1)
      - Removing league/uri-interfaces (2.3.0)
      - Removing league/uri-components (2.4.0)
      - Removing league/uri (6.5.0)
      - Removing league/container (4.2.0)
      - Removing grasmash/expander (2.0.3)
      - Removing enlightn/security-checker (v1.10.0)
      - Removing drush/drush (11.2.1)
      - Removing drupal/migrate_plus (5.3.0)
      - Removing drupal/migmag (1.8.1)
      - Removing drupal/decoupled_pages (1.0.0)
      - Removing dflydev/dot-access-data (v3.0.1)
      - Removing consolidation/site-process (4.2.0)
      - Removing consolidation/site-alias (3.1.5)
      - Removing consolidation/self-update (2.0.5)
      - Removing consolidation/robo (3.0.10)
      - Removing consolidation/output-formatters (4.2.2)
      - Removing consolidation/log (2.1.1)
      - Removing consolidation/filter-via-dot-access-data (2.0.2)
      - Removing consolidation/config (2.1.1)
      - Removing consolidation/annotated-command (4.5.6)
      - Removing chi-teck/drupal-code-generator (2.6.1)
      - Removing acquia/drupal-environment-detector (1.5.2)
     14/28 [==============>-------------]  50%Deleting modules/contrib/decoupled_pages - deleted
    Deleting modules/contrib/migrate_plus - deleted
     26/28 [==========================>-]  92%Deleting modules/contrib/migmag - deleted
      - Upgrading drupal/core-project-message (9.4.x-dev => 9.5.x-dev): Source already present
      - Upgrading drupal/core-vendor-hardening (9.4.x-dev => 9.5.x-dev): Source already present
      - Upgrading instaclick/php-webdriver (1.4.14 => 1.4.15): Extracting archive
    ✁
    

    now I get:

    wim.leers at MacBookPro-WimLeers in ~/core on 9.5.x*
    $ composer status
    You have changes in the following dependencies:
    /Users/wim.leers/core/vendor/behat/mink-selenium2-driver
    /Users/wim.leers/core/vendor/composer/composer
    /Users/wim.leers/core/vendor/drupal/core-project-message
    /Users/wim.leers/core/vendor/drupal/core-vendor-hardening
    /Users/wim.leers/core/vendor/easyrdf/easyrdf
    /Users/wim.leers/core/vendor/friends-of-behat/mink-browserkit-driver
    /Users/wim.leers/core/vendor/instaclick/php-webdriver
    /Users/wim.leers/core/vendor/masterminds/html5
    /Users/wim.leers/core/vendor/mikey179/vfsstream
    /Users/wim.leers/core/vendor/pear/archive_tar
    /Users/wim.leers/core/vendor/pear/console_getopt
    /Users/wim.leers/core/vendor/squizlabs/php_codesniffer
    /Users/wim.leers/core/vendor/stack/builder
    /Users/wim.leers/core/vendor/symfony-cmf/routing
    /Users/wim.leers/core/vendor/symfony/psr-http-message-bridge
    /Users/wim.leers/core/vendor/symfony/validator
    You have version variations in the following dependencies:
    core
    /Users/wim.leers/core/vendor/drupal/core-project-message
    /Users/wim.leers/core/vendor/drupal/core-vendor-hardening
    Use --verbose (-v) to see a list of files
    wim.leers at MacBookPro-WimLeers in ~/core on 9.5.x*
    $ composer status -v
    You have changes in the following dependencies:
    /Users/wim.leers/core/vendor/behat/mink-selenium2-driver:
        ./tests/Selenium2Config.php
        
        ./tests/Custom/WebDriverTest.php
        
        ./tests/Custom/DesiredCapabilitiesTest.php
        
        ./tests/Custom/WindowNameTest.php
        
        ./tests/Custom/TimeoutTest.php
    /Users/wim.leers/core/vendor/composer/composer:
        ./bin/composer
        
        ./bin/compile
    /Users/wim.leers/core/vendor/drupal/core-project-message:
        /Users/wim.leers/core/vendor/drupal/core-project-message is a symbolic link.
    /Users/wim.leers/core/vendor/drupal/core-vendor-hardening:
        /Users/wim.leers/core/vendor/drupal/core-vendor-hardening is a symbolic link.
    /Users/wim.leers/core/vendor/easyrdf/easyrdf:
        ./scripts/copyright_updater.php
    /Users/wim.leers/core/vendor/friends-of-behat/mink-browserkit-driver:
        ./tests/BrowserKitConfig.php
        
        ./tests/Custom/BaseUrlTest.php
        
        ./tests/Custom/ErrorHandlingTest.php
    /Users/wim.leers/core/vendor/instaclick/php-webdriver:
        ./test/Test/WebDriver/ExceptionTest.php
        
        ./test/Test/WebDriver/StorageTest.php
        
        ./test/Test/WebDriver/WebDriverTestBase.php
        
        ./test/CI/Travis/setup_apache.sh
        
        ./test/CI/Travis/setup_selenium.sh
        
        ./test/Assets/index.html
        
        ./doc/README.md
    /Users/wim.leers/core/vendor/masterminds/html5:
        ./bin/entities.php
    /Users/wim.leers/core/vendor/mikey179/vfsstream:
        ./src/test/patches/php8-return-types.diff
        
        ./src/test/resources/filesystemcopy/withSubfolders/subfolder1/file1.txt
        
        ./src/test/resources/filesystemcopy/withSubfolders/aFile.txt
        
        ./src/test/phpt/bug71287.phpt
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperLargeFileTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperFlockTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperAlreadyRegisteredTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamDirectoryIssue18TestCase.php
        
        ./src/test/php/org/bovigo/vfs/Issue104TestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperWithoutRootTestCase.php
        
        ./src/test/php/org/bovigo/vfs/DirectoryIterationTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamAbstractContentTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamFileTestCase.php
        
        ./src/test/php/org/bovigo/vfs/QuotaTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamZipTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperFileTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperBaseTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamDirectoryIssue134TestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperQuotaTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperSetOptionTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperFileTimesTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamExLockTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamBlockTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperDirSeparatorTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamUmaskTestCase.php
        
        ./src/test/php/org/bovigo/vfs/FilenameTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamGlobTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamResolveIncludePathTestCase.php
        
        ./src/test/php/org/bovigo/vfs/UnlinkTestCase.php
        
        ./src/test/php/org/bovigo/vfs/PermissionsTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperDirTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperUnregisterTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamContainerIteratorTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamWrapperStreamSelectTestCase.php
        
        ./src/test/php/org/bovigo/vfs/vfsStreamDirectoryTestCase.php
        
        ./src/test/php/org/bovigo/vfs/proxy/vfsStreamWrapperRecordingProxy.php
        
        ./src/test/php/org/bovigo/vfs/content/StringBasedFileContentTestCase.php
        
        ./src/test/php/org/bovigo/vfs/content/LargeFileContentTestCase.php
        
        ./src/test/php/org/bovigo/vfs/visitor/vfsStreamPrintVisitorTestCase.php
        
        ./src/test/php/org/bovigo/vfs/visitor/vfsStreamStructureVisitorTestCase.php
        
        ./src/test/php/org/bovigo/vfs/visitor/vfsStreamAbstractVisitorTestCase.php
        
        ./src/test/bootstrap.php
    /Users/wim.leers/core/vendor/pear/archive_tar:
        ./tests/deadlinks.phpt
        
        ./tests/text-0.txt
        
        ./tests/relativesymlink.phpt
        
        ./tests/dirtraversal.phpt
        
        ./tests/invalidchecksum.phpt
        
        ./tests/phpt_test.php.inc
        
        ./tests/longfilename.phpt
        
        ./tests/out_of_path_symlink.tar
        
        ./tests/out_of_path_fnames.phpt
        
        ./tests/pax.phpt
        
        ./tests/invalidblock.phpt
        
        ./tests/symlink_disallow.phpt
        
        ./tests/testperms.tar
        
        ./tests/hamidTARtester2.tar
        
        ./tests/512nbytesfile.phpt
        
        ./tests/testpax.tar
        
        ./tests/setup.php.inc
        
        ./tests/longsymlinks.phpt
        
        ./tests/testsymlink.tar
        
        ./tests/symlink.phpt
        
        ./tests/relativesymlink.tar
        
        ./tests/permissions.phpt
        
        ./tests/testblock1/a.txt
        
        ./tests/testblock1/bugTriggeringPng.png
        
        ./tests/testblock3/randombytes.txt
        
        ./tests/testblock3/1024bytes.txt
        
        ./docs/Archive_Tar.txt
    /Users/wim.leers/core/vendor/pear/console_getopt:
        ./tests/bug10557.phpt
        
        ./tests/bug13140.phpt
        
        ./tests/bug11068.phpt
        
        ./tests/001-getopt.phpt
    /Users/wim.leers/core/vendor/squizlabs/php_codesniffer:
        ./tests/AllTests.php
        
        ./tests/TestSuite7.php
        
        ./tests/TestSuite.php
        
        ./tests/bootstrap.php
        
        ./tests/FileList.php
        
        ./tests/Core/AllTests.php
        
        ./tests/Core/ErrorSuppressionTest.php
        
        ./tests/Core/AbstractMethodUnitTest.php
        
        ./tests/Core/IsCamelCapsTest.php
        
        ./tests/Core/Filters/Filter/AcceptTest.xml
        
        ./tests/Core/Filters/Filter/AcceptTest.php
        
        ./tests/Core/Ruleset/RuleInclusionTest-include.xml
        
        ./tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.php
        
        ./tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.xml
        
        ./tests/Core/Ruleset/RuleInclusionTest.php
        
        ./tests/Core/Ruleset/RuleInclusionTest.xml
        
        ./tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.xml
        
        ./tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.php
        
        ./tests/Core/File/FindEndOfStatementTest.inc
        
        ./tests/Core/File/GetMemberPropertiesTest.php
        
        ./tests/Core/File/FindImplementedInterfaceNamesTest.php
        
        ./tests/Core/File/IsReferenceTest.inc
        
        ./tests/Core/File/FindImplementedInterfaceNamesTest.inc
        
        ./tests/Core/File/IsReferenceTest.php
        
        ./tests/Core/File/FindEndOfStatementTest.php
        
        ./tests/Core/File/GetMemberPropertiesTest.inc
        
        ./tests/Core/File/FindExtendedClassNameTest.php
        
        ./tests/Core/File/GetMethodPropertiesTest.php
        
        ./tests/Core/File/FindStartOfStatementTest.php
        
        ./tests/Core/File/GetMethodParametersTest.inc
        
        ./tests/Core/File/GetMethodPropertiesTest.inc
        
        ./tests/Core/File/FindExtendedClassNameTest.inc
        
        ./tests/Core/File/FindStartOfStatementTest.inc
        
        ./tests/Core/File/GetMethodParametersTest.php
        
        ./tests/Core/Tokenizer/StableCommentWhitespaceTest.php
        
        ./tests/Core/Tokenizer/AnonClassParenthesisOwnerTest.inc
        
        ./tests/Core/Tokenizer/ArrayKeywordTest.inc
        
        ./tests/Core/Tokenizer/ContextSensitiveKeywordsTest.php
        
        ./tests/Core/Tokenizer/BitwiseOrTest.php
        
        ./tests/Core/Tokenizer/NullsafeObjectOperatorTest.php
        
        ./tests/Core/Tokenizer/GotoLabelTest.inc
        
        ./tests/Core/Tokenizer/StableCommentWhitespaceWinTest.php
        
        ./tests/Core/Tokenizer/BackfillExplicitOctalNotationTest.php
        
        ./tests/Core/Tokenizer/BackfillEnumTest.php
        
        ./tests/Core/Tokenizer/GotoLabelTest.php
        
        ./tests/Core/Tokenizer/StableCommentWhitespaceWinTest.inc
        
        ./tests/Core/Tokenizer/BackfillExplicitOctalNotationTest.inc
        
        ./tests/Core/Tokenizer/BackfillEnumTest.inc
        
        ./tests/Core/Tokenizer/ArrayKeywordTest.php
        
        ./tests/Core/Tokenizer/AnonClassParenthesisOwnerTest.php
        
        ./tests/Core/Tokenizer/StableCommentWhitespaceTest.inc
        
        ./tests/Core/Tokenizer/BitwiseOrTest.inc
        
        ./tests/Core/Tokenizer/ContextSensitiveKeywordsTest.inc
        
        ./tests/Core/Tokenizer/NullsafeObjectOperatorTest.inc
        
        ./tests/Core/Tokenizer/DefaultKeywordTest.php
        
        ./tests/Core/Tokenizer/BackfillReadonlyTest.inc
        
        ./tests/Core/Tokenizer/ShortArrayTest.inc
        
        ./tests/Core/Tokenizer/FinallyTest.inc
        
        ./tests/Core/Tokenizer/DoubleQuotedStringTest.inc
        
        ./tests/Core/Tokenizer/DoubleArrowTest.inc
        
        ./tests/Core/Tokenizer/ScopeSettingWithNamespaceOperatorTest.inc
        
        ./tests/Core/Tokenizer/NamedFunctionCallArgumentsTest.inc
        
        ./tests/Core/Tokenizer/EnumCaseTest.php
        
        ./tests/Core/Tokenizer/AttributesTest.php
        
        ./tests/Core/Tokenizer/UndoNamespacedNameSingleTokenTest.php
        
        ./tests/Core/Tokenizer/TypeIntersectionTest.inc
        
        ./tests/Core/Tokenizer/BackfillFnTokenTest.inc
        
        ./tests/Core/Tokenizer/BackfillMatchTokenTest.inc
        
        ./tests/Core/Tokenizer/BackfillNumericSeparatorTest.php
        
        ./tests/Core/Tokenizer/AttributesTest.inc
        
        ./tests/Core/Tokenizer/EnumCaseTest.inc
        
        ./tests/Core/Tokenizer/BackfillMatchTokenTest.php
        
        ./tests/Core/Tokenizer/BackfillFnTokenTest.php
        
        ./tests/Core/Tokenizer/TypeIntersectionTest.php
        
        ./tests/Core/Tokenizer/UndoNamespacedNameSingleTokenTest.inc
        
        ./tests/Core/Tokenizer/BackfillNumericSeparatorTest.inc
        
        ./tests/Core/Tokenizer/DefaultKeywordTest.inc
        
        ./tests/Core/Tokenizer/DoubleQuotedStringTest.php
        
        ./tests/Core/Tokenizer/FinallyTest.php
        
        ./tests/Core/Tokenizer/BackfillReadonlyTest.php
        
        ./tests/Core/Tokenizer/ShortArrayTest.php
        
        ./tests/Core/Tokenizer/NamedFunctionCallArgumentsTest.php
        
        ./tests/Core/Tokenizer/ScopeSettingWithNamespaceOperatorTest.php
        
        ./tests/Core/Tokenizer/DoubleArrowTest.php
        
        ./tests/Core/Autoloader/TestFiles/Sub/C.inc
        
        ./tests/Core/Autoloader/TestFiles/B.inc
        
        ./tests/Core/Autoloader/TestFiles/C.inc
        
        ./tests/Core/Autoloader/TestFiles/A.inc
        
        ./tests/Core/Autoloader/DetermineLoadedClassTest.php
        
        ./tests/Core/Sniffs/AbstractArraySniffTestable.php
        
        ./tests/Core/Sniffs/AbstractArraySniffTest.php
        
        ./tests/Core/Sniffs/AbstractArraySniffTest.inc
        
        ./tests/Standards/AllSniffs.php
        
        ./tests/Standards/AbstractSniffUnitTest.php
        
        ./CodeSniffer.conf
    /Users/wim.leers/core/vendor/stack/builder:
        ./tests/unit/Stack/StackedHttpKernelTest.php
        
        ./tests/unit/Stack/BuilderTest.php
        
        ./tests/bootstrap.php
        
        ./tests/functional/ApplicationTest.php
    /Users/wim.leers/core/vendor/symfony-cmf/routing:
        ./tests/Unit/Candidates/CandidatesTest.php
        
        ./tests/Unit/Enhancer/RouteObject.php
        
        ./tests/Unit/Enhancer/RouteContentEnhancerTest.php
        
        ./tests/Unit/Enhancer/FieldPresenceEnhancerTest.php
        
        ./tests/Unit/Enhancer/FieldMapEnhancerTest.php
        
        ./tests/Unit/Enhancer/FieldByClassEnhancerTest.php
        
        ./tests/Unit/Enhancer/ContentRepositoryEnhancerTest.php
        
        ./tests/Unit/NestedMatcher/UrlMatcherTest.php
        
        ./tests/Unit/NestedMatcher/NestedMatcherTest.php
        
        ./tests/Unit/Routing/ContentAwareGeneratorTest.php
        
        ./tests/Unit/Routing/RouteMock.php
        
        ./tests/Unit/Routing/ChainRouterTest.php
        
        ./tests/Unit/Routing/PagedRouteCollectionTest.php
        
        ./tests/Unit/Routing/DynamicRouterTest.php
        
        ./tests/Unit/Routing/LazyRouteCollectionTest.php
        
        ./tests/Unit/Routing/ProviderBasedGeneratorTest.php
        
        ./tests/Unit/DependencyInjection/Compiler/RegisterRouteEnhancersPassTest.php
        
        ./tests/Unit/DependencyInjection/Compiler/RegisterRoutersPassTest.php
    /Users/wim.leers/core/vendor/symfony/psr-http-message-bridge:
        ./Tests/Fixtures/App/Controller/PsrRequestController.php
        
        ./Tests/Fixtures/App/Kernel44.php
        
        ./Tests/Fixtures/App/Kernel.php
        
        ./Tests/Fixtures/Response.php
        
        ./Tests/Fixtures/Stream.php
        
        ./Tests/Fixtures/Uri.php
        
        ./Tests/Fixtures/UploadedFile.php
        
        ./Tests/Fixtures/ServerRequest.php
        
        ./Tests/Fixtures/Message.php
        
        ./Tests/Functional/ControllerTest.php
        
        ./Tests/Functional/CovertTest.php
        
        ./Tests/Factory/AbstractHttpMessageFactoryTest.php
        
        ./Tests/Factory/HttpFoundationFactoryTest.php
        
        ./Tests/Factory/PsrHttpFactoryTest.php
        
        ./Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php
        
        ./Tests/EventListener/PsrResponseListenerTest.php
    /Users/wim.leers/core/vendor/symfony/validator:
        ./Resources/translations/validators.mn.xlf
        
        ./Resources/translations/validators.my.xlf
        
        ./Resources/translations/validators.nb.xlf
        
        ./Resources/translations/validators.az.xlf
        
        ./Resources/translations/validators.tl.xlf
        
        ./Resources/translations/validators.cs.xlf
        
        ./Resources/translations/validators.uk.xlf
        
        ./Resources/translations/validators.sr_Latn.xlf
        
        ./Resources/translations/validators.bg.xlf
        
        ./Resources/translations/validators.bs.xlf
        
        ./Resources/translations/validators.uz.xlf
        
        ./Resources/translations/validators.th.xlf
        
        ./Resources/translations/validators.ca.xlf
        
        ./Resources/translations/validators.be.xlf
        
        ./Resources/translations/validators.sk.xlf
        
        ./Resources/translations/validators.ro.xlf
        
        ./Resources/translations/validators.pt_BR.xlf
        
        ./Resources/translations/validators.id.xlf
        
        ./Resources/translations/validators.hu.xlf
        
        ./Resources/translations/validators.fi.xlf
        
        ./Resources/translations/validators.da.xlf
        
        ./Resources/translations/validators.gl.xlf
        
        ./Resources/translations/validators.es.xlf
        
        ./Resources/translations/validators.it.xlf
        
        ./Resources/translations/validators.sl.xlf
        
        ./Resources/translations/validators.de.xlf
        
        ./Resources/translations/validators.et.xlf
        
        ./Resources/translations/validators.pt.xlf
        
        ./Resources/translations/validators.eu.xlf
        
        ./Resources/translations/validators.hr.xlf
        
        ./Resources/translations/validators.he.xlf
        
        ./Resources/translations/validators.zh_CN.xlf
        
        ./Resources/translations/validators.en.xlf
        
        ./Resources/translations/validators.ja.xlf
        
        ./Resources/translations/validators.el.xlf
        
        ./Resources/translations/validators.sv.xlf
        
        ./Resources/translations/validators.pl.xlf
        
        ./Resources/translations/validators.fa.xlf
        
        ./Resources/translations/validators.hy.xlf
        
        ./Resources/translations/validators.fr.xlf
        
        ./Resources/translations/validators.zh_TW.xlf
        
        ./Resources/translations/validators.sr_Cyrl.xlf
        
        ./Resources/translations/validators.sq.xlf
        
        ./Resources/translations/validators.ru.xlf
        
        ./Resources/translations/validators.lt.xlf
        
        ./Resources/translations/validators.tr.xlf
        
        ./Resources/translations/validators.ar.xlf
        
        ./Resources/translations/validators.lb.xlf
        
        ./Resources/translations/validators.cy.xlf
        
        ./Resources/translations/validators.af.xlf
        
        ./Resources/translations/validators.lv.xlf
        
        ./Resources/translations/validators.nl.xlf
        
        ./Resources/translations/validators.nn.xlf
        
        ./Resources/translations/validators.vi.xlf
        
        ./Resources/translations/validators.no.xlf
    You have version variations in the following dependencies:
    core:
        From 9.5.x-dev to 9.5.x-dev
    /Users/wim.leers/core/vendor/drupal/core-project-message:
        From 9.5.x-dev to 9.5.x-dev
    /Users/wim.leers/core/vendor/drupal/core-vendor-hardening:
        From 9.5.x-dev to 9.5.x-dev
    wim.leers at MacBookPro-WimLeers in ~/core on 9.5.x*
    $ php core/scripts/run-tests.sh --sqlite /tmp/test.sqlite --url http://core.test --module automatic_updates --types PHPUnit-Build --verbose
    
    Drupal test run
    ---------------
    
    Tests to be run:
      - Drupal\Tests\automatic_updates\Build\CoreUpdateTest
    
    Test run started:
      Wednesday, November 9, 2022 - 13:29
    
    Test summary
    ------------
    
    Drupal\Tests\automatic_updates\Build\CoreUpdateTest            4 passes                                      
    
    Test run duration: 5 min 49 sec
    
    Detailed test results
    ---------------------
    
    
    ---- Drupal\Tests\automatic_updates\Build\CoreUpdateTest ----
    
    
    Status    Group      Filename          Line Function                            
    --------------------------------------------------------------------------------
    Pass      Other      CoreUpdateTest.ph   64 Drupal\Tests\automatic_updates\Buil
        
    Pass      Other      CoreUpdateTest.ph   94 Drupal\Tests\automatic_updates\Buil
        
    Pass      Other      CoreUpdateTest.ph  130 Drupal\Tests\automatic_updates\Buil
        
    Pass      Other      CoreUpdateTest.ph  130 Drupal\Tests\automatic_updates\Buil
    

Conclusion: it's possible that much of Drupal still works if vendor/* does not match what composer install would do. Perhaps we need to do a dry run to verify nothing would happen to verify the environment is in a correct state?

wim leers’s picture

We use COMPOSER_MIRROR_PATH_REPOS=1 composer install in our tests.

But setup_local_dev.sh uses that too. This seems wrong. That's A) not realistic for real-world scenarios, B) unnecessary avoiding of symlinking.

Related: our symlink validation seems unable to distinguish between intra-package symlinks vs inter-package symlinks. The latter are dangerous, the former are not.

tedbow’s picture

@Wim Leers
re

Once AU moves into Drupal core, it's unacceptable for its tests to not work on environments with certain additional packages installed in a certain way.

That'd violate the testing gate.

This is under "Original report" so I am not sure if this still applies

But are you referring to ability to have other composer packages whether they be drupal project or otherwise installed the drupal site you are using for development? If so this will not work and this is similar existing core tests

For instance if you have clone of 9.5.x and you run

 php core/scripts/run-tests.sh --sqlite /tmp/test.sqlite --url http://d-core.test/ --directory core/tests/Drupal/BuildTests/Composer/Template  --types PHPUnit-Build --verbose

This should pass locally

but then if you

composer require drupal/webform

Run the same test it will fail. this is because the composer command will change files under composer/Metapackage because in core's composer.json we have

 "post-update-cmd": [
            "Drupal\\Composer\\Composer::generateMetapackages",
            "Drupal\\Composer\\Composer::generateComponentPackages"
        ],

This because of

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires drupal/core-recommended ^9.5 ->
satisfiable by drupal/core-recommended[9.5.0].
    - drupal/core-recommended 9.5.0 requires drupal/webform ~6.1.3 ->
could not be found in any version, there may be a typo in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to
your minimum-stability setting
   see <https://getcomposer.org/doc/04-schema.md#minimum-stability>
for more details.
 - It's a private package and you forgot to add a custom repository to
find it

For \Drupal\BuildTests\Composer\Template\ComposerProjectTemplatesTest the files are under composer/Metapackage are basically test fixtures because it needs use them to create a new composer project.

Similarly our build tests need to run composer create-project from the core templates so they are also essentially test fixtures for us. Once we are core they will have same relationship to our tests as existing core test that require composer/Metapackage

This why above you had the similar problem above

Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires drupal/core-recommended ^9.4 ->
    satisfiable by drupal/core-recommended[9.8.0].
        - drupal/core-recommended 9.8.0 requires drupal/decoupled_pages ~1.0.0
    -> could not be found in any version, there may be a typo in the package
    name.

as I demonstrated in the core build test with drupal/webform.

In both our build test and the existing composer build test if you

git restore composer/Metapackage

The test will pass again

wim leers’s picture

#11

The test example you're providing is the one test that specifically tests composer.json (it's called \Drupal\BuildTests\Composer\Template\ComposerProjectTemplatesTest), so yeah, of course that will fail when additional modules are installed.

I was not referring to composer/Metapackage changes. In #10, I was referring to the fact that using COMPOSER_MIRROR_PATH_REPOS=1 (see https://getcomposer.org/doc/03-cli.md#composer-mirror-path-repos) will result in path repos being mirrorred (cp -R I presume?) instead of symlinked (the default composer behavior). This causes drupal/core-project-message and drupal/core-vendor-hardening to be mirrored rather than symlinked, which will not be the case on most real-world projects.

Crucially, both setup_local_dev.sh and \Drupal\Tests\package_manager\Build\TemplateProjectTestBase::createTestProject() do this. The consequences can be seen easily by doing this:

  1. Create a git clone of AU at version 8.x-2.5
  2. run scripts/setup_local_dev.sh
  3. from the same location, observe how it created the two aforementioned packages:
    $ ls -al auto_updates_dev/vendor/drupal
    total 0
    drwxr-xr-x   5 wim.leers  wheel   160 Nov 14 14:39 .
    drwxr-xr-x  45 wim.leers  wheel  1440 Nov 14 14:42 ..
    drwxr-xr-x  13 wim.leers  wheel   416 Nov 14 14:39 coder
    drwxr-xr-x   8 wim.leers  wheel   256 Nov 14 14:39 core-project-message
    drwxr-xr-x   9 wim.leers  wheel   288 Nov 14 14:39 core-vendor-hardening
    

    ⚠️ not symlinks⚠️

  4. Next, create a Drupal core development environment as you otherwise would: git clone https://git.drupalcode.org/project/drupal.git && cd drupal && composer install
  5. Make the same observation:
    $ ls -al vendor/drupal
    total 0
    drwxr-xr-x   5 wim.leers  staff   160 Nov  9 16:34 .
    drwxr-xr-x  42 wim.leers  staff  1344 Nov  9 17:34 ..
    drwxrwxr-x  13 wim.leers  staff   416 Nov  9 16:21 coder
    lrwxr-xr-x   1 wim.leers  staff    37 Nov  9 16:34 core-project-message -> ../../composer/Plugin/ProjectMessage/
    lrwxr-xr-x   1 wim.leers  staff    38 Nov  9 16:34 core-vendor-hardening -> ../../composer/Plugin/VendorHardening/
    

    ⚠️ symlinks⚠️

Now, the only change that #3319497: Build test failure on local in 8.x-2.x due to drupal core packages being added to vendor.json made was adding a special provision for those two packages that in here are seen to be symlinked once but not the other time, the only difference being … COMPOSER_MIRROR_PATH_REPOS.

Conclusions:

  1. AU's test infrastructure is not yet verifying correctly whether the system is in a correct state; if it were, then #3319497: Build test failure on local in 8.x-2.x due to drupal core packages being added to vendor.json would never have been necessary — it should've warned about that exact problem instead of working around it
  2. AU's test infrastructure does not yet support arbitrary ways of installing Drupal core; it should work fine with either COMPOSER_MIRROR_PATH_REPOS=0 aka symlinking (which is the default) or COMPOSER_MIRROR_PATH_REPOS=1 aka mirroring (which is what setup_local_dev.sh imposes)
  3. IOW: #3319497: Build test failure on local in 8.x-2.x due to drupal core packages being added to vendor.json should absolutely be reverted, and at minimum it should validate that the codebase is in a state it does not know how to deal with, or better yet, it should support both codebase states
wim leers’s picture

Assigned: Unassigned » traviscarden
wim leers’s picture

Yay, @TravisCarden's MR at #3321994: Fail early in all Automatic Updates tests if there's a failure marker is introducing foundations for this to build further on — and it's now ready for review from @tedbow! 👍

traviscarden’s picture

Assigned: traviscarden » Unassigned

Unassigning myself. I don't really have anything else to add.

wim leers’s picture

Let's get this moving forward again. Let's start with the COMPOSER_MIRROR_PATH_REPOS=1 stuff mentioned in #12, because that affects #3319507: Add symlink support to Composer Stager 2.0, require that version, and simplify UX & tests accordingly and friends too…

I am very curious to see what the impact is of removing COMPOSER_MIRROR_PATH_REPOS=1 from our tests altogether, because virtually nobody in the real world uses that. IOW: our test coverage is doing things not representative of the real world. Then again, in the real world the actual composer would be used to install packages, so perhaps it is the best way to simulate actual packages being installed. Still, it'd be valuable to see what would fail 😇

Status: Needs review » Needs work

The last submitted patch, 16: 3319679-16-experiment.patch, failed testing. View results

wim leers’s picture

Title: Assert known preconditions for test runs and fail early if unmet » [PP-1] Assert known preconditions for test runs and fail early if unmet
Status: Needs work » Postponed
Issue tags: +Documentation, +Needs documentation updates

Per #3320792-14: Make build tests fail 1) more explicitly, 2) earlier when possible (failing StatusCheckEvent subscribers), this is blocked on that issue. This will be the finishing touch, but #3320792 is an obvious thing that should happen first.

Also, #16 shows that at the very least we need to document and understand the current reliance on COMPOSER_MIRROR_PATH_REPOS=1 better.

wim leers’s picture

Title: [PP-1] Assert known preconditions for test runs and fail early if unmet » [PP-2] Assert known preconditions for test runs and fail early if unmet
Related issues: +#3331168: Limit trusted Composer plugins to a known list, allow user to add more

#16 failed. This is due to SymlinkValidator. The test coverage improvements between #3331168-13: Limit trusted Composer plugins to a known list, allow user to add more and #3331168-15: Limit trusted Composer plugins to a known list, allow user to add more make the failures 💯 times clearer:

Before
Testing Drupal\Tests\package_manager\Build\PackageInstallTest
F                                                                   1 / 1 (100%)

Time: 00:08.735, Memory: 8.00 MB

There was 1 failure:

1) Drupal\Tests\package_manager\Build\PackageInstallTest::testPackageInstall
COMMAND: composer config extra.drupal-scaffold.locations.web-root
OUTPUT:
ERROR:
In ConfigCommand.php line 217:

  File "./composer.json" cannot be found in the current directory


config [-g|--global] [-e|--editor] [-a|--auth] [--unset] [-l|--list] [-f|--file FILE] [--absolute] [-j|--json] [-m|--merge] [--append] [--source] [--] [ [...]]



Failed asserting that 1 matches expected 0.

/var/www/html/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php:96
/var/www/html/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:317
/var/www/html/core/tests/Drupal/BuildTests/Framework/BuildTestBase.php:304
/var/www/html/modules/contrib/automatic_updates/package_manager/tests/src/Build/TemplateProjectTestBase.php:403
/var/www/html/modules/contrib/automatic_updates/package_manager/tests/src/Build/TemplateProjectTestBase.php:271
/var/www/html/modules/contrib/automatic_updates/package_manager/tests/src/Build/PackageInstallTest.php:19
/var/www/html/vendor/phpunit/phpunit/src/Framework/TestResult.php:728
/var/www/html/vendor/phpunit/phpunit/src/Framework/TestSuite.php:673
/var/www/html/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:661
/var/www/html/vendor/phpunit/phpunit/src/TextUI/Command.php:144
/var/www/html/vendor/phpunit/phpunit/src/TextUI/Command.php:97
After
PHPUnit 9.5.26 by Sebastian Bergmann and contributors.

Testing /Users/wim.leers/core/modules/contrib/automatic_updates/package_manager/tests/src/Build
F                                                                   1 / 1 (100%)

Time: 00:34.276, Memory: 28.00 MB

There was 1 failure:

1) Drupal\Tests\package_manager\Build\PackageInstallTest::testPackageInstall
Error response: The website encountered an unexpected error. Please try again later.<br><br><em class="placeholder">Drupal\package_manager\Exception\StageValidationException</em>: The active directory at &quot;/private/tmp/build_workspace_747029419c994b1e577a8a13e68312cempGQkl/composer/Template/RecommendedProject&quot; contains symlinks, which is not supported. The first one is &quot;/private/tmp/build_workspace_747029419c994b1e577a8a13e68312cempGQkl/composer/Template/RecommendedProject/vendor/asm89/stack-cors&quot;.
 in <em class="placeholder">Drupal\package_manager\Stage-&gt;dispatch()</em> (line <em class="placeholder">592</em> of <em class="placeholder">modules/contrib/automatic_updates/package_manager/src/Stage.php</em>). <pre class="backtrace">Drupal\package_manager\Stage-&gt;create() (Line: 152)
Drupal\package_manager_test_api\ApiController-&gt;createAndApplyStage(Object) (Line: 97)
Drupal\package_manager_test_api\ApiController-&gt;run(Object)
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber-&gt;Drupal\Core\EventSubscriber\{closure}() (Line: 580)
Drupal\Core\Render\Renderer-&gt;executeInRenderContext(Object, Object) (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber-&gt;wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber-&gt;Drupal\Core\EventSubscriber\{closure}() (Line: 163)
Symfony\Component\HttpKernel\HttpKernel-&gt;handleRaw(Object, 1) (Line: 74)
Symfony\Component\HttpKernel\HttpKernel-&gt;handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session-&gt;handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle-&gt;handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache-&gt;pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache-&gt;handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware-&gt;handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware-&gt;handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel-&gt;handle(Object, 1, 1) (Line: 680)
Drupal\Core\DrupalKernel-&gt;handle(Object) (Line: 19)
require(&#039;/private/tmp/build_workspace_747029419c994b1e577a8a13e68312cempGQkl/composer/Template/RecommendedProject/web/index.php&#039;) (Line: 65)
</pre>
Failed asserting that 500 matches expected 200.

/Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php:96
/Users/wim.leers/core/modules/contrib/automatic_updates/package_manager/tests/src/Build/TemplateProjectTestBase.php:561
/Users/wim.leers/core/modules/contrib/automatic_updates/package_manager/tests/src/Build/PackageInstallTest.php:38
/Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestResult.php:728
/Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php:673
/Users/wim.leers/core/vendor/phpunit/phpunit/src/Framework/TestSuite.php:673
/Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:661
/Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/Command.php:144
/Users/wim.leers/core/vendor/phpunit/phpunit/src/TextUI/Command.php:97
/Users/wim.leers/core/vendor/phpunit/phpunit/phpunit:98

FAILURES!
Tests: 1, Assertions: 59, Failures: 1.
Process finished with exit code 1
wim leers’s picture

Title: [PP-2] Assert known preconditions for test runs and fail early if unmet » [PP-4] Assert known preconditions for test runs and fail early if unmet

Actually, given that #3331168: Limit trusted Composer plugins to a known list, allow user to add more is itself blocked on 2 issues, the dependency chain is quite long!

wim leers’s picture

Title: [PP-4] Assert known preconditions for test runs and fail early if unmet » [PP-5] Assert known preconditions for test runs and fail early if unmet
Priority: Major » Critical

#16 can only possibly be fixed if and only if #3319507: Add symlink support to Composer Stager 2.0, require that version, and simplify UX & tests accordingly gets fixed — that's literally what the test failure output in #19 is showing:

The active directory at &quot;/private/tmp/build_workspace_747029419c994b1e577a8a13e68312cempGQkl/composer/Template/RecommendedProject&quot; contains symlinks, which is not supported.

Only once #3319507 is solved can we make properly informed decisions, because the current SymlinkValidator forces the use of COMPOSER_MIRROR_PATH_REPOS=1, which is not the default composer behavior and hence makes 100% of our build tests not representative of the real world.

But it's possible that we may need COMPOSER_MIRROR_PATH_REPOS=1 after all, but it should be necessary for reasons realism, not for the current reason, which is solely to work around SymlinkValidator, which is why TemplateProjectBase (used by all of AU/PM's Build tests) has this:

    // Because we set the COMPOSER_MIRROR_PATH_REPOS=1 environment variable when
    // creating the project, none of the dependencies should be symlinked.
    $this->assertStringNotContainsString('Symlinking', $this->runComposer($command));

Bumping to Critical because of that, and postponing on #3319507.

wim leers’s picture

Title: [PP-5] Assert known preconditions for test runs and fail early if unmet » [PP-4] Assert known preconditions for test runs and fail early if unmet
wim leers’s picture

Title: [PP-4] Assert known preconditions for test runs and fail early if unmet » [PP-2] Assert known preconditions for test runs and fail early if unmet
wim leers’s picture

Title: [PP-2] Assert known preconditions for test runs and fail early if unmet » [PP-1] Assert known preconditions for test runs and fail early if unmet
tedbow’s picture

Version: 8.x-2.x-dev » 3.0.x-dev
wim leers’s picture

I think thanks to the significant changes that have happened since November:

  • no more use of vfs
  • ComposerUtility is almost gone, in favor of relying on only composer commands (including in FixtureManipulator)
  • the concept of "base requirements" was introduced a few days ago

… all that combined means that #3337054: Assert status checks pass as early as possible in kernel and functional tests now effectively will achieve the same as this I think!

But let's wait for that to land and then re-assess this.

wim leers’s picture

Title: [PP-1] Assert known preconditions for test runs and fail early if unmet » Assert known preconditions for test runs and fail early if unmet
Assigned: Unassigned » tedbow
Status: Postponed » Reviewed & tested by the community
tedbow’s picture

Assigned: tedbow » phenaproxima
Status: Reviewed & tested by the community » Needs work
Issue tags: +Needs follow-up

#27 yep we are in much better place as far as testing now. child issues here fixed a lot of the problems

the only remaining issue here I see is the "Needs documentation updates" tag for COMPOSER_MIRROR_PATH_REPOS use.

Assigning to @phenaproxima to create the follow-up or anybody else wants to they could

wim leers’s picture

I'd be fine with just repurposing this issue to avoid overhead.

xjm’s picture

Issue tags: -Needs follow-up +Needs followup
tedbow’s picture

Status: Needs work » Fixed

Created follow-up #3387379: Document why use COMPOSER_MIRROR_PATH_REPOS in build tests, So closing. Thanks for all the work on this issue, and the child issues

Status: Fixed » Closed (fixed)

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