版本验证流程#

此页面提供了在主要平台上执行版本验证的详细步骤信息。

原则#

Apache Arrow 版本批准流程遵循Apache 软件基金会版本批准中定义的准则。

要使版本投票通过,必须至少投出三个正面绑定票,并且正面绑定票的数量必须多于负面绑定票。版本不能被否决。PMC 成员投出的票具有约束力,但强烈鼓励非约束性投票,这是项目健康的标志。

运行版本验证#

Linux 和 macOS#

要运行针对源代码版本或二进制制品的验证脚本,请参阅以下指南。

必要的源代码验证#

个人**必须**将所有签名的源代码包下载到自己的硬件上,验证所有加密签名,按照提供的说明进行编译,并在自己的平台上测试结果,才能投出 +1 票。

# this will create and automatically clean up a temporary directory for the verification environment and will run the source verification
TEST_DEFAULT=0 TEST_SOURCE=1 verify-release-candidate.sh $VERSION $RC_NUM

# to verify only certain implementations use the TEST_DEFAULT=0 and TEST_* variables
# here are a couple of examples, but see the source code for the available options
TEST_DEFAULT=0 TEST_CPP=1 verify-release-candidate.sh $VERSION $RC_NUM  # only C++ tests
TEST_DEFAULT=0 TEST_CPP=1 TEST_PYTHON=1 verify-release-candidate.sh $VERSION $RC_NUM  # C++ and Python tests
TEST_DEFAULT=0 TEST_INTEGRATION_CPP=1 TEST_INTEGRATION_JAVA=1 verify-release-candidate.sh $VERSION $RC_NUM  # C++ and Java integration tests

二进制验证#

二进制文件是从已验证的源代码生成的。这些二进制文件在 CI 上进行了测试,但也可以在本地进行测试以进一步验证。为了投出赞成票,不必测试它们。

# this will create and automatically clean up a temporary directory for the verification environment and will run the binary verification
TEST_DEFAULT=0 TEST_BINARIES=1 dev/release/verify-release-candidate.sh $VERSION $RC_NUM

# to verify certain binaries use the TEST_* variables as:
TEST_DEFAULT=0 TEST_WHEELS=1 verify-release-candidate.sh $VERSION $RC_NUM  # only Wheels
TEST_DEFAULT=0 TEST_APT=1 verify-release-candidate.sh $VERSION $RC_NUM  # only APT packages
TEST_DEFAULT=0 TEST_YUM=1 verify-release-candidate.sh $VERSION $RC_NUM  # only YUM packages
TEST_DEFAULT=0 TEST_JARS=1 verify-release-candidate.sh $VERSION $RC_NUM  # only JARS

Windows#

要在 Windows 上运行验证脚本,您必须从要验证的 SVN 发行版系统下载源代码压缩包。

dev\release\verify-release-candidate.bat %VERSION% %RC_NUM%

系统配置说明#

您需要安装一些工具,例如 curl、git 等。

Ubuntu#

您可能需要在系统上安装一些软件包。可以使用以下实用程序脚本设置 Ubuntu 系统。这将安装在全新 Ubuntu 上执行源代码验证所需的软件包。

# From the arrow clone
sudo dev/release/setup-ubuntu.sh

macOS ARM#

# From the arrow clone
brew install gpg
brew bundle --file=cpp/Brewfile
brew bundle --file=c_glib/Brewfile
brew uninstall node
# You might need to add node, ruby java and maven to the PATH, follow
# instructions from brew after installing.
brew install node@20
brew install ruby
brew install openjdk
brew install maven

Windows 11#

待定义

投出你的票#

完成验证后,您可以通过回复 dev@arrow.apache.org 上的投票邮件并提供您的结果来投出您的票。

如果验证成功,您可以投出 +1 票。我们通常会在投票时附上执行的命令和使用的本地版本。例如:

I've verified successfully the sources and binaries with:

TEST_DEFAULT=0 TEST_SOURCE=1 dev/release/verify-release-candidate.sh 15.0.0 1
with:
* Python 3.10.12
* gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
* NVIDIA CUDA Build cuda_11.5.r11.5/compiler.30672275_0
* openjdk version "17.0.9" 2023-10-17
* ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu]
* dotnet 8.0.204
* Ubuntu 22.04 LTS

如果在验证过程中出现问题,请在邮件列表中报告这些问题以便诊断。