NWPC业务系统笔记:业务后处理系统的版本号策略

目录

数值预报中心的确定性模式大多将模式积分与后处理拆成两个子系统。 相对于变更比较稳定的模式积分,后处理系统会面临频繁的产品更新。 将后处理部分分离为单独的系统,能确保频繁的变更不会影响模式积分。

鉴于缺乏对业务系统所有模块的版本管理和持续集成等机制,目前我们的业务系统更新记录一般都是维护人员手动填写的维护网站更新日志。 随着去年Metcode平台投入使用,我已将负责维护的产品后处理系统都上传到该平台,由版本控制系统来记录各项更新,并减少维护日志的填写。 由此引来一个很棘手的问题:从代码提交记录中很难确定更新上线的具体时间。 为了能准确记录系统变更和上线的时间,需要一种针对后处理系统的版本号策略。

本文介绍最近设计的一种版本号规则,目前正在部分产品后处理系统中试用。

背景

数值预报中心的模式系统有严格的版本号规则。 例如当前GRAPES全球模式版本号是2.4,GRAPES区域3km模式版本号是4.4。 对于版本之间的更新没有明确的规定。 后处理系统紧密跟随模式版本升级,属于模式系统的一部分,没有单独的版本规定。

模式版本的更新次数比较少,使用手动填写的更新日志足以满足需求,无需额外的机制。 但产品的更新非常频繁,所以有必要为后处理单独制定一套版本规则,即兼顾模式版本,又能记录每次产品的更新升级。

规则

设计的后处理系统版本规则如下:

模式版本号-后处理版本号+build.更新日期

模式版本号与模式系统一致。 -符号后面的版本号采用语义化版本2.0.0规范制定,包括:

  • 后处理版本号,X.Y.Z,具体更新规则见后文说明。
  • 系统上线日期,YYYYMMDD,每次系统更新上线都需要使用当天的日期。

例如GRAPES区域3km产品后处理系统的某个版本号为:

4.4-3.0.0+build.20200228

其中4.4是模式版本,3.0.0是后处理系统版本,更新日期是2020年02月28日。

对于后处理版本号,按如下规定进行递增。

递增主版本号X:

  • 添加新产品
  • 删除旧产品
  • 更新产品处理程序

递增次版本号Y:

  • 调整流程
  • 调整产品分发

递增修订号Z:

  • 修复流程BUG
  • 修复ecFlow脚本BUG

参考

语义化版本2.0.0规范