浏览代码

Make sure versions are sorted before they get trimmed in error output

Jordi Boggiano 5 年之前
父节点
当前提交
3f338ee8d9

+ 1 - 0
src/Composer/DependencyResolver/Problem.php

@@ -300,6 +300,7 @@ class Problem
                 unset($package['versions'][VersionParser::DEV_MASTER_ALIAS]);
             }
             if (!$isVerbose && count($package['versions']) > 4) {
+                uksort($package['versions'], 'version_compare');
                 $filtered = array();
                 $byMajor = array();
                 foreach ($package['versions'] as $version => $pretty) {

+ 4 - 4
tests/Composer/Test/Fixtures/installer/problems-reduce-versions.test

@@ -11,29 +11,30 @@ Test the error output minifies version lists
                 {"name": "b/b", "version": "1.0.1"},
                 {"name": "b/b", "version": "1.0.2"},
                 {"name": "b/b", "version": "1.0.3"},
+                {"name": "b/b", "version": "v1.1.4"},
                 {"name": "b/b", "version": "1.0.4"},
                 {"name": "b/b", "version": "1.0.5"},
                 {"name": "b/b", "version": "1.0.6"},
                 {"name": "b/b", "version": "1.0.7"},
+                {"name": "b/b", "version": "1.1.0"},
+                {"name": "b/b", "version": "2.0.5"},
                 {"name": "b/b", "version": "1.0.8"},
                 {"name": "b/b", "version": "1.0.9"},
-                {"name": "b/b", "version": "1.1.0"},
                 {"name": "b/b", "version": "1.1.1"},
                 {"name": "b/b", "version": "1.1.2"},
                 {"name": "b/b", "version": "1.1.3"},
-                {"name": "b/b", "version": "v1.1.4"},
                 {"name": "b/b", "version": "1.1.5"},
                 {"name": "b/b", "version": "v1.1.6"},
                 {"name": "b/b", "version": "1.1.7-alpha"},
                 {"name": "b/b", "version": "1.1.8"},
                 {"name": "b/b", "version": "1.1.9"},
                 {"name": "b/b", "version": "1.2.0"},
-                {"name": "b/b", "version": "1.2.1"},
                 {"name": "b/b", "version": "1.2.2"},
                 {"name": "b/b", "version": "1.2.3"},
                 {"name": "b/b", "version": "1.2.4"},
                 {"name": "b/b", "version": "1.2.5"},
                 {"name": "b/b", "version": "1.2.6"},
+                {"name": "b/b", "version": "1.2.1"},
                 {"name": "b/b", "version": "1.2.7"},
                 {"name": "b/b", "version": "1.2.8"},
                 {"name": "b/b", "version": "1.2.9"},
@@ -42,7 +43,6 @@ Test the error output minifies version lists
                 {"name": "b/b", "version": "2.0.2"},
                 {"name": "b/b", "version": "2.0.3"},
                 {"name": "b/b", "version": "2.0.4"},
-                {"name": "b/b", "version": "2.0.5"},
                 {"name": "b/b", "version": "2.0.6"},
                 {"name": "b/b", "version": "2.0.7"},
                 {"name": "b/b", "version": "2.0.8"},