发布#

原则#

Apache Arrow 发布遵循在Apache 软件基金会发布策略中定义的指南。

准备#

发布的一些步骤需要成为提交者或 PMC 成员。

  • Apache Web of Trust 中的 GPG 密钥用于签署工件。这将需要由其他 Apache 提交者/PMC 成员交叉签名。您必须在dev/release/.env中设置您的 GPG 密钥 ID(请参阅dev/release/.env.example以获取模板)。

  • 需要将 GPG 密钥添加到此用于开发的 Subversion 存储库用于发布的 Subversion 存储库

  • 一个Artifactory API 密钥(使用您的 ASF 凭据登录,然后从右上角的个人资料中生成它)。您必须在dev/release/.env中设置 Artifactory API 密钥(请参阅dev/release/.env.example以获取模板)。

  • 一个 GitHub 个人访问令牌,至少具有workflow作用域。您必须在dev/release/.env中设置 GitHub 个人访问令牌(请参阅dev/release/.env.example以获取模板)。

  • 克隆apache/arrow并准备apache/arrowdev/release/.env(请参阅dev/release/.env.example以获取模板),就像apache/arrow-flight-sql-postgresqldev/release/.env一样。

创建 RC#

创建第一个 RC 时,准备一个新的 RC

rake release:rc:prepare ARROW_SOURCE=/path/to/apache/arrow/repository/

您需要指定您克隆的apache/arrow存储库。

这会在本地存储库上创建一个prepare-${VERSION}分支。您需要推送它并为其打开一个新的拉取请求。

拉取请求合并后,为新的 RC 打标签

rake release:rc:tag

这会为新的 RC 创建一个新的标签。您可以检查它并推送到apache/arrow-flight-sql-postgresql

新 RC 的工件在 GitHub Actions 上自动构建。

签署这些工件

rake release:rc:sign

请注意,在运行上述命令行之前,您无需等待 GitHub Actions 作业完成。因为上述命令行会自动等待 GitHub Actions 作业完成。

上传 Linux 包

rake release:rc:linux ARROW_SOURCE=/path/to/apache/arrow/repository/

您需要指定您克隆的apache/arrow存储库。您必须准备其dev/release/.env(不仅仅是apache/arrow-flight-sql-postgresqldev/release/.env)。

在 GitHub Actions 上重新运行 RC 验证 CI 作业

rake release:rc:verify

dev@arrow.apache.org上启动新 RC 的投票线程。您可以生成投票电子邮件模板

rake release:vote

批准需要 PMC 成员净 3 个 +1 票。发布不能被否决。

如何验证#

安装依赖项#

至少,您将需要

  • Apache Arrow C++(必须启用 Apache Arrow Flight SQL)

  • C++ 编译器

  • Git

  • GnuPG

  • Meson

  • Ninja

  • PostgreSQL 15 或更高版本

  • cURL

  • jq

  • shasum(内置于 macOS)或 sha256sum/sha512sum(在 Linux 上)

验证#

克隆项目

git clone https://github.com/apache/arrow-flight-sql-postgresql.git

运行验证脚本

cd arrow-flight-sql-postgresql
# Pass the version and the RC number.
# This stops after build is succeeded. You need to verify manually after it.
# See "Hints" the script shows what you do.
dev/release/verify-rc.sh 0.1.0 1

这些环境变量可能会有所帮助

  • ARROW_TMPDIR=/path/to/directory 用于指定使用的临时目录。如果脚本必须运行多次,使用固定目录可以帮助避免重复相同的设置和构建步骤。

  • TEST_SOURCE_MANUAL=0 用于禁用手动验证。

完成后并且脚本通过后,回复邮件列表投票线程,发送+1-1

发布后任务#

发布投票后,我们必须完成以下任务

发布工件

rake release:rc:publish ARROW_SOURCE=/path/to/apache/arrow/repository/

此命令行通过您的 Web 浏览器打开Apache 报告器。不要忘记通过页面中的表单注册新版本。

此命令行创建新版本的标签,但默认情况下不会自动推送它。不要忘记推送它。

发布版本博文。以下命令行生成博文大纲,然后填写大纲并在apache/arrow-site上创建一个 PR

rake release:announce:blog PREVIOUS_VERSION=X.Y.Z

在邮件列表中宣布新版本。以下命令行生成公告电子邮件大纲,然后填写大纲并将公告电子邮件发送到announce@apache.orguser@arrow.apache.orgdev@arrow.apache.org。您必须使用您的@apache.org电子邮件地址向announce@apache.org发送电子邮件

rake release:announce:mail

pgsql-announce@postgresql.org上宣布新版本。

您需要创建您的 PostgreSQL 社区帐户:https://postgresql.ac.cn/account/

您需要加入 PostgreSQL 社区中的 Apache Arrow 组织。待办事项:创建它。

以下命令行生成公告电子邮件大纲,然后填写大纲并将其提交到https://postgresql.ac.cn/account/edit/news/

rake release:announce:postgresql

更新版本

rake version:bump NEW_VERSION=X.Y.Z