是否应该为还不稳定的分支添加 -dev 后缀?

Should one include the -dev suffix for branches that are not stable yet?

我有一个项目,在 master 分支上进行开发。在某些时候,我们分支到发布分支,例如 2.1.x。在这样的分支上,我们在 RC 期间进行了一些提交,最终确定了 2.1.0 版本。在 2.1.0 版本发布后,我们可能会向后移植修复程序并执行额外的 2.1.x 版本。

很明显 2.1.x 分支名称在 2.1.0 发生后是正确的。但是,在没有稳定的 2.1.0 版本之前它是否正确?还是应该将分支命名为 2.1.x-dev,然后在标记 2.1.0 后重命名?

一个分支自动只有开发稳定性。

根据您想要实现的目标,将此视为缺点或优势:使用软件包且不允许开发稳定性的软件将不会安装该软件包的依赖项,如果它们不稳定 - 即使该软件包明确依赖于“2.1.0@dev”之类的东西。

缺点是您无法直接安装该依赖项,您必须明确允许:

  • 或者直接把那个依赖包添加到同版本要求的软件中,这样可以保证开发的稳定性。
  • 或使用 "minimum-stability": "dev" 允许每个版本要求安装开发稳定性(这可能会造成巨大的混乱和破坏),所以
  • 最低稳定性可能应该与 "prefer-stable": true
  • 成对出现

现在对于分支版本号:分支应该带有它作为稳定 x.y.0 版本时预期具有的版本号。

没有标记版本,2.1.0@dev 的要求将安装 2.1.x 分支的最新提交,当使用上述方法时。对于标记版本,如果最低稳定性允许,间接依赖将开始可满足,即如果主软件允许安装 RC 包,则将安装任何标记版本,如 2.1.0RC3 或最终的 2.1.0。

请注意,安装分支就像试图瞄准移动目标。包含版本的分支名称比使用 "dev-master" 稍微好一些,但仍然允许合理数量的冲突。尝试在任何时候为生产软件使用标记版本——无论版本是 alpha、beta、RC 还是最终版本,标记必须指向定义的提交并符合语义版本控制方案(即应该'引入向后不兼容的更改作为错误修复)。