当" dev-master"应该在composer.json中使用?

时间:2013-09-25 15:40:13

标签: symfony composer-php

我开始使用Symfony2并遵循许多教程。我发现当他们使用composer.json安装一些新功能时,他们“总是”声明dev-master。我不知道他们总是使用它的原因。来自DoctrineFixturesBundle的示例:

{
    "require": {
        "doctrine/doctrine-fixtures-bundle": "dev-master"
    }
}

实际上,我搜索并发现有些人写道,如果我们使用dev-master而不是任何stable版本。这将是未来的一些冲突,因为今天的版本可能是1.5.0,明天可能是1.6.0

那么,我们在实际工作中真正使用的是什么 - dev-masterspecified version以及为什么?

1 个答案:

答案 0 :(得分:21)

您应尽可能使用特定(标记为最佳稳定版)版本。

虽然composer.lock确实将依赖项锁定到特定提交,即使使用dev-master ...每个composer update都会将依赖项更新为最新版本,然后更新锁定文件。

如果您的锁定文件以某种方式被删除/丢失并且没有备份/受版本控制,那么在运行composer installcomposer update后,您很容易就会得到一个不起作用的项目!

一个简单的例子就是symfony/symfony本身......新的提交可能会在dev-master分支中引入新的BC(向后兼容性)中断,只要你的应用程序处于非功能状态。