From 9fb09049ff3b17bc6298d18bba92a79b51892408 Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Mon, 30 Mar 2020 16:21:27 +0200 Subject: [PATCH] Rename and document constants for partial update behavior --- src/Composer/Command/RemoveCommand.php | 2 +- src/Composer/Command/RequireCommand.php | 4 ++-- src/Composer/Command/UpdateCommand.php | 4 ++-- src/Composer/DependencyResolver/Request.php | 19 ++++++++++++++++--- src/Composer/Installer.php | 2 +- tests/Composer/Test/InstallerTest.php | 4 ++-- 6 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/Composer/Command/RemoveCommand.php b/src/Composer/Command/RemoveCommand.php index 0748def0c..7ae8abbe2 100644 --- a/src/Composer/Command/RemoveCommand.php +++ b/src/Composer/Command/RemoveCommand.php @@ -181,7 +181,7 @@ EOT ->setApcuAutoloader($apcu) ->setUpdate(true) ->setUpdateAllowList($packages) - ->setUpdateAllowTransitiveDependencies($input->getOption('no-update-with-dependencies') ? Request::UPDATE_ONLY_LISTED : Request::UPDATE_TRANSITIVE_DEPENDENCIES) + ->setUpdateAllowTransitiveDependencies($input->getOption('no-update-with-dependencies') ? Request::UPDATE_ONLY_LISTED : Request::UPDATE_LISTED_WITH_TRANSITIVE_DEPS_NO_ROOT_REQUIRE) ->setIgnorePlatformRequirements($input->getOption('ignore-platform-reqs')) ->setRunScripts(!$input->getOption('no-scripts')) ->setDryRun($dryRun) diff --git a/src/Composer/Command/RequireCommand.php b/src/Composer/Command/RequireCommand.php index 3277a1538..357127925 100644 --- a/src/Composer/Command/RequireCommand.php +++ b/src/Composer/Command/RequireCommand.php @@ -251,9 +251,9 @@ EOT $updateAllowTransitiveDependencies = Request::UPDATE_ONLY_LISTED; if ($input->getOption('update-with-all-dependencies')) { - $updateAllowTransitiveDependencies = Request::UPDATE_TRANSITIVE_ROOT_DEPENDENCIES; + $updateAllowTransitiveDependencies = Request::UPDATE_LISTED_WITH_TRANSITIVE_DEPS; } elseif ($input->getOption('update-with-dependencies')) { - $updateAllowTransitiveDependencies = Request::UPDATE_TRANSITIVE_DEPENDENCIES; + $updateAllowTransitiveDependencies = Request::UPDATE_LISTED_WITH_TRANSITIVE_DEPS_NO_ROOT_REQUIRE; } $commandEvent = new CommandEvent(PluginEvents::COMMAND, 'require', $input, $output); diff --git a/src/Composer/Command/UpdateCommand.php b/src/Composer/Command/UpdateCommand.php index 77e166dec..840f7ae28 100644 --- a/src/Composer/Command/UpdateCommand.php +++ b/src/Composer/Command/UpdateCommand.php @@ -148,9 +148,9 @@ EOT $updateAllowTransitiveDependencies = Request::UPDATE_ONLY_LISTED; if ($input->getOption('with-all-dependencies')) { - $updateAllowTransitiveDependencies = Request::UPDATE_TRANSITIVE_ROOT_DEPENDENCIES; + $updateAllowTransitiveDependencies = Request::UPDATE_LISTED_WITH_TRANSITIVE_DEPS; } elseif ($input->getOption('with-dependencies')) { - $updateAllowTransitiveDependencies = Request::UPDATE_TRANSITIVE_DEPENDENCIES; + $updateAllowTransitiveDependencies = Request::UPDATE_LISTED_WITH_TRANSITIVE_DEPS_NO_ROOT_REQUIRE; } $install diff --git a/src/Composer/DependencyResolver/Request.php b/src/Composer/DependencyResolver/Request.php index c5787b54f..5782c3ff1 100644 --- a/src/Composer/DependencyResolver/Request.php +++ b/src/Composer/DependencyResolver/Request.php @@ -23,9 +23,22 @@ use Composer\Semver\Constraint\ConstraintInterface; */ class Request { + /** + * Identifies a partial update for listed packages only, all dependencies will remain at locked versions + */ const UPDATE_ONLY_LISTED = 0; - const UPDATE_TRANSITIVE_DEPENDENCIES = 1; - const UPDATE_TRANSITIVE_ROOT_DEPENDENCIES = 2; + + /** + * Identifies a partial update for listed packages and recursively all their dependencies, however dependencies + * also directly required by the root composer.json and their dependencies will remain at the locked version. + */ + const UPDATE_LISTED_WITH_TRANSITIVE_DEPS_NO_ROOT_REQUIRE = 1; + + /** + * Identifies a partial update for listed packages and recursively all their dependencies, even dependencies + * also directly required by the root composer.json will be updated. + */ + const UPDATE_LISTED_WITH_TRANSITIVE_DEPS = 2; protected $lockedRepository; protected $requires = array(); @@ -83,7 +96,7 @@ class Request public function getUpdateAllowTransitiveRootDependencies() { - return $this->updateAllowTransitiveDependencies === self::UPDATE_TRANSITIVE_ROOT_DEPENDENCIES; + return $this->updateAllowTransitiveDependencies === self::UPDATE_LISTED_WITH_TRANSITIVE_DEPS; } public function getRequires() diff --git a/src/Composer/Installer.php b/src/Composer/Installer.php index f1d833b1e..500a9a827 100644 --- a/src/Composer/Installer.php +++ b/src/Composer/Installer.php @@ -1150,7 +1150,7 @@ class Installer */ public function setUpdateAllowTransitiveDependencies($updateAllowTransitiveDependencies) { - if (!in_array($updateAllowTransitiveDependencies, array(Request::UPDATE_ONLY_LISTED, Request::UPDATE_TRANSITIVE_DEPENDENCIES, Request::UPDATE_TRANSITIVE_ROOT_DEPENDENCIES), true)) { + if (!in_array($updateAllowTransitiveDependencies, array(Request::UPDATE_ONLY_LISTED, Request::UPDATE_LISTED_WITH_TRANSITIVE_DEPS_NO_ROOT_REQUIRE, Request::UPDATE_LISTED_WITH_TRANSITIVE_DEPS), true)) { throw new \RuntimeException("Invalid value for updateAllowTransitiveDependencies supplied"); } diff --git a/tests/Composer/Test/InstallerTest.php b/tests/Composer/Test/InstallerTest.php index d032dcc27..3c6c35de6 100644 --- a/tests/Composer/Test/InstallerTest.php +++ b/tests/Composer/Test/InstallerTest.php @@ -282,9 +282,9 @@ class InstallerTest extends TestCase $updateAllowTransitiveDependencies = Request::UPDATE_ONLY_LISTED; if ($input->getOption('with-all-dependencies')) { - $updateAllowTransitiveDependencies = Request::UPDATE_TRANSITIVE_ROOT_DEPENDENCIES; + $updateAllowTransitiveDependencies = Request::UPDATE_LISTED_WITH_TRANSITIVE_DEPS; } elseif ($input->getOption('with-dependencies')) { - $updateAllowTransitiveDependencies = Request::UPDATE_TRANSITIVE_DEPENDENCIES; + $updateAllowTransitiveDependencies = Request::UPDATE_LISTED_WITH_TRANSITIVE_DEPS_NO_ROOT_REQUIRE; } $installer