From fa5a94143a5158383bae92068f78caa23ee30105 Mon Sep 17 00:00:00 2001 From: Vic Metcalfe Date: Mon, 15 Jan 2018 09:50:22 -0500 Subject: [PATCH 1/4] Show reason for php version package mismatch due to config.platform --- src/Composer/DependencyResolver/Problem.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Composer/DependencyResolver/Problem.php b/src/Composer/DependencyResolver/Problem.php index ba9eb9774..7fa40641b 100644 --- a/src/Composer/DependencyResolver/Problem.php +++ b/src/Composer/DependencyResolver/Problem.php @@ -11,6 +11,7 @@ */ namespace Composer\DependencyResolver; +use Composer\Package\CompletePackageInterface; /** * Represents a problem detected while solving dependencies @@ -91,7 +92,13 @@ class Problem // handle php/hhvm if ($job['packageName'] === 'php' || $job['packageName'] === 'php-64bit' || $job['packageName'] === 'hhvm') { $available = $this->pool->whatProvides($job['packageName']); - $version = count($available) ? $available[0]->getPrettyVersion() : phpversion(); + $firstAvailable = reset($available); + + $version = count($available) ? $firstAvailable->getPrettyVersion() : phpversion(); + if (count($available) && $firstAvailable instanceof CompletePackageInterface) { + $version .= '; ' . $firstAvailable->getDescription(); + } + $msg = "\n - This package requires ".$job['packageName'].$this->constraintToText($job['constraint']).' but '; From 766ed9555e21ca6cd3019a69b14311279889e304 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 24 Jan 2018 09:02:51 +0100 Subject: [PATCH 2/4] Only show override description if there is one, refs #7011 --- src/Composer/DependencyResolver/Problem.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Composer/DependencyResolver/Problem.php b/src/Composer/DependencyResolver/Problem.php index 7fa40641b..debc8678c 100644 --- a/src/Composer/DependencyResolver/Problem.php +++ b/src/Composer/DependencyResolver/Problem.php @@ -91,15 +91,18 @@ class Problem // handle php/hhvm if ($job['packageName'] === 'php' || $job['packageName'] === 'php-64bit' || $job['packageName'] === 'hhvm') { + $version = phpversion(); $available = $this->pool->whatProvides($job['packageName']); - $firstAvailable = reset($available); - $version = count($available) ? $firstAvailable->getPrettyVersion() : phpversion(); - if (count($available) && $firstAvailable instanceof CompletePackageInterface) { - $version .= '; ' . $firstAvailable->getDescription(); + if (count($available)) { + $firstAvailable = reset($available); + $version = $firstAvailable->getPrettyVersion(); + $extra = $firstAvailable->getExtra(); + if ($firstAvailable instanceof CompletePackageInterface && isset($extra['config.platform']) && $extra['config.platform'] === true) { + $version .= '; ' . $firstAvailable->getDescription(); + } } - $msg = "\n - This package requires ".$job['packageName'].$this->constraintToText($job['constraint']).' but '; if (defined('HHVM_VERSION')) { From fd61a21bffb191a00980c64266ced43a820376e7 Mon Sep 17 00:00:00 2001 From: Narration SD Date: Wed, 24 Jan 2018 10:04:09 +0100 Subject: [PATCH 3/4] Fix detection of junction points, fixes #7025 --- src/Composer/Util/Filesystem.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Composer/Util/Filesystem.php b/src/Composer/Util/Filesystem.php index 39c953a50..9e0e37279 100644 --- a/src/Composer/Util/Filesystem.php +++ b/src/Composer/Util/Filesystem.php @@ -665,6 +665,7 @@ class Filesystem * Stat cache should be cleared before to avoid accidentally reading wrong information from previous installs. */ clearstatcache(true, $junction); + clearstatcache(false); $stat = lstat($junction); return !($stat['mode'] & 0xC000); From a567501e58e0fc138daa50cbc29a07a0e4ea3e3d Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 24 Jan 2018 10:19:21 +0100 Subject: [PATCH 4/4] Fix ConsoleIO::select regression in which 1.5.3-1.6.2 returned the selected values instead of index keys, fixes #7000 --- src/Composer/IO/ConsoleIO.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Composer/IO/ConsoleIO.php b/src/Composer/IO/ConsoleIO.php index f3a99edf2..bef7cea9f 100644 --- a/src/Composer/IO/ConsoleIO.php +++ b/src/Composer/IO/ConsoleIO.php @@ -289,7 +289,16 @@ class ConsoleIO extends BaseIO $question->setErrorMessage($errorMessage); $question->setMultiselect($multiselect); - return $helper->ask($this->input, $this->getErrorOutput(), $question); + $result = $helper->ask($this->input, $this->getErrorOutput(), $question); + + $results = array(); + foreach ($choices as $index => $choice) { + if (in_array($choice, $result, true)) { + $results[] = (string) $index; + } + } + + return $results; } /**