laminas / laminas-dependency-plugin

Replace zendframework and zfcampus packages with their Laminas Project equivalents.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

throws exception

svycka opened this issue · comments

Bug Report

Q A
Version(s) 2.0.0beta1

Summary

composer check throws LogicException

Current behavior

composer check -vvv
Reading ./composer.json
Loading config file ./composer.json
Checked CA file /etc/ssl/certs/ca-certificates.crt: valid
Executing command (/var/www/html): git branch -a --no-color --no-abbrev -v
Executing command (/var/www/html): git rev-list master..feature-FB-213/composer-2.0
Failed to initialize global composer: Composer could not find the config file: /root/.composer/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
Reading /var/www/html/vendor/composer/installed.json
Loading plugin PackageVersions\Installer
Loading plugin Laminas\ComponentInstaller\ComponentInstaller
Loading plugin Laminas\DependencyPlugin\DependencyRewriterPluginDelegator
Activating Laminas\DependencyPlugin\DependencyRewriterV2
Running 2.0.2 (2020-10-25 23:03:59) with PHP 7.4.11 on Linux / 5.4.0-47-generic
> pre-command-run: Laminas\DependencyPlugin\DependencyRewriterPluginDelegator->onPreCommandRun
In Laminas\DependencyPlugin\DependencyRewriterV2::onPreCommandRun

                                                 
  [LogicException]                               
  A package can only be added to one repository  
                                                 

Exception trace:
 () at phar:///usr/local/bin/composer/src/Composer/Package/BasePackage.php:136
 Composer\Package\BasePackage->setRepository() at phar:///usr/local/bin/composer/src/Composer/Repository/ArrayRepository.php:194
 Composer\Repository\ArrayRepository->addPackage() at phar:///usr/local/bin/composer/src/Composer/Repository/ArrayRepository.php:41
 Composer\Repository\ArrayRepository->__construct() at phar:///usr/local/bin/composer/src/Composer/Repository/RootPackageRepository.php:28
 Composer\Repository\RootPackageRepository->__construct() at phar:///usr/local/bin/composer/src/Composer/Command/CheckPlatformReqsCommand.php:65
 Composer\Command\CheckPlatformReqsCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245
 Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835
 Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185
 Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:309
 Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117
 Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:121
 Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:63
 require() at /usr/local/bin/composer:24

check-platform-reqs [--no-dev]

or

composer why laminas/laminas-dependency-plugin -vvv
Reading ./composer.json
Loading config file ./composer.json
Checked CA file /etc/ssl/certs/ca-certificates.crt: valid
Executing command (/var/www/html): git branch -a --no-color --no-abbrev -v
Executing command (/var/www/html): git rev-list master..feature-FB-213/composer-2.0
Failed to initialize global composer: Composer could not find the config file: /root/.composer/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
Reading /var/www/html/vendor/composer/installed.json
Loading plugin PackageVersions\Installer
Loading plugin Laminas\ComponentInstaller\ComponentInstaller
Loading plugin Laminas\DependencyPlugin\DependencyRewriterPluginDelegator
Activating Laminas\DependencyPlugin\DependencyRewriterV2
Running 2.0.2 (2020-10-25 23:03:59) with PHP 7.4.11 on Linux / 5.4.0-47-generic
> pre-command-run: Laminas\DependencyPlugin\DependencyRewriterPluginDelegator->onPreCommandRun
In Laminas\DependencyPlugin\DependencyRewriterV2::onPreCommandRun

                                                 
  [LogicException]                               
  A package can only be added to one repository  
                                                 

Exception trace:
 () at phar:///usr/local/bin/composer/src/Composer/Package/BasePackage.php:136
 Composer\Package\BasePackage->setRepository() at phar:///usr/local/bin/composer/src/Composer/Repository/ArrayRepository.php:194
 Composer\Repository\ArrayRepository->addPackage() at phar:///usr/local/bin/composer/src/Composer/Repository/ArrayRepository.php:41
 Composer\Repository\ArrayRepository->__construct() at phar:///usr/local/bin/composer/src/Composer/Repository/RootPackageRepository.php:28
 Composer\Repository\RootPackageRepository->__construct() at phar:///usr/local/bin/composer/src/Composer/Command/BaseDependencyCommand.php:77
 Composer\Command\BaseDependencyCommand->doExecute() at phar:///usr/local/bin/composer/src/Composer/Command/DependsCommand.php:55
 Composer\Command\DependsCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245
 Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835
 Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185
 Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:309
 Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117
 Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:121
 Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:63
 require() at /usr/local/bin/composer:24

depends [-r|--recursive] [-t|--tree] [--] <package> [<constraint>]

I am not sure it is a composer bug or laminas-dependency-plugin

Same for me. I tried using it in a laminas-mvc application.
Additionally , when trying a composer update with composer 1, I get an AssertionError:

PHP Fatal error:  Uncaught AssertionError: assert($rewriter instanceof DependencySolvingCapableInterface) in [path-to-project]/vendor/laminas/laminas-dependency-plugin/src/DependencyRewriterPluginDelegator.php:68
Stack trace:
#0 [path-to-project]/vendor/laminas/laminas-dependency-plugin/src/DependencyRewriterPluginDelegator.php(68): assert(false, 'assert($rewrite...')
#1 [internal function]: Laminas\DependencyPlugin\DependencyRewriterPluginDelegator->onPreDependenciesSolving(Object(Composer\Installer\InstallerEvent))
#2 phar:///usr/local/bin/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php(164): call_user_func(Array, Object(Composer\Installer\InstallerEvent))
#3 phar:///usr/local/bin/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php(135): Composer\EventDispatcher\EventDispatcher->doDispatch(Object(Composer\Installer\InstallerEvent))
#4 phar:///usr/local/bin/composer.phar/src/Composer/Installer.php(486): Composer\EventDispatcher\EventDispatcher->dispatchInstallerEvent('pre- in [path-to-project]/vendor/laminas/laminas-dependency-plugin/src/DependencyRewriterPluginDelegator.php on line 68

it's strange but maybe laminas/laminas-component-installer is the cause of this. when removing laminas/laminas-dependency-plugin still throws but when I remove laminas/laminas-component-installer error gone.

maybe move the issue to laminas/laminas-component-installer?

okay works with laminas/laminas-component-installer <= 2.3.0 and does not work with 2.3.1 so definitely laminas/laminas-component-installer problem I think 🤔

okay works with laminas/laminas-component-installer <= 2.3.0 and does not work with 2.3.1 so definitely laminas/laminas-component-installer problem I think 🤔

Thanks for investigating! Do you open an issue in the laminas-component-installer package?