更新到Composer 2.0后TravisCI版本矩阵出现问题

问题描述

更新到Composer 2.0之后,我在使用Travis时遇到了问题。

我有一个TYPO3扩展,我想用多个TYPO3版本进行测试。到昨天为止,我可以使用const(来自Matrix版本)进行此操作。

更新后,我得到以下错误/信息。

composer require nimut/typo3-complete:$TYPO3_VERSION 

由于我的存储库中没有composer.lock,因此我先使用Cannot update only a partial set of packages without a lock file present. Installation failed,reverting ./composer.json to its original content. 测试了管道,然后进行了更新。一切都很好,直到我转到下一个版本为止,因为依赖关系不同,并且composer install中的composer.lock无法更新其他依赖关系。

我已经用composer install尝试了作曲家的回复:

composer require --dev nimut/typo3-complete:^10.4 --with-all-dependencies

Problem 1 - typo3/testing-framework is locked to version 4.15.2 and an update of this package was not requested. - typo3/testing-framework 4.15.2 requires typo3/cms-backend ^9.3 -> found typo3/cms-backend[v9.3.0,...,9.5.x-dev] but it conflicts with another require. Problem 2 - symfony/http-client v5.1.7 requires symfony/http-client-contracts ^2.2 -> found symfony/http-client-contracts[dev-main,dev-master,v2.2.0,v2.3.1,2.3.x-dev (alias of dev-master)] but it conflicts with another require. - nunomaduro/phpinsights v1.14.0 requires sensiolabs/security-checker ^6.0 -> satisfiable by sensiolabs/security-checker[v6.0.3]. - sensiolabs/security-checker v6.0.3 requires symfony/http-client ^4.3|^5.0 -> satisfiable by symfony/http-client[v5.1.7]. - nunomaduro/phpinsights is locked to version v1.14.0 and an update of this package was not requested. Use the option --with-all-dependencies (-W) to allow upgrades,downgrades and removals for packages currently locked to specific versions. 选项是我已经尝试的选项。我已经尝试过-W-w,到目前为止还没有运气。

我不确定如何解决此问题,您的输入将非常有帮助。

链接到-W https://github.com/AOEpeople/crawler/blob/master/.travis.yml#L50

链接到Travis Build进行测试。 https://travis-ci.org/github/AOEpeople/crawler/jobs/738603105#L1138

解决方法

composer require的问题已在Composer的GitHub存储库上的PR 9336中报告并修复。它即将在Composer 2.0.2中发布。因此,您可以升级到2.0.2,它应该可以解决您的问题。

解释您的解决方法失败的原因:

composer require nimut/typo3-complete:$TYPO3_VERSION编辑composer.json文件以添加"nimut/typo3-complete": "^$TYPO3_VERSION"。然后它运行composer update nimut/typo3-complete,或者(如果没有锁定文件,则)在Composer 1.x或2.0.2+上运行纯composer update

如果首先运行不带锁定文件的composer install,则将执行composer update,因为没有锁定文件。随后,后续的composer require仍将编辑json文件,并且由于存在锁定文件,因此现在运行composer update nimut/typo3-complete。即使启用了所有依赖项选项,也可能与运行纯composer update产生不同的结果,甚至会产生冲突,因为您将更新限制为仅对新程序包及其依赖项进行了

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...