From 095cd20ed31530e3a5a14629fb5636c4a42286fa Mon Sep 17 00:00:00 2001 From: Serein Pfeiffer Date: Tue, 3 Jun 2025 16:35:40 +0200 Subject: [PATCH 1/3] python version: Reflect support for 3.13 - version bump for resulting docker images. --- README.md | 13 +++++++------ deploy.bash | 4 ++-- python-wheel.cmake | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ebef1a0..88c6280 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ add_library(mylib ...) # URL # Package website. # PYTHON_REQUIRES -# Python version requirement. Default: >=3.8 +# Python version requirement. Default: >=3.9 # DESCRIPTION # Python package short description. # DEPLOY_FILES @@ -58,7 +58,7 @@ add_wheel(mylib-python-bindings AUTHOR "Bob Ross" EMAIL "email@address.com" URL "http://python.org" - PYTHON_REQUIRES ">=3.8" + PYTHON_REQUIRES ">=3.9" DESCRIPTION "Binary Python wheel." DEPLOY_FILES "MY_LICENSE.txt" TARGET_DEPENDENCIES @@ -120,6 +120,7 @@ For CI jobs, this repo provides the following docker images: * `manylinux-cpp17-py3.10-x86_64` * `manylinux-cpp17-py3.11-x86_64` * `manylinux-cpp17-py3.12-x86_64` +* `manylinux-cpp17-py3.13-x86_64` This images are based on GLIBC 2.28, so e.g. the minimum Ubuntu version for wheels from your CI will be 21.04. @@ -133,9 +134,9 @@ jobs: build-manylinux: strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] runs-on: ubuntu-latest - container: ghcr.io/klebert-engineering/manylinux-cpp17-py${{ matrix.python-version }}-x86_64:2024.1 + container: ghcr.io/klebert-engineering/manylinux-cpp17-py${{ matrix.python-version }}-x86_64:latest steps: - uses: actions/checkout@v3 with: @@ -172,7 +173,7 @@ jobs: runs-on: macos-13 strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] env: SCCACHE_GHA_ENABLED: "true" steps: @@ -209,4 +210,4 @@ jobs: ### Windows -No special utilties/audit steps are needed when building on Windows. \ No newline at end of file +No special utilties/audit steps are needed when building on Windows. diff --git a/deploy.bash b/deploy.bash index 39b5f84..1216529 100755 --- a/deploy.bash +++ b/deploy.bash @@ -1,10 +1,10 @@ #!/usr/bin/env bash image_name="manylinux-cpp17-py" -version="2024.2" +version="2025.1" push="" latest="" -python_versions=(3.9.13 3.10.9 3.11.1 3.12.4) +python_versions=(3.9.13 3.10.9 3.11.1 3.12.4 3.13.1) architecture=x86_64 while [[ $# -gt 0 ]]; do diff --git a/python-wheel.cmake b/python-wheel.cmake index 21eff23..16937cf 100644 --- a/python-wheel.cmake +++ b/python-wheel.cmake @@ -62,7 +62,7 @@ function (add_wheel WHEEL_TARGET) endif() if (NOT WHEEL_PYTHON_REQUIRES) - set(WHEEL_PYTHON_REQUIRES ">=3.8") + set(WHEEL_PYTHON_REQUIRES ">=3.9") endif() if (NOT WHEEL_LICENSE_PATH) From b0ec0f7b0a86697f79ef91dd5721adaf13ea41e1 Mon Sep 17 00:00:00 2001 From: Serein Pfeiffer Date: Fri, 27 Jun 2025 11:00:02 +0200 Subject: [PATCH 2/3] docker: Ensure that latest cmake 3.x is used (compatibility with cmake 3.5 and below). --- Dockerfile.template | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Dockerfile.template b/Dockerfile.template index 17acbf3..39d7ca3 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -14,6 +14,19 @@ RUN yum update -y && yum install -y \ make \ tar +# Remove CMake 4.x that comes with manylinux_2_28 base image +# We need CMake 3.x because CMake 4.0 dropped support for older CMake syntax +# that some of our dependencies still require +RUN rm -f /usr/local/bin/cmake /usr/local/bin/ctest /usr/local/bin/cpack + +# Install CMake 3.31.8 (latest 3.x version) +ADD https://github.com/Kitware/CMake/releases/download/v3.31.8/cmake-3.31.8-linux-x86_64.tar.gz /tmp/ +RUN cd /tmp && \ + tar -xzf cmake-3.31.8-linux-x86_64.tar.gz && \ + cp -r cmake-3.31.8-linux-x86_64/bin/* /usr/local/bin/ && \ + cp -r cmake-3.31.8-linux-x86_64/share/* /usr/local/share/ && \ + rm -rf /tmp/cmake* + # Install Python ADD https://www.python.org/ftp/python/${pyver_long}/Python-${pyver_long}.tgz /usr/local/src RUN cd /usr/local/src && \ From 65b615ec9704d1a255cd6223c030fb4822366c24 Mon Sep 17 00:00:00 2001 From: Serein Pfeiffer Date: Fri, 27 Jun 2025 12:32:41 +0200 Subject: [PATCH 3/3] docker: Ensure that the images include (Python) sqlite3 support. --- Dockerfile.template | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile.template b/Dockerfile.template index 39d7ca3..f81c05a 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -11,6 +11,7 @@ RUN yum update -y && yum install -y \ libffi-devel \ xz-devel \ openssl-devel \ + sqlite-devel \ make \ tar