【问题标题】:composer update - doesn't get the newest version作曲家更新 - 没有获得最新版本
【发布时间】:2015-09-08 13:00:47
【问题描述】:

我想安装最新的 Codeception。根据文档,最新的稳定版本是 2.1.2

但是当我输入我的 composer.json 时:

"codeception/codeception": "*",

我收到了提交 b5af3aac061ffaeb65ed023534b3c50558e90d07,它确实很旧,没有修复一些问题。

问题是 - 为什么作曲家不接受来自2.1 branch 的最新更改以及如何强制它这样做?

【问题讨论】:

    标签: git github composer-php codeception


    【解决方案1】:

    问题是 - 为什么作曲家不采用 2.1 分支的最新更改以及如何强制它这样做?

    您需要一个标签。

    标签 (2.1.2 / 2.1.0) 和分支 (2.1) 之间存在差异。标签是静态的,而分支是动态的,仍然是最重要的。

    当使用*时,Composer 会找出最高/最新的标签版本并使用它,那就是2.1.2 和521adbb2。如果您指定2.1,它将解析标记2.1.0 与ref b5af3aac061ffa。

    因此,您可能会从需要标签改为使用分支:

    "codeception/codeception": "2.1.x-dev" 将从分支“2.1”获取提交“c52a7384a7f60”。

    请注意,这是一个移动的目标 - 一个开发分支。 它可能应该是一个开发依赖项(但这取决于项目)。


    composer.json

    {
        "require-dev": {
            "codeception/codeception": "2.1.x-dev"
        }
    }
    

    composer install

    【讨论】:

    • 感谢您的回复,我稍后会详细查看,但是为什么 * 或 2.1.* 的作曲家没有从 2.1 分支 - github.com/Codeception/Codeception/commits/2.1 获得最新提交?
    • 因为它将版本解析为标签而不是分支。 * = 最新标签 = 2.1.2
    • 看来确切的原因是 composer.json 中的其他作曲家依赖:"facebook/webdriver": "~0.5" 导致采用 2.1 版本的代码接收而不是 2.1.2。当我将其更改为 "facebook/webdriver": "1.*" 时,我从 github.com/Codeception/Codeception/commits/2.1.2 获得了来自 2.1.2 标签的最新提交
    猜你喜欢
    • 2013-01-13
    • 2016-08-16
    • 2022-10-09
    • 2016-12-30
    • 2020-01-16
    • 2015-12-01
    • 2015-09-11
    • 2013-12-15
    • 2016-04-30
    相关资源
    最近更新 更多