Skip to content

HugeGraph Version Release Guide

Jermy Li edited this page Dec 22, 2021 · 2 revisions

HugeGraph 发版流程

0. 整体流程

  1. Release Notes 整理
  2. 工具链组件版本适配,包括:loader、tools、hubble 等依赖 client 的组件
  3. 发布 Jar 包,包括:common、client 、server、loader 等可能需要被其它组件依赖的库
  4. 上传 Tar 包,包括:server:loader、tools、hubble 等二进制发布包
  5. 文档适配,主要包括:更改 API 、新增功能、更改配置项引入的文档适配
  6. 文档链接更新,主要包括:下载链接更新、Release Notes 链接更新

1. Release Notes 整理

将 Release Notes 整理好,添加到 hugegraph-doc 项目的 changelog 目录下。

可参考0.11版更改:https://github.com/hugegraph/hugegraph-doc/pull/56

2. 工具链组件版本适配

因为 server 新增功能或更改 API,会导致工具链组件需要进行适配升级,包括 loader、tools、studio/hubble 等依赖 的组件均需要更新使用最新的 client 并进行相应的适配。

适配时,被依赖的组件需要先进行适配,各组件的依赖关系如下:

  • server 依赖 common
  • client 依赖 common,并且 client 逻辑依赖 server
  • loader、tools、studio 均依赖 client
  • hubble、computer 依赖 loader

因此适配的先后关系大概是这样的:common -> server -> client -> loader / tools / studio -> hubble / computer

可参考0.11版更改:

loader:https://github.com/hugegraph/hugegraph-loader/pull/173

tools:https://github.com/hugegraph/hugegraph-tools/pull/69/files

studio:https://github.com/hugegraph/hugegraph-studio/pull/51

3. 发布 Jar 包

发布 Jar 包到 Maven 中央仓库,目的是为了方便依赖该库的组件可以方便的引入 Jar 包。HugeGraph 中的 common、client 、server、loader 等可能需要被其它组件依赖的库,涉及发布 Jar 包。比如 common 包被发布到:

https://mvnrepository.com/artifact/com.baidu.hugegraph/hugegraph-common

目前 CI 从 travis 迁移到 github action 之后,可能自动化发布流程需要进行一些调整适配,具体见:

https://github.com/hugegraph/hugegraph/blob/master/.github/workflows/release.yml

https://github.com/hugegraph/hugegraph/blob/master/.travis.yml

4. 上传 Tar 包

上传 Tar 包到 GitHub Releases 页面,目的是为了方便最终用户可以直接下载/安装官方二进制发布包,无需用户通过源码编译安装。 Tar 包可通过 mvn clean package -DskipTests 命令生成然后手动上传,也可利用自动化发布流程一键发布。

上传地址:https://github.com/hugegraph/hugegraph/releases (其它项目需要依赖仓库地址而变)

5. 文档适配

5.1 更改 API 、新增功能等引入的文档适配

参考0.11版更改:https://github.com/hugegraph/hugegraph-doc/pull/57

5.2 更改配置项引入的文档适配

配置项的更改可通过 Diff 两个版本之间的差异来快速更新,具体操作步骤如下:

  1. 使用 git 分别切换到最新版本和上一个版本。
  2. 执行 ConfDumper 输出配置文件,比如分别得到hugegraph-0.11.properties.defaulthugegraph-0.12.properties.default
  3. 对比两次输出的配置文件,diff hugegraph-0.11.properties.default hugegraph-0.12.properties.default.
  4. 将对比之后的配置项变更,更新到 hugegraph-doc 项目的 config/config-option.md 文件中。

输出配置文件:执行 ConfDumper 可以输出最新的配置文件,传入一个配置文件路径(比如hugegraph.properties),会在输入配置文件所在目录生成一个完整的输出配置文件(比如hugegraph.properties.default):

# path: /hugegraph-dist/src/main/java/com/baidu/hugegraph/cmd/ConfDumper.java

ConfDumper /etc/hugegraph/hugegraph.properties

可参考0.11版更改:https://github.com/hugegraph/hugegraph-doc/pull/59

6. 文档链接更新

文档更新主要是指下载页的链接更新、Release Notes 链接更新,包括将 GitHub Releases 页面最新的下载链接更新到 hugegraph-doc 项目的 download.md 文件。

可参考0.11版更改:https://github.com/hugegraph/hugegraph-doc/pull/58