npm - 语义版本控制:在我的模块的所有版本中发现错误,在哪里修复和更新版本?

标签 npm semantic-versioning

我正在尝试理解语义版本控制。目前我的模块有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. 如果新版本具有功能和错误修复,我应该增加哪些内容?

最佳答案

如有疑问,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指定:

Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backwards compatible functionality is introduced to the public API. It MUST be incremented if any public API functionality is marked as deprecated. It MAY be incremented if substantial new functionality or improvements are introduced within the private code. It MAY include patch level changes. Patch version MUST be reset to 0 when minor version is incremented.

基本上,您可以更改次要或主要,具体取决于您是否添加了向后兼容功能或进行了重大更改。您可以在一个版本中包含您想要的所有错误修复和新功能。当您更改“主要”或“次要”时,所有较低版本字段都会重置为零。

关于npm - 语义版本控制:在我的模块的所有版本中发现错误,在哪里修复和更新版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50301846/

相关文章:

javascript - 用于本地 NodeJS 开发的 Docker

node.js - PhantomJS:即使全局版本相同,NPM 也会在本地安装

javascript - 在 Js 文件中导入 jQuery 插件

javascript - 部署 Azure 应用服务时无法安装 Node 模块

npm - 如何在Azure DevOps中自动对npm包进行版本控制(不触发新管道)?

semantic-versioning - 语义版本控制 - 传统 Web 应用程序的主要版本

swift - 为什么我的 SemVer NSRegularExpression 不能运行?

node.js - 如何修复 : "error fsevents@2.0.7: The platform "linux"is incompatible with this module. “

swift - 添加 Swift 枚举案例是否需要主要的 semver 版本更新?

flutter - 使用版本低于 1.0.0 的 Flutter/Dart 依赖 git 包时如何设置版本约束?