前言
版本号(version number)是版本的标识号。每一个操作系统(或广义的讲,每一个软件)都有一个版本号。版本号能使用户了解所使用的操作系统是否为最新的版本以及它所提供的功能与设施。
例如在Python项目依赖中会看到 requires-python = ">= 3.10"
等依赖库对版本的要求,还有 >=
与 <=
相结合的使用方式。
例如在前端node依赖项目,使用npm管理依赖库版本,会看到一些符合符号(示例个别):
^
兼容版本,不超过最左边非零数字,eg:^1.2.3
表示>=1.2.3 <2.0.0
~
最接近匹配版本,eg:~1.2.3
表示>=1.2.3 <1.3.0
>
大于当前版本
业界在定义版本的时候,都会遵循一定的规范,否则当出现^
或者~
等符号的时候,依赖库有了不兼容升级,才能保证被引用服务不会出现问题。
一个规范的版本定义非常重要。
语义化版本2.0.0
官网:https://semver.org
版本格式:主版本号.次版本号.修订号
,版本号递增规则如下:
主版本号
:当你做了不兼容的 API 修改,次版本号
:当你做了向下兼容的功能性新增,修订号
:当你做了向下兼容的问题修正。
先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
语义化版本控制的规范是由 Gravatars 创办者兼 GitHub 共同创办者 Tom Preston-Werner 所建立,本文不作更多描述,请移步官网。