版本号是软件行业一定会用到的,开发团队每发布一个版本就需要确定版本号,使用开源框架也需要知道使用框架的版本号。

为什么会需要版本号呢?有些团队可能并不知道版本号的意义,只是出于惯例给版本确定版本号,版本号的定义也是各种各样,我见过直接使用年月日的组合来定义版本号的,这里要针对在开源领域广泛使用的语义化版本 2.0.0 | Semantic Versioning (https://semver.org/lang/zh-CN/))进行介绍。

为什么需要版本号?

版本号其实就是一套规范,相信大家都了解过“打死不改版”命名,我在一家通信设计院上班时还真看到有同事就是这么对付甲方不断修正设计文档的要求的,这对当事人算得上一个噩梦吧。

怎么区分版本号高低(如何看懂版本号)(1)

在庞大的软件系统中,不可避免的会产生非常多的依赖,如果没有合理的版本管理很快就会陷入“依赖地狱”,语义化版本规范就是为了解决“依赖地狱”而产生的。

版本格式

X . Y . Z - alpha.beta

x-主版本号:当做了不兼容的API修改,递增x

y-次版本号:当你做了向下兼容的功能性新增,递增y

z-修订号:当你做了向下兼容的问题修正,递增z

先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸,示例中alpha.beta就是一种先行版本号的示例,它不是必须要求的。

对照看下python的版本号,3是主版本号,9是次版本号,1是修订号

怎么区分版本号高低(如何看懂版本号)(2)

规范关键要点

主版本号的改变意味前后版本不再兼容,影响往往是巨大的,比如python2转向python3跨越了数年时间,至今仍有很多项目使用python2.

作为一位负责任的开发者,你理当确保每次包升级的运作与版本号的表述一致

,