Issue #3445847: PHPUnit 10 behaves differently when invoked outside web root
Removing the chdir
in bootstrap.php resolves the immediate issue but guessing it is going to fail elsewhere.
Merge request reports
Activity
added 2 commits
Hi @mstrelan,
I tried testing this to give a help with the ticket, but did not get the expected results, sorry. Maybe the patch needs to be re-rolled? Or maybe I'm missing something in my step procedures
I pasted here results here instead of ticket because D.O. ticket formatting hell.
Initial run, bad configuration
Reproduction
I repurposed an existing project with core-recommended to the test scenario by switching the core-recommended version to 11.0.x
"require": { "composer/installers": "^2.2", "cweagans/composer-patches": "dev-main", "drupal/core-composer-scaffold": "11.0.x-dev@dev", "drupal/core-project-message": "11.0.x-dev@dev", "drupal/core-recommended": "11.0.x-dev@dev" },
Nuke and rebuild vendor, installs desired test case version:
cd docroot rm -rf vendor composer.lock composer intall
Add MR patch to composer
"patches": { "drupal/core": { "Issue #3445847: PHPUnit 10 behaves differently when invoked outside web root": "https://git.drupalcode.org/project/drupal/-/merge_requests/7952.patch" } },
Update and execute patches. Confirmed patch hash matches that of
patches.lock.json
and patch points to correct location (MR 7952):❯ composer prl - Resolving patches from root package. - Resolving patches from dependencies. - patches.lock.json has been recreated successfully. ❯ composer prp - Removing drupal/core (11.0.x-dev 281a38a) Deleting /home/wsl/3445847/docroot/web/core - deleted Installing dependencies from lock file (including require-dev) Verifying lock file contents can be installed on current platform. Package operations: 1 install, 0 updates, 0 removals - Installing drupal/core (11.0.x-dev 281a38a): Extracting archive - Patching drupal/core - Found cached patch at /home/wsl/.composer/cache/patches/fe658efcd605e40d8919bc4c0c2255f7d7b34916b74ab9945bccc0c1554bb595.patch Generating autoload files 43 packages you are using are looking for funding. Use the `composer fund` command to find out more! * Homepage: https://www.drupal.org/project/drupal * Support: * docs: https://www.drupal.org/docs/user_guide/en/index.html * chat: https://www.drupal.org/node/314178 phpstan/extension-installer: Extensions installed
Install
drupal/core-dev
, comes with PHPUnit10.x
# Add core dev for phpunit composer require drupal/core-dev:11.x-dev
Finally, execute per instructions:
./vendor/bin/phpunit -c web/core/phpunit.xml.dist PHP Fatal error: Cannot declare class Drupal\Tests\field\Unit\FieldStorageConfigAccessControlHandlerTest, because the name is already in use in /home/wsl/3445847/docroot/web/core/modules/field/tests/src/Unit/FieldStorageConfigAccessControlHandlerTest.php on line 26 PHP Stack trace: PHP 1. {main}() /home/wsl/3445847/docroot/vendor/bin/phpunit:0 PHP 2. include() /home/wsl/3445847/docroot/vendor/bin/phpunit:122 PHP 3. PHPUnit\TextUI\Application->run($argv = [0 => './vendor/bin/phpunit', 1 => '-c', 2 => 'web/core/phpunit.xml.dist']) /home/wsl/3445847/docroot/vendor/phpunit/phpunit/phpunit:104 PHP 4. PHPUnit\TextUI\Application->buildTestSuite($configuration = class PHPUnit\TextUI\Configuration\Configuration { private readonly array $cliArguments = []; private readonly ?string
Edited by Richard AllenTried a second run, made sure the simpletest database was available, etc. Tests got stuck at 62%. This is the whole suite, though.
I won't do any more testing because I have to make sure I have an environment that runs the whole suite without errors (a baseline). Sorry I wasn't more helpful, I tried. Maybe next time
If the ticket is still open by the time I have a baseline environment, then I'll sure do more runs.
Cheers.
Simple unit and kernel test in contrib module
No integration, front-end, or build tests executed on this run.
PHP:
8.3.0
PHPUnit:10.5.20
Note: This core install did get created via
drupal/core-recommended:11.0.x-dev
as mentioned in the ticket.Confirm target hash/version of core in lockfile.
composer show --format=json drupal/core-recommended \ | jq '@sh "name: \(.name), version: \(.versions[0]), hash: \(.dist.reference)"' "name: 'drupal/core-recommended', version: '11.0.x-dev', hash: 'd4b3877b8685ffb3146b0926713630ded30220c5'"
Core version is valid and not altered by Composer operations. Proceed to test simple contrib module with a single kernel and unit test.
Test run, from docroot/web directory
composer require drupal/musica ... ❯ pwd /home/wsl/3445847/docroot # Copy custom phpunit configuration file to core directory cp ../decoupled-v10/wsl.xml web/core/ # Chdir to directory mentioned in D.O. issue. # I have not stress tested running from other directories. cd web # Setup environment used by Kernel tests export SIMPLETEST_BASE_URL="https://d10ee.lndo.site" export SIMPLETEST_DB="mysql://foo:bar@database:3306/drupal10_simpletest" ../vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap core/tests/bootstrap.php \ --configuration core/wsl.xml \ --display-errors \ --do-not-cache-result \ --group phpunit10 \ modules/contrib/musica/tests PHPUnit 10.5.20 by Sebastian Bergmann and contributors. Runtime: PHP 8.3.0 Configuration: /home/wsl/3445847/docroot/web/core/wsl.xml .. 2 / 2 (100%) Time: 00:01.787, Memory: 12.00 MB Baseline (Drupal\Tests\musica\Kernel\Baseline) ✔ Php unit kernel coverage Health Check (Drupal\Tests\musica\Unit\HealthCheck) ✔ Test php unit coverage OK (2 tests, 3 assertions)
Next step is going to download a few large, popular contribs (arbitrary, biased metric) and give them a shake. If you have any suggestions/candidates send them my way.
I haven't tested integration, front-end, and build tests, so I'm looking forward to doing at least the first two in the next run.
Edited by Richard AllenSimple unit/kernel test: reset and confirm results without patch, then re-apply patch
TL;DR
- Patch is working as advertised in contrib
️ - Without patch, can confirm test fail to run in contrib, as noted below (see
️ PASS: Execute test from outside docroot/web, WITHOUT patch) - Tested only for kernel and unit in this run.
NOTE 5/16 10am: I USED THE WRONG PATCH IN THIS RUN. I have to re-try this
NOTE 5/16 10:40am Fixed. Patch is working
Reset
Nuke the entire site from orbit, it's the only way to be sure.
rm -rf docroot
️ Re-install via create-project, execute tests from web/docrootcomposer create-project drupal/recommended-project:11.0.x-dev@dev docroot cd docroot composer show --format=json drupal/core-recommended \ | jq '@sh "name: \(.name), version: \(.versions[0]), hash: \(.dist.reference)"' "name: 'drupal/core-recommended', version: '11.0.x-dev', hash: 'cb104aba76523190cb19886c7dd971b0994a7b0a'" cp ../decoupled-v10/wsl.xml web/core composer require drupal/musica cd web # Baseline, works when run within docroot/web ../vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap core/tests/bootstrap.php \ --configuration core/wsl.xml \ --display-errors \ --do-not-cache-result \ --group phpunit10 \ modules/contrib/musica/tests ... Baseline (Drupal\Tests\Musica\Kernel\Baseline) ✔ Test php unit functional coverage Health Check (Drupal\Tests\musica\Unit\HealthCheck) ✔ Test php unit coverage
️ PASS: Execute test from outside docroot/web, WITHOUT patchTest results
- Expected result: test not found
️ - Actual result: test not found
️
❯ vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap web/core/tests/bootstrap.php \ --configuration web/core/wsl.xml \ --display-errors \ --do-not-cache-result \ --group phpunit10 \ web/modules/contrib/musica/tests PHPUnit 10.5.20 by Sebastian Bergmann and contributors. Test file "web/modules/contrib/musica/tests" not found
FAIL: I used the wrong patchTest results
Re-apply patch and re-test from outside
web/docroot
- Expected result: test found
️ - Actual result: test not found
Test
composer require cweagans/composer-patches:dev-main
Add patch to
composer.json
and re-patch core:# Add to composer.json "patches": { "drupal/core": { "Allow alternate location for PHPUnit installs": "https://git.drupalcode.org/issue/musica-3416852/-/raw/1.1.x/patches/boostrap.php.patch" } }, # Patch core composer prl && composer prp ... - Installing drupal/core (11.0.x-dev ebb6417): Extracting archive - Patching drupal/core - Found cached patch at /home/wsl/.composer/cache/patches/368e08720ce315ebd55348b25ce2c8bc3752d32dd8aa35525b91a157b3cea9a8.patch ...
Re-execute tests from outside
docroot/web
cp ../decoupled-v10/wsl.xml web/core ❯ pwd /home/wsl/3445847/docroot ls web/modules/contrib/musica/tests src ❯ vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap web/core/tests/bootstrap.php \ --configuration web/core/wsl.xml \ --display-errors \ --do-not-cache-result \ --group phpunit10 \ web/modules/contrib/musica/tests PHPUnit 10.5.20 by Sebastian Bergmann and contributors. Test file "web/modules/contrib/musica/tests" not found
🥳
️ PASS: Execute test from outside docroot/web, WITH CORRECT patchNuke site and start from scratch like the first step above,
rm -rf docroot
, followed by composercreate-project
.rm -rf docroot composer create-project drupal/recommended-project:11.0.x-dev@dev docroot cd docroot composer require cweagans/composer-patches:dev-main ❯ composer show --format=json drupal/core-recommended \ | jq '@sh "name: \(.name), version: \(.versions[0]), hash: \(.dist.reference)"' "name: 'drupal/core-recommended', version: '11.0.x-dev', hash: 'cb104aba76523190cb19886c7dd971b0994a7b0a'"
Include patch dependency and setup patch
composer require cweagans/composer-patches:dev-main # FIX PATCH (composer.json) # USE CORRECT PATCH! "patches": { "drupal/core": { "PHPUnit 10 behaves differently when invoked outside web root": "https://git.drupalcode.org/project/drupal/-/merge_requests/7952.patch" } },
Re-patch core
❯ composer prl && composer prp - Resolving patches from root package. - Resolving patches from dependencies. - patches.lock.json has been recreated successfully. - Removing drupal/core (11.0.x-dev ebb6417) Deleting /home/wsl/3445847/docroot/web/core - deleted Installing dependencies from lock file (including require-dev) Verifying lock file contents can be installed on current platform. Package operations: 1 install, 0 updates, 0 removals - Installing drupal/core (11.0.x-dev ebb6417): Extracting archive
Patch is good !!Tested small contrib module, only one kernel test, and one unit test
❯ vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap web/core/tests/bootstrap.php \ --configuration web/core/phpunit.xml.dist \ --display-errors \ --do-not-cache-result \ --group phpunit10 \ web/modules/contrib/musica/tests PHPUnit 10.5.20 by Sebastian Bergmann and contributors. Runtime: PHP 8.3.0 Configuration: /home/wsl/3445847/docroot/web/core/phpunit.xml.dist .. 2 / 2 (100%) Time: 00:02.648, Memory: 12.00 MB Baseline (Drupal\Tests\Musica\Kernel\Baseline) ✔ Test php unit functional coverage Health Check (Drupal\Tests\musica\Unit\HealthCheck) ✔ Test php unit coverage OK (2 tests, 3 assertions) # WHERE AM I? # Outside of web root! ❯ pwd /home/wsl/3445847/docroot
Using alternate config (listed below) also worked
❯ vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap web/core/tests/bootstrap.php \ --configuration ../decoupled-v10/wsl.xml \ --display-errors \ --do-not-cache-result \ --group phpunit10 \ web/modules/contrib/musica/tests PHPUnit 10.5.20 by Sebastian Bergmann and contributors. Runtime: PHP 8.3.0 Configuration: /home/wsl/3445847/decoupled-v10/wsl.xml .. 2 / 2 (100%) Time: 00:01.744, Memory: 12.00 MB Baseline (Drupal\Tests\Musica\Kernel\Baseline) ✔ Test php unit functional coverage Health Check (Drupal\Tests\musica\Unit\HealthCheck) ✔ Test php unit coverage OK (2 tests, 3 assertions)
Reference: Custom PHPUnit configuration file
PHPUnit configuration file
wsl.xml
(sometimes calledphpunit.xml
)<?xml version="1.0" encoding="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd" bootstrap="vendor/autoload.php" cacheDirectory=".phpunit.cache" executionOrder="depends,defects" requireCoverageMetadata="true" beStrictAboutCoverageMetadata="true" beStrictAboutOutputDuringTests="true" failOnRisky="true" failOnWarning="true"> <testsuites> <testsuite name="default"> <directory>tests</directory> </testsuite> </testsuites> <source restrictDeprecations="true" restrictNotices="true" restrictWarnings="true"> <include> <directory>web/modules/contrib/musica/src</directory> </include> </source> </phpunit>
Edited by Richard Allen- Patch is working as advertised in contrib
# Additional attempts for contrib kernel and unitDeleted comment. Additional basic tests for kernel and unit were not necessary, because I had the wrong patch, duh! Patch is working as intended for unit and kernel, tested single contrib module. See previous comment above.
Edited by Richard AllenFinal run: large contrib
In this final test run, I am going to be testing at least 5 popular Drupal 11 modules with a stable release and advisory coverage. Link to search here.
Test run summary
I was not able to find a contrib module as filtered by the criteria listed below, that was installable via Composer, and contained Unit or Kernel tests.
I left a message in both the #test and #contribute channels asking maintainers for any known Drupal 11 modules with kernel or unit tests.
Search criteria
- Actively maintained
- Under active development
- Drupal 11 compatible only
- Stable release
- Security coverage
- Sorted by popularity (most installed)
Search API: fatal error
I start by limiting the test run to only unit tests in
web/modules/contrib/search_api/tests/src/Unit
.The test run was not able to proceed due to a fatal error.
Searching the issue queue for issues related to the exception did not find any relevant results.
Without a working baseline, I cannot proceed.
❯ vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap web/core/tests/bootstrap.php \ --configuration web/core/phpunit.xml.dist \ --display-errors \ --do-not-cache-result \ --group search_api \ web/modules/contrib/search_api/tests/src/Unit PHPUnit 10.5.20 by Sebastian Bergmann and contributors. Runtime: PHP 8.3.0 Configuration: /home/wsl/3445847/docroot/web/core/phpunit.xml.dist PHP Fatal error: Declaration of Drupal\search_api\Backend\BackendPluginBase::__sleep() must be compatible with Drupal\Core\Plugin\PluginBase::__sleep(): array in /home/wsl/3445847/docroot/web/modules/contrib/search_api/src/Backend/BackendPluginBase.php on line 337 PHP Stack trace: PHP 1. {main}() /home/wsl/3445847/docroot/vendor/bin/phpunit:0 PHP 2. include() /home/wsl/3445847/docroot/vendor/bin/phpunit:122 PHP 3. PHPUnit\TextUI\Application->run($argv = [0 => 'vendor/bin/phpunit', 1 => '--testdox', 2 => '--no-coverage', 3 => '--bootstrap', 4 => 'web/core/tests/bootstrap.php', 5 => '--configuration', 6 => 'web/core/phpunit.xml.dist', 7 => '--display-errors', 8 => '--do-not-cache-result', 9 => '--group', 10 => 'search_api', 11 => 'web/modules/contrib/search_api/tests/src/Unit']) /home/wsl/3445847/docroot/vendor/phpunit/phpunit/phpunit:104 PHP 4. PHPUnit\TextUI\TestRunner->run($configuration = class PHPUnit\TextUI\Configuration\Configuration { private readonly array $cliArguments = [0 => 'web/modules/contrib/search_api/tests/src/Unit']; private readonly ?string $configurationFile = '/home/wsl/3445847/docroot/web/core/phpunit.xml.dist'; private readonly ?string $bootstrap = 'web/core/tests/bootstrap.php'; private readonly bool $cacheResult = FALSE; private readonly ?string $cacheDirectory = '/home/wsl/3445847/docroot/web/core/.phpunit.cache'; private readonly ?string $coverageCacheDirectory = '/home/wsl/3445847/docroot/web/core/.phpunit.cache/code-coverage'; private readonly PHPUnit\TextUI\Configuration\Source $source = class PHPUnit\TextUI\Configuration\Source { private readonly ?string $baseline = NULL; private readonly bool $ignoreBaseline = FALSE; private readonly PHPUnit\TextUI\Configuration\FilterDirectoryCollection $includeDirectories = class PHPUnit\TextUI\Configuration\FilterDirectoryCollection { ... }; private readonly PHPUnit\TextUI\Configuration\FileCollection $includeFiles = class PHPUnit\TextUI\Configuration\FileCollection { ... }; private readonly PHPUnit\TextUI\Configuration\FilterDirectoryCollection $excludeDirectories = class PHPUnit\TextUI\Configuration\FilterDirectoryCollection { ... }; private readonly PHPUnit\TextUI\Configuration\FileCollection $excludeFiles = class PHPUnit\TextUI\Configuration\FileCollection { ... }; private readonly bool $restrictDeprecations = FALSE; private readonly bool $restrictNotices = FALSE; private readonly bool $restrictWarnings = FALSE; private readonly bool $ignoreSuppressionOfDeprecations = TRUE; private readonly bool $ignoreSuppressionOfPhpDeprecations = FALSE; private readonly bool $ignoreSuppressionOfErrors = FALSE; private readonly bool $ignoreSuppressionOfNotices = FALSE; private readonly bool $ignoreSuppressionOfPhpNotices = FALSE; private readonly bool $ignoreSuppressionOfWarnings = FALSE; private readonly bool $ignoreSuppressionOfPhpWarnings = FALSE }; private readonly bool $pathCoverage = FALSE; private readonly ?string $coverageClover = NULL; private readonly ?string $coverageCobertura = NULL; private readonly ?string $coverageCrap4j = NULL; private readonly int $coverageCrap4jThreshold = 30; private readonly ?string $coverageHtml = NULL; private readonly int $coverageHtmlLowUpperBound = 50; private readonly int $coverageHtmlHighLowerBound = 90; private readonly string $coverageHtmlColorSuccessLow = '#dff0d8'; private readonly string $coverageHtmlColorSuccessMedium = '#c3e3b5'; private readonly string $coverageHtmlColorSuccessHigh = '#99cb84'; private readonly string $coverageHtmlColorWarning = '#fcf8e3'; private readonly string $coverageHtmlColorDanger = '#f2dede'; private readonly ?string $coverageHtmlCustomCssFile = NULL; private readonly ?string $coveragePhp = NULL; private readonly ?string $coverageText = NULL; private readonly bool $coverageTextShowUncoveredFiles = FALSE; private readonly bool $coverageTextShowOnlySummary = FALSE; private readonly ?string $coverageXml = NULL; private readonly string $testResultCacheFile = '/home/wsl/3445847/docroot/web/core/.phpunit.cache/test-results'; private readonly bool $ignoreDeprecatedCodeUnitsFromCodeCoverage = FALSE; private readonly bool $disableCodeCoverageIgnore = FALSE; private readonly bool $failOnDeprecation = FALSE; private readonly bool $failOnEmptyTestSuite = FALSE; private readonly bool $failOnIncomplete = FALSE; private readonly bool $failOnNotice = FALSE; private readonly bool $failOnRisky = FALSE; private readonly bool $failOnSkipped = FALSE; private readonly bool $failOnWarning = TRUE; private readonly bool $stopOnDefect = FALSE; private readonly bool $stopOnDeprecation = FALSE; private readonly bool $stopOnError = FALSE; private readonly bool $stopOnFailure = FALSE; private readonly bool $stopOnIncomplete = FALSE; private readonly bool $stopOnNotice = FALSE; private readonly bool $stopOnRisky = FALSE; private readonly bool $stopOnSkipped = FALSE; private readonly bool $stopOnWarning = FALSE; private readonly bool $outputToStandardErrorStream = FALSE; private readonly int $columns = 80; private readonly bool $noExtensions = FALSE; private readonly ?string $pharExtensionDirectory = NULL; private readonly array $extensionBootstrappers = []; private readonly bool $backupGlobals = FALSE; private readonly bool $backupStaticProperties = FALSE; private readonly bool $beStrictAboutChangesToGlobalState = TRUE; private readonly bool $colors = TRUE; private readonly bool $processIsolation = FALSE; private readonly bool $enforceTimeLimit = FALSE; private readonly int $defaultTimeLimit = 1; private readonly int $timeoutForSmallTests = 1; private readonly int $timeoutForMediumTests = 10; private readonly int $timeoutForLargeTests = 60; private readonly bool $reportUselessTests = TRUE; private readonly bool $strictCoverage = FALSE; private readonly bool $disallowTestOutput = TRUE; private readonly bool $displayDetailsOnIncompleteTests = FALSE; private readonly bool $displayDetailsOnSkippedTests = FALSE; private readonly bool $displayDetailsOnTestsThatTriggerDeprecations = TRUE; private readonly bool $displayDetailsOnTestsThatTriggerErrors = TRUE; private readonly bool $displayDetailsOnTestsThatTriggerNotices = FALSE; private readonly bool $displayDetailsOnTestsThatTriggerWarnings = TRUE; private readonly bool $reverseDefectList = FALSE; private readonly bool $requireCoverageMetadata = FALSE; private readonly bool $registerMockObjectsFromTestArgumentsRecursively = FALSE; private readonly bool $noProgress = FALSE; private readonly bool $noResults = FALSE; private readonly bool $noOutput = FALSE; private readonly int $executionOrder = 0; private readonly int $executionOrderDefects = 0; private readonly bool $resolveDependencies = TRUE; private readonly ?string $logfileTeamcity = NULL; private readonly ?string $logfileJunit = NULL; private readonly ?string $logfileTestdoxHtml = NULL; private readonly ?string $logfileTestdoxText = NULL; private readonly ?string $logEventsText = NULL; private readonly ?string $logEventsVerboseText = NULL; private readonly ?array $testsCovering = NULL; private readonly ?array $testsUsing = NULL; private readonly bool $teamCityOutput = FALSE; private readonly bool $testDoxOutput = TRUE; private readonly ?string $filter = NULL; private readonly ?array $groups = [0 => 'search_api']; private readonly ?array $excludeGroups = []; private readonly int $randomOrderSeed = 1715919143; private readonly bool $includeUncoveredFiles = TRUE; private readonly PHPUnit\TextUI\Configuration\TestSuiteCollection $testSuite = class PHPUnit\TextUI\Configuration\TestSuiteCollection { private readonly array $testSuites = [...] }; private readonly string $includeTestSuite = ''; private readonly string $excludeTestSuite = ''; private readonly ?string $defaultTestSuite = NULL; private readonly array $testSuffixes = [0 => 'Test.php', 1 => '.phpt']; private readonly PHPUnit\TextUI\Configuration\Php $php = class PHPUnit\TextUI\Configuration\Php { private readonly PHPUnit\TextUI\Configuration\DirectoryCollection $includePaths = class PHPUnit\TextUI\Configuration\DirectoryCollection { ... }; private readonly PHPUnit\TextUI\Configuration\IniSettingCollection $iniSettings = class PHPUnit\TextUI\Configuration\IniSettingCollection { ... }; private readonly PHPUnit\TextUI\Configuration\ConstantCollection $constants = class PHPUnit\TextUI\Configuration\ConstantCollection { ... }; private readonly PHPUnit\TextUI\Configuration\VariableCollection $globalVariables = class PHPUnit\TextUI\Configuration\VariableCollection { ... }; private readonly PHPUnit\TextUI\Configuration\VariableCollection $envVariables = class PHPUnit\TextUI\Configuration\VariableCollection { ... }; private readonly PHPUnit\TextUI\Configuration\VariableCollection $postVariables = class PHPUnit\TextUI\Configuration\VariableCollection { ... }; private readonly PHPUnit\TextUI\Configuration\VariableCollection $getVariables = class PHPUnit\TextUI\Configuration\VariableCollection { ... }; private readonly PHPUnit\TextUI\Configuration\VariableCollection $cookieVariables = class PHPUnit\TextUI\Configuration\VariableCollection { ... }; private readonly PHPUnit\TextUI\Configuration\VariableCollection $serverVariables = class PHPUnit\TextUI\Configuration\VariableCollection { ... }; private readonly PHPUnit\TextUI\Configuration\VariableCollection $filesVariables = class PHPUnit\TextUI\Configuration\VariableCollection { ... }; private readonly PHPUnit\TextUI\Configuration\VariableCollection $requestVariables = class PHPUnit\TextUI\Configuration\VariableCollection { ... } }; private readonly bool $controlGarbageCollector = FALSE; private readonly int $numberOfTestsBeforeGarbageCollection = 100; private readonly ?string $generateBaseline = NULL; private readonly bool $debug = FALSE }, $resultCache = class PHPUnit\Runner\ResultCache\NullResultCache { }, $suite = class PHPUnit\Framework\TestSuite { private string $name = 'CLI Arguments'; private array $groups = ['search_api' => [...], '__phpunit_covers_::getqueryfulltextfields' => [...], '__phpunit_covers_::extractfieldvalues' => [...], '__phpunit_covers_::setvalues' => [...], '__phpunit_covers_::addvalue' => [...], '__phpunit_covers_drupal\\search_api\\plugin\\search_api\\processor\\property\\aggregatedfieldproperty::islist' => [...], '__phpunit_covers_::supportsindex' => [...], '__phpunit_covers_::preprocessindexitems' => [...], '__phpunit_covers_::preprocesssearchquery' => [...], '__phpunit_covers_::process' => [...], '__phpunit_covers_::formatboostfactor' => [...], '__phpunit_covers_::getboostfactors' => [...], '__phpunit_covers_::query' => [...], '__phpunit_covers_::title' => [...]]; private ?array $requiredTests = NULL; private array $tests = [0 => class PHPUnit\Framework\TestSuite { ... }, 1 => class PHPUnit\Framework\TestSuite { ... }, 2 => class PHPUnit\Framework\TestSuite { ... }, 3 => class PHPUnit\Framework\TestSuite { ... }, 4 => class PHPUnit\Framework\TestSuite { ... }, 5 => class PHPUnit\Framework\TestSuite { ... }, 6 => class PHPUnit\Framework\TestSuite { ... }, 7 => class PHPUnit\Framework\TestSuite { ... }, 8 => class PHPUnit\Framework\TestSuite { ... }, 9 => class PHPUnit\Framework\TestSuite { ... }, 10 => class PHPUnit\Framework\TestSuite { ... }, 11 => class PHPUnit\Framework\TestSuite { ... }, 12 => class PHPUnit\Framework\TestSuite { ... }, 13 => class PHPUnit\Framework\TestSuite { ... }, 14 => class PHPUnit\Framework\TestSuite { ... }, 15 => class PHPUnit\Framework\TestSuite { ... }, 16 => class PHPUnit\Framework\TestSuite { ... }, 17 => class PHPUnit\Framework\TestSuite { ... }, 18 => class PHPUnit\Framework\TestSuite { ... }, 19 => class PHPUnit\Framework\TestSuite { ... }, 20 => class PHPUnit\Framework\TestSuite { ... }]; private ?array $providedTests = NULL; private ?PHPUnit\Runner\Filter\Factory $iteratorFilter = class PHPUnit\Runner\Filter\Factory { private array $filters = [...] } }) /home/wsl/3445847/docroot/vendor/phpunit/phpunit/src/TextUI/Application.php:198 PHP 5. PHPUnit\Framework\TestSuite->run() /home/wsl/3445847/docroot/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:62 PHP 6. PHPUnit\Framework\TestSuite->run() /home/wsl/3445847/docroot/vendor/phpunit/phpunit/src/Framework/TestSuite.php:349 PHP 7. PHPUnit\Framework\TestSuite->run() /home/wsl/3445847/docroot/vendor/phpunit/phpunit/src/Framework/TestSuite.php:349 PHP 8. PHPUnit\Framework\TestCase->run() /home/wsl/3445847/docroot/vendor/phpunit/phpunit/src/Framework/TestSuite.php:349 PHP 9. PHPUnit\Framework\TestRunner->run($test = class Drupal\Tests\search_api\Unit\BackendPluginBaseTest { private ?bool ${PHPUnit\Framework\TestCase}backupGlobals = FALSE; private array ${PHPUnit\Framework\TestCase}backupGlobalsExcludeList = []; private ?bool ${PHPUnit\Framework\TestCase}backupStaticProperties = FALSE; private array ${PHPUnit\Framework\TestCase}backupStaticPropertiesExcludeList = []; private ?SebastianBergmann\GlobalState\Snapshot ${PHPUnit\Framework\TestCase}snapshot = NULL; private ?bool ${PHPUnit\Framework\TestCase}runClassInSeparateProcess = NULL; private ?bool ${PHPUnit\Framework\TestCase}runTestInSeparateProcess = NULL; private bool ${PHPUnit\Framework\TestCase}preserveGlobalState = FALSE; private bool ${PHPUnit\Framework\TestCase}inIsolation = FALSE; private ?string ${PHPUnit\Framework\TestCase}expectedException = NULL; private ?string ${PHPUnit\Framework\TestCase}expectedExceptionMessage = NULL; private ?string ${PHPUnit\Framework\TestCase}expectedExceptionMessageRegExp = NULL; private string|int|null ${PHPUnit\Framework\TestCase}expectedExceptionCode = NULL; private array ${PHPUnit\Framework\TestCase}providedTests = [0 => class PHPUnit\Framework\ExecutionOrderDependency { ... }]; private array ${PHPUnit\Framework\TestCase}data = [0 => NULL, 1 => [...]]; private string|int ${PHPUnit\Framework\TestCase}dataName = 'null fields'; private string ${PHPUnit\Framework\TestCase}name = 'testGetQueryFulltextFields'; private array ${PHPUnit\Framework\TestCase}groups = [0 => 'search_api', 1 => '__phpunit_covers_::getqueryfulltextfields']; private array ${PHPUnit\Framework\TestCase}dependencies = []; private array ${PHPUnit\Framework\TestCase}dependencyInput = []; private array ${PHPUnit\Framework\TestCase}iniSettings = []; private array ${PHPUnit\Framework\TestCase}locale = []; private array ${PHPUnit\Framework\TestCase}mockObjects = [0 => class MockObject_IndexInterface_a4414196 { ... }, 1 => class MockObject_QueryInterface_54d61c1d { ... }]; private bool ${PHPUnit\Framework\TestCase}registerMockObjectsFromTestArgumentsRecursively = FALSE; private PHPUnit\Framework\TestStatus\TestStatus ${PHPUnit\Framework\TestCase}status = class PHPUnit\Framework\TestStatus\Unknown { private readonly string ${PHPUnit\Framework\TestStatus\TestStatus}message = '' }; private int ${PHPUnit\Framework\TestCase}numberOfAssertionsPerformed = 0; private mixed ${PHPUnit\Framework\TestCase}testResult = NULL; private string ${PHPUnit\Framework\TestCase}output = ''; private ?string ${PHPUnit\Framework\TestCase}outputExpectedRegex = NULL; private ?string ${PHPUnit\Framework\TestCase}outputExpectedString = NULL; private bool ${PHPUnit\Framework\TestCase}outputBufferingActive = TRUE; private int ${PHPUnit\Framework\TestCase}outputBufferingLevel = 1; private bool ${PHPUnit\Framework\TestCase}outputRetrievedForAssertion = FALSE; private bool ${PHPUnit\Framework\TestCase}doesNotPerformAssertions = FALSE; private array ${PHPUnit\Framework\TestCase}customComparators = []; private ?PHPUnit\Event\Code\TestMethod ${PHPUnit\Framework\TestCase}testValueObjectForEvents = class PHPUnit\Event\Code\TestMethod { private readonly string ${PHPUnit\Event\Code\Test}file = '/home/wsl/3445847/docroot/web/modules/contrib/search_api/tests/src/Unit/BackendPluginBaseTest.php'; private readonly string $className = 'Drupal\\Tests\\search_api\\Unit\\BackendPluginBaseTest'; private readonly string $methodName = 'testGetQueryFulltextFields'; private readonly int $line = 31; private readonly PHPUnit\Event\Code\TestDox $testDox = class PHPUnit\Event\Code\TestDox { ... }; private readonly PHPUnit\Metadata\MetadataCollection $metadata = class PHPUnit\Metadata\MetadataCollection { ... }; private readonly PHPUnit\Event\TestData\TestDataCollection $testData = class PHPUnit\Event\TestData\TestDataCollection { ... } }; private bool ${PHPUnit\Framework\TestCase}wasPrepared = TRUE; private array ${PHPUnit\Framework\TestCase}failureTypes = []; protected $root = '/home/wsl/3445847/docroot/web'; private ${Drupal\Tests\UnitTestCase}prophet = NULL; private ${Drupal\Tests\UnitTestCase}prophecyAssertionsCounted = FALSE }) /home/wsl/3445847/docroot/vendor/phpunit/phpunit/src/Framework/TestCase.php:493 PHP 10. PHPUnit\Framework\TestCase->runBare() /home/wsl/3445847/docroot/vendor/phpunit/phpunit/src/Framework/TestRunner.php:105 PHP 11. PHPUnit\Framework\TestCase->runTest() /home/wsl/3445847/docroot/vendor/phpunit/phpunit/src/Framework/TestCase.php:659 PHP 12. Drupal\Tests\search_api\Unit\BackendPluginBaseTest->testGetQueryFulltextFields($query_fields = NULL, $expected = [0 => 'field1', 1 => 'field2']) /home/wsl/3445847/docroot/vendor/phpunit/phpunit/src/Framework/TestCase.php:1160 PHP 13. Symfony\Component\ErrorHandler\DebugClassLoader->loadClass($class = 'Drupal\\search_api_test\\Plugin\\search_api\\backend\\TestBackend') /home/wsl/3445847/docroot/web/modules/contrib/search_api/tests/src/Unit/BackendPluginBaseTest.php:39 PHP 14. include() /home/wsl/3445847/docroot/vendor/symfony/error-handler/DebugClassLoader.php:300 PHP 15. Symfony\Component\ErrorHandler\DebugClassLoader->loadClass($class = 'Drupal\\search_api\\Backend\\BackendPluginBase') /home/wsl/3445847/docroot/web/modules/contrib/search_api/tests/modules/search_api_test/src/Plugin/search_api/backend/TestBackend.php:23 PHP 16. include() /home/wsl/3445847/docroot/vendor/symfony/error-handler/DebugClassLoader.php:300
JSON API views: cannot install
Project: https://www.drupal.org/project/jsonapi_views Recommended install:
composer require 'drupal/jsonapi_views:^1.1'
Result:
❯ composer require drupal/jsonapi_views:^1.x-dev ./composer.json has been updated Running composer update drupal/jsonapi_views Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - drupal/jsonapi_resources[1.0.0-beta1, ..., 1.0.0-beta3] require drupal/core ^8.8@alpha -> found drupal/core[8.8.0-alpha1, ..., 8.9.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/jsonapi_resources 1.0.0-beta4 requires drupal/core ^8.8 || ^9.0 -> found drupal/core[8.8.0-alpha1, ..., 8.9.x-dev, 9.0.0-alpha1, ..., 9.5.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/jsonapi_resources 1.0.0-beta5 requires drupal/core ^8.8 || ^9 || ^10 -> found drupal/core[8.8.0-alpha1, ..., 8.9.x-dev, 9.0.0-alpha1, ..., 9.5.x-dev, 10.0.0-alpha1, ..., 10.4.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/jsonapi_resources[1.0.0, ..., 1.x-dev] require drupal/core ^9.1 || ^10 -> found drupal/core[9.1.0-alpha1, ..., 9.5.x-dev, 10.0.0-alpha1, ..., 10.4.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/jsonapi_views 1.x-dev is an alias of drupal/jsonapi_views dev-1.x and thus requires it to be installed too. - drupal/jsonapi_views dev-1.x requires drupal/jsonapi_resources ^1.0 -> satisfiable by drupal/jsonapi_resources[1.0.0-beta1, ..., 1.x-dev]. - Root composer.json requires drupal/jsonapi_views ^1.x-dev -> satisfiable by drupal/jsonapi_views[1.x-dev (alias of dev-1.x)]. Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
Acquia content hub: no valid install target
Project: https://www.drupal.org/project/acquia_contenthub Recommended install:
composer require 'drupal/acquia_contenthub:^3.4'
Result
❯ composer require 'drupal/acquia_contenthub:^3.4' ./composer.json has been updated Running composer update drupal/acquia_contenthub Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - drupal/acquia_contenthub 3.4.x-dev is an alias of drupal/acquia_contenthub dev-3.4.x and thus requires it to be installed too. - drupal/acquia_contenthub[dev-3.4.x, 3.4.0, ..., 3.4.1] require drupal/core ^9.4.15 || ^10 -> found drupal/core[9.4.15, ..., 9.5.x-dev, 10.0.0-alpha1, ..., 10.4.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - Root composer.json requires drupal/acquia_contenthub ^3.4 -> satisfiable by drupal/acquia_contenthub[3.4.0, 3.4.1, 3.4.x-dev (alias of dev-3.4.x)]. Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
DXPR Builder: no kernel or unit tests
I was able to install this module in Drupal 11, finally!
However, I was not able to find any Kernel or Unit tests to execute, only integration tests for which I have no trusted baseline, procedures or dependencies.
composer require 'drupal/dxpr_builder:^2.6' ./composer.json has been updated Running composer update drupal/dxpr_builder Loading composer repositories with package information Updating dependencies Lock file operations: 1 install, 0 updates, 0 removals - Locking drupal/dxpr_builder (2.6.0) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 1 install, 0 updates, 0 removals - Downloading drupal/dxpr_builder (2.6.0) - Installing drupal/dxpr_builder (2.6.0): Extracting archive Generating autoload files 89 packages you are using are looking for funding. Use the `composer fund` command to find out more! phpstan/extension-installer: Extensions installed No security vulnerability advisories found. vendor/bin/phpunit \ ✔ --testdox \ --no-coverage \ --bootstrap web/core/tests/bootstrap.php \ --configuration web/core/phpunit.xml.dist \ --display-errors \ --do-not-cache-result \ web/modules/contrib/dxpr_builder/modules/dxpr_builder_media/tests/src README.txt css/ dxpr_builder_media.install dxpr_builder_media.module js/ config/ dxpr_builder_media.info.yml dxpr_builder_media.libraries.yml images/ tests/ web/modules/contrib/dxpr_builder/modules/dxpr_builder_media/tests/src/FunctionalJavascript/
️Migrate Plus
Installed and tested without a hitch.
❯ composer require drupal/migrate_plus ./composer.json has been updated Running composer update drupal/migrate_plus Loading composer repositories with package information Updating dependencies Lock file operations: 1 install, 0 updates, 0 removals - Locking drupal/migrate_plus (6.0.2) ... ❯ vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap web/core/tests/bootstrap.php \ --configuration web/core/phpunit.xml.dist \ --display-errors \ --do-not-cache-result \ web/modules/contrib/migrate_plus/tests/src/Unit PHPUnit 10.5.20 by Sebastian Bergmann and contributors. Runtime: PHP 8.3.0 Configuration: /home/wsl/3445847/docroot/web/core/phpunit.xml.dist D.............................................................. 63 / 110 ( 57%) .........D.D.D.D.......DD...................... 110 / 110 (100%) Time: 00:01.444, Memory: 22.00 MB Array Pop (Drupal\Tests\migrate_plus\Unit\process\ArrayPop) ✔ Array pop with indexed·array ✔ Array pop with associative·array ✔ Array pop with empty·array ✔ Array pop from string ...
️Migrate Tools
What's up with these migration toolz. They all just work without a care in the world!
❯ composer require drupal/migrate_tools ./composer.json has been updated Running composer update drupal/migrate_tools Loading composer repositories with package information Updating dependencies Lock file operations: 1 install, 0 updates, 0 removals - Locking drupal/migrate_tools (6.0.4) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 1 install, 0 updates, 0 removals - Downloading drupal/migrate_tools (6.0.4) - Installing drupal/migrate_tools (6.0.4): Extracting archive 1 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 89 packages you are using are looking for funding. Use the `composer fund` command to find out more! phpstan/extension-installer: Extensions installed No security vulnerability advisories found. Using version ^6.0 for drupal/migrate_tools ❯ vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap web/core/tests/bootstrap.php \ --configuration web/core/phpunit.xml.dist \ --display-errors \ --do-not-cache-result \ web/modules/contrib/migrate_tools/tests/src/Unit PHPUnit 10.5.20 by Sebastian Bergmann and contributors. Runtime: PHP 8.3.0 Configuration: /home/wsl/3445847/docroot/web/core/phpunit.xml.dist D...... 7 / 7 (100%) Time: 00:00.040, Memory: 10.00 MB Migrate Tools (Drupal\Tests\migrate_tools\Unit\MigrateTools) ✔ Build id list with data set 0 ✔ Build id list with single·id ✔ Build id list with multiple·ids ✔ Build id list with default·delimiter,·composite·key ✔ Build id list with special·delimiter,·single ✔ Build id list with special·delimiter,·multiple ✔ Build id list with space·delimiter,·multiple 1 test triggered 1 PHPUnit deprecation: 1) Drupal\Tests\migrate_tools\Unit\MigrateToolsTest::testBuildIdList Data Provider method Drupal\Tests\migrate_tools\Unit\MigrateToolsTest::dataProviderIdList() is not static /home/wsl/3445847/docroot/web/modules/contrib/migrate_tools/tests/src/Unit/MigrateToolsTest.php:21 OK, but there were issues! Tests: 7, Assertions: 7, Deprecations: 1.
️dynamic_entity_reference
Was able to install and run Kernel tests.
Project: https://www.drupal.org/project/dynamic_entity_reference
❯ composer require drupal/dynamic_entity_reference ./composer.json has been updated Running composer update drupal/dynamic_entity_reference Loading composer repositories with package information Updating dependencies Lock file operations: 1 install, 0 updates, 0 removals - Locking drupal/dynamic_entity_reference (3.2.0) ... ❯ vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap web/core/tests/bootstrap.php \ --configuration web/core/phpunit.xml.dist \ --display-errors \ --do-not-cache-result \ web/modules/contrib/dynamic_entity_reference/tests/src/Kernel PHPUnit 10.5.20 by Sebastian Bergmann and contributors. Runtime: PHP 8.3.0 Configuration: /home/wsl/3445847/docroot/web/core/phpunit.xml.dist D..D..D......D......D.....D......... 36 / 36 (100%) Time: 03:56.523, Memory: 16.00 MB Dynamic Entity Reference Base Field (Drupal\Tests\dynamic_entity_reference\Kernel\DynamicEntityReferenceBaseField) ⚠ Entity reference field validation ✔ Referenced entities multiple load ✔ Multiple entity reference
️svg_image_field
Installs and executes tests.
composer require drupal/svg_image_field ... ❯ vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap web/core/tests/bootstrap.php \ --configuration web/core/phpunit.xml.dist \ --display-errors \ --do-not-cache-result \ web/modules/contrib/svg_image_field/tests/src/Kernel PHPUnit 10.5.20 by Sebastian Bergmann and contributors. Runtime: PHP 8.3.0 Configuration: /home/wsl/3445847/docroot/web/core/phpunit.xml.dist . 1 / 1 (100%) Time: 00:04.441, Memory: 10.00 MB File Validation (Drupal\Tests\svg_image_field\Kernel\FileValidation) ⚠ File validation OK (1 test, 11 assertions)
Other failed install attempts, not compatible with D11 via Composer:
- drupal/devel
- drupal/webform
- drupal/token
Edited by Richard AllenCommunity run
Since that last run was a bummer and all 6 test targets had either compatibility issues, exceptions, or no kernel/unit test targets, I'm doing another run w/ community suggestions.
️Advanced email validation
- Installed and tested without a single hitch.
- Only Kernel tests (even better).
- One fail test, but that does not impact compatibility or this MR at all.
- Project: https://www.drupal.org/project/advanced_email_validation
❯ composer require drupal/advanced_email_validation ❯ vendor/bin/phpunit \ --testdox \ --no-coverage \ --bootstrap web/core/tests/bootstrap.php \ --configuration web/core/phpunit.xml.dist \ --display-errors \ --do-not-cache-result \ web/modules/contrib/advanced_email_validation/tests/src/Kernel PHPUnit 10.5.20 by Sebastian Bergmann and contributors. Runtime: PHP 8.3.0 Configuration: /home/wsl/3445847/docroot/web/core/phpunit.xml.dist ......E.... 11 / 11 (100%) Time: 00:43.953, Memory: 10.00 MB Email Validation (Drupal\Tests\advanced_email_validation\Kernel\EmailValidation) ✔ Basic validation ✔ Validate account on disabled ✔ Validate account on created ✔ Validate account on update ✔ Validate account on create and update ✔ Mx record validation ✘ Free provider validation ┐ ├ RuntimeException: Cannot compare markup between MarkupInterface objects and plain strings │ │ /home/wsl/3445847/docroot/web/core/tests/Drupal/TestTools/Comparator/MarkupInterfaceComparator.php:42 │ /home/wsl/3445847/docroot/web/modules/contrib/advanced_email_validation/tests/src/Kernel/EmailValidationTest.php:354 ┴ ✔ Free provider list customization ✔ Disposable provider validation ✔ Disposable provider list customization ✔ Banned provider validation ERRORS! Tests: 11, Assertions: 80, Errors: 1.
Group member role
: no valid install targetProject: https://www.drupal.org/project/group_member_role
❯ composer require drupal/group_member_role ./composer.json has been updated Running composer update drupal/group_member_role Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - drupal/group dev-3.3.x requires drupal/core ^10.2 -> found drupal/core[10.2.0-alpha1, ..., 10.4.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/group[2.0.0-alpha1, ..., 2.0.0-alpha3] require drupal/core ^8.9 || ^9 -> found drupal/core[8.9.0-beta1, ..., 8.9.x-dev, 9.0.0-alpha1, ..., 9.5.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/group[2.0.0-alpha4, ..., 2.0.0-beta4, 3.0.0-beta1, ..., 3.0.0-beta4] require drupal/core ^9 || ^10 -> found drupal/core[9.0.0-alpha1, ..., 9.5.x-dev, 10.0.0-alpha1, ..., 10.4.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/group[2.0.0-beta5, ..., 2.0.0-rc2, 3.0.0-beta5, ..., 3.0.0-rc2] require drupal/core ^9.1 || ^10 -> found drupal/core[9.1.0-alpha1, ..., 9.5.x-dev, 10.0.0-alpha1, ..., 10.4.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/group[2.0.0, ..., 2.2.x-dev, 3.0.0, ..., 3.2.x-dev] require drupal/core ^9.5 || ^10 -> found drupal/core[9.5.0-beta1, ..., 9.5.x-dev, 10.0.0-alpha1, ..., 10.4.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/group_member_role[dev-1.x, 1.0.0, ..., 1.x-dev] require drupal/group ^2 || ^3 -> satisfiable by drupal/group[2.0.0-alpha1, ..., 2.3.x-dev, 3.0.0-beta1, ..., 3.3.x-dev (alias of dev-3.3.x)]. - drupal/group 3.3.x-dev is an alias of drupal/group dev-3.3.x and thus requires it to be installed too. - Root composer.json requires drupal/group_member_role * -> satisfiable by drupal/group_member_role[dev-1.x, 1.0.0, 1.x-dev]. Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions. You can also try re-running composer require with an explicit version constraint, e.g. "composer require drupal/group_member_role:*" to figure out if any version is installable, or "composer require drupal/group_member_role:^2.1" if you know which you need. ❯ composer require drupal/group_member_role:1.x-dev ./composer.json has been updated Running composer update drupal/group_member_role Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - drupal/group dev-3.3.x requires drupal/core ^10.2 -> found drupal/core[10.2.0-alpha1, ..., 10.4.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/group[2.0.0-alpha1, ..., 2.0.0-alpha3] require drupal/core ^8.9 || ^9 -> found drupal/core[8.9.0-beta1, ..., 8.9.x-dev, 9.0.0-alpha1, ..., 9.5.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/group[2.0.0-alpha4, ..., 2.0.0-beta4, 3.0.0-beta1, ..., 3.0.0-beta4] require drupal/core ^9 || ^10 -> found drupal/core[9.0.0-alpha1, ..., 9.5.x-dev, 10.0.0-alpha1, ..., 10.4.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/group[2.0.0-beta5, ..., 2.0.0-rc2, 3.0.0-beta5, ..., 3.0.0-rc2] require drupal/core ^9.1 || ^10 -> found drupal/core[9.1.0-alpha1, ..., 9.5.x-dev, 10.0.0-alpha1, ..., 10.4.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/group[2.0.0, ..., 2.2.x-dev, 3.0.0, ..., 3.2.x-dev] require drupal/core ^9.5 || ^10 -> found drupal/core[9.5.0-beta1, ..., 9.5.x-dev, 10.0.0-alpha1, ..., 10.4.x-dev] but the package is fixed to 11.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command. - drupal/group_member_role dev-1.x requires drupal/group ^2 || ^3 -> satisfiable by drupal/group[2.0.0-alpha1, ..., 2.3.x-dev, 3.0.0-beta1, ..., 3.3.x-dev (alias of dev-3.3.x)]. - drupal/group_member_role 1.x-dev is an alias of drupal/group_member_role dev-1.x and thus requires it to be installed too. - drupal/group 3.3.x-dev is an alias of drupal/group dev-3.3.x and thus requires it to be installed too. - Root composer.json requires drupal/group_member_role 1.x-dev -> satisfiable by drupal/group_member_role[1.x-dev (alias of dev-1.x)]. Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
Other D11 not-compat tested
- composer require 'drupal/token_filter:^2.1'