Skip to content

Commit

Permalink
Fix handling of upper-bound platform req ignores to not act on confli…
Browse files Browse the repository at this point in the history
…cts (#11037)

* Fix handling of upper-bound platform req ignores to not act on conflicts, fixes #11020

* Optimization
  • Loading branch information
Seldaek committed Sep 13, 2022
1 parent 44f9b80 commit 8a8c50c
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/Composer/DependencyResolver/RuleSetGenerator.php
Expand Up @@ -233,7 +233,7 @@ protected function addConflictRules(PlatformRequirementFilterInterface $platform
if ($platformRequirementFilter->isIgnored($link->getTarget())) {
continue;
} elseif ($platformRequirementFilter instanceof IgnoreListPlatformRequirementFilter) {
$constraint = $platformRequirementFilter->filterConstraint($link->getTarget(), $constraint);
$constraint = $platformRequirementFilter->filterConstraint($link->getTarget(), $constraint, false);
}

$conflicts = $this->pool->whatProvides($link->getTarget(), $constraint);
Expand Down
Expand Up @@ -57,14 +57,15 @@ public function isIgnored($req)
/**
* @param string $req
* @return ConstraintInterface
* @param bool $allowUpperBoundOverride For conflicts we do not want the upper bound to be skipped
*/
public function filterConstraint($req, ConstraintInterface $constraint)
public function filterConstraint($req, ConstraintInterface $constraint, $allowUpperBoundOverride = true)
{
if (!PlatformRepository::isPlatformPackage($req)) {
return $constraint;
}

if (!Preg::isMatch($this->ignoreUpperBoundRegex, $req)) {
if (!$allowUpperBoundOverride || !Preg::isMatch($this->ignoreUpperBoundRegex, $req)) {
return $constraint;
}

Expand Down
Expand Up @@ -7,13 +7,15 @@ Update with ignore-platform-req list ignoring upper bound of a dependency
"type": "package",
"package": [
{ "name": "a/a", "version": "1.0.1", "require": { "ext-foo-bar": "3.*" } },
{ "name": "b/b", "version": "1.0.1", "require": { "ext-foo-bar": "10.*" } }
{ "name": "b/b", "version": "1.0.1", "require": { "ext-foo-bar": "10.*" } },
{ "name": "c/c", "version": "1.0.1", "conflict": { "ext-foo-bar": "4.0.0 - 4.0.2", "php": "3.0.*" } }
]
}
],
"require": {
"a/a": "1.0.*",
"b/b": "1.0.*",
"c/c": "1.0.*",
"php": "^4.3",
"ext-foo-baz": "9.0.0"
},
Expand Down

0 comments on commit 8a8c50c

Please sign in to comment.