【问题标题】:semantic-versioning: found bug in all versions of my module where to fix and update version?语义版本控制:在我的模块的所有版本中发现错误在哪里修复和更新版本?
【发布时间】:2018-10-22 10:23:42
【问题描述】:

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

1.0.0、1.1.0、1.1.1、1.1.2 …… 2.0.0, 2.1.0

所以我有几个问题:

  1. 在所有版本中都发现了一个错误,因此需要在所有版本中修复该错误并更新版本?或修复和更新 1.1.3 和 2.1.1 等版本

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

【问题讨论】:

    标签: npm semantic-versioning


    【解决方案1】:

    如有疑问,应始终引用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 时,所有较低版本的字段都会重置为零。

    【讨论】:

    • 感谢您的回复
    猜你喜欢
    • 2015-08-22
    • 2017-10-28
    • 2018-04-22
    • 2018-02-03
    • 2011-02-27
    • 1970-01-01
    • 2017-11-04
    • 2018-04-16
    • 2021-10-12
    相关资源
    最近更新 更多