软件版本号命名规范

版本号结构

软件版本号通常采用 X.Y.Z 的格式,其中 X、Y 和 Z 为非负整数,且禁止在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号,互相之间用句点 . 隔开,如:1.0.02.3.59.0.12

主版本号

当软件有重大更新时,比如软件界面重新设计、功能架构大幅调整、增加不兼容的变动等,主版本号需要进行递增,同时次版本号和修订号必须归零。如:0.8.7 -> 1.0.0

当主版本号为 0 时通常表示软件处于开发的初始阶段。
当主版本号为 1 时通常代表软件已经正式发行使用了。

次版本号

当软件有向下兼容的新功能出现时,次版本号需要进行递增,同时修订号必须归零,而主版本号保持不变。如:0.8.7 -> 0.9.0

修订号

当软件的功能做了一些优化或修复了一些问题时,修订号需要进行递增,而主版本号和次版本号都保持不变。如:0.8.7 -> 0.8.8

先行版本号

先行版本号是可选填的内容,一般被标注在修订号之后,先加上一个连接号 - 再加上一连串以句点 . 分隔的标识符来修饰。标识符必须由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成,且禁止留白。数字型的标识符禁止在前方补零。如:1.0.0-alpha1.0.0-alpha.11.0.0-0.3.71.0.0-x.7.z.92

被标上先行版本号则表示这个版本的软件并非稳定,也有可能无法满足预期的兼容性需求。

版本编译信息

版本编译信息也是可选填的内容,一般被标注在修订号或先行版本号之后,先加上一个加号 + 再加上一连串以句点 . 分隔的标识符来修饰。标识符必须由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成,且禁止留白。如:1.0.0-alpha+0011.0.0+201303131447001.0.0-beta+exp.sha.5114f85

前缀标记

有些时候我们会在版本号前增加一个前缀,比如 “v”,“ver”,“version”,这通常用来提醒阅读者后面一连串的数字与句点组合表示软件版本号。如:v1.2.3。但在计算机内部,仍以不带前缀标记的版本号区分软件的版本。

发版需知

版本号如何排序?

对版本号进行排序时,需先把版本号拆分为主版本号、次版本号、修订号及先行版本号(版本编译信息忽略不计),然后由左到右依序比较每个号段,由出现的第一个差异值用来决定先后顺序。例如:1.0.0 < 2.0.0 < 2.1.0 < 2.1.1

当主版本号、次版本号及修订号都相同时,才以先行版本号进行对比,而先行版本号的优先级低于相关联的标准版本。如:1.0.0-alpha < 1.0.0

版本号如何递增?

每个号段必须以整数数值来递增。如:1.9.1 -> 1.10.0 -> 1.11.0

如何处理即将弃用的功能?

在下一个次版本的更新日志里说明即将弃用的功能,然后在下一个主版本里移除弃用的功能。

发版后发现有误怎么办?

如果不小心把错误的修改当成新版本号发行了,那也不能去修改这一新版本的内容,只能另外再发行一个新版本号来更正这个问题并且恢复向下兼容。如果可以的话,最好将有问题的版本号记录到文件中,告诉使用者问题所在,让他们能够意识到这是有问题的版本。

留下评论