Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
4d7b14d
Add manylinux_2_28 wheel
sjperkins Jan 19, 2023
cd9ea53
Address review comments
sjperkins Jan 21, 2023
7810833
Fix manylinux variable discrepancies
sjperkins Jan 21, 2023
d49bce8
Fix incorrect arch causing duplicate yaml keys
sjperkins Jan 21, 2023
72303bc
Avoid duplicate keys in task definition
sjperkins Jan 21, 2023
69cffab
fix arch and remove ci from python wheel key
sjperkins Jan 22, 2023
aa1a703
underscores to dashes in manylinux 2_28 ccache name
sjperkins Jan 22, 2023
d6616cf
Update docker-compose.yml
sjperkins Jan 22, 2023
ef0c454
Update dev/tasks/tasks.yml
sjperkins Jan 22, 2023
e50fc4a
Create unified manylinux Dockerfile
sjperkins Jan 22, 2023
2de8dcf
Remove unused install_glibc.sh
sjperkins Jan 22, 2023
41d64e4
Add comments explaining placement of Python 3.8 on the PATH
sjperkins Jan 23, 2023
3d68384
Improve comment
sjperkins Jan 23, 2023
10d548f
Distinguish artifact naming schema produced by auditwheel for differe…
sjperkins Jan 23, 2023
8decb43
Correct jinja2 equality operator
sjperkins Jan 23, 2023
5ee1483
Fix jinja2 templating
sjperkins Jan 23, 2023
04076a5
openssl wants linux-headers on arm64 platform
sjperkins Jan 25, 2023
efa9365
spelling
sjperkins Jan 25, 2023
33a1f40
Install basic dependencies with dnf, rather than yum
sjperkins Jan 27, 2023
d03f8a5
Introduce TEST_WHEEL_PLATFORM_TAGS environment variable
sjperkins Jan 29, 2023
3d788b9
Fix task.yml errors and lint
sjperkins Jan 29, 2023
5953cd0
Fix typo in artifact string
sjperkins Jan 30, 2023
cf61609
Add --cross-compile-prefix option to openssl CMakeList.txt
sjperkins Feb 24, 2023
5204b25
Merge branch 'main' into manylinux-2-28-branch2
sjperkins Apr 3, 2023
da4253b
Upgrade vcpkg version to 2023.02.24
sjperkins Apr 4, 2023
113f172
Revert "Add --cross-compile-prefix option to openssl CMakeList.txt"
sjperkins Apr 5, 2023
1c74992
Update vcpkg to a more recent version
sjperkins Apr 5, 2023
d8199f7
Merge branch 'main' into manylinux-2-28-branch2
sjperkins Apr 6, 2023
c739ee9
Set TEST_WHEEL_PLATFORM_TAGS on AlmaLinux 8 and Ubuntu 20.04
sjperkins Apr 11, 2023
399e09a
Merge branch 'main' into manylinux-2-28-branch2
sjperkins Apr 13, 2023
a94ddeb
Removed commented out release version
sjperkins Apr 13, 2023
c47299c
Comment VCPKG version with link to https://github.com/apache/arrow/is…
sjperkins Apr 13, 2023
22bb08f
Merge branch 'main' into manylinux-2-28-branch2
sjperkins Apr 13, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ DEVTOOLSET_VERSION=
# Please also update the crossbow configuration in order to keep the github
# actions cache up to date for the macOS wheels:
# https://github.com/ursacomputing/crossbow/blob/master/.github/workflows/cache_vcpkg.yml
# vcpkg minimum version "09adfdc8cdad76345b7cc7f3305899e1cbd66297" due to CVE-2022-3786
VCPKG="2871ddd918cecb9cb642bcb9c56897f397283192"
# TODO: Update to an official release tag https://github.com/apache/arrow/issues/35099
VCPKG="b619a233fbf7b2c9765fb4458f3ecb05bd3166e3" # 2023.04.03

