软件版本号的定义

167 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

目的

做开发好多年了,发布更新了不少版本,你真的了解软件版本吗?

本文将介绍软件版本号定义的一般方法及相关知识,以供软件版本管理困难者参考。

版本号

软件版本号主要信息一般有“主版本号(Major)”、 “副版本号(Minor)”、 “微版本号(Micro)”、 “限定字符串(Qualifier)”四项。

版本号由这四项按照某种格式组装成一个字符串,格式由软件发布者或者组织自由定义,每个软件的版本定义可能都不一样,但它们都遵循一定的格式,如version: 主版本号.副版本号.微版本号.build-限定字符串或者v主版本号.副版本号.微版本号(Build-限定字符串)

示例:

version: 1.2.3.build-585448
或
v6.1.8(Build-bc730e2e1)

根据一般软件版本发布习惯,“主版本号(Major)” + “副版本号(Minor)” + “微版本号(Micro)” + “限定字符串(Qualifier)”有约定俗成的含义:

  • “主版本号(Major)” :表示与之前版本不兼容的重大功能升级。
  • “副版本号(Minor)” :表示与上个版本兼容,但可能提供了新的特性或接口。
  • “微版本号(Micro)” :表示API接口没有发生变化,只是程序内部实现改变,或者修正了某个错误。
  • “限定字符串(Qualifier)”:通常用于表示编译时间戳或编译次数等信息。

版本号比较

版本号是可以比较的,比较时应遵循软件版本发布的格式,解析出版本号中的“主版本号(Major)”、 “副版本号(Minor)”、 “微版本号(Micro)”、 “限定字符串(Qualifier),从前往后逐项比较。

当且仅当所有项都完全一致时表示两个版本相等,否则以第一个出现差异的版本号的大小决定整个版本号的大小。但也必须处理限定字符串的,如 Maven的版本管理中 1.2.3.2022 <= 1.2.3