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 75c8ede7bd GH-49638: [CI][Packaging][Python] Pin setuptools < 80 to
build oldest pandas to test on musllinux (#49639)
75c8ede7bd is described below
commit 75c8ede7bd19c38be433fd2c7dcfbfca9a86b93f
Author: Raúl Cumplido <[email protected]>
AuthorDate: Thu Apr 2 12:42:40 2026 +0200
GH-49638: [CI][Packaging][Python] Pin setuptools < 80 to build oldest
pandas to test on musllinux (#49639)
### Rationale for this change
Musl Linux wheels for Python 3.10 fail to install due to newer setuptools
not being able to build old pandas from source.
The version of Pandas does not have Musl Linux wheels and is the last one
to support the oldest numpy we support for Python 3.10.
### What changes are included in this PR?
Pin old setuptools in case of Python 3.10 in order to be able to install
old pandas from source. This will be deleted in a couple of releases once we
drop support for Python 3.10.
### Are these changes tested?
Yes via archery
### Are there any user-facing changes?
No
* GitHub Issue: #49638
Lead-authored-by: Raúl Cumplido <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
---
ci/docker/python-wheel-musllinux-test.dockerfile | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/ci/docker/python-wheel-musllinux-test.dockerfile
b/ci/docker/python-wheel-musllinux-test.dockerfile
index 601ef886bc..03473a9a34 100644
--- a/ci/docker/python-wheel-musllinux-test.dockerfile
+++ b/ci/docker/python-wheel-musllinux-test.dockerfile
@@ -19,6 +19,10 @@ ARG alpine_linux
ARG python_image_tag
FROM python:${python_image_tag}-alpine${alpine_linux}
+# Re-define python_image_tag argument to be used in the next stage.
+# This is needed because the argument is not preserved after the FROM
statement.
+ARG python_image_tag
+
RUN apk add --no-cache \
bash \
g++ \
@@ -32,7 +36,18 @@ RUN cp /usr/share/zoneinfo/Etc/UTC /etc/localtime
# pandas doesn't provide wheel for aarch64 yet, so cache the compiled
# test dependencies in a docker image
COPY python/requirements-wheel-test.txt /arrow/python/
-RUN pip install -r /arrow/python/requirements-wheel-test.txt
+# Pandas 2.0.3 is the last version to support numpy 1.21.x which is
+# the lowest version we support for Python 3.10.
+# Pandas 2.0.3 doesn't have wheels for Python 3.10 so we need to build from
source,
+# which requires setuptools < 80.
+# Drop when bumping numpy from 1.21.x (GH-48473) or when dropping Python 3.10.
+RUN if [ "${python_image_tag}" = "3.10" ]; then \
+ echo 'setuptools<80' > /tmp/setuptools-constraint.txt; \
+ PIP_CONSTRAINT=/tmp/setuptools-constraint.txt \
+ pip install -r /arrow/python/requirements-wheel-test.txt; \
+ else \
+ pip install -r /arrow/python/requirements-wheel-test.txt; \
+ fi
# Install the GCS testbench with the system Python
COPY ci/scripts/install_gcs_testbench.sh /arrow/ci/scripts/