From e132a5a84ad8aac14479713dd7d4b36989180f2b Mon Sep 17 00:00:00 2001 From: Thomas Landauer Date: Tue, 10 Dec 2024 16:37:59 +0100 Subject: [PATCH 1/3] Adding explicit message to `why-not` if package is already installed Closes #12227 --- src/Composer/Command/BaseDependencyCommand.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Composer/Command/BaseDependencyCommand.php b/src/Composer/Command/BaseDependencyCommand.php index 55b502e03..b17f3d93a 100644 --- a/src/Composer/Command/BaseDependencyCommand.php +++ b/src/Composer/Command/BaseDependencyCommand.php @@ -126,6 +126,8 @@ abstract class BaseDependencyCommand extends BaseCommand $extraNotice = ' (version provided by config.platform)'; } $this->getIO()->writeError('Package "'.$needle.' '.$textConstraint.'" found in version "'.$matchedPackage->getPrettyVersion().'"'.$extraNotice.'.'); + } elseif ($inverted) { + $this->getIO()->write('Package "'.$needle.'" '.$matchedPackage->getPrettyVersion().' is already installed! To find out why, run `composer why '.$needle.'`'); } // Include replaced packages for inverted lookups as they are then the actual starting point to consider From cefdee50499b6306bfb327240b849dfe659862bb Mon Sep 17 00:00:00 2001 From: Thomas Landauer Date: Wed, 11 Dec 2024 13:31:36 +0100 Subject: [PATCH 2/3] Update BaseDependencyCommand.php --- src/Composer/Command/BaseDependencyCommand.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Composer/Command/BaseDependencyCommand.php b/src/Composer/Command/BaseDependencyCommand.php index b17f3d93a..1f67f5bc3 100644 --- a/src/Composer/Command/BaseDependencyCommand.php +++ b/src/Composer/Command/BaseDependencyCommand.php @@ -128,6 +128,7 @@ abstract class BaseDependencyCommand extends BaseCommand $this->getIO()->writeError('Package "'.$needle.' '.$textConstraint.'" found in version "'.$matchedPackage->getPrettyVersion().'"'.$extraNotice.'.'); } elseif ($inverted) { $this->getIO()->write('Package "'.$needle.'" '.$matchedPackage->getPrettyVersion().' is already installed! To find out why, run `composer why '.$needle.'`'); + return 0; } // Include replaced packages for inverted lookups as they are then the actual starting point to consider From 35ce4bd7692f2e3af5c777b90ceb8d336ab5afdb Mon Sep 17 00:00:00 2001 From: Thomas Landauer Date: Wed, 11 Dec 2024 13:46:24 +0100 Subject: [PATCH 3/3] Adjusting the test --- tests/Composer/Test/Command/BaseDependencyCommandTest.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/Composer/Test/Command/BaseDependencyCommandTest.php b/tests/Composer/Test/Command/BaseDependencyCommandTest.php index 0fad665ae..bc85d1899 100644 --- a/tests/Composer/Test/Command/BaseDependencyCommandTest.php +++ b/tests/Composer/Test/Command/BaseDependencyCommandTest.php @@ -464,11 +464,10 @@ OUTPUT 0 ]; - yield 'there is no installed package depending on the package in versions not matching a specific version' => [ + yield 'Package is already installed!' => [ ['package' => 'vendor1/package1', 'version' => '^1.3'], <<