发布 Parquet-Java
设置
注:发布 parquet-format 的机制是相同的(例如设置密钥、分支、投票等)
您将需要:
通过推送快照确保您有权限将 Parquet 工件部署到 Nexus:
mvn deploy
如果遇到问题,请阅读发布 Maven 工件文档。
发布流程
Parquet 使用 maven-release-plugin 来标记发布并将二进制工件推送到 Nexus 中的暂存区。maven 完成发布后,从标签构建官方源码 tarball。
0. 在开始发布流程之前
- 验证发布已完成(里程碑上没有待处理的计划 Issues/PRs)
- 构建并测试项目
- 如果这是新的次要版本,则为发布创建一个新分支。例如,如果新的次要版本是 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 中关闭暂存仓库
关闭暂存仓库使二进制文件在暂存区可用,但不发布它们。
- 转到 Nexus。
- 在左侧菜单中,选择"Staging Repositories"。
- 选择 Parquet 仓库。
- 在顶部,点击"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 中发布二进制仓库
发布二进制仓库将二进制文件发布到公共区。
- 转到 Nexus。
- 在左侧菜单中,选择"Staging Repositories”。
- 选择 Parquet 仓库。
- 在顶部,点击 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 月发布。