From ddf8f46f167e1bd974fc4ded67b71d7e55a66352 Mon Sep 17 00:00:00 2001
From: David Li
Date: Fri, 7 Aug 2026 13:18:14 +0900
Subject: [PATCH 1/3] chore(dev/release): verify free-threaded wheels too
Closes #3824.
---
dev/release/verify-release-candidate.sh | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/dev/release/verify-release-candidate.sh b/dev/release/verify-release-candidate.sh
index 1effa884e9..fa29b034f6 100755
--- a/dev/release/verify-release-candidate.sh
+++ b/dev/release/verify-release-candidate.sh
@@ -400,6 +400,12 @@ maybe_setup_conda() {
# Optionally setup conda environment with the passed dependencies
local env="conda-${CONDA_ENV:-source}"
local pyver=${PYTHON_VERSION:-3}
+ local pymarker=""
+
+ if [[ "$pyver" == *t ]]; then
+ pyver="${pyver%t}"
+ pymarker="python-freethreading"
+ fi
if [ "${USE_CONDA}" -gt 0 ]; then
show_info "Configuring Conda environment..."
@@ -412,7 +418,7 @@ maybe_setup_conda() {
install_conda
# Create environment
if ! conda env list | cut -d" " -f 1 | grep $env; then
- mamba create -y -n $env python=${pyver}
+ mamba create -y -n $env python=${pyver} ${pymarker}
fi
# Install dependencies
if [ $# -gt 0 ]; then
@@ -818,13 +824,13 @@ test_linux_wheels() {
local arch="x86_64"
fi
- local python_versions="${TEST_PYTHON_VERSIONS:-3.10 3.11 3.12 3.13 3.14}"
+ local python_versions="${TEST_PYTHON_VERSIONS:-3.10 3.11 3.12 3.13 3.14 3.14t}"
for python in ${python_versions}; do
- local pyver=${python/m}
- show_header "Testing Python ${pyver} wheel for platform manylinux"
- CONDA_ENV=wheel-${pyver}-${arch} PYTHON_VERSION=${pyver} maybe_setup_conda || exit 1
- VENV_ENV=wheel-${pyver}-${arch} PYTHON_VERSION=${pyver} maybe_setup_virtualenv || continue
+ local pyver=${python/t}
+ show_header "Testing Python ${python} wheel for platform manylinux"
+ CONDA_ENV=wheel-${python}-${arch} PYTHON_VERSION=${python} maybe_setup_conda || exit 1
+ VENV_ENV=wheel-${python}-${arch} PYTHON_VERSION=${python} maybe_setup_virtualenv || continue
pip install --force-reinstall \
adbc_*-cp${pyver/.}-cp${python/.}-manylinux*${arch}*.whl \
adbc_*-py3-none-manylinux*${arch}*.whl
From 2b6e485fc4dcce5e6d851923cc2c8f2e7856d7d1 Mon Sep 17 00:00:00 2001
From: David Li
Date: Fri, 7 Aug 2026 13:45:24 +0900
Subject: [PATCH 2/3] macos, refactor
---
dev/release/verify-release-candidate.sh | 53 ++++++++++++-------------
1 file changed, 25 insertions(+), 28 deletions(-)
diff --git a/dev/release/verify-release-candidate.sh b/dev/release/verify-release-candidate.sh
index fa29b034f6..7ecd8b8de2 100755
--- a/dev/release/verify-release-candidate.sh
+++ b/dev/release/verify-release-candidate.sh
@@ -817,52 +817,49 @@ test_binary_distribution() {
fi
}
-test_linux_wheels() {
- if [ "$(uname -m)" = "aarch64" ]; then
- local arch="aarch64"
- else
- local arch="x86_64"
- fi
+test_unix_wheels() {
+ local arch="${1}"
+ local platform="${2}"
local python_versions="${TEST_PYTHON_VERSIONS:-3.10 3.11 3.12 3.13 3.14 3.14t}"
for python in ${python_versions}; do
local pyver=${python/t}
- show_header "Testing Python ${python} wheel for platform manylinux"
+ show_header "Testing Python ${python} wheels for ${platform}/${arch}"
CONDA_ENV=wheel-${python}-${arch} PYTHON_VERSION=${python} maybe_setup_conda || exit 1
VENV_ENV=wheel-${python}-${arch} PYTHON_VERSION=${python} maybe_setup_virtualenv || continue
+
+ if [[ "$pyver" == *t ]]; then
+ export PYTHON_GIL=0
+ else
+ unset PYTHON_GIL
+ fi
pip install --force-reinstall \
- adbc_*-cp${pyver/.}-cp${python/.}-manylinux*${arch}*.whl \
- adbc_*-py3-none-manylinux*${arch}*.whl
+ adbc_*-cp${pyver/.}-cp${python/.}-${platform}*${arch}*.whl \
+ adbc_*-py3-none-${platform}*${arch}*.whl
${ADBC_DIR}/ci/scripts/python_wheel_unix_test.sh ${ADBC_DIR}
done
}
+test_linux_wheels() {
+ if [ "$(uname -m)" = "aarch64" ]; then
+ local arch="aarch64"
+ else
+ local arch="x86_64"
+ fi
+
+ test_unix_wheels "${arch}" "manylinux"
+}
+
test_macos_wheels() {
# apple silicon processor
if [ "$(uname -m)" = "arm64" ]; then
- local platform_tags="arm64"
+ local arch="arm64"
else
- local platform_tags="x86_64"
+ local arch="x86_64"
fi
- local python_versions="${TEST_PYTHON_VERSIONS:-3.10 3.11 3.12 3.13 3.14}"
-
- # verify arch-native wheels inside an arch-native conda environment
- for python in ${python_versions}; do
- local pyver=${python/m}
- for platform in ${platform_tags}; do
- show_header "Testing Python ${pyver} wheel for platform ${platform}"
-
- CONDA_ENV=wheel-${pyver}-${platform} PYTHON_VERSION=${pyver} maybe_setup_conda || exit 1
- VENV_ENV=wheel-${pyver}-${platform} PYTHON_VERSION=${pyver} maybe_setup_virtualenv || continue
-
- pip install --force-reinstall \
- adbc_*-cp${pyver/.}-cp${python/.}-macosx_*_${platform}.whl \
- adbc_*-py3-none-macosx_*_${platform}.whl
- ${ADBC_DIR}/ci/scripts/python_wheel_unix_test.sh ${ADBC_DIR}
- done
- done
+ test_unix_wheels "${arch}" "macosx"
}
test_wheels() {
From 81648225b82245b71ac26731dd760c2ba958a090 Mon Sep 17 00:00:00 2001
From: David Li
Date: Fri, 7 Aug 2026 13:51:41 +0900
Subject: [PATCH 3/3] fix
---
dev/release/verify-release-candidate.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dev/release/verify-release-candidate.sh b/dev/release/verify-release-candidate.sh
index 7ecd8b8de2..701e71d6e1 100755
--- a/dev/release/verify-release-candidate.sh
+++ b/dev/release/verify-release-candidate.sh
@@ -829,7 +829,7 @@ test_unix_wheels() {
CONDA_ENV=wheel-${python}-${arch} PYTHON_VERSION=${python} maybe_setup_conda || exit 1
VENV_ENV=wheel-${python}-${arch} PYTHON_VERSION=${python} maybe_setup_virtualenv || continue
- if [[ "$pyver" == *t ]]; then
+ if [[ "$python" == *t ]]; then
export PYTHON_GIL=0
else
unset PYTHON_GIL