首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新到composer 2.0后TravisCI版本矩阵出现问题

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

Stack Overflow用户
提问于 2020-10-26 00:04:31
回答 1查看 1.4K关注 0票数 1

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

我有一个TYPO3扩展,我想用多个TYPO3版本来测试它。直到昨天,我还可以用composer require nimut/typo3-complete:$TYPO3_VERSION (来自版本矩阵)做到这一点。

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

代码语言:javascript
复制
Cannot update only a partial set of packages without a lock file present.
Installation failed, reverting ./composer.json to its original content.

由于我的存储库中没有composer.lock,所以我首先使用composer install测试了我的管道,然后进行了更新。这一切都很好,直到我转到下一个版本,因为依赖项是不同的,并且来自composer install的composer.lock不能更新额外的依赖项。

我已经用composer require --dev nimut/typo3-complete:^10.4 --with-all-dependencies尝试过了,composer的回应是:

代码语言:javascript
复制
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,到目前为止还没有成功。

我还不确定如何解决这个问题,你的意见对我很有帮助。

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

链接到Travis Build,在那里测试它。https://travis-ci.org/github/AOEpeople/crawler/jobs/738603105#L1138

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-26 05:38:07

在Composer的GitHub存储库的PR 9336中报告并修复了composer require问题。它将出现在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产生冲突,因为您仅将更新限制为新包及其依赖项。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64525816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档