MINOR(Y):这个是次版别号,当咱们对 API 进行向后兼容的增强时,这个版别号会改动,换句话说,也便是有新增的功用时,这儿会改动。
PATCH(Z):这个是修订号,当咱们进行一些 BUG 的修复,然后要发版的时分,这儿会发生改动。
语义化的版别操控标准首要做了如下一些要求:
运用语义化版别操控的软件有必要(MUST)界说公共 API。该 API 能够在代码中被界说或出现于谨慎的文档内。不管何种方式都应该力求精确且完整。
标准的版别号有必要(MUST)选用 X.Y.Z 的格局,其间 X、Y 和 Z 为非负的整数,且制止(MUST NOT)在数字前方补零。X 是主版别号、Y 是次版别号、而 Z 为修订号。每个元素有必要(MUST)以数值来递加。例如:1.9.1 -> 1.10.0 -> 1.11.0。
标记版别号的软件发行后,制止(MUST NOT)改动该版别软件的内容。任何修正都有必要(MUST)以新版别发行。有的小伙伴或许会说咱们的项目处于快速开发阶段,API 不稳定,天天变,要是依照这个要求来得发多少个版别才够用呀!其实,一般 API 快速改动首要有两种状况,一种是项目刚立项的时分,此时主版别号为 0,那么这个时分的 API 就不能算是稳定的 API;别的一种状况则是下个主版别处于快速开发中,但是这种状况一般会有一个新的分支用来办理下个版别的代码,所以和这儿的要求实践上并不冲突(具体参见第 4、5 条)。
主版别号为零(0.y.z)的软件处于开发初始阶段,一切都或许随时被改动。这样的公共 API 不该该被视为稳定版。
1.0.0 的版别号用于界定公共 API 的形成。这一版别之后一切的版别号更新都基于公共 API 及其修正内容。那么有的小伙伴或许会纠结什么时分版别号从 0.Y.Z 变为 1.Y.Z 呢?一般来说,当你的项目现已上了出产环境或许说有稳定的 API 提供给别人运用的时分,基本上就能够算是 1.Y.Z 了。
修订号 Z(x.y.Z | x > 0)有必要(MUST)在只做了向下兼容的修正时才递加。这儿的修正指的是针对不正确结果而进行的内部修正。
次版别号 Y(x.Y.z | x > 0)有必要(MUST)在有向下兼容的新功用出现时递加。在任何公共 API 的功用被标记为弃用时也有必要(MUST)递加。也能够(MAY)在内部程序有大量新功用或改善被参加时递加,其间能够(MAY)包含修订等级的改动。每逢次版别号递加时,修订号有必要(MUST)归零。
主版别号 X(X.y.z | X > 0)有必要(MUST)在有任何不兼容的修正被参加公共 API 时递加。其间能够(MAY)包含次版别号及修订等级的改动。每逢主版别号递加时,次版别号和修订号有必要(MUST)归零。