From 93818e25b50009ccfc42620eb5dd202f6d232fe2 Mon Sep 17 00:00:00 2001 From: Jonathan Feinberg Date: Wed, 26 Jun 2024 15:22:32 +0200 Subject: [PATCH 1/6] moving back to manylinux2014 --- .github/workflows/main_push.yml | 2 +- .github/workflows/pull_request.yml | 2 +- .github/workflows/release.yml | 10 +++++----- README.rst | 8 ++++++++ pyproject.toml | 8 ++++---- 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main_push.yml b/.github/workflows/main_push.yml index d0b67bc..b75000e 100644 --- a/.github/workflows/main_push.yml +++ b/.github/workflows/main_push.yml @@ -57,7 +57,7 @@ jobs: - uses: pypa/cibuildwheel@v2.19.1 env: MACOSX_DEPLOYMENT_TARGET: 10.14 - CIBW_BUILD: '*cp311*' + CIBW_BUILD: '*cp39*' - name: Verify clean directory run: git diff --exit-code diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 30d3d21..928cdc8 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.9" - name: "Install system dependencies" run: sudo apt update -y && sudo apt install -y libssl-dev libasio-dev diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 43792d3..93fa6b4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -72,11 +72,11 @@ jobs: conan config set "storage.path=$env:GITHUB_WORKSPACE/conan_data" conan install --build=openssl --install-folder conan_build . - # - name: Set up QEMU - # if: matrix.platform == 'linux' - # uses: docker/setup-qemu-action@v3 - # with: - # platforms: all + - name: Set up QEMU + if: matrix.platform == 'linux' + uses: docker/setup-qemu-action@v3 + with: + platforms: all - name: Build wheels if: matrix.platform != 'macos-arm' diff --git a/README.rst b/README.rst index d0d7306..e038de0 100644 --- a/README.rst +++ b/README.rst @@ -104,6 +104,14 @@ Installation Pyvroom currently makes binaries for on macOS and Linux. There is also a Windows build that can be used, but it is somewhat experimental. +The current minimal requirements are as follows: + +* Python version 3.9. +* MacOS 13 for Intel x86_64 and Rosetta and MacOS 14 for Apple Silicon (M1, M2, etc.). +* x86_64 for both Linux and Windows. + +Outside this it might be possible to build your own binaries. + Installation of the pre-compiled releases should be as simple as: .. code:: bash diff --git a/pyproject.toml b/pyproject.toml index 2d0210c..3f39bf4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,14 +26,14 @@ test-command = 'python -c "import vroom"' build = "cp3{9,10,11,12}-*" skip = "*musllinux*" archs = "native" -manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" [tool.cibuildwheel.linux] before-all = """ -yum module enable mariadb-devel:10.3 -yum install -y openssl-devel asio +dnf update -y +dnf module enable -y mariadb-devel +dnf install -y openssl-devel asio-devel """ -# archs = ["auto", "aarch64"] +archs = ["auto", "aarch64"] [[tool.cibuildwheel.overrides]] select = "*musllinux*" From 610bc0636f7724a50e8be8ec92099bb65bd43f9c Mon Sep 17 00:00:00 2001 From: Jonathan Feinberg Date: Wed, 26 Jun 2024 15:33:00 +0200 Subject: [PATCH 2/6] force almalinux --- pyproject.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3f39bf4..bdbe1da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ test-command = 'python -c "import vroom"' build = "cp3{9,10,11,12}-*" skip = "*musllinux*" archs = "native" +manylinux-x86_64-image = "manylinux_2_28_x86_64" [tool.cibuildwheel.linux] before-all = """ @@ -33,7 +34,10 @@ dnf update -y dnf module enable -y mariadb-devel dnf install -y openssl-devel asio-devel """ -archs = ["auto", "aarch64"] +archs = [ + "auto", + # "aarch64" +] [[tool.cibuildwheel.overrides]] select = "*musllinux*" From 36eb23ee41154b6025d545b8fab367d2e44e982d Mon Sep 17 00:00:00 2001 From: Jonathan Feinberg Date: Wed, 26 Jun 2024 15:34:43 +0200 Subject: [PATCH 3/6] explicit path --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index bdbe1da..36e218e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ test-command = 'python -c "import vroom"' build = "cp3{9,10,11,12}-*" skip = "*musllinux*" archs = "native" -manylinux-x86_64-image = "manylinux_2_28_x86_64" +manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" [tool.cibuildwheel.linux] before-all = """ From 7a95a1b27eb23ddb160819c8b95447b511cd7026 Mon Sep 17 00:00:00 2001 From: Jonathan Feinberg Date: Wed, 26 Jun 2024 15:37:19 +0200 Subject: [PATCH 4/6] try linux arm --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 36e218e..f6b9cd4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,7 +36,7 @@ dnf install -y openssl-devel asio-devel """ archs = [ "auto", - # "aarch64" + "aarch64" ] [[tool.cibuildwheel.overrides]] From 6db9e0e8bc9b495429a87f0274f9e8b1e86088b7 Mon Sep 17 00:00:00 2001 From: Jonathan Feinberg Date: Wed, 26 Jun 2024 16:02:00 +0200 Subject: [PATCH 5/6] only arm64+x86_64 --- .github/workflows/release.yml | 1 + pyproject.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 93fa6b4..dd5c776 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -83,6 +83,7 @@ jobs: uses: pypa/cibuildwheel@v2.19.1 env: MACOSX_DEPLOYMENT_TARGET: 13.0 + CIBW_ARCHS_LINUX: x86_64 aarch64 - name: Build wheels if: matrix.platform == 'macos-arm' diff --git a/pyproject.toml b/pyproject.toml index f6b9cd4..63d2785 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,7 @@ build = "cp3{9,10,11,12}-*" skip = "*musllinux*" archs = "native" manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" +manylinux-aarch64-image = "quay.io/pypa/manylinux_2_28_aarch64" [tool.cibuildwheel.linux] before-all = """ From de44cd4e0c498349a9af8b2d5eec44020e95f6d9 Mon Sep 17 00:00:00 2001 From: Jonathan Feinberg Date: Wed, 26 Jun 2024 16:21:27 +0200 Subject: [PATCH 6/6] only arm64+x86_64 --- README.rst | 18 ++++++++++-------- pyproject.toml | 5 +---- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/README.rst b/README.rst index e038de0..3ece7d1 100644 --- a/README.rst +++ b/README.rst @@ -104,20 +104,22 @@ Installation Pyvroom currently makes binaries for on macOS and Linux. There is also a Windows build that can be used, but it is somewhat experimental. -The current minimal requirements are as follows: - -* Python version 3.9. -* MacOS 13 for Intel x86_64 and Rosetta and MacOS 14 for Apple Silicon (M1, M2, etc.). -* x86_64 for both Linux and Windows. - -Outside this it might be possible to build your own binaries. - Installation of the pre-compiled releases should be as simple as: .. code:: bash pip install pyvroom +The current minimal requirements are as follows: + +* Python at least version 3.9. +* Intel MacOS (or Rosetta2) at least version 13.0. +* Apple Silicon MacOS at least version 14.0. +* Windows on AMD64. +* Linux on x86_64 and Aarch64 given glibc at least version 2.28. + +Outside this it might be possible to build your own binaries. + Building from source ==================== diff --git a/pyproject.toml b/pyproject.toml index 63d2785..76f20ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,10 +35,7 @@ dnf update -y dnf module enable -y mariadb-devel dnf install -y openssl-devel asio-devel """ -archs = [ - "auto", - "aarch64" -] +archs = ["x86_64", "aarch64"] [[tool.cibuildwheel.overrides]] select = "*musllinux*"