发布 Parquet-Java

如何发布 Parquet-Java

设置

注:发布 parquet-format 的机制是相同的(例如设置密钥、分支、投票等)

您将需要:

  • PGP 代码签名密钥,发布在 KEYS 中。
  • Nexus 中暂存工件的权限。

通过推送快照确保您有权限将 Parquet 工件部署到 Nexus:

mvn deploy

如果遇到问题,请阅读发布 Maven 工件文档

发布流程

Parquet 使用 maven-release-plugin 来标记发布并将二进制工件推送到 Nexus 中的暂存区。maven 完成发布后,从标签构建官方源码 tarball。

0. 在开始发布流程之前

  1. 验证发布已完成(里程碑上没有待处理的计划 Issues/PRs)
  2. 构建并测试项目
  3. 如果这是新的次要版本,则为发布创建一个新分支。例如,如果新的次要版本是 1.14.0,则创建一个新分支 parquet-1.14.x

1. 运行准备脚本

./dev/prepare-release.sh <version> <rc-number>

这将使用一致的标签名称运行 maven 的 release prepare。此步骤后,发布标签将存在于 git 仓库中。

如果此步骤失败,您可以通过运行以下命令回滚更改。

find ./ -type f -name '*.releaseBackup' -exec rm {} \;
find ./ -type f -name 'pom.xml' -exec git checkout {} \;

2. 运行 release:perform 暂存二进制文件

将发布标签的二进制工件上传到 Nexus

mvn release:perform -DskipTests -Darguments=-DskipTests

3. 在 Nexus 中关闭暂存仓库

关闭暂存仓库使二进制文件在暂存区可用,但不发布它们。

  1. 转到 Nexus
  2. 在左侧菜单中,选择"Staging Repositories"。
  3. 选择 Parquet 仓库。
  4. 在顶部,点击"Close"并按照说明操作。评论使用"Apache Parquet [Format] “。

4. 运行源码 tarball 脚本

dev/source-release.sh <version> <rc-number>

此脚本从发布标签的 SHA1 构建源码 tarball,签名它,并使用 SVN 上传必要的文件。

源码发布推送到 https://dist.apache.org/repos/dist/dev/parquet/

脚本的最后一条消息是发布提交的 SHA1 哈希和用于 VOTE 电子邮件的 URL。

5. 准备预发布

创建预发布将为用户提供 changelog,以查看他们是否需要验证某些功能。首先选择新创建的 rc(例如:apache-parquet-1.15.0-rc0)标签,然后选择上一个版本(例如 apache-parquet-1.14.1)。点击 Generate release notes 按钮自动生成说明。您可以通过删除不相关的更改(空格、仅测试更改)并对其进行排序来策划说明,使其更易于理解。确保选中 Set as pre-release 复选框,因为这是一个候选版本。

5. 向 dev@parquet.apache.org 发送 VOTE 电子邮件

这是您可以使用的模板。确保所有内容都适用于您的发布。

Subject: [VOTE] Release Apache Parquet <VERSION> RC<NUM>


Hi everyone,

I propose the following RC to be released as official Apache Parquet <VERSION> release.

The commit id is <SHA1>
* This corresponds to the tag: apache-parquet-<VERSION>-rc<NUM>
* https://github.com/apache/parquet-java/tree/<SHA1>

The release tarball, signature, and checksums are here:
* https://dist.apache.org/repos/dist/dev/parquet/<PATH>

You can find the KEYS file here:
* https://downloads.apache.org/parquet/KEYS

You can find the changelog here:
https://github.com/apache/parquet-java/releases/tag/apache-parquet-<VERSION>-rc<NUM>

Binary artifacts are staged in Nexus here:
* https://repository.apache.org/content/groups/staging/org/apache/parquet/

This release includes important changes that I should have summarized here, but I'm lazy.

Please download, verify, and test.

Please vote in the next 72 hours.

[ ] +1 Release this as Apache Parquet <VERSION>
[ ] +0
[ ] -1 Do not release this because...

投票通过后发布

候选版本通过投票后,需要将候选版本作为最终版本发布。

1. 标记最终版本并设置开发版本

./dev/finalize-release <release-version> <rc-num> <new-development-version-without-SNAPSHOT-suffix>

这将为 RC 标签添加最终发布标签,并在 pom 文件中设置新的开发版本。如果一切正常,将更改和新标签推送到 GitHub:git push --follow-tags

2. 在 Nexus 中发布二进制仓库

发布二进制仓库将二进制文件发布到公共区

  1. 转到 Nexus
  2. 在左侧菜单中,选择"Staging Repositories”。
  3. 选择 Parquet 仓库。
  4. 在顶部,点击 Release 并按照说明操作。评论使用"Apache Parquet [Format] “。

3. 在 SVN 中将发布工件复制到 releases

首先,在 SVN 中检出 candidates 和 releases 位置:

svn mv https://dist.apache.org/repos/dist/dev/parquet/apache-parquet-<VERSION>-rcN/ https://dist.apache.org/repos/dist/release/parquet/apache-parquet-<VERSION> -m "Parquet: Add release <VERSION>"

4. 更新 parquet.apache.org

更新 parquet.apache.org 上的下载页面。更新网站的说明在贡献页面上。

5. 将发布添加到 GitHub

向 GitHub 添加新版本。首先选择新标签(例如:apache-parquet-1.15.0),然后选择上一个版本(例如 apache-parquet-1.14.1)。您可以从通过投票的 RC 复制发布说明。

6. 向 announce@apache.org 和开发列表发送 ANNOUNCE 电子邮件

[ANNOUNCE] Apache Parquet release <VERSION>


I'm pleased to announce the release of Parquet <VERSION>!

Parquet is a general-purpose columnar file format for nested data. It uses
space-efficient encodings and a compressed and splittable structure for
processing frameworks like Hadoop.

Changes are listed at: https://github.com/apache/parquet-java/releases/tag/apache-parquet-<VERSION>

This release can be downloaded from: https://parquet.apache.org/downloads/

Java artifacts are available from Maven Central.

Thanks to everyone for contributing!

6. 用功能启用指导更新 parquet-format

其他功能启用的建议通常与 parquet-java 的发布相关(详细信息在 parquet-format 仓库中)。随着发布的进行,应更新规范以指示何时可以启用新功能的建议日期。

发布节奏

如果有足够的志愿者,Parquet 社区的目标是每季度发布一次(目标月份是 1 月、4 月、7 月和 10 月)。如果需要新的主要版本,将针对 10 月发布。