发布 Doris Connectors

Doris Connectors 目前包含:

  • Doris Flink Connector
  • Doris Spark Connector。

其代码库独立于 Doris 主代码库,分别位于:

准备发布

首先,请参阅 发版准备 文档进行发版准备。

准备发布

首先,请参阅 发版准备 文档进行发版准备。## 发布到 Maven

我们以发布 Flink Connector v1.0.0 为例。

1. 准备分支

在代码库中创建分支:branch-1.0,并 checkout 到该分支。

2. 发布到 Maven staging

因为 Flink Connector 针对不同 Flink 版本(如 1.11, 1.12, 1.13)发布不同的 Release。因此我们需要针对每一个版本单独进行处理。

下面我们以 Flink 版本 1.13.5,scala 版本 2.12 为例说明:

先替换 pom.xml 中的 flink.version 和 scala.version:

  1. cd flink-doris-connector/
  2. sed -i 's/\${flink.version}/1.13.5/g' pom.xml
  3. sed -i 's/\${scala.version}/2.12/g' pom.xml

替换后,提交本地修改:

  1. git add . -u
  2. git commit -m "prepare for 1.13.5-2.12-1.0.0"

执行以下命令开始生成 release tag:

  1. cd flink-doris-connector/
  2. mvn release:clean -DreleaseArgs="-Dflink.version=1.13.5 -Dscala.version=2.12" -Dflink.version=1.13.5 -Dscala.version=2.12
  3. mvn release:prepare -DreleaseArgs="-Dflink.version=1.13.5 -Dscala.version=2.12" -Dflink.version=1.13.5 -Dscala.version=2.12 -DpushChanges=false

其中 -DpushChanges=false 表示执行过程中,不会向代码库推送新生成的分支和 tag。

在执行 release:prepare 命令后,会要求提供以下三个信息:

  1. Doris Flink Connector 的版本信息, 我们默认就可以,可以直接回车或者输入自己想要的版本。版本格式为 {flink.version}-{scala.version}-{connector.version},如 1.13.5-2.12-1.0.0
  2. Doris Flink Connector 的 release tag, release 过程会在本地生成一个 tag。我们使用默认的 tag 名称即可,如 1.13.5-2.12-1.0.0
  3. Doris Flink Connector 下一个版本的版本号。这个版本号只是用于生成本地分支时使用,无实际意义。我们按规则填写一个即可,比如当前要发布的版本是:1.13.5-2.12-1.0.0,那么下一个版本号填写 1.13.5-2.12-1.0.1 即可。

mvn release:prepare 可能会要求输入 GPG passphrase。如果出现 gpg: no valid OpenPGP data found 错误,则可以执行 export GPG_TTY=$(tty) 后在尝试。

mvn release:prepare 执行成功后,会在本地生成一个 tag 和一个 branch。并且当前分支会新增两个 commit。第一个 commit 对应的是新生成的 tag,第二个则是下一个版本的 branch。可以通过 git log 查看。

本地 tag 确认无误后,需要将 tag 推送到代码库:

git push upstream --tags

其中 upstream 指向 apache/incubator-doris-flink-connector 代码库。

最后,执行 perform:

  1. mvn release:perform -DreleaseArgs="-Dflink.version=1.13.5 -Dscala.version=2.12" -Dflink.version=1.13.5 -Dscala.version=2.12

执行成功后,在 https://repository.apache.org/#stagingRepositories发布 Doris Connectors - 图1 (opens new window) 里面可以找到刚刚发布的版本:

发布 Doris Connectors - 图2

注意需要包含 .asc 签名文件。

如果操作有误。需要将本地 tag,代码库中的 tag 以及本地新生成的两个 commit 删除。并将 staging drop 掉。然后重新执行上述步骤。

检查完毕后,点击图中的 close 按钮完成 staging 发布。

3. 准备 svn

检出 svn 仓库:

  1. svn co https://dist.apache.org/repos/dist/dev/incubator/doris/

打包 tag 源码,并生成签名文件和sha256校验文件。这里我们以 1.13.5-2.12-1.0.0 为例。其他 tag 操作相同

  1. git archive --format=tar 1.13.5-2.12-1.0.0 --prefix=apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src/ | gzip > apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src.tar.gz
  2. gpg -u xxx@apache.org --armor --output apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src.tar.gz.asc --detach-sign apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src.tar.gz
  3. sha512sum apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src.tar.gz > apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src.tar.gz.sha512

最终得到三个文件:

  1. apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src.tar.gz
  2. apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src.tar.gz.asc
  3. apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src.tar.gz.sha512

将这三个文件移动到 svn 目录下:

  1. doris/flink-connector/1.0.0/

