From bf382f7a23b060995d90b576e2107cab8ee6fc51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Wed, 4 Jun 2025 09:22:58 +0200 Subject: [PATCH 1/6] GH-46691: [CI][Packaging] Reorder platform tag to match wheel name generated from latest auditwheel version --- dev/tasks/tasks.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml index 0bb4ab4acf6..04d67abfeee 100644 --- a/dev/tasks/tasks.yml +++ b/dev/tasks/tasks.yml @@ -223,9 +223,9 @@ tasks: {############################## Wheel Linux ##################################} -{% for wheel_kind, arch, version, platform_tag in [("manylinux", "amd64", "2014", "manylinux_2_17_x86_64.manylinux2014_x86_64"), +{% for wheel_kind, arch, version, platform_tag in [("manylinux", "amd64", "2014", "manylinux2014_x86_64.manylinux_2_17_x86_64"), ("manylinux", "amd64", "2-28", "manylinux_2_28_x86_64"), - ("manylinux", "arm64", "2014", "manylinux_2_17_aarch64.manylinux2014_aarch64"), + ("manylinux", "arm64", "2014", "manylinux2014_aarch64.manylinux_2_17_aarch64"), ("manylinux", "arm64", "2-28", "manylinux_2_28_aarch64"), ("musllinux", "amd64", "1-2", "musllinux_1_2_x86_64"), ("musllinux", "arm64", "1-2", "musllinux_1_2_aarch64")] %} From afdf276df70a823fd10df12a67bf75043b07236c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Wed, 4 Jun 2025 10:08:00 +0200 Subject: [PATCH 2/6] Use regex to match other cases --- dev/tasks/tasks.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml index 04d67abfeee..1cec94c3732 100644 --- a/dev/tasks/tasks.yml +++ b/dev/tasks/tasks.yml @@ -223,9 +223,9 @@ tasks: {############################## Wheel Linux ##################################} -{% for wheel_kind, arch, version, platform_tag in [("manylinux", "amd64", "2014", "manylinux2014_x86_64.manylinux_2_17_x86_64"), +{% for wheel_kind, arch, version, platform_tag in [("manylinux", "amd64", "2014", "manylinux(2014|2_17)_x86_64.manylinux_(2014|2_17)_x86_64"), ("manylinux", "amd64", "2-28", "manylinux_2_28_x86_64"), - ("manylinux", "arm64", "2014", "manylinux2014_aarch64.manylinux_2_17_aarch64"), + ("manylinux", "arm64", "2014", "manylinux(2014|2_17)_aarch64.manylinux_(2014|2_17)_aarch64"), ("manylinux", "arm64", "2-28", "manylinux_2_28_aarch64"), ("musllinux", "amd64", "1-2", "musllinux_1_2_x86_64"), ("musllinux", "arm64", "1-2", "musllinux_1_2_aarch64")] %} From 5e5073497cb1384ec715797241b1716825d17b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Wed, 4 Jun 2025 10:57:02 +0200 Subject: [PATCH 3/6] Try something --- dev/tasks/python-wheels/github.linux.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dev/tasks/python-wheels/github.linux.yml b/dev/tasks/python-wheels/github.linux.yml index 06666186d96..668d0ca7f64 100644 --- a/dev/tasks/python-wheels/github.linux.yml +++ b/dev/tasks/python-wheels/github.linux.yml @@ -101,7 +101,7 @@ jobs: -e TEST_DEFAULT=0 \ -e TEST_PYARROW_VERSION={{ arrow.no_rc_version }} \ -e TEST_PYTHON_VERSIONS={{ python_version }} \ - -e TEST_WHEEL_PLATFORM_TAGS={{ wheel_platform_tag }} \ + -e TEST_WHEEL_PLATFORM_TAGS="{{ wheel_platform_tag }}" \ -e TEST_WHEELS=1 \ almalinux-verify-rc @@ -116,7 +116,7 @@ jobs: -e TEST_DEFAULT=0 \ -e TEST_PYARROW_VERSION={{ arrow.no_rc_version }} \ -e TEST_PYTHON_VERSIONS={{ python_version }} \ - -e TEST_WHEEL_PLATFORM_TAGS={{ wheel_platform_tag }} \ + -e TEST_WHEEL_PLATFORM_TAGS="{{ wheel_platform_tag }}"" \ -e TEST_WHEELS=1 \ ubuntu-verify-rc @@ -131,7 +131,7 @@ jobs: -e TEST_DEFAULT=0 \ -e TEST_PYARROW_VERSION={{ arrow.no_rc_version }} \ -e TEST_PYTHON_VERSIONS={{ python_version }} \ - -e TEST_WHEEL_PLATFORM_TAGS={{ wheel_platform_tag }} \ + -e TEST_WHEEL_PLATFORM_TAGS="{{ wheel_platform_tag }}"" \ -e TEST_WHEELS=1 \ ubuntu-verify-rc From 0f8d8404fff78056fc5b196259c199985111d1c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Wed, 4 Jun 2025 11:16:53 +0200 Subject: [PATCH 4/6] Fix typo --- dev/tasks/python-wheels/github.linux.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/tasks/python-wheels/github.linux.yml b/dev/tasks/python-wheels/github.linux.yml index 668d0ca7f64..65355afa165 100644 --- a/dev/tasks/python-wheels/github.linux.yml +++ b/dev/tasks/python-wheels/github.linux.yml @@ -116,7 +116,7 @@ jobs: -e TEST_DEFAULT=0 \ -e TEST_PYARROW_VERSION={{ arrow.no_rc_version }} \ -e TEST_PYTHON_VERSIONS={{ python_version }} \ - -e TEST_WHEEL_PLATFORM_TAGS="{{ wheel_platform_tag }}"" \ + -e TEST_WHEEL_PLATFORM_TAGS="{{ wheel_platform_tag }}" \ -e TEST_WHEELS=1 \ ubuntu-verify-rc @@ -131,7 +131,7 @@ jobs: -e TEST_DEFAULT=0 \ -e TEST_PYARROW_VERSION={{ arrow.no_rc_version }} \ -e TEST_PYTHON_VERSIONS={{ python_version }} \ - -e TEST_WHEEL_PLATFORM_TAGS="{{ wheel_platform_tag }}"" \ + -e TEST_WHEEL_PLATFORM_TAGS="{{ wheel_platform_tag }}" \ -e TEST_WHEELS=1 \ ubuntu-verify-rc From 4caab326b94c9cba551fb35fcbc28e2b25cd8dd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Wed, 4 Jun 2025 13:18:28 +0200 Subject: [PATCH 5/6] Fix verification script for validating wheels --- dev/release/verify-release-candidate.sh | 3 ++- dev/tasks/tasks.yml | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dev/release/verify-release-candidate.sh b/dev/release/verify-release-candidate.sh index 98652c52e1f..574b52aa85e 100755 --- a/dev/release/verify-release-candidate.sh +++ b/dev/release/verify-release-candidate.sh @@ -902,7 +902,8 @@ test_linux_wheels() { if ! VENV_ENV=wheel-${pyver}-${platform} PYTHON_VERSION=${pyver} maybe_setup_virtualenv; then continue fi - pip install pyarrow-${TEST_PYARROW_VERSION:-${VERSION}}-cp${pyver/.}-cp${python/.}-${platform}.whl + find . -name pyarrow-${TEST_PYARROW_VERSION:-${VERSION}}-cp${pyver/.}-cp${python/.}-*.whl | grep -E "${platform}" | \ + xargs pip install ARROW_GCS=${check_gcs} \ ARROW_VERSION=${VERSION} \ CHECK_VERSION=${check_version} \ diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml index 1cec94c3732..84b68eeb134 100644 --- a/dev/tasks/tasks.yml +++ b/dev/tasks/tasks.yml @@ -223,9 +223,9 @@ tasks: {############################## Wheel Linux ##################################} -{% for wheel_kind, arch, version, platform_tag in [("manylinux", "amd64", "2014", "manylinux(2014|2_17)_x86_64.manylinux_(2014|2_17)_x86_64"), +{% for wheel_kind, arch, version, platform_tag in [("manylinux", "amd64", "2014", "manylinux(2014|_2_17)_x86_64.manylinux(2014|_2_17)_x86_64"), ("manylinux", "amd64", "2-28", "manylinux_2_28_x86_64"), - ("manylinux", "arm64", "2014", "manylinux(2014|2_17)_aarch64.manylinux_(2014|2_17)_aarch64"), + ("manylinux", "arm64", "2014", "manylinux(2014|_2_17)_aarch64.manylinux(2014|_2_17)_aarch64"), ("manylinux", "arm64", "2-28", "manylinux_2_28_aarch64"), ("musllinux", "amd64", "1-2", "musllinux_1_2_x86_64"), ("musllinux", "arm64", "1-2", "musllinux_1_2_aarch64")] %} From cc7facbd4f970ea670dadb29c5b94917c19d958d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Thu, 5 Jun 2025 09:15:48 +0200 Subject: [PATCH 6/6] Try force upgrading to validate if platform tags order is maintained on newer auditwheel --- ci/docker/python-wheel-manylinux.dockerfile | 4 +++- dev/release/verify-release-candidate.sh | 5 ++--- dev/tasks/python-wheels/github.linux.yml | 6 +++--- dev/tasks/tasks.yml | 4 ++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ci/docker/python-wheel-manylinux.dockerfile b/ci/docker/python-wheel-manylinux.dockerfile index 789f1531dd7..fff354e032b 100644 --- a/ci/docker/python-wheel-manylinux.dockerfile +++ b/ci/docker/python-wheel-manylinux.dockerfile @@ -114,7 +114,9 @@ RUN --mount=type=secret,id=github_repository_owner \ rm -rf ~/.config/NuGet/ # Make sure auditwheel is up-to-date -RUN pipx upgrade auditwheel +# Force upgrade version to 6.4.0 or later to ensure platform tags order is correct +# See https://github.com/apache/arrow/pull/46705 +RUN pipx upgrade auditwheel>=6.4.0 # Configure Python for applications running in the bash shell of this Dockerfile ARG python=3.9 diff --git a/dev/release/verify-release-candidate.sh b/dev/release/verify-release-candidate.sh index 574b52aa85e..484561b9d67 100755 --- a/dev/release/verify-release-candidate.sh +++ b/dev/release/verify-release-candidate.sh @@ -882,7 +882,7 @@ test_linux_wheels() { fi local python_versions="${TEST_PYTHON_VERSIONS:-3.9 3.10 3.11 3.12 3.13}" - local platform_tags="${TEST_WHEEL_PLATFORM_TAGS:-manylinux_2_17_${arch}.manylinux2014_${arch} manylinux_2_28_${arch}}" + local platform_tags="${TEST_WHEEL_PLATFORM_TAGS:-manylinux2014_${arch}.manylinux_2_17_${arch} manylinux_2_28_${arch}}" if [ "${SOURCE_KIND}" != "local" ]; then local wheel_content="OFF" @@ -902,8 +902,7 @@ test_linux_wheels() { if ! VENV_ENV=wheel-${pyver}-${platform} PYTHON_VERSION=${pyver} maybe_setup_virtualenv; then continue fi - find . -name pyarrow-${TEST_PYARROW_VERSION:-${VERSION}}-cp${pyver/.}-cp${python/.}-*.whl | grep -E "${platform}" | \ - xargs pip install + pip install pyarrow-${TEST_PYARROW_VERSION:-${VERSION}}-cp${pyver/.}-cp${python/.}-${platform}.whl ARROW_GCS=${check_gcs} \ ARROW_VERSION=${VERSION} \ CHECK_VERSION=${check_version} \ diff --git a/dev/tasks/python-wheels/github.linux.yml b/dev/tasks/python-wheels/github.linux.yml index 65355afa165..06666186d96 100644 --- a/dev/tasks/python-wheels/github.linux.yml +++ b/dev/tasks/python-wheels/github.linux.yml @@ -101,7 +101,7 @@ jobs: -e TEST_DEFAULT=0 \ -e TEST_PYARROW_VERSION={{ arrow.no_rc_version }} \ -e TEST_PYTHON_VERSIONS={{ python_version }} \ - -e TEST_WHEEL_PLATFORM_TAGS="{{ wheel_platform_tag }}" \ + -e TEST_WHEEL_PLATFORM_TAGS={{ wheel_platform_tag }} \ -e TEST_WHEELS=1 \ almalinux-verify-rc @@ -116,7 +116,7 @@ jobs: -e TEST_DEFAULT=0 \ -e TEST_PYARROW_VERSION={{ arrow.no_rc_version }} \ -e TEST_PYTHON_VERSIONS={{ python_version }} \ - -e TEST_WHEEL_PLATFORM_TAGS="{{ wheel_platform_tag }}" \ + -e TEST_WHEEL_PLATFORM_TAGS={{ wheel_platform_tag }} \ -e TEST_WHEELS=1 \ ubuntu-verify-rc @@ -131,7 +131,7 @@ jobs: -e TEST_DEFAULT=0 \ -e TEST_PYARROW_VERSION={{ arrow.no_rc_version }} \ -e TEST_PYTHON_VERSIONS={{ python_version }} \ - -e TEST_WHEEL_PLATFORM_TAGS="{{ wheel_platform_tag }}" \ + -e TEST_WHEEL_PLATFORM_TAGS={{ wheel_platform_tag }} \ -e TEST_WHEELS=1 \ ubuntu-verify-rc diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml index 84b68eeb134..04d67abfeee 100644 --- a/dev/tasks/tasks.yml +++ b/dev/tasks/tasks.yml @@ -223,9 +223,9 @@ tasks: {############################## Wheel Linux ##################################} -{% for wheel_kind, arch, version, platform_tag in [("manylinux", "amd64", "2014", "manylinux(2014|_2_17)_x86_64.manylinux(2014|_2_17)_x86_64"), +{% for wheel_kind, arch, version, platform_tag in [("manylinux", "amd64", "2014", "manylinux2014_x86_64.manylinux_2_17_x86_64"), ("manylinux", "amd64", "2-28", "manylinux_2_28_x86_64"), - ("manylinux", "arm64", "2014", "manylinux(2014|_2_17)_aarch64.manylinux(2014|_2_17)_aarch64"), + ("manylinux", "arm64", "2014", "manylinux2014_aarch64.manylinux_2_17_aarch64"), ("manylinux", "arm64", "2-28", "manylinux_2_28_aarch64"), ("musllinux", "amd64", "1-2", "musllinux_1_2_x86_64"), ("musllinux", "arm64", "1-2", "musllinux_1_2_aarch64")] %}