什么是版本号
版本号(Version Number)
是版本的标识号。当我们在开发基础组件或者开发开源框架时,版本号的定义尤为重要。版本号能使用户了解所使用的组件或框架是否为最新的版本以及它所提供的功能与设施。
版本号状态
1. SNAPSHOT 快照版
该版本表示这是一个面向开发者的版本,通常表示功能还没有开发完成或存在 BUG 较多。不建议交由测试或生产使用。
2. alpha 内部测试版
此版本表示该软件仅仅是一个初步完成品,通常只在软件开发者内部交流,也有很少一部分发布给专业测试人员。一般而言,该版本软件的 BUG 较多,不建议运行在生产环境。
3. beta 外部测试版
该版本相对于 alpha 版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过大规模的发布测试来进一步消除。不建议运行在生产环境。
4. RC 预发布版
该版本已经相当成熟了,基本上不存在导致错误的 BUG,与即将发行的正式版本相差无几。
5. RELEASE 发行版
该版本意味 “最终发行版”,在出了一系列的测试版之后,终归会有一个正式版本,对于用户而言,可以放心运行在生产环境。
6. upgrade 升级版
该版本是 release 的功能增强或者 Bug 修复版本。通常应对于下一个版本还不适用于升级,并且需要对当前 release 版本功能较为紧急情况下使用。
版本号定义规则
主版本号 . 子版本号 . 修正版本号Major_Version_Number.Minor_Version_Number.Revision_Number
具体解释如下:
- 主版本号 :当项目在进行了重大修改或局部修正累积较多,而导致项目整体发生全局变化时,主版本号加 1。
- 子版本号 :当项目在原有的基础上增加了部分功能时,主版本号不变,子版本号加 1,修正版本号复位为 0,因而可以被忽略掉。
- 修正版本号:当项目在进行了局部修改或 BUG 修正时,主版本号和子版本号都不变,修正版本号加 1。
- 另外,在主、子以及修正版本号之后,还应该加上版本号状态,一个组件正常的版本迭代为为:
- 1.2.6-SNAPSHOT
- 1.2.6-alpha
- 1.2.6-alpha.2(非必须,当需要发布多个 alpha 版本时,才会带)
- 1.2.6-beta1.2.6-beta.2(非必须)
- 1.2.6-RC1.2.6-RC.2(非必须)
- 1.2.6.RELEASE
- 1.2.6-upgrade
- 1.2.6-upgrade.2(非必须)
Q:RELEASE 是必须要加在版本号后面的么?
A:非必须,SpringBoot 早期是有的,2.x.x 版本后就没有了。
Q:为什么上面版本状态会有大写或者小写?
A:结合市场上大部分开源框架来看,SNAPSHOT、RC、RELEASE 多数为大写,其它为小写。
Q:为什么版本状态前有 . 还有 - 两种分隔符?
A:参考 SpringBoot 版本号定义,仅当状态为 RELEASE 时才会是 . 分隔符。如果正式发布版本不带 RELEASE,那么版本分隔符就是 -。
原文链接:https://magestack.cn/convention/frame-version.html#%E7%89%88%E6%9C%AC%E5%8F%B7%E5%AE%9A%E4%B9%89%E8%A7%84%E5%88%99