最终 svn 目录结构类似:

  1. |____0.15
  2. | |____0.15.0-rc04
  3. | | |____apache-doris-0.15.0-incubating-src.tar.gz.sha512
  4. | | |____apache-doris-0.15.0-incubating-src.tar.gz.asc
  5. | | |____apache-doris-0.15.0-incubating-src.tar.gz
  6. |____KEYS
  7. |____flink-connector
  8. | |____1.0.0
  9. | | |____apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src.tar.gz
  10. | | |____apache-doris-flink-connector-1.11.6-2.12-1.0.0-incubating-src.tar.gz.sha512
  11. | | |____apache-doris-flink-connector-1.11.6-2.12-1.0.0-incubating-src.tar.gz.asc
  12. | | |____apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src.tar.gz.asc
  13. | | |____apache-doris-flink-connector-1.12.7-2.12-1.0.0-incubating-src.tar.gz
  14. | | |____apache-doris-flink-connector-1.12.7-2.12-1.0.0-incubating-src.tar.gz.asc
  15. | | |____apache-doris-flink-connector-1.12.7-2.12-1.0.0-incubating-src.tar.gz.sha512
  16. | | |____apache-doris-flink-connector-1.11.6-2.12-1.0.0-incubating-src.tar.gz
  17. | | |____apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating-src.tar.gz.sha512

其中 0.15 是 Doris 主代码的目录,而 flink-connector/1.0.0 下就是本次发布的内容了。

注意,KEYS 文件的准备,可参阅 发版准备 中的介绍。

4. 投票

在 dev@doris 邮件组发起投票,模板如下:

  1. Hi All,
  2. This is a call for vote to release Flink Connectors v1.0.0 for Apache Doris(Incubating).
  3. There are 3 outputs for different Flink version:
  4. - apache-doris-flink-connector-1.11.6-2.12-1.0.0-incubating
  5. - apache-doris-flink-connector-1.12.7-2.12-1.0.0-incubating
  6. - apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating
  7. The release node:
  8. xxxxx
  9. The release candidates:
  10. https://dist.apache.org/repos/dist/dev/incubator/doris/flink-connector/1.0.0/
  11. Maven 2 staging repository:
  12. https://repository.apache.org/content/repositories/orgapachedoris-1002/org/apache/doris/doris-flink-connector/
  13. Git tag for the release:
  14. https://github.com/apache/incubator-doris-flink-connector/tree/1.11.6-2.12-1.0.0
  15. https://github.com/apache/incubator-doris-flink-connector/tree/1.12.7-2.12-1.0.0
  16. https://github.com/apache/incubator-doris-flink-connector/tree/1.13.5-2.12-1.0.0
  17. Keys to verify the Release Candidate:
  18. https://downloads.apache.org/incubator/doris/KEYS
  19. Look at here for how to verify this release candidate:
  20. http://doris.incubator.apache.org/community/release-and-verify/release-verify.html
  21. The vote will be open for at least 72 hours or until necessary number of votes are reached.
  22. Please vote accordingly:
  23. [ ] +1 approve
  24. [ ] +0 no opinion
  25. [ ] -1 disapprove with the reason

dev 邮件组通过后,再发送邮件到 general@incubator 邮件组进行 IPMC 投票。

  1. Hi All,
  2. This is a call for vote to release Flink Connectors v1.0.0 for Apache Doris(Incubating).
  3. There are 3 outputs for different Flink version:
  4. - apache-doris-flink-connector-1.11.6-2.12-1.0.0-incubating
  5. - apache-doris-flink-connector-1.12.7-2.12-1.0.0-incubating
  6. - apache-doris-flink-connector-1.13.5-2.12-1.0.0-incubating
  7. The release node:
  8. xxxxx
  9. The release candidates:
  10. https://dist.apache.org/repos/dist/dev/incubator/doris/flink-connector/1.0.0/
  11. Maven 2 staging repository:
  12. https://repository.apache.org/content/repositories/orgapachedoris-1002/org/apache/doris/doris-flink-connector/
  13. Git tag for the release:
  14. https://github.com/apache/incubator-doris-flink-connector/tree/1.11.6-2.12-1.0.0
  15. https://github.com/apache/incubator-doris-flink-connector/tree/1.12.7-2.12-1.0.0
  16. https://github.com/apache/incubator-doris-flink-connector/tree/1.13.5-2.12-1.0.0
  17. Keys to verify the Release Candidate:
  18. https://downloads.apache.org/incubator/doris/KEYS
  19. Look at here for how to verify this release candidate:
  20. http://doris.incubator.apache.org/community/release-and-verify/release-verify.html
  21. Vote thread at dev@doris: [1]
  22. The vote will be open for at least 72 hours or until necessary number of votes are reached.
  23. Please vote accordingly:
  24. [ ] +1 approve
  25. [ ] +0 no opinion
  26. [ ] -1 disapprove with the reason
  27. [1] vote thread in dev@doris

完成发布

请参阅 完成发布 文档完成所有发布流程。

附录:发布到 SNAPSHOT

Snapshot 并非 Apache Release 版本,仅用于发版前的预览。在经过 PMC 讨论通过后,可以发布 Snapshot 版本

切换到 flink connector 目录, 我们以 flink 版本 1.13.5,scalar 2.12 为例

  1. cd flink-doris-connector
  2. mvn deploy -Dflink.version=1.13.5 -Dscala.version=2.12

之后你可以在这里看到 snapshot 版本:

  1. https://repository.apache.org/content/repositories/snapshots/org/apache/doris/doris-flink-connector/