From 0227ce09119bd8c29e63cd464e519dd80fe9400a Mon Sep 17 00:00:00 2001 From: Alexander Piskun <13381981+bigcat88@users.noreply.github.com> Date: Sat, 27 Jul 2024 16:45:57 +0300 Subject: [PATCH] Python3.13 beta wheels (#272) Signed-off-by: Alexander Piskun --- .github/workflows/build-cache-deps.yml | 4 ++-- .github/workflows/wheels-pi_heif.yml | 11 +++++++---- .github/workflows/wheels-pillow_heif.yml | 11 +++++++---- CHANGELOG.md | 3 ++- README.md | 20 ++++++++++---------- ci/cirrus_wheels.yml | 6 ++++-- libheif/linux_build_libs.py | 2 +- pi-heif/README.md | 19 ++++++++++--------- pyproject.toml | 5 ++--- 9 files changed, 45 insertions(+), 36 deletions(-) diff --git a/.github/workflows/build-cache-deps.yml b/.github/workflows/build-cache-deps.yml index 8c70b55e..0a402705 100644 --- a/.github/workflows/build-cache-deps.yml +++ b/.github/workflows/build-cache-deps.yml @@ -39,7 +39,7 @@ jobs: platforms: arm64 - name: Install cibuildwheel & twine - run: python3 -m pip install twine cibuildwheel==2.19.1 + run: python3 -m pip install twine cibuildwheel==2.19.2 - uses: actions/cache@v4 with: @@ -98,7 +98,7 @@ jobs: platforms: arm64 - name: Install cibuildwheel & twine - run: python3 -m pip install twine cibuildwheel==2.19.1 + run: python3 -m pip install twine cibuildwheel==2.19.2 - uses: actions/cache@v4 with: diff --git a/.github/workflows/wheels-pi_heif.yml b/.github/workflows/wheels-pi_heif.yml index 49e20772..5fb30b00 100644 --- a/.github/workflows/wheels-pi_heif.yml +++ b/.github/workflows/wheels-pi_heif.yml @@ -72,12 +72,13 @@ jobs: - name: Run cibuildwheel run: | - python3 -m pip install cibuildwheel==2.19.1 + python3 -m pip install cibuildwheel==2.19.2 python3 -m cibuildwheel env: CIBW_ARCHS: "AMD64" CIBW_ENVIRONMENT_WINDOWS: PH_LIGHT_ACTION=1 TEST_DECODE_THREADS=0 CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair -vv -w {dest_dir} {wheel} --add-path ${{ env.MSYS2_PREFIX }}/bin" + CIBW_PRERELEASE_PYTHONS: True - name: Checking built wheels run: | @@ -104,12 +105,13 @@ jobs: - name: Run cibuildwheel run: | - python3 -m pip install cibuildwheel==2.19.1 + python3 -m pip install cibuildwheel==2.19.2 python3 -m cibuildwheel env: CIBW_ARCHS: "x86_64" CIBW_ENVIRONMENT_MACOS: PH_LIGHT_ACTION=1 TEST_DECODE_THREADS=0 MACOSX_DEPLOYMENT_TARGET: "12.0" + CIBW_PRERELEASE_PYTHONS: True - name: Checking built wheels run: | @@ -164,7 +166,7 @@ jobs: - name: Run cibuildwheel run: | - python3 -m pip install cibuildwheel==2.19.1 + python3 -m pip install cibuildwheel==2.19.2 python3 -m cibuildwheel env: CIBW_BUILD: ${{ format('cp3*-{0}_{1}', matrix.cibw_buildlinux, matrix.cibw_arch) }} @@ -173,6 +175,7 @@ jobs: ${{ env.INSTALL_OS_PACKAGES }} python3 {package}/libheif/linux_build_libs.py CIBW_ENVIRONMENT_LINUX: BUILD_DIR=/host${{ env.BUILD_DIR }} PH_LIGHT_ACTION=1 + CIBW_PRERELEASE_PYTHONS: True - name: Checking built wheels run: | @@ -224,7 +227,7 @@ jobs: - name: Run cibuildwheel run: | - python3 -m pip install cibuildwheel==2.19.1 + python3 -m pip install cibuildwheel==2.19.2 python3 -m cibuildwheel env: CIBW_BUILD: ${{ format('pp3*-{0}_{1}', matrix.cibw_buildlinux, matrix.cibw_arch) }} diff --git a/.github/workflows/wheels-pillow_heif.yml b/.github/workflows/wheels-pillow_heif.yml index 97cc4239..7e7e47aa 100644 --- a/.github/workflows/wheels-pillow_heif.yml +++ b/.github/workflows/wheels-pillow_heif.yml @@ -69,12 +69,13 @@ jobs: - name: Run cibuildwheel run: | - python3 -m pip install cibuildwheel==2.19.1 + python3 -m pip install cibuildwheel==2.19.2 python3 -m cibuildwheel env: CIBW_ARCHS: "AMD64" CIBW_ENVIRONMENT_WINDOWS: PH_FULL_ACTION=1 CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair -vv -w {dest_dir} {wheel} --add-path ${{ env.MSYS2_PREFIX }}/bin" + CIBW_PRERELEASE_PYTHONS: True - name: Check built wheels run: | @@ -96,12 +97,13 @@ jobs: - uses: actions/checkout@v4 - name: Run cibuildwheel run: | - python3 -m pip install cibuildwheel==2.19.1 + python3 -m pip install cibuildwheel==2.19.2 python3 -m cibuildwheel env: CIBW_ARCHS: "x86_64" CIBW_ENVIRONMENT_MACOS: PH_FULL_ACTION=1 TEST_DECODE_THREADS=0 MACOSX_DEPLOYMENT_TARGET: "12.0" + CIBW_PRERELEASE_PYTHONS: True - name: Check built wheels run: | @@ -165,7 +167,7 @@ jobs: - name: Run cibuildwheel run: | - python3 -m pip install cibuildwheel==2.19.1 + python3 -m pip install cibuildwheel==2.19.2 python3 -m cibuildwheel env: CIBW_BUILD: ${{ format('cp3*-{0}_{1}', matrix.cibw_buildlinux, matrix.cibw_arch) }} @@ -175,6 +177,7 @@ jobs: python3 {package}/libheif/linux_build_libs.py CIBW_ENVIRONMENT_LINUX: BUILD_DIR=/host${{ env.BUILD_DIR }} PH_FULL_ACTION=1 CIBW_ENVIRONMENT_PASS_LINUX: PH_TESTS_NO_HEVC_ENC + CIBW_PRERELEASE_PYTHONS: True - name: Checking built wheels run: | @@ -229,7 +232,7 @@ jobs: - name: Run cibuildwheel run: | - python3 -m pip install cibuildwheel==2.19.1 + python3 -m pip install cibuildwheel==2.19.2 python3 -m cibuildwheel env: CIBW_BUILD: ${{ format('pp3*-{0}_{1}', matrix.cibw_buildlinux, matrix.cibw_arch) }} diff --git a/CHANGELOG.md b/CHANGELOG.md index ea0dfdc7..439843cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,12 @@ All notable changes to this project will be documented in this file. ### Added -- `image.info["heif"]` dictionary with `camera_intrinsic_matrix` HEIF specific metadata. Currently only reading is supported. #234 +- `image.info["heif"]` dictionary with `camera_intrinsic_matrix` HEIF specific metadata. Currently only reading is supported. #271 ### Changed - libheif updated from `1.17.6` to `1.18.1` version. #249 +- Python `3.13.0b3` wheels added; macOS **arm64** Python3.8 wheels dropped. #272 ## [0.17.0 - 2024-07-02] diff --git a/README.md b/README.md index 44befcbf..4409b40d 100644 --- a/README.md +++ b/README.md @@ -143,15 +143,15 @@ if im.info["depth_images"]: ### Wheels -| **_Wheels table_** | macOS
Intel | macOS
Silicon | Windows
64bit | musllinux* | manylinux* | -|--------------------|:---------------:|:-----------------:|:-----------------:|:----------:|:----------:| -| CPython 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | -| CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | -| CPython 3.10 | ✅ | ✅ | ✅ | ✅ | ✅ | -| CPython 3.11 | ✅ | ✅ | ✅ | ✅ | ✅ | -| CPython 3.12 | ✅ | ✅ | ✅ | ✅ | ✅ | -| CPython 3.13 | ✅ | ✅ | ✅ | ✅ | ✅ | -| PyPy 3.9 v7.3 | ✅ | ✅ | ✅ | N/A | ✅ | -| PyPy 3.10 v7.3 | ✅ | ✅ | ✅ | N/A | ✅ | +| **_Wheels table_** | macOS
Intel | macOS
Silicon | Windows
| musllinux* | manylinux* | +|--------------------|:---------------:|:-----------------:|:------------:|:----------:|:----------:| +| CPython 3.8 | ✅ | N/A | ✅ | ✅ | ✅ | +| CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.10 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.11 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.12 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.13 | ✅ | ✅ | ✅ | ✅ | ✅ | +| PyPy 3.9 v7.3 | ✅ | ✅ | ✅ | N/A | ✅ | +| PyPy 3.10 v7.3 | ✅ | ✅ | ✅ | N/A | ✅ | * **x86_64**, **aarch64** wheels. diff --git a/ci/cirrus_wheels.yml b/ci/cirrus_wheels.yml index 583c82ae..27d686fb 100644 --- a/ci/cirrus_wheels.yml +++ b/ci/cirrus_wheels.yml @@ -9,6 +9,7 @@ wheel_macos_arm_task: PATH: /opt/homebrew/opt/python@3.10/bin:$PATH CIBW_ARCHS: arm64 CIBW_ENVIRONMENT: 'MACOSX_DEPLOYMENT_TARGET=14.0 PH_FULL_ACTION=1' + CIBW_PRERELEASE_PYTHONS: True install_pre_requirements_script: - brew update || true @@ -16,7 +17,7 @@ wheel_macos_arm_task: - brew install python@3.10 - ln -s python3 /opt/homebrew/opt/python@3.10/bin/python install_cibuildwheel_script: - - python3 -m pip install --break-system-packages cibuildwheel==2.19.1 + - python3 -m pip install --break-system-packages cibuildwheel==2.19.2 run_cibuildwheel_script: - python3 -m cibuildwheel wheels_artifacts: @@ -33,6 +34,7 @@ wheel_pi_heif_macos_arm_task: PATH: /opt/homebrew/opt/python@3.10/bin:$PATH CIBW_ARCHS: arm64 CIBW_ENVIRONMENT: 'MACOSX_DEPLOYMENT_TARGET=14.0 PH_LIGHT_ACTION=1' + CIBW_PRERELEASE_PYTHONS: True install_pre_requirements_script: - brew update || true @@ -40,7 +42,7 @@ wheel_pi_heif_macos_arm_task: - brew install python@3.10 - ln -s python3 /opt/homebrew/opt/python@3.10/bin/python install_cibuildwheel_script: - - python3 -m pip install --break-system-packages cibuildwheel==2.19.1 + - python3 -m pip install --break-system-packages cibuildwheel==2.19.2 transform_to_pi_heif_script: - cp -r -v ./pi-heif/* . - python3 .github/transform_to-pi_heif.py diff --git a/libheif/linux_build_libs.py b/libheif/linux_build_libs.py index 6c2f24c0..ddb151a3 100644 --- a/libheif/linux_build_libs.py +++ b/libheif/linux_build_libs.py @@ -6,7 +6,7 @@ from re import IGNORECASE, MULTILINE, match, search from subprocess import DEVNULL, PIPE, STDOUT, CalledProcessError, TimeoutExpired, run -# 1 +# 0 BUILD_DIR = environ.get("BUILD_DIR", "/tmp/ph_build_stuff") INSTALL_DIR_LIBS = environ.get("INSTALL_DIR_LIBS", "/usr") PH_LIGHT_VERSION = sys.maxsize <= 2**32 or getenv("PH_LIGHT_ACTION", "0") != "0" diff --git a/pi-heif/README.md b/pi-heif/README.md index 12e5d49e..3c6163c9 100644 --- a/pi-heif/README.md +++ b/pi-heif/README.md @@ -84,14 +84,15 @@ if im.info["depth_images"]: ### Wheels -| **_Wheels table_** | macOS
Intel | macOS
Silicon | Windows
64bit | musllinux* | manylinux* | -|--------------------|:---------------:|:-----------------:|:-----------------:|:----------:|:----------:| -| CPython 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | -| CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | -| CPython 3.10 | ✅ | ✅ | ✅ | ✅ | ✅ | -| CPython 3.11 | ✅ | ✅ | ✅ | ✅ | ✅ | -| CPython 3.12 | ✅ | ✅ | ✅ | ✅ | ✅ | -| PyPy 3.9 v7.3 | ✅ | ✅ | ✅ | N/A | ✅ | -| PyPy 3.10 v7.3 | ✅ | ✅ | ✅ | N/A | ✅ | +| **_Wheels table_** | macOS
Intel | macOS
Silicon | Windows
| musllinux* | manylinux* | +|--------------------|:---------------:|:-----------------:|:------------:|:----------:|:----------:| +| CPython 3.8 | ✅ | N/A | ✅ | ✅ | ✅ | +| CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.10 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.11 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.12 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.13 | ✅ | ✅ | ✅ | ✅ | ✅ | +| PyPy 3.9 v7.3 | ✅ | ✅ | ✅ | N/A | ✅ | +| PyPy 3.10 v7.3 | ✅ | ✅ | ✅ | N/A | ✅ | * **x86_64**, **aarch64** wheels. diff --git a/pyproject.toml b/pyproject.toml index 3bdbbfdb..87f8c383 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,10 +7,10 @@ requires = [ [tool.cibuildwheel] build-verbosity = "2" build = [ - "cp38-* cp39-* cp310-* cp311-* cp312-* pp39-* pp310-*", + "cp38-* cp39-* cp310-* cp311-* cp312-* cp313-* pp39-* pp310-*", ] skip = [ - "cp36-* cp37-* pp37-* pp38-*", + "cp36-* cp37-* pp37-* pp38-* cp38-macosx_arm64", ] test-extras = "tests-min" test-command = "pytest {project}" @@ -32,7 +32,6 @@ repair-wheel-command = [ "DYLD_LIBRARY_PATH=$REPAIR_LIBRARY_PATH delocate-listdeps {wheel}", "DYLD_LIBRARY_PATH=$REPAIR_LIBRARY_PATH delocate-wheel -v --require-archs {delocate_archs} -w {dest_dir} {wheel}", ] -test-skip = "cp38-macosx_arm64" [tool.cibuildwheel.windows] before-build = [