From 14ec957e96a24aefab22ba9eb1e0c6589d9a221c Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Tue, 20 Oct 2020 17:34:07 +0200 Subject: [PATCH] Fix composer show -a usage, fixes #9304 --- src/Composer/Command/ShowCommand.php | 6 +++++- src/Composer/Repository/RepositorySet.php | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index 13d6de93e..a1a5ffc8b 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -584,7 +584,11 @@ EOT $matchedPackage = null; $versions = array(); - $pool = $repositorySet->createPoolWithAllPackages(); + if (PlatformRepository::isPlatformPackage($name)) { + $pool = $repositorySet->createPoolWithAllPackages(); + } else { + $pool = $repositorySet->createPoolForPackage($name); + } $matches = $pool->whatProvides($name, $constraint); foreach ($matches as $index => $package) { // select an exact match if it is in the installed repo and no specific version was required diff --git a/src/Composer/Repository/RepositorySet.php b/src/Composer/Repository/RepositorySet.php index 34567e1b8..782e3e647 100644 --- a/src/Composer/Repository/RepositorySet.php +++ b/src/Composer/Repository/RepositorySet.php @@ -280,6 +280,10 @@ class RepositorySet $request = new Request($lockedRepo); foreach ($packageNames as $packageName) { + if (PlatformRepository::isPlatformPackage($packageName)) { + throw new \LogicException('createPoolForPackage(s) can not be used for platform packages, as they are never loaded by the PoolBuilder which expects them to be fixed. Use createPoolWithAllPackages or pass in a proper request with the platform packages you need fixed in it.'); + } + $request->requireName($packageName); }