版本号和里程碑记录方法 - mindpin/knowledge-space-net-lib GitHub Wiki

设计目的

以一种相对标准化的文本描述(包含一个到多个文档),记录4ye.me客户端的历史发布版本号,以及里程碑。
该标准化描述基于yaml,以做到容易解析。

解析程序(PARSER)需求

针对该描述方法,编写解析程序,实现以下需求:

  1. 能够从该(该组)描述文档中,获取当前平台(android/ios 等)最新的客户端版本号;
  2. 能够获取当前平台最后一个客户端里程碑对应的版本号;
  3. 能够根据指定版本获取该版本的更新记录(CHANGELOG)

更新程序(UPDATER)需求

针对该描述方法,编写更新程序,实现以下需求:

  1. 对指定平台(android/ios 等)增加一个新版本,并声明它是否是里程碑;

具体描述方案

持久化方式

用两个 yaml 文件 android.yaml ios.yaml 来分别保存各自平台的版本信息

yaml 文件格式如下,版本按照最新到最旧排列

- version: 1.5.2
  is_milestone: false
  changelog: "blanblan....."

- version: 1.0.0
  is_milestone: true
  changelog: "blanblan....."

编写 ruby 程序

创建一个 version_manager.rb 文件,实现 VersionManager 类,使其可以像如下方式使用

  # 获取最新的客户端版本号
  # platform 是 android 或 ios
  version = VersionManager.get_newest_version(platform)

  # 获取最新的里程碑客户端版本号
  version = VersionManager.get_newest_milestone_version(platform)

  # 根据指定版本获取该版本的更新记录
  VersionManager.get_changelog(platform, version)

  # 增加一个版本信息到 yaml 文件中
  platform = "android"
  version  = "1.6.0"
  is_milestone = false
  VersionManager.add_version(platform, version, is_milestone, changelog)

代码实现

@arlyxiao 实现了上述逻辑,实现代码在
https://gitcafe.com/arlyxiao/version_manager

目前代码正在进行重构但方法固定,集成时参考本词条中编写ruby程序的说明。
在 @arlyxiao 重构的同时开始进行其他集成。
@arlyxiao 重构完毕后,将最新代码替换到集成工程里。

⚠️ **GitHub.com Fallback** ⚠️