composer.json中的dev-master,这是什么意思?

27

我使用Composer(在Symfony2项目中),经常在更新库时出现错误。

许多库(大多数是我的经验)将dev-master用作其依赖项的版本(或更糟糕地使用*)。每当向主分支提交内容时,您需要更新库,随着时间的推移API更改的可能性越来越高。今天在主分支中版本为1.2.1的内容明天可能会变成1.2.7,没有什么问题,并且最终成为1.7或2.x,存在不兼容性。

我的问题是

  1. 我们是如何到达这一点的? 这是来自高级别来源的建议吗?
  2. 我/我们可以做些什么来提高作者对此主题的敏感性?

还是说我疯了?


2
你是在询问还是在发牢骚? - Waleed Khan
真诚而积极地询问 - Riccardo Galli
如果维护者没有回应,那么你可以考虑分叉依赖项并自己打标签,然后将自定义包作为依赖项;当然,当你需要处理多层依赖关系时,这种方法就不起作用了。 - Manquer
@Manquer,我实际上正在做的是要么避免使用该软件包(如果可能的话),要么引用当前提交的哈希值,以便进行可重复的安装。 - Riccardo Galli
1个回答

34

你没有发疯。

  1. 这是一个鸡生蛋的问题,直到有更多的人打标签,其他人才能要求已打好标签的发布版本。
  2. 催促所有六个月内没有打标签或没有打任何标签的人(如果项目正在积极开发中)。本周早些时候,我努力为我们所有的捆绑包打了标签,因为我读到了类似的怒吼并想起了我们仍然在大部分捆绑包上只有dev-master版本。

解决方案确实是教育,我会尽力通过推动composer文档的最佳实践来帮忙一点。并不是每个人都有很多关于包管理的经验,很多人不知道这种方法可能存在的问题(除非为时已晚),所以提醒他们是每个人的工作。


1
我正在编写一个可再分发的库。其中一些依赖项没有版本标签。我该如何处理它们?我可以只使用dev-master吗?之前尝试过,但由于dev-master依赖项,该库无法在其他项目中安装。 - CMCDragonkai
你应该催促你的依赖作者尽快打标签发布。如果你所在的整个生态系统仍然不稳定,那么依赖于dev-master是可以接受的,但我认为你不应该使用带有dev-master依赖的标签,因为从长远来看这是非常糟糕的。 - Seldaek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接