语义版本:在我的模块的所有版本中发现了修复和更新版本的错误?

时间:2018-05-12 00:36:19

标签: npm semantic-versioning

我正在尝试理解语义版本控制。目前我的模块有两个主要版本,如下所示。

1.0.0,1.1.0,1.1.1,1.1.2 .... 2.0.0,2.1.0

所以这里有一些问题:

  1. 在所有vesions中发现了一个bug,因此无法修复所有vesrions中的bug并更新vesion?或修复和更新版本,如1.1.3和2.1.1

  2. 如果新版本有功能和错误修复,我应该增加什么?

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时,所有较低版本字段都会重置为零。