This is an automated email from the ASF dual-hosted git repository.

raulcd pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new dc9753c206 GH-47625: [Python] Free-threaded musllinux and manylinux 
wheels started failing with cffi 2.0.0 (#47626)
dc9753c206 is described below

commit dc9753c20690250e996a82cb1357d7bcd9b5832d
Author: Alenka Frim <[email protected]>
AuthorDate: Mon Sep 29 10:43:45 2025 +0200

    GH-47625: [Python] Free-threaded musllinux and manylinux wheels started 
failing with cffi 2.0.0 (#47626)
    
    ### Rationale for this change
    
    Musllinux and manylinux jobs started failing on free-threaded build of 
CPython 3.13 due to cffi not supporting free-threaded CPython 3.13.
    
    ### What changes are included in this PR?
    
    Free-threaded 3.13 builds should use separate requirements with no cffi.
    
    ### Are these changes tested?
    
    Yes, with the extended builds.
    
    ### Are there any user-facing changes?
    
    No.
    
    * GitHub Issue: #47625
    
    Authored-by: AlenkaF <[email protected]>
    Signed-off-by: Raúl Cumplido <[email protected]>
---
 ...n-free-threaded-wheel-manylinux-test-unittests.dockerfile |  2 --
 ...n-free-threaded-wheel-musllinux-test-unittests.dockerfile |  2 --
 ci/scripts/python_wheel_unix_test.sh                         | 12 +++++++++++-
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git 
a/ci/docker/python-free-threaded-wheel-manylinux-test-unittests.dockerfile 
b/ci/docker/python-free-threaded-wheel-manylinux-test-unittests.dockerfile
index 13b3bc140a..3c4c53f805 100644
--- a/ci/docker/python-free-threaded-wheel-manylinux-test-unittests.dockerfile
+++ b/ci/docker/python-free-threaded-wheel-manylinux-test-unittests.dockerfile
@@ -41,11 +41,9 @@ ENV PATH "${ARROW_PYTHON_VENV}/bin:${PATH}"
 
 # pandas doesn't provide wheels for aarch64 yet, so we have to install nightly 
Cython
 # along with the rest of pandas' build dependencies and disable build isolation
-COPY python/requirements-wheel-test.txt /arrow/python/
 RUN python -m pip install \
     --pre \
     --prefer-binary \
     --extra-index-url 
"https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"; \
     Cython numpy
 RUN python -m pip install "meson-python==0.13.1" "meson==1.2.1" wheel 
"versioneer[toml]" ninja
-RUN python -m pip install --no-build-isolation -r 
/arrow/python/requirements-wheel-test.txt
diff --git 
a/ci/docker/python-free-threaded-wheel-musllinux-test-unittests.dockerfile 
b/ci/docker/python-free-threaded-wheel-musllinux-test-unittests.dockerfile
index 5acf4d9264..fa2139b6ba 100644
--- a/ci/docker/python-free-threaded-wheel-musllinux-test-unittests.dockerfile
+++ b/ci/docker/python-free-threaded-wheel-musllinux-test-unittests.dockerfile
@@ -56,11 +56,9 @@ RUN cp /usr/share/zoneinfo/Etc/UTC /etc/localtime
 
 # pandas doesn't provide wheels for aarch64 yet, so we have to install nightly 
Cython
 # along with the rest of pandas' build dependencies and disable build isolation
-COPY python/requirements-wheel-test.txt /arrow/python/
 RUN python -m pip install \
     --pre \
     --prefer-binary \
     --extra-index-url 
"https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"; \
     Cython numpy
 RUN python -m pip install "meson-python==0.13.1" "meson==1.2.1" wheel 
"versioneer[toml]" ninja
-RUN python -m pip install --no-build-isolation -r 
/arrow/python/requirements-wheel-test.txt
diff --git a/ci/scripts/python_wheel_unix_test.sh 
b/ci/scripts/python_wheel_unix_test.sh
index 36d32367a0..e18c0c740c 100755
--- a/ci/scripts/python_wheel_unix_test.sh
+++ b/ci/scripts/python_wheel_unix_test.sh
@@ -100,9 +100,19 @@ if [ "${CHECK_WHEEL_CONTENT}" == "ON" ]; then
     --path "${source_dir}/python/repaired_wheels"
 fi
 
+is_free_threaded() {
+  python -c "import sysconfig; print('ON' if 
sysconfig.get_config_var('Py_GIL_DISABLED') else 'OFF')"
+}
+
 if [ "${CHECK_UNITTESTS}" == "ON" ]; then
   # Install testing dependencies
-  python -m pip install -U -r 
"${source_dir}/python/requirements-wheel-test.txt"
+  if [ "$(is_free_threaded)" = "ON" ]; then
+    echo "Free-threaded Python build detected"
+    python -m pip install -U -r 
"${source_dir}/python/requirements-wheel-test-3.13t.txt"
+  elif [ "$(is_free_threaded)" = "OFF" ]; then
+    echo "Regular Python build detected"
+    python -m pip install -U -r 
"${source_dir}/python/requirements-wheel-test.txt"
+  fi
 
   # Execute unittest, test dependencies must be installed
   python -c 'import pyarrow; pyarrow.create_library_symlinks()'

Reply via email to