我正在尝试理解语义版本控制。目前我的模块有两个主要版本,如下所示。
1.0.0,1.1.0,1.1.1,1.1.2 .... 2.0.0,2.1.0
所以这里有一些问题:
在所有vesions中发现了一个bug,因此无法修复所有vesrions中的bug并更新vesion?或修复和更新版本,如1.1.3和2.1.1
如果新版本有功能和错误修复,我应该增加什么?
答案 0 :(得分:0)
如有疑问,应始终引用the SemVer spec。
假设您在以下功能集中发现错误:
1.0.x
1.1.x
1.3.x
2.0.x
2.1.x
在每种情况下,该功能级别的错误修复如下所示:
1.0.x+1
1.1.x+1
1.3.x+1
2.0.x+1
2.1.x+1
其中x是每个要素集的最高补丁编号。
决定是否需要支持错误修复的早期版本。在某些时候,大多数团队将低级别工作限制为错误修复,并且只返回他们仍然支持的每个主要系列中的两个或三个次要版本。在版本2系列中的一个或两个版本之后暂停所有版本1的工作并不罕见。
Semver 2.0.0 #7指定:
如果向公共API引入了新的向后兼容功能,则必须增加次要版本Y(x.Y.z | x> 0)。如果任何公共API功能被标记为已弃用,则必须递增。如果在私有代码中引入了大量新功能或改进,则可以增加它。它可能包括修补程序级别更改。当次要版本增加时,补丁版本必须重置为0。
基本上,根据您是添加了反向比较功能还是进行了重大更改,您可以使用Minor或Major。您可以在单个版本中包含所需的所有错误修复和新功能。当您碰撞Major或Minor时,所有较低版本字段都会重置为零。