语义化版本 SemVer(Semantic Versioning)了解多少?

Semantic Versioning(语义化版本)是一种为软件组件定义版本号的规范。它使用“major.minor.patch”的格式来表示版本号。其中:

  • Major(主版本号):当你做了不兼容的 API 修改时,你需要更新主版本号。
  • Minor(次版本号):当你做了向下兼容的功能性新增时,你需要更新次版本号。
  • Patch(修订号):当你做了向下兼容的问题修正时,你需要更新修订号。

Semantic Versioning 的目的是为了让软件版本号的变化具有可读性和可预测性,这样用户就可以通过版本号来了解软件包的更新内容和影响。

版本更新

在升级版本时,常常使用一些符号来指定允许升级的范围,其中包括 ^ 和 ~ 等。

  • ^ 表示向后兼容地升级版本号,只允许升级到次版本号或修订版本号,不允许升级到主版本号。
  • ~ 表示只允许升级到修订版本号,不允许升级到次版本号或主版本号。

例如,对于版本号为 1.2.3:

  • ^1.2.3 允许升级到 1.2.4、1.3.0 等修订号或次版号的版本,但不允许升级到 2.0.0。
  • ~1.2.3 只允许升级到 1.2.4、1.2.5 等修订版本号的版本,但不允许升级到 1.3.0、2.0.0 等更高的版本。