# This must be updated when we update
# ci/docker/python-wheel-windows-vs2017.dockerfile.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,19 @@ ARG manylinux

ENV MANYLINUX_VERSION=${manylinux}

# Ensure dnf is installed, especially for the manylinux2014 base
RUN yum install -y dnf

# Install basic dependencies
RUN yum install -y git flex curl autoconf zip perl-IPC-Cmd wget
RUN dnf install -y git flex curl autoconf zip perl-IPC-Cmd wget kernel-headers

# A system Python is required for ninja and vcpkg in this Dockerfile.
# On manylinux2014 base images, system Python is 2.7.5, while
# on manylinux_2_28, no system python is installed.
# We therefore override the PATH with Python 3.8 in /opt/python
# so that we have a consistent Python version across base images.
ENV CPYTHON_VERSION=cp38
ENV PATH=/opt/python/${CPYTHON_VERSION}-${CPYTHON_VERSION}/bin:${PATH}

# Install CMake
# AWS SDK doesn't work with CMake=3.22 due to https://gitlab.kitware.com/cmake/cmake/-/issues/22524
Expand All @@ -45,12 +56,10 @@ RUN /arrow/ci/scripts/install_ccache.sh ${ccache} /usr/local

# Install vcpkg
ARG vcpkg
ARG glibc=2.18
COPY ci/vcpkg/*.patch \
ci/vcpkg/*linux*.cmake \
arrow/ci/vcpkg/
COPY ci/scripts/install_vcpkg.sh \
ci/scripts/install_glibc.sh \
arrow/ci/scripts/
ENV VCPKG_ROOT=/opt/vcpkg
RUN arrow/ci/scripts/install_vcpkg.sh ${VCPKG_ROOT} ${vcpkg}
Expand All @@ -77,6 +86,7 @@ RUN vcpkg install \
--x-feature=json \
--x-feature=parquet

# Configure Python for applications running in the bash shell of this Dockerfile
ARG python=3.8
ENV PYTHON_VERSION=${python}
RUN PYTHON_ROOT=$(find /opt/python -name cp${PYTHON_VERSION/./}-*) && \
Expand Down
42 changes: 0 additions & 42 deletions ci/scripts/install_glibc.sh

This file was deleted.

2 changes: 1 addition & 1 deletion dev/release/verify-release-candidate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1015,7 +1015,7 @@ test_linux_wheels() {
fi

local python_versions="${TEST_PYTHON_VERSIONS:-3.7m 3.8 3.9 3.10 3.11}"
local platform_tags="manylinux_2_17_${arch}.manylinux2014_${arch}"
local platform_tags="${TEST_WHEEL_PLATFORM_TAGS:-manylinux_2_17_${arch}.manylinux2014_${arch} manylinux_2_28_${arch}}"

for python in ${python_versions}; do
local pyver=${python/m}
Expand Down
3 changes: 3 additions & 0 deletions dev/tasks/python-wheels/github.linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,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_WHEELS=1 \
almalinux-verify-rc

Expand All @@ -82,6 +83,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_WHEELS=1 \
ubuntu-verify-rc

Expand All @@ -96,6 +98,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_WHEELS=1 \
ubuntu-verify-rc

Expand Down
18 changes: 11 additions & 7 deletions dev/tasks/tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -416,17 +416,21 @@ tasks:

{############################## Wheel Linux ##################################}

{% for arch, arch_alias, x_y, manylinux in [("amd64", "x86_64", "2_17", "2014"),
("arm64", "aarch64", "2_17", "2014")] %}
wheel-manylinux{{ manylinux }}-{{ python_tag }}-{{ arch }}:

{% for arch, manylinux_version, platform_tag in [("amd64", "2014", "manylinux_2_17_x86_64.manylinux2014_x86_64"),
("amd64", "2-28", "manylinux_2_28_x86_64"),
("arm64", "2014", "manylinux_2_17_aarch64.manylinux2014_aarch64"),
("arm64", "2-28", "manylinux_2_28_aarch64")] %}
wheel-manylinux-{{ manylinux_version }}-{{ python_tag }}-{{ arch }}:
ci: github
template: python-wheels/github.linux.yml
params:
arch: "{{ arch }}"
python_version: "{{ python_version }}"
manylinux_version: "{{ manylinux }}"
manylinux_version: "{{ manylinux_version }}"
wheel_platform_tag: "{{ platform_tag }}"
artifacts:
- pyarrow-{no_rc_version}-{{ python_tag }}-{{ abi_tag }}-manylinux_{{ x_y }}_{{ arch_alias }}.manylinux{{ manylinux }}_{{ arch_alias }}.whl
- pyarrow-{no_rc_version}-{{ python_tag }}-{{ abi_tag }}-{{ platform_tag }}.whl
{% endfor %}

{############################## Wheel OSX ####################################}
Expand Down Expand Up @@ -1435,13 +1439,13 @@ tasks:
- docs.tar.gz

############################## CUDA tests #################################

test-cuda-cpp:
ci: github
template: docker-tests/github.cuda.yml
params:
image: ubuntu-cuda-cpp

test-cuda-python:
ci: github
template: docker-tests/github.cuda.yml
Expand Down
28 changes: 27 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ x-hierarchy:
- postgres
- python-wheel-manylinux-2014:
- java-jni-manylinux-2014
- python-wheel-manylinux-2-28
- python-wheel-manylinux-test-imports
- python-wheel-manylinux-test-unittests
- python-wheel-windows-vs2017
Expand All @@ -183,6 +184,8 @@ volumes:
name: maven-cache
python-wheel-manylinux2014-ccache:
name: python-wheel-manylinux2014-ccache
python-wheel-manylinux-2-28-ccache:
name: python-wheel-manylinux-2-28-ccache
python-wheel-windows-clcache:
name: python-wheel-windows-clcache
ubuntu-ccache:
Expand Down Expand Up @@ -1016,7 +1019,7 @@ services:
python: ${PYTHON}
manylinux: 2014
context: .
dockerfile: ci/docker/python-wheel-manylinux-201x.dockerfile
dockerfile: ci/docker/python-wheel-manylinux.dockerfile
cache_from:
- ${REPO}:${ARCH}-python-${PYTHON}-wheel-manylinux-2014-vcpkg-${VCPKG}
environment:
Expand All @@ -1026,6 +1029,29 @@ services:
- ${DOCKER_VOLUME_PREFIX}python-wheel-manylinux2014-ccache:/ccache:delegated
command: /arrow/ci/scripts/python_wheel_manylinux_build.sh

# See available versions at:
# https://quay.io/repository/pypa/manylinux_2_28_x86_64?tab=tags
python-wheel-manylinux-2-28:
image: ${REPO}:${ARCH}-python-${PYTHON}-wheel-manylinux-2-28-vcpkg-${VCPKG}
build:
args:
arch: ${ARCH}
arch_short: ${ARCH_SHORT}
base: quay.io/pypa/manylinux_2_28_${ARCH_ALIAS}:2023-01-14-103cb93
vcpkg: ${VCPKG}
python: ${PYTHON}
manylinux: 2_28
context: .
dockerfile: ci/docker/python-wheel-manylinux.dockerfile
cache_from:
- ${REPO}:${ARCH}-python-${PYTHON}-wheel-manylinux-2-28-vcpkg-${VCPKG}
environment:
<<: *ccache
volumes:
- .:/arrow:delegated
- ${DOCKER_VOLUME_PREFIX}python-wheel-manylinux-2-28-ccache:/ccache:delegated
command: /arrow/ci/scripts/python_wheel_manylinux_build.sh

python-wheel-manylinux-test-imports:
image: ${ARCH}/python:${PYTHON}
shm_size: 2G
Expand Down