From fde6a87f649534187c927f74d6b59b66c304db02 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Tue, 17 Sep 2024 14:13:58 +0200 Subject: [PATCH] Sort problem rules (#12111) --- phpstan/baseline.neon | 10 + src/Composer/DependencyResolver/Problem.php | 51 ++ .../Test/DependencyResolver/SolverTest.php | 8 +- .../installer-slow/github-issues-7665.test | 454 +++++++++--------- .../installer/alias-solver-problems.test | 5 +- .../installer/alias-solver-problems2.test | 3 +- .../installer/broken-deps-do-not-replace.test | 4 +- ...ainst-replaced-by-dep-package-problem.test | 3 +- ...lict-against-replaced-package-problem.test | 3 +- .../conflict-between-dependents.test | 3 +- ...alias-prevents-update-if-not-required.test | 4 +- ...h-alias-in-lock-does-prevents-install.test | 2 +- ...alias-prevents-update-if-not-required.test | 2 +- ...ncies-option-dont-recommend-to-use-it.test | 3 +- .../deduplicate-solver-problems.test | 5 +- .../installer/github-issues-7051.test | 23 +- .../installer/github-issues-8902.test | 6 +- .../installer/provider-conflicts.test | 3 +- .../installer/provider-conflicts3.test | 11 +- .../Fixtures/installer/solver-problems.test | 4 +- ...unded-conflict-matches-default-branch.test | 2 +- 21 files changed, 330 insertions(+), 279 deletions(-) diff --git a/phpstan/baseline.neon b/phpstan/baseline.neon index 4b21d55c6..421690f90 100644 --- a/phpstan/baseline.neon +++ b/phpstan/baseline.neon @@ -1185,6 +1185,11 @@ parameters: count: 4 path: ../src/Composer/DependencyResolver/PoolOptimizer.php + - + message: "#^Cannot call method getPrettyString\\(\\) on array\\\\|Composer\\\\Package\\\\BasePackage\\|Composer\\\\Package\\\\Link\\|int\\|string\\.$#" + count: 1 + path: ../src/Composer/DependencyResolver/Problem.php + - message: "#^Cannot call method getRepoName\\(\\) on Composer\\\\Repository\\\\RepositoryInterface\\|null\\.$#" count: 3 @@ -1195,6 +1200,11 @@ parameters: count: 1 path: ../src/Composer/DependencyResolver/Problem.php + - + message: "#^Cannot cast array\\{package\\: Composer\\\\Package\\\\BasePackage\\}\\|array\\{packageName\\: string, constraint\\: Composer\\\\Semver\\\\Constraint\\\\ConstraintInterface\\}\\|Composer\\\\Package\\\\BasePackage\\|Composer\\\\Package\\\\Link\\|int\\|non\\-empty\\-string to string\\.$#" + count: 1 + path: ../src/Composer/DependencyResolver/Problem.php + - message: "#^Only booleans are allowed in &&, Composer\\\\DependencyResolver\\\\Pool\\|null given on the left side\\.$#" count: 2 diff --git a/src/Composer/DependencyResolver/Problem.php b/src/Composer/DependencyResolver/Problem.php index a49bf5436..652144b23 100644 --- a/src/Composer/DependencyResolver/Problem.php +++ b/src/Composer/DependencyResolver/Problem.php @@ -98,9 +98,60 @@ class Problem } } + usort($reasons, function (Rule $rule1, Rule $rule2) use ($pool) { + $rule1Prio = $this->getRulePriority($rule1); + $rule2Prio = $this->getRulePriority($rule2); + if ($rule1Prio !== $rule2Prio) { + return $rule2Prio - $rule1Prio; + } + + return $this->getSortableString($pool, $rule1) <=> $this->getSortableString($pool, $rule2); + }); + return self::formatDeduplicatedRules($reasons, ' ', $repositorySet, $request, $pool, $isVerbose, $installedMap, $learnedPool); } + private function getSortableString(Pool $pool, Rule $rule): string + { + switch ($rule->getReason()) { + case Rule::RULE_ROOT_REQUIRE: + return $rule->getReasonData()['packageName']; + case Rule::RULE_FIXED: + return (string) $rule->getReasonData()['package']; + case Rule::RULE_PACKAGE_CONFLICT: + case Rule::RULE_PACKAGE_REQUIRES: + return $rule->getSourcePackage($pool) . '//' . $rule->getReasonData()->getPrettyString($rule->getSourcePackage($pool)); + case Rule::RULE_PACKAGE_SAME_NAME: + case Rule::RULE_PACKAGE_ALIAS: + case Rule::RULE_PACKAGE_INVERSE_ALIAS: + return (string) $rule->getReasonData(); + case Rule::RULE_LEARNED: + return implode('-', $rule->getLiterals()); + } + + throw new \LogicException('Unknown rule type: '.$rule->getReason()); + } + + private function getRulePriority(Rule $rule): int + { + switch ($rule->getReason()) { + case Rule::RULE_FIXED: + return 3; + case Rule::RULE_ROOT_REQUIRE: + return 2; + case Rule::RULE_PACKAGE_CONFLICT: + case Rule::RULE_PACKAGE_REQUIRES: + return 1; + case Rule::RULE_PACKAGE_SAME_NAME: + case Rule::RULE_LEARNED: + case Rule::RULE_PACKAGE_ALIAS: + case Rule::RULE_PACKAGE_INVERSE_ALIAS: + return 0; + } + + throw new \LogicException('Unknown rule type: '.$rule->getReason()); + } + /** * @param Rule[] $rules * @param array $installedMap A map of all present packages diff --git a/tests/Composer/Test/DependencyResolver/SolverTest.php b/tests/Composer/Test/DependencyResolver/SolverTest.php index c04f3f978..2e7d3eb10 100644 --- a/tests/Composer/Test/DependencyResolver/SolverTest.php +++ b/tests/Composer/Test/DependencyResolver/SolverTest.php @@ -777,8 +777,8 @@ class SolverTest extends TestCase $msg = "\n"; $msg .= " Problem 1\n"; $msg .= " - Root composer.json requires a * -> satisfiable by A[1.0].\n"; - $msg .= " - A 1.0 conflicts with B 1.0.\n"; $msg .= " - Root composer.json requires b * -> satisfiable by B[1.0].\n"; + $msg .= " - A 1.0 conflicts with B 1.0.\n"; self::assertEquals($msg, $e->getPrettyString($this->repoSet, $this->request, $this->pool, false)); } } @@ -851,12 +851,12 @@ class SolverTest extends TestCase $msg = "\n"; $msg .= " Problem 1\n"; + $msg .= " - Root composer.json requires a * -> satisfiable by A[1.0].\n"; + $msg .= " - A 1.0 requires b >= 1.0 -> satisfiable by B[1.0].\n"; + $msg .= " - B 1.0 requires c >= 1.0 -> satisfiable by C[1.0].\n"; $msg .= " - C 1.0 requires d >= 1.0 -> satisfiable by D[1.0].\n"; $msg .= " - D 1.0 requires b < 1.0 -> satisfiable by B[0.9].\n"; - $msg .= " - B 1.0 requires c >= 1.0 -> satisfiable by C[1.0].\n"; $msg .= " - You can only install one version of a package, so only one of these can be installed: B[0.9, 1.0].\n"; - $msg .= " - A 1.0 requires b >= 1.0 -> satisfiable by B[1.0].\n"; - $msg .= " - Root composer.json requires a * -> satisfiable by A[1.0].\n"; self::assertEquals($msg, $e->getPrettyString($this->repoSet, $this->request, $this->pool, false)); } } diff --git a/tests/Composer/Test/Fixtures/installer-slow/github-issues-7665.test b/tests/Composer/Test/Fixtures/installer-slow/github-issues-7665.test index 33e29deec..a971ad45b 100644 --- a/tests/Composer/Test/Fixtures/installer-slow/github-issues-7665.test +++ b/tests/Composer/Test/Fixtures/installer-slow/github-issues-7665.test @@ -2799,237 +2799,237 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.1 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.2 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.3 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.4 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.5 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.6 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.7 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.8 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.13.0 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.13.1 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.13.2 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.13.3 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.14.0 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.14.1 (conflict analysis result) - - Conclusion: don't install friendsofphp/php-cs-fixer v2.14.2 (conflict analysis result) - - Root composer.json requires friendsofphp/php-cs-fixer ^2.12 -> satisfiable by friendsofphp/php-cs-fixer[v2.12.0, ..., v2.14.2]. - - Conclusion: don't install symfony/finder v2.7.3 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.0.2 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.4 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.0.3 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.5 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.0.4 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.6 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.0.5 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.7 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.0.6 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.8 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.0.7 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.9 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.0.8 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.10 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.0.9 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.11 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.1.0 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.12 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.1.1 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.13 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.1.2 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.14 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.1.3 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.15 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.1.4 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.16 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.1.5 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.17 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.1.6 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.18 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.1.7 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.19 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.1.8 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.20 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.1.9 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.21 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.1.10 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.22 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.0 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.23 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.1 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.24 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.2 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.25 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.3 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.26 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.4 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.27 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.5 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.28 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.6 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.29 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.7 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.30 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.8 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.31 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.9 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.32 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.10 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.33 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.11 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.34 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.12 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.35 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.13 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.36 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.2.14 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.37 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.0 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.38 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.1 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.39 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.2 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.40 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.3 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.41 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.4 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.42 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.5 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.43 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.6 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.44 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.7 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.45 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.8 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.46 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.9 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.47 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.10 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.48 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.11 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.49 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.12 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.7.50 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.13 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.0 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.14 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.1 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.15 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.2 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.16 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.3 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.17 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.4 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.3.18 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.5 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.0 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.6 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.1 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.7 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.2 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.8 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.3 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.9 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.4 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.10 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.5 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.11 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.6 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.12 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.7 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.13 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.8 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.14 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.9 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.15 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.10 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.16 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.11 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.17 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.12 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.18 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.13 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.19 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.14 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.20 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.15 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.21 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.16 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.22 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.17 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.23 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.18 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.24 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.19 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.25 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.20 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.26 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.21 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.27 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.22 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.28 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.23 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.29 (conflict analysis result) - - Conclusion: don't install symfony/finder v3.4.24 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.30 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.0 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.31 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.1 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.32 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.2 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.33 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.3 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.34 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.4 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.35 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.5 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.36 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.6 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.37 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.7 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.38 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.8 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.39 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.9 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.40 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.10 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.41 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.11 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.42 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.12 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.43 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.13 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.44 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.14 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.45 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.0.15 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.46 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.1.0 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.47 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.1.1 (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.48 (conflict analysis result) - - Conclusion: don't install symfony/finder v4.1.2 (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.2.5] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.2.4] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.2.3] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.2.2] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.2.1] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.2.0] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.1.11] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.1.10] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.1.9] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.1.8] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.1.7] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.1.6] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.1.5] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.1.4] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder[v4.1.3] | install symfony/finder[v2.8.49] (conflict analysis result) - - Conclusion: don't install symfony/finder v2.8.49 (conflict analysis result) - Root composer.json requires behat/behat ~2.5 -> satisfiable by behat/behat[v2.5.5]. + - Root composer.json requires friendsofphp/php-cs-fixer ^2.12 -> satisfiable by friendsofphp/php-cs-fixer[v2.12.0, ..., v2.14.2]. - behat/behat v2.5.5 requires symfony/finder ~2.0 -> satisfiable by symfony/finder[v2.6.0, ..., v2.8.49]. - - You can only install one version of a package, so only one of these can be installed: symfony/finder[v2.6.0, ..., v2.8.49, v3.0.0, ..., v3.4.24, v4.0.0, ..., v4.2.5]. - friendsofphp/php-cs-fixer v2.12.0 requires symfony/finder ^3.0 || ^4.0 -> satisfiable by symfony/finder[v3.0.0, ..., v3.4.24, v4.0.0, ..., v4.2.5]. + - Conclusion: don't install symfony/finder v4.1.2 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.1.1 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.1.0 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.9 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.8 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.7 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.6 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.5 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.4 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.3 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.2 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.15 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.14 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.13 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.12 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.11 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.10 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.1 (conflict analysis result) + - Conclusion: don't install symfony/finder v4.0.0 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.9 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.8 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.7 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.6 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.5 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.4 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.3 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.24 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.23 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.22 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.21 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.20 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.2 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.19 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.18 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.17 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.16 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.15 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.14 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.13 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.12 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.11 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.10 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.1 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.4.0 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.9 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.8 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.7 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.6 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.5 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.4 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.3 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.2 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.18 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.17 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.16 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.15 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.14 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.13 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.12 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.11 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.10 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.1 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.3.0 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.9 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.8 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.7 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.6 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.5 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.4 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.3 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.2 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.14 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.13 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.12 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.11 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.10 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.1 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.2.0 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.1.9 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.1.8 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.1.7 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.1.6 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.1.5 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.1.4 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.1.3 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.1.2 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.1.10 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.1.1 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.1.0 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.0.9 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.0.8 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.0.7 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.0.6 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.0.5 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.0.4 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.0.3 (conflict analysis result) + - Conclusion: don't install symfony/finder v3.0.2 (conflict analysis result) - Conclusion: don't install symfony/finder v3.0.1 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.9 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.8 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.7 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.6 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.5 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.49 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.48 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.47 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.46 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.45 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.44 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.43 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.42 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.41 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.40 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.4 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.39 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.38 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.37 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.36 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.35 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.34 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.33 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.32 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.31 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.30 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.3 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.29 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.28 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.27 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.26 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.25 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.24 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.23 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.22 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.21 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.20 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.2 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.19 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.18 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.17 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.16 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.15 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.14 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.13 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.12 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.11 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.10 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.1 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.8.0 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.9 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.8 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.7 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.6 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.50 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.5 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.49 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.48 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.47 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.46 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.45 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.44 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.43 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.42 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.41 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.40 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.4 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.39 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.38 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.37 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.36 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.35 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.34 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.33 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.32 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.31 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.30 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.3 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.29 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.28 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.27 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.26 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.25 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.24 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.23 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.22 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.21 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.20 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.19 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.18 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.17 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.16 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.15 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.14 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.13 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.12 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.11 (conflict analysis result) + - Conclusion: don't install symfony/finder v2.7.10 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.14.2 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.14.1 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.14.0 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.13.3 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.13.2 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.13.1 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.13.0 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.8 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.7 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.6 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.5 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.4 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.3 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.2 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.12.1 (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.1.10] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.1.11] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.1.3] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.1.4] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.1.5] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.1.6] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.1.7] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.1.8] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.1.9] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.2.0] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.2.1] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.2.2] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.2.3] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.2.4] | install symfony/finder[v2.8.49] (conflict analysis result) + - Conclusion: don't install symfony/finder[v4.2.5] | install symfony/finder[v2.8.49] (conflict analysis result) + - You can only install one version of a package, so only one of these can be installed: symfony/finder[v2.6.0, ..., v2.8.49, v3.0.0, ..., v3.4.24, v4.0.0, ..., v4.2.5]. --EXPECT-- diff --git a/tests/Composer/Test/Fixtures/installer/alias-solver-problems.test b/tests/Composer/Test/Fixtures/installer/alias-solver-problems.test index 1729826ec..16e93b0fb 100644 --- a/tests/Composer/Test/Fixtures/installer/alias-solver-problems.test +++ b/tests/Composer/Test/Fixtures/installer/alias-solver-problems.test @@ -45,12 +45,11 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 + - Root composer.json requires a/a *@dev -> satisfiable by a/a[dev-master]. - Root composer.json requires b/b *@dev -> satisfiable by b/b[dev-master]. - a/a dev-master requires d/d 1.0.0 -> satisfiable by d/d[1.0.0]. - - You can only install one version of a package, so only one of these can be installed: d/d[1.0.0, 2.0.0]. - b/b dev-master requires d/d 2.0.0 -> satisfiable by d/d[2.0.0]. - Conclusion: install b/b dev-master (conflict analysis result) - - Root composer.json requires a/a *@dev -> satisfiable by a/a[dev-master]. + - You can only install one version of a package, so only one of these can be installed: d/d[1.0.0, 2.0.0]. --EXPECT-- - diff --git a/tests/Composer/Test/Fixtures/installer/alias-solver-problems2.test b/tests/Composer/Test/Fixtures/installer/alias-solver-problems2.test index 3e37004d5..f32aa31fd 100644 --- a/tests/Composer/Test/Fixtures/installer/alias-solver-problems2.test +++ b/tests/Composer/Test/Fixtures/installer/alias-solver-problems2.test @@ -43,9 +43,8 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - - locked/pkg dev-master requires locked/dependency 1.0.0 -> found locked/dependency[1.0.0] in the lock file but not in remote repositories, make sure you avoid updating this package to keep the one from the lock file. - locked/pkg is locked to version dev-master and an update of this package was not requested. + - locked/pkg dev-master requires locked/dependency 1.0.0 -> found locked/dependency[1.0.0] in the lock file but not in remote repositories, make sure you avoid updating this package to keep the one from the lock file. Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions. --EXPECT-- - diff --git a/tests/Composer/Test/Fixtures/installer/broken-deps-do-not-replace.test b/tests/Composer/Test/Fixtures/installer/broken-deps-do-not-replace.test index c9a9dba6e..baccf01ff 100644 --- a/tests/Composer/Test/Fixtures/installer/broken-deps-do-not-replace.test +++ b/tests/Composer/Test/Fixtures/installer/broken-deps-do-not-replace.test @@ -26,9 +26,9 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - - c/c 1.0.0 requires x/x 1.0 -> could not be found in any version, there may be a typo in the package name. - - b/b 1.0.0 requires c/c 1.* -> satisfiable by c/c[1.0.0]. - Root composer.json requires b/b 1.* -> satisfiable by b/b[1.0.0]. + - b/b 1.0.0 requires c/c 1.* -> satisfiable by c/c[1.0.0]. + - c/c 1.0.0 requires x/x 1.0 -> could not be found in any version, there may be a typo in the package name. Potential causes: - A typo in the package name diff --git a/tests/Composer/Test/Fixtures/installer/conflict-against-replaced-by-dep-package-problem.test b/tests/Composer/Test/Fixtures/installer/conflict-against-replaced-by-dep-package-problem.test index 81035601a..f316ccc68 100644 --- a/tests/Composer/Test/Fixtures/installer/conflict-against-replaced-by-dep-package-problem.test +++ b/tests/Composer/Test/Fixtures/installer/conflict-against-replaced-by-dep-package-problem.test @@ -41,8 +41,7 @@ Your requirements could not be resolved to an installable set of packages. Problem 1 - Root composer.json requires conflicting/pkg * -> satisfiable by conflicting/pkg[1.0.0]. - - conflicting/pkg 1.0.0 conflicts with replaced/pkg2 >=2.1 (provider/pkg 1.0.0 replaces replaced/pkg2 2.5). - Root composer.json requires provider/pkg * -> satisfiable by provider/pkg[1.0.0]. + - conflicting/pkg 1.0.0 conflicts with replaced/pkg2 >=2.1 (provider/pkg 1.0.0 replaces replaced/pkg2 2.5). --EXPECT-- - diff --git a/tests/Composer/Test/Fixtures/installer/conflict-against-replaced-package-problem.test b/tests/Composer/Test/Fixtures/installer/conflict-against-replaced-package-problem.test index b6cca7270..2fe44ae4d 100644 --- a/tests/Composer/Test/Fixtures/installer/conflict-against-replaced-package-problem.test +++ b/tests/Composer/Test/Fixtures/installer/conflict-against-replaced-package-problem.test @@ -38,8 +38,7 @@ Your requirements could not be resolved to an installable set of packages. Problem 1 - __root__ is present at version 1.2.3 and cannot be modified by Composer - - conflicting/pkg 1.0.0 conflicts with replaced/pkg 2.* (__root__ 1.2.3 replaces replaced/pkg 2.*). - Root composer.json requires conflicting/pkg * -> satisfiable by conflicting/pkg[1.0.0]. + - conflicting/pkg 1.0.0 conflicts with replaced/pkg 2.* (__root__ 1.2.3 replaces replaced/pkg 2.*). --EXPECT-- - diff --git a/tests/Composer/Test/Fixtures/installer/conflict-between-dependents.test b/tests/Composer/Test/Fixtures/installer/conflict-between-dependents.test index a59b2ef98..71bf55709 100644 --- a/tests/Composer/Test/Fixtures/installer/conflict-between-dependents.test +++ b/tests/Composer/Test/Fixtures/installer/conflict-between-dependents.test @@ -31,8 +31,7 @@ Your requirements could not be resolved to an installable set of packages. Problem 1 - Root composer.json requires conflicter/pkg 1.0.0 -> satisfiable by conflicter/pkg[1.0.0]. - - conflicter/pkg 1.0.0 conflicts with victim/pkg 1.0.0. - Root composer.json requires victim/pkg 1.0.0 -> satisfiable by victim/pkg[1.0.0]. + - conflicter/pkg 1.0.0 conflicts with victim/pkg 1.0.0. --EXPECT-- - diff --git a/tests/Composer/Test/Fixtures/installer/conflict-on-root-with-alias-prevents-update-if-not-required.test b/tests/Composer/Test/Fixtures/installer/conflict-on-root-with-alias-prevents-update-if-not-required.test index 3a457b22c..d562163c6 100644 --- a/tests/Composer/Test/Fixtures/installer/conflict-on-root-with-alias-prevents-update-if-not-required.test +++ b/tests/Composer/Test/Fixtures/installer/conflict-on-root-with-alias-prevents-update-if-not-required.test @@ -32,7 +32,7 @@ Your requirements could not be resolved to an installable set of packages. Problem 1 - __root__ is present at version 1.0.0+no-version-set and cannot be modified by Composer - - some/dep 1.3.x-dev is an alias of some/dep dev-main and must be installed with it. - - __root__ 1.0.0+no-version-set conflicts with some/dep 1.3.x-dev. - Root composer.json requires some/dep dev-main -> satisfiable by some/dep[dev-main]. + - __root__ 1.0.0+no-version-set conflicts with some/dep 1.3.x-dev. + - some/dep 1.3.x-dev is an alias of some/dep dev-main and must be installed with it. --EXPECT-- diff --git a/tests/Composer/Test/Fixtures/installer/conflict-with-alias-in-lock-does-prevents-install.test b/tests/Composer/Test/Fixtures/installer/conflict-with-alias-in-lock-does-prevents-install.test index c19ca396c..6009d64cf 100644 --- a/tests/Composer/Test/Fixtures/installer/conflict-with-alias-in-lock-does-prevents-install.test +++ b/tests/Composer/Test/Fixtures/installer/conflict-with-alias-in-lock-does-prevents-install.test @@ -48,7 +48,7 @@ Your lock file does not contain a compatible set of packages. Please run compose Problem 1 - conflictor/foo is locked to version 1.0.0 and an update of this package was not requested. - - conflictor/foo 1.0.0 conflicts with some/dep 1.3.x-dev. - some/dep is locked to version 1.3.x-dev and an update of this package was not requested. + - conflictor/foo 1.0.0 conflicts with some/dep 1.3.x-dev. --EXPECT-- diff --git a/tests/Composer/Test/Fixtures/installer/conflict-with-alias-prevents-update-if-not-required.test b/tests/Composer/Test/Fixtures/installer/conflict-with-alias-prevents-update-if-not-required.test index 78cfd0362..8475f41fb 100644 --- a/tests/Composer/Test/Fixtures/installer/conflict-with-alias-prevents-update-if-not-required.test +++ b/tests/Composer/Test/Fixtures/installer/conflict-with-alias-prevents-update-if-not-required.test @@ -30,9 +30,9 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 + - Root composer.json requires conflictor/foo 1.0.0 -> satisfiable by conflictor/foo[1.0.0]. - Root composer.json requires some/dep dev-main -> satisfiable by some/dep[dev-main]. - conflictor/foo 1.0.0 conflicts with some/dep 1.3.x-dev. - some/dep 1.3.x-dev is an alias of some/dep dev-main and must be installed with it. - - Root composer.json requires conflictor/foo 1.0.0 -> satisfiable by conflictor/foo[1.0.0]. --EXPECT-- diff --git a/tests/Composer/Test/Fixtures/installer/conflict-with-all-dependencies-option-dont-recommend-to-use-it.test b/tests/Composer/Test/Fixtures/installer/conflict-with-all-dependencies-option-dont-recommend-to-use-it.test index 1f5120880..f1c5714a5 100644 --- a/tests/Composer/Test/Fixtures/installer/conflict-with-all-dependencies-option-dont-recommend-to-use-it.test +++ b/tests/Composer/Test/Fixtures/installer/conflict-with-all-dependencies-option-dont-recommend-to-use-it.test @@ -43,8 +43,7 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - - locked/pkg dev-master requires locked/dependency 1.0.0 -> found locked/dependency[1.0.0] in the lock file but not in remote repositories, make sure you avoid updating this package to keep the one from the lock file. - locked/pkg is locked to version dev-master and an update of this package was not requested. + - locked/pkg dev-master requires locked/dependency 1.0.0 -> found locked/dependency[1.0.0] in the lock file but not in remote repositories, make sure you avoid updating this package to keep the one from the lock file. --EXPECT-- - diff --git a/tests/Composer/Test/Fixtures/installer/deduplicate-solver-problems.test b/tests/Composer/Test/Fixtures/installer/deduplicate-solver-problems.test index 02155ef52..fc26296dd 100644 --- a/tests/Composer/Test/Fixtures/installer/deduplicate-solver-problems.test +++ b/tests/Composer/Test/Fixtures/installer/deduplicate-solver-problems.test @@ -41,9 +41,8 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - - package/a[2.2.0, ..., 2.6.0] require missing/dep ^1.1 -> found missing/dep[2.0.0] but it does not match the constraint. - - package/a[2.0.0, ..., 2.1.0] require missing/dep ^1.0 -> found missing/dep[2.0.0] but it does not match the constraint. - Root composer.json requires package/a * -> satisfiable by package/a[2.0.0, ..., 2.6.0]. + - package/a[2.0.0, ..., 2.1.0] require missing/dep ^1.0 -> found missing/dep[2.0.0] but it does not match the constraint. + - package/a[2.2.0, ..., 2.6.0] require missing/dep ^1.1 -> found missing/dep[2.0.0] but it does not match the constraint. --EXPECT-- - diff --git a/tests/Composer/Test/Fixtures/installer/github-issues-7051.test b/tests/Composer/Test/Fixtures/installer/github-issues-7051.test index 190689db9..ada638675 100644 --- a/tests/Composer/Test/Fixtures/installer/github-issues-7051.test +++ b/tests/Composer/Test/Fixtures/installer/github-issues-7051.test @@ -115,19 +115,19 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - - Conclusion: don't install friendsofphp/php-cs-fixer v2.10.5 (conflict analysis result) - Root composer.json requires friendsofphp/php-cs-fixer * -> satisfiable by friendsofphp/php-cs-fixer[v2.10.4, v2.10.5]. - - illuminate/queue v5.2.0 requires illuminate/console 5.2.* -> satisfiable by illuminate/console[v5.2.25, v5.2.26]. - - illuminate/console v5.2.26 requires symfony/console 2.8.* -> satisfiable by symfony/console[v2.8.7, v2.8.8]. - - Conclusion: don't install symfony/console v2.8.7 (conflict analysis result) - - Conclusion: don't install symfony/console v3.4.28 (conflict analysis result) - - Conclusion: don't install symfony/console v2.8.8 (conflict analysis result) - - Conclusion: don't install symfony/console v3.4.29 (conflict analysis result) - Root composer.json requires illuminate/queue * -> satisfiable by illuminate/queue[v5.2.0]. - friendsofphp/php-cs-fixer v2.10.4 requires symfony/console ^3.2 || ^4.0 -> satisfiable by symfony/console[v3.2.13, ..., v3.4.29]. - - You can only install one version of a package, so only one of these can be installed: symfony/console[v2.8.7, v2.8.8, v3.1.9, ..., v3.4.29]. - illuminate/console v5.2.25 requires symfony/console 3.1.* -> satisfiable by symfony/console[v3.1.9, v3.1.10]. + - illuminate/console v5.2.26 requires symfony/console 2.8.* -> satisfiable by symfony/console[v2.8.7, v2.8.8]. + - illuminate/queue v5.2.0 requires illuminate/console 5.2.* -> satisfiable by illuminate/console[v5.2.25, v5.2.26]. + - Conclusion: don't install symfony/console v2.8.7 (conflict analysis result) + - Conclusion: don't install symfony/console v2.8.8 (conflict analysis result) - Conclusion: don't install symfony/console v3.1.10 (conflict analysis result) + - Conclusion: don't install symfony/console v3.4.28 (conflict analysis result) + - Conclusion: don't install symfony/console v3.4.29 (conflict analysis result) + - Conclusion: don't install friendsofphp/php-cs-fixer v2.10.5 (conflict analysis result) + - You can only install one version of a package, so only one of these can be installed: symfony/console[v2.8.7, v2.8.8, v3.1.9, ..., v3.4.29]. --EXPECT-OUTPUT-OPTIMIZED-- Loading composer repositories with package information @@ -135,16 +135,15 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 + - Root composer.json requires friendsofphp/php-cs-fixer * -> satisfiable by friendsofphp/php-cs-fixer[v2.10.4, v2.10.5]. - Root composer.json requires illuminate/queue * -> satisfiable by illuminate/queue[v5.2.0]. - - illuminate/queue v5.2.0 requires illuminate/console 5.2.* -> satisfiable by illuminate/console[v5.2.25, v5.2.26]. + - friendsofphp/php-cs-fixer[v2.10.4, ..., v2.10.5] require symfony/console ^3.2 || ^4.0 -> satisfiable by symfony/console[v3.2.13, ..., v3.4.29]. - illuminate/console v5.2.25 requires symfony/console 3.1.* -> satisfiable by symfony/console[v3.1.9, v3.1.10]. - illuminate/console v5.2.26 requires symfony/console 2.8.* -> satisfiable by symfony/console[v2.8.7, v2.8.8]. + - illuminate/queue v5.2.0 requires illuminate/console 5.2.* -> satisfiable by illuminate/console[v5.2.25, v5.2.26]. - You can only install one version of a package, so only one of these can be installed: symfony/console[v2.8.7, v2.8.8, v3.1.9, ..., v3.4.29]. - - friendsofphp/php-cs-fixer[v2.10.4, ..., v2.10.5] require symfony/console ^3.2 || ^4.0 -> satisfiable by symfony/console[v3.2.13, ..., v3.4.29]. - - Root composer.json requires friendsofphp/php-cs-fixer * -> satisfiable by friendsofphp/php-cs-fixer[v2.10.4, v2.10.5]. --EXPECT-- --EXPECT-EXIT-CODE-- 2 - diff --git a/tests/Composer/Test/Fixtures/installer/github-issues-8902.test b/tests/Composer/Test/Fixtures/installer/github-issues-8902.test index 53fc1275b..bc2515525 100644 --- a/tests/Composer/Test/Fixtures/installer/github-issues-8902.test +++ b/tests/Composer/Test/Fixtures/installer/github-issues-8902.test @@ -34,11 +34,11 @@ Your requirements could not be resolved to an installable set of packages. Problem 1 - Root composer.json requires beyondcode/laravel-dump-server ^1.3 -> satisfiable by beyondcode/laravel-dump-server[1.4.0]. + - Root composer.json requires laravel/framework ^6.8 -> satisfiable by laravel/framework[6.8.14]. + - beyondcode/laravel-dump-server 1.4.0 requires symfony/var-dumper ^5.0 -> satisfiable by symfony/var-dumper[5.2.x-dev (alias of dev-master)]. + - laravel/framework 6.8.14 requires symfony/var-dumper ^4.3.4 -> satisfiable by symfony/var-dumper[4.4.0]. - You can only install one version of a package, so only one of these can be installed: symfony/var-dumper[dev-master, 4.4.0]. - symfony/var-dumper 5.2.x-dev is an alias of symfony/var-dumper dev-master and thus requires it to be installed too. - - laravel/framework 6.8.14 requires symfony/var-dumper ^4.3.4 -> satisfiable by symfony/var-dumper[4.4.0]. - - beyondcode/laravel-dump-server 1.4.0 requires symfony/var-dumper ^5.0 -> satisfiable by symfony/var-dumper[5.2.x-dev (alias of dev-master)]. - - Root composer.json requires laravel/framework ^6.8 -> satisfiable by laravel/framework[6.8.14]. --EXPECT-- diff --git a/tests/Composer/Test/Fixtures/installer/provider-conflicts.test b/tests/Composer/Test/Fixtures/installer/provider-conflicts.test index a73dd3dc9..572440468 100644 --- a/tests/Composer/Test/Fixtures/installer/provider-conflicts.test +++ b/tests/Composer/Test/Fixtures/installer/provider-conflicts.test @@ -42,8 +42,7 @@ Your requirements could not be resolved to an installable set of packages. Problem 1 - __root__ is present at version 1.2.3 and cannot be modified by Composer - - provider/pkg[1.0.0] cannot be installed as that would require removing __root__[1.2.3]. They both replace root-replaced/transitive-replaced and thus cannot coexist. - Root composer.json requires provider/pkg * -> satisfiable by provider/pkg[1.0.0]. + - provider/pkg[1.0.0] cannot be installed as that would require removing __root__[1.2.3]. They both replace root-replaced/transitive-replaced and thus cannot coexist. --EXPECT-- - diff --git a/tests/Composer/Test/Fixtures/installer/provider-conflicts3.test b/tests/Composer/Test/Fixtures/installer/provider-conflicts3.test index 29f0ebe86..eb54bb93d 100644 --- a/tests/Composer/Test/Fixtures/installer/provider-conflicts3.test +++ b/tests/Composer/Test/Fixtures/installer/provider-conflicts3.test @@ -37,12 +37,12 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - - Conclusion: don't install regular/pkg 1.0.1 (conflict analysis result) - - Conclusion: don't install regular/pkg 1.0.2 (conflict analysis result) - - Conclusion: don't install regular/pkg 1.0.3 (conflict analysis result) - - Only one of these can be installed: regular/pkg[1.0.0, 1.0.1, 1.0.2, 1.0.3], replacer/pkg[2.0.0, 2.0.1, 2.0.2, 2.0.3]. replacer/pkg replaces regular/pkg and thus cannot coexist with it. - Root composer.json requires regular/pkg 1.* -> satisfiable by regular/pkg[1.0.0, 1.0.1, 1.0.2, 1.0.3]. - Root composer.json requires replacer/pkg 2.* -> satisfiable by replacer/pkg[2.0.0, 2.0.1, 2.0.2, 2.0.3]. + - Conclusion: don't install regular/pkg 1.0.3 (conflict analysis result) + - Conclusion: don't install regular/pkg 1.0.2 (conflict analysis result) + - Conclusion: don't install regular/pkg 1.0.1 (conflict analysis result) + - Only one of these can be installed: regular/pkg[1.0.0, 1.0.1, 1.0.2, 1.0.3], replacer/pkg[2.0.0, 2.0.1, 2.0.2, 2.0.3]. replacer/pkg replaces regular/pkg and thus cannot coexist with it. --EXPECT-OUTPUT-OPTIMIZED-- Loading composer repositories with package information @@ -50,9 +50,8 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - - Only one of these can be installed: regular/pkg[1.0.0, 1.0.1, 1.0.2, 1.0.3], replacer/pkg[2.0.0, 2.0.1, 2.0.2, 2.0.3]. replacer/pkg replaces regular/pkg and thus cannot coexist with it. - Root composer.json requires regular/pkg 1.* -> satisfiable by regular/pkg[1.0.0, 1.0.1, 1.0.2, 1.0.3]. - Root composer.json requires replacer/pkg 2.* -> satisfiable by replacer/pkg[2.0.0, 2.0.1, 2.0.2, 2.0.3]. + - Only one of these can be installed: regular/pkg[1.0.0, 1.0.1, 1.0.2, 1.0.3], replacer/pkg[2.0.0, 2.0.1, 2.0.2, 2.0.3]. replacer/pkg replaces regular/pkg and thus cannot coexist with it. --EXPECT-- - diff --git a/tests/Composer/Test/Fixtures/installer/solver-problems.test b/tests/Composer/Test/Fixtures/installer/solver-problems.test index 610911bb9..95f7f6e2b 100644 --- a/tests/Composer/Test/Fixtures/installer/solver-problems.test +++ b/tests/Composer/Test/Fixtures/installer/solver-problems.test @@ -141,9 +141,9 @@ Your requirements could not be resolved to an installable set of packages. - Root composer.json requires requirer/pkg 1.* -> satisfiable by requirer/pkg[1.0.0]. - requirer/pkg 1.0.0 requires dependency/pkg 1.0.0 -> found dependency/pkg[1.0.0] but it conflicts with your root composer.json require (2.*). Problem 15 - - requirer/pkg 1.0.0 requires dependency/pkg 1.0.0 -> found dependency/pkg[1.0.0] but it conflicts with your root composer.json require (2.*). - - package/found5 2.0.0 requires requirer/pkg 1.* -> satisfiable by requirer/pkg[1.0.0]. - Root composer.json requires package/found5 2.* -> satisfiable by package/found5[2.0.0]. + - package/found5 2.0.0 requires requirer/pkg 1.* -> satisfiable by requirer/pkg[1.0.0]. + - requirer/pkg 1.0.0 requires dependency/pkg 1.0.0 -> found dependency/pkg[1.0.0] but it conflicts with your root composer.json require (2.*). Potential causes: - A typo in the package name diff --git a/tests/Composer/Test/Fixtures/installer/unbounded-conflict-matches-default-branch.test b/tests/Composer/Test/Fixtures/installer/unbounded-conflict-matches-default-branch.test index d4a3b4d85..ae1bfdb5c 100644 --- a/tests/Composer/Test/Fixtures/installer/unbounded-conflict-matches-default-branch.test +++ b/tests/Composer/Test/Fixtures/installer/unbounded-conflict-matches-default-branch.test @@ -32,8 +32,8 @@ Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - - conflicter/pkg 1.0.0 conflicts with victim/pkg dev-master. - Root composer.json requires conflicter/pkg 1.0.0 -> satisfiable by conflicter/pkg[1.0.0]. - Root composer.json requires victim/pkg * -> satisfiable by victim/pkg[dev-master]. + - conflicter/pkg 1.0.0 conflicts with victim/pkg dev-master. --EXPECT--