软件版本的定义

近期,要不断地适应业务变更和演进的节奏,朝着自动测试、自动部署、持续交付的方向迈进。

保持一致性和简洁性,是我们的一贯理念。抽空把原来的一些好的实践经验记录一下,供参考。虽然这些小经验可能没有涉及到大的架构、技术难点,但在实践中也很好地帮助了我们进行版本迭代。

iOS App 版本的定义

版本(version#):x.y.z,如 0.5.1;
build#:一个正整数,如 2;
扩展:version# (role#build#),如 0.5.1 (C2)
具体请参见:iOS App 版本的定义

Android 版本的定义

同 iOS App 版本的定义,在 AndroidManifest.xml 文件中:

  • android:versionCode
    build#
  • android:versionName
    同扩展版本的定义,示例:0.5.1 (B3)

AndroidManifest.xml

软件版本的定义_第1张图片
AndroidManifest.xml.png

服务端版本的定义

我们按照产品版本部署。

通常按照产品版本进行访问,若有未带产品版本的访问则指向当前最新版本。

在 Web Server 根目录配置上,产品版本指向的文件目录以 tag 标识。

  • 产品版本(或者更 specific 时:rdoc 版本)
    我们以往一致以 x.y 格式来标识,比如:0.5;
  • tag
    以 x.y.z.w 标识,示例:0.5.1.3921,其中:
    • x.y.z 的定义
      和 iOS 版本一致,示例:0.5.1;
    • w 的定义
      weeknum#weekday#sn,其中:
      weeknum 表示一年中的第几周( the week number of a specific date);
      weekday 表示一周中的第几天(the day of the week);
      sn 表示当天的序列号;
      示例:3921 表示第39周的第2天的第1个版本,即 2015-9-21 打的第1个标签。
      注:以周日为一周的第1天,每年的1月1日所在的周为第一周(即 U.S.标准,iPhone 手机上的默认日历 Calendar 就是这个标准)。
      Excel 函数 weeknum(date(2015, 9, 21)), weekday(date(2015, 9, 21)) 可以进行计算。

业界的一般约定

  • Wikipedia Software versioning;有时间可以看看,还挺详细的;
  • Semantic Versioning 2.0.0 @ semver.org;
  • Semantic versioning and npm;
  • 了解语义化的软件版本号规则;

你可能感兴趣的:(软件版本的定义)