30

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

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

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

那么,我们在实际工作中真正使用的是什么——dev-master或者specified version为什么?

4

1 回答 1

30

您应该尽可能使用特定的(最好是稳定的)版本。

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

如果您的锁定文件以某种方式被删除/丢失并且它没有备份/在版本控制下,您很容易在运行composer installcomposer update

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

于 2013-09-25T15:55:07.853 回答