版本号
今天在看项目上某本程序设计书的变更历史,写的版本号差点笑出声。变更历史里是这样写的:
版本 | 理由 | 备注 |
---|---|---|
0.1 | 初版 | |
0.2 | 追加xx | |
0.3 | 追加xx | |
… | … | |
0.9 | 修改xx | |
1.0 | 追加xx | |
1.01 | 修改xx | |
1.02 | .. | |
1.03 | ||
… | ||
1.09 | ||
1.10 |
拿版本号当成了小数加法,0.9的下一个版本写成了1.0。1.0的下一个版本写成1.01也不规范。
版本号的写法,应为x.y.z[-status]
的格式,其中x
叫作主要版本号,y
叫作次要版本号,z
叫作修订版本号。这里的点号只是分隔符,并不是小数点,这三位版本号也各自独立。
例如Minecraft的荒野更新的首个版本号为1.19,相比于缤纷更新的版本号1.8,从数学上虽然两数字的大小关系是 1.8 > 1.19
,但版本号上讲,缤纷更新1.8是指第8个次要版本,而荒野更新是第19个次要版本,第19个次要版本的内容中必然包含了第8个次要版本(也包含了第9个、第10个、第11个……第18个次要版本)。
有时在发布产品时,还会后缀一个status,表示软件的发行状态。按照状态规范,都按此规则发布。广泛而常用的状态如下表所示。
标识 | 说明 | 含义 |
---|---|---|
α 或 a | alpha 版 | 内测版,Bug多 |
β 或 b | beta 版 | 公测版,有缺陷 |
γ 或 g | Gamma 版 | 成熟测试版,接近发行版 |
rc | ReleaseCandidate 版 | 预发布版,有时会进一步细分:rc1、rc2 |
Demo | 演示版 | 演示用,不做升级 |
SP | SP1 | service pack,升级包 |
Trial | 试用版 | 试用版 |
Unregistered | 未注册版 | 没有注册的版本,功能上有限制 |
Lite | 精简版 | 只包含核心功能 |
enhance | 增强版 | 增强版 |
free | 免费版 | 自由使用的版本 |
release | 发行版 | 有时间限制 |
upgrade | 升级版 | 有功能增强或者修复了Bug |
Retail | 零售版 | 单独发售 |
Cardware | 共享版 | 使用公用许可证 |