Browse Source

fix based on test, fixes #5724

Rob Bast 8 years ago
parent
commit
710bb0d008
1 changed files with 12 additions and 2 deletions
  1. 12 2
      src/Composer/Package/Version/VersionSelector.php

+ 12 - 2
src/Composer/Package/Version/VersionSelector.php

@@ -71,11 +71,21 @@ class VersionSelector
             $candidatePriority = $candidate->getStabilityPriority();
             $currentPriority = $package->getStabilityPriority();
 
-            // candidate is less stable than our preferred stability, and we have a package that is more stable than it, so we skip it
+            // candidate is less stable than our preferred stability,
+            // and current package is more stable than candidate, skip it
             if ($minPriority < $candidatePriority && $currentPriority < $candidatePriority) {
                 continue;
             }
-            // candidate is more stable than our preferred stability, and current package is less stable than preferred stability, then we select the candidate always
+
+            // candidate is less stable than our preferred stability,
+            // and current package is less stable than candidate, select candidate
+            if ($minPriority < $candidatePriority && $candidatePriority < $currentPriority) {
+                $package = $candidate;
+                continue;
+            }
+
+            // candidate is more stable than our preferred stability,
+            // and current package is less stable than preferred stability, select candidate
             if ($minPriority >= $candidatePriority && $minPriority < $currentPriority) {
                 $package = $candidate;
                 continue;