怎样为软件的不同版本命名?

作者: 李佶澳   转载请保留:原文地址   更新时间:2017/12/26 15:22:22

说明

Semantic Versioning是一份版本命名规则,在软件开发过程中可以依据这份标准,对不同的版本进行命名。

规范

Semver规定的版本号格式为:

 正式版本:  MAJOR.MINOR.PATCH
 预发布版本:MAJOR.MINOR.PATCH-XXX

MAJOR是主版本号,不兼容上一个版本的API的时候,使用新的MAJOR。

MINOR是次版本号,在兼容上一个版本API的前提下,增加了新的特性,使用新的MINOR。

PATCH是补丁号,在兼容上一个版本API的前提下,修复了Bug。

-XXX用来标记预发布版本。

示例

0.y.z,即MAJOR为0,命名处于初级阶段,尚不稳定的版本。

1.0.0,第一个公开版本或正式版本,之后的版本需要考虑是否要兼容以往版本。

x.y.Z,x>0,修复Bug后,且兼容性不变,需要将Z增加。

x.Y.z,x>0,增加新特性,且兼容性不变,需要将Y增加,将z归零。

X.y.z,x>0,兼容性变化时,需要将X增加,y和z归零。

1.0.0-alpha,1.0.0-alpha.1,预发布版本增加以-开头的后缀,表示当前版本尚不稳定。

1.0.0-alpha+20130313144700,可以用以+开头的后缀,标记编译信息。

下面是一个软件的版本变更过程:

1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0

版本与开发分支

可以参照client-go中的做法:

MAJOR或者MINOR更新的时候,创建对应的Branch和TAG
PATCH更新的时候,创建对应的TAG
Master是最新状态的代码

具体的开发过程,可以参考beego的做法:

git project

参考

  1. Semantic Versioning 2.0.0
  2. client-go
  3. beego git branch

本文原创首发于网站:www.lijiaocn.com

QQ交流群

区块链实践互助QQ群:576555864

Kubernetes实践互助QQ群:947371129

Prometheus实践互助QQ群:952461804

Kong/Envoy实践互助QQ群:952503851

Ansible实践互助QQ群:955105412

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作 友情链接: lijiaocn github.com