语义化版本号的版本号一般包括四部分:MAJOR、MINOR、PATCH、BUILD。每一部分都由递增的数值组成,例如 1.2.3.4,其中 1 是MAJOR, 2 是 MINOR。如果我们更新 MINOR 版本号,那么下一个版本就是 1.3.0.0。接下来我详细介绍下这四部分。
主版本号
MAJOR 是指主版本号,通常在重大更新的时候才会需要更新主版本号。例如 iOS 每年都会更新一个主版本号。而对于第三方库来说,主版本号的更新,表示该库的 API 新增了重大功能,或者引入了不可兼容的更新 (breaking changes)。
副版本号
MINOR 是指副版本号,用于小功能的改善。例如 iOS 14 在发布主版本后,在一年内可能发布多个副版本如 14.1、 14.2 来完善其系统功能。一般对于第三方库来说,副版本的更新就是新增一些 API,但不包含不可兼容的更新。
补丁版本号
PATCH 是指补丁版本号,一般用于 bug fix 以及修复安全性问题等。对于第三方库来说,补丁版本号的更新也不应该有不可兼容的更新。虽然实际操作中这会有些困难,但我们可以通过把原有 API 标记为 deprecated,或者为新 API 参数提供默认值等办法来解决。
构建版本号
BUILD 是指构建版本号,通常在内部测试时使用。一般当我们使用 CI 服务器进行自动构建时,构建版本号会自动更新。