From a6fc1ab663c08240c324b3b8ee463d16c4ed75f8 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Thu, 25 Nov 2021 15:18:24 +0100 Subject: [PATCH] Fix feedback --- src/Composer/DependencyResolver/PoolBuilder.php | 12 +++--------- .../partial-update-with-symlinked-path-repos.test | 9 ++------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/src/Composer/DependencyResolver/PoolBuilder.php b/src/Composer/DependencyResolver/PoolBuilder.php index 0a81bdde9..5d9f2e325 100644 --- a/src/Composer/DependencyResolver/PoolBuilder.php +++ b/src/Composer/DependencyResolver/PoolBuilder.php @@ -165,8 +165,6 @@ class PoolBuilder foreach ($request->getLockedRepository()->getPackages() as $lockedPackage) { if (!$this->isUpdateAllowed($lockedPackage)) { - $lockedName = $lockedPackage->getName(); - // remember which packages we skipped loading remote content for in this partial update $this->skippedLoad[$lockedPackage->getName()][] = $lockedPackage; foreach ($lockedPackage->getReplaces() as $link) { @@ -624,7 +622,7 @@ class PoolBuilder if (isset($this->pathRepoUnlocked[$name])) { foreach ($this->packages as $index => $package) { if ($package->getName() === $name) { - $this->removeLoadedPackage($request, $repositories, $package, $index, false); + $this->removeLoadedPackage($request, $repositories, $package, $index); } } } @@ -636,7 +634,7 @@ class PoolBuilder if (!($lockedPackage instanceof AliasPackage) && $lockedPackage->getName() === $name) { if (false !== $index = array_search($lockedPackage, $this->packages, true)) { $request->unlockPackage($lockedPackage); - $this->removeLoadedPackage($request, $repositories, $lockedPackage, $index, true); + $this->removeLoadedPackage($request, $repositories, $lockedPackage, $index); // make sure that any requirements for this package by other locked or fixed packages are now // also loaded, as they were previously ignored because the locked (now unlocked) package already @@ -661,10 +659,9 @@ class PoolBuilder /** * @param RepositoryInterface[] $repositories * @param int $index - * @param bool $unlock * @return void */ - private function removeLoadedPackage(Request $request, array $repositories, BasePackage $package, $index, $unlock) + private function removeLoadedPackage(Request $request, array $repositories, BasePackage $package, $index) { $repoIndex = array_search($package->getRepository(), $repositories, true); @@ -672,9 +669,6 @@ class PoolBuilder unset($this->packages[$index]); if (isset($this->aliasMap[spl_object_hash($package)])) { foreach ($this->aliasMap[spl_object_hash($package)] as $aliasIndex => $aliasPackage) { - if ($unlock) { - $request->unlockPackage($aliasPackage); - } unset($this->loadedPerRepo[$repoIndex][$aliasPackage->getName()][$aliasPackage->getVersion()]); unset($this->packages[$aliasIndex]); } diff --git a/tests/Composer/Test/Fixtures/installer/partial-update-with-symlinked-path-repos.test b/tests/Composer/Test/Fixtures/installer/partial-update-with-symlinked-path-repos.test index 79a6b8b3c..2ea842613 100644 --- a/tests/Composer/Test/Fixtures/installer/partial-update-with-symlinked-path-repos.test +++ b/tests/Composer/Test/Fixtures/installer/partial-update-with-symlinked-path-repos.test @@ -29,6 +29,7 @@ Partially updating one root requirement with transitive deps fully updates trans "mirrored/path-pkg": "*" } } + --LOCK-- { "packages": [ @@ -66,13 +67,7 @@ Partially updating one root requirement with transitive deps fully updates trans "platform": [], "platform-dev": [] } ---INSTALLED-- -[ - { "name": "a/old", "version": "0.9.0" }, - { "name": "b/unstable", "version": "1.1.0-alpha", "require": {"f/dependency": "1.*"} }, - { "name": "c/uptodate", "version": "2.0.0" }, - { "name": "f/dependency", "version": "1.0.0" } -] + --RUN-- update --with-all-dependencies root/update