Composer需要在JSON中保存补丁版本

时间:2015-10-28 20:38:13

标签: php composer-php

当我跑步时

composer require symfony/symfony

我的作曲家JSON中有这个:

"symfony/symfony": "^2.7"

虽然我想有这个:

"symfony/symfony": "^2.7.6"

我可以让作曲家将补丁(从常规MAJOR.MINOR.PATCH)保存到composer.json中吗?

如果那不可能那么为什么?

2 个答案:

答案 0 :(得分:2)

由于惯例,这是不可能的。在~99%的用例中,锁定补丁版本是没有意义的。

根据Semantic versioning,包应该在每个次要版本中兼容。从2.5更新后,2.4的含义不会中断。

软件的发展和升级所需的版本越少越容易。这是一种软升级的升级(用语言表示:如果有2.4,请不要停留在版本2.15上)并支持包开发。

答案 1 :(得分:1)

  

我可以让作曲家将补丁(从常规MAJOR.MINOR.PATCH)保存到composer.json中吗?

在这里:composer require symfony/symfony:"^2.7.6"

或修改composer.json

{
    "require": {
        "symfony/symfony": "^2.7.6"
    }
}

评论提问:

  

如何在不编写版本的情况下要求并获得写入composer.json的最新文章?

默认情况下,Composer使用^major.minor。它不会插入^major.minor.current-latest-patch-level

有人可能会争辩说,如果给出了补丁级别范围的特定开始,解算器可以跳过某些补丁级别版本。这里将跳过版本2.7.0 to 2.7.5

另一方面,指定^major.minor允许最大的互操作性,包括完整的补丁级别范围,从最低补丁级别开始然后再上升。

至少你有机会在CLI上编写特定的版本要求(见上文)。