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