發布驗證流程#

此頁面提供關於在主要平台上執行發布驗證之步驟的詳細資訊。

原則#

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 dist 系統下載原始碼 tarball

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

如果在驗證期間出現一些問題,請在郵件串上回報它們以診斷問題。