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()'