From e0e4d60166d437e5e618f0ef2173479e1f4b6e86 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Fri, 30 Oct 2020 15:05:29 +0100 Subject: [PATCH] Fix check-platform-reqs to be more clear about what is going on, and add a --lock flag to allow explicitly checking from lock --- .../Command/CheckPlatformReqsCommand.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Composer/Command/CheckPlatformReqsCommand.php b/src/Composer/Command/CheckPlatformReqsCommand.php index de4e45835..6d59a93ba 100644 --- a/src/Composer/Command/CheckPlatformReqsCommand.php +++ b/src/Composer/Command/CheckPlatformReqsCommand.php @@ -29,7 +29,8 @@ class CheckPlatformReqsCommand extends BaseCommand $this->setName('check-platform-reqs') ->setDescription('Check that platform requirements are satisfied.') ->setDefinition(array( - new InputOption('no-dev', null, InputOption::VALUE_NONE, 'Disables checking of require-dev packages requirements.'), + new InputOption('no-dev', null, InputOption::VALUE_NONE, 'Disables checking of require-dev packages requirements, implies --lock.'), + new InputOption('lock', null, InputOption::VALUE_NONE, 'Checks requirements only from the lock file, not from installed packages.'), )) ->setHelp( <<getComposer(); $requires = array(); - if ($input->getOption('no-dev')) { + if ($input->getOption('no-dev') || $input->getOption('lock')) { + if ($input->getOption('lock')) { + $this->getIO()->writeError('Checking '.($input->getOption('no-dev') ? 'non-dev ' : '').'platform requirements using the lock file'); + } else { + $this->getIO()->writeError('The --no-dev option implies --lock, checking platform requirements from lock file instead of vendor dir'); + } $installedRepo = $composer->getLocker()->getLockedRepository(!$input->getOption('no-dev')); } else { $installedRepo = $composer->getRepositoryManager()->getLocalRepository(); // fallback to lockfile if installed repo is empty if (!$installedRepo->getPackages()) { + $this->getIO()->writeError('No vendor dir present, checking platform requirements from the lock file'); $installedRepo = $composer->getLocker()->getLockedRepository(true); + } else { + $this->getIO()->writeError('Checking platform requirements for packages in the vendor dir'); } + } + if (!$input->getOption('no-dev')) { $requires += $composer->getPackage()->getDevRequires(); } + foreach ($requires as $require => $link) { $requires[$require] = array($link); }