我有一个项目,在master
分支上进行开发。在某些点上,我们分支到诸如2.1.x
的发布分支。在这样的分支上,我们在RC期间有一些提交最终确定2.1.0版本。在2.1.0发布之后,我们可能会回溯修复并执行额外的2.1.x版本。
很明显,一旦2.1.0发生,2.1.x
分支名称是正确的。但是,之前是否正确,而没有稳定的2.1.0版本?或者是否应该将分支调用2.1.x-dev
然后在2.1.0被标记后重命名?
答案 0 :(得分:1)
分支仅自动具有开发稳定性。
根据您想要实现的目标,将此视为缺点或优势:使用包并且不允许dev稳定性的软件如果不稳定则不会安装该包的依赖项 - 即使该包依赖于明确地说“2.1.0@dev”。
缺点是您将无法直接安装该依赖项,您必须明确允许它:
"minimum-stability": "dev"
允许每个版本要求安装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还是final都无关紧要,标记必须指向定义的提交并适合语义版本控制的方案(即不应该作为错误修正引入向后不兼容的更改。