diff --git a/.github/workflows/analysis-coverage.yml b/.github/workflows/analysis-coverage.yml index 02aaf83b..67fd0a00 100644 --- a/.github/workflows/analysis-coverage.yml +++ b/.github/workflows/analysis-coverage.yml @@ -41,7 +41,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: '3.12.0-beta.4' + python-version: '3.12-dev' - name: Prepare system run: | diff --git a/.github/workflows/test-src-build-windows.yml b/.github/workflows/test-src-build-windows.yml index b6673759..8c08d2a9 100644 --- a/.github/workflows/test-src-build-windows.yml +++ b/.github/workflows/test-src-build-windows.yml @@ -40,6 +40,10 @@ jobs: steps: - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.11' + - uses: msys2/setup-msys2@v2 with: location: C:/temp @@ -83,6 +87,10 @@ jobs: steps: - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.10' + - name: Transform to Pi-Heif run: | cp -r -v -force ./pi-heif/* . diff --git a/.github/workflows/test-wheels-pi_heif.yml b/.github/workflows/test-wheels-pi_heif.yml index 046299c4..e206a544 100644 --- a/.github/workflows/test-wheels-pi_heif.yml +++ b/.github/workflows/test-wheels-pi_heif.yml @@ -3,6 +3,7 @@ name: Wheels test • Pi-Heif on: release: types: [ published ] + workflow_dispatch: jobs: docker-tests: @@ -75,8 +76,9 @@ jobs: name: Windows • 2019 • ${{ matrix.python-version }} runs-on: windows-2019 strategy: + fail-fast: false matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["pypy-3.9", "pypy-3.10", "3.8", "3.9", "3.10", "3.11", "3.12-dev"] env: PH_LIGHT_ACTION: 1 @@ -94,7 +96,7 @@ jobs: - name: Preparations run: | - python3 -m pip install pytest pillow numpy pympler defusedxml + python3 -m pip install pytest pillow packaging defusedxml python3 -m pip install --only-binary=:all: pi-heif - name: Test wheel @@ -106,8 +108,9 @@ jobs: name: macOS • 11 • ${{ matrix.python-version }} runs-on: macos-11 strategy: + fail-fast: false matrix: - python-version: ["pypy-3.8", "pypy-3.9", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["pypy-3.9", "pypy-3.10", "3.8", "3.9", "3.10", "3.11", "3.12-dev"] steps: - name: Delay, waiting Pypi to update. @@ -123,7 +126,7 @@ jobs: - name: Preparations run: | brew install libjpeg little-cms2 - python3 -m pip install pytest pillow numpy pympler defusedxml + python3 -m pip install pytest pillow packaging defusedxml python3 -m pip install --only-binary=:all: pi-heif - name: Test wheel @@ -137,8 +140,9 @@ jobs: name: Ubuntu-Focal • ${{ matrix.python-version }} runs-on: ubuntu-20.04 strategy: + fail-fast: false matrix: - python-version: ["pypy-3.8", "pypy-3.9", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["pypy-3.9", "pypy-3.10", "3.8", "3.9", "3.10", "3.11", "3.12-dev"] steps: - name: Delay, waiting Pypi to update. @@ -154,7 +158,7 @@ jobs: - name: Preparations run: | sudo apt update && sudo apt install libjpeg-dev liblcms2-dev - python3 -m pip install pytest pillow numpy pympler defusedxml + python3 -m pip install pytest pillow packaging defusedxml python3 -m pip install --only-binary=:all: pi-heif - name: Test wheel @@ -168,7 +172,7 @@ jobs: runs-on: macos-12 strategy: matrix: - python-version: ["pypy-3.8", "3.8"] + python-version: ["pypy-3.9", "3.9"] steps: - name: Delay, waiting Pypi to update. @@ -184,7 +188,7 @@ jobs: - name: Preparations run: | brew install libjpeg little-cms2 - python3 -m pip install pytest pillow numpy pympler defusedxml + python3 -m pip install pytest pillow packaging defusedxml python3 -m pip install --only-binary=:all: pillow-heif python3 -m pip install --only-binary=:all: pi-heif @@ -203,7 +207,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - python-version: ["pypy-3.8", "3.10"] + python-version: ["pypy-3.10", "3.10"] steps: - name: Delay, waiting Pypi to update. @@ -219,7 +223,7 @@ jobs: - name: Preparations run: | sudo apt update && sudo apt install libjpeg-dev liblcms2-dev - python3 -m pip install pytest pillow numpy pympler defusedxml + python3 -m pip install pytest pillow packaging defusedxml python3 -m pip install --only-binary=:all: pillow-heif python3 -m pip install --only-binary=:all: pi-heif diff --git a/.github/workflows/test-wheels.yml b/.github/workflows/test-wheels.yml index 3e37d587..42bb4448 100644 --- a/.github/workflows/test-wheels.yml +++ b/.github/workflows/test-wheels.yml @@ -3,6 +3,7 @@ name: Wheels test on: release: types: [ published ] + workflow_dispatch: jobs: docker-tests: @@ -39,13 +40,8 @@ jobs: uses: docker/setup-qemu-action@v2 - name: Test type is Full - if: matrix.i['arch'] != 'arm/v7' run: echo TEST_TYPE="export PH_FULL_ACTION=1" >> $GITHUB_ENV - - name: Test type is Light - if: matrix.i['arch'] == 'arm/v7' - run: echo TEST_TYPE="export PH_LIGHT_ACTION=1" >> $GITHUB_ENV - - name: Preparing debian if: matrix.i['os'] == 'debian' || matrix.i['os'] == 'ubuntu' run: | @@ -79,7 +75,7 @@ jobs: runs-on: windows-2019 strategy: matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["pypy-3.9", "pypy-3.10", "3.8", "3.9", "3.10", "3.11", "3.12-dev"] env: PH_FULL_ACTION: 1 @@ -97,7 +93,7 @@ jobs: - name: Preparations run: | - python3 -m pip install pytest pillow numpy pympler defusedxml + python3 -m pip install pytest pillow packaging defusedxml python3 -m pip install --only-binary=:all: pillow_heif - name: Test wheel @@ -108,7 +104,7 @@ jobs: runs-on: macos-11 strategy: matrix: - python-version: ["pypy-3.8", "pypy-3.9", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["pypy-3.9", "pypy-3.10", "3.8", "3.9", "3.10", "3.11", "3.12-dev"] steps: - name: Delay, waiting Pypi to update. @@ -124,7 +120,7 @@ jobs: - name: Preparations run: | brew install libjpeg little-cms2 - python3 -m pip install pytest pillow numpy pympler defusedxml + python3 -m pip install pytest pillow packaging defusedxml python3 -m pip install --only-binary=:all: pillow_heif - name: Test wheel @@ -138,7 +134,7 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - python-version: ["pypy-3.8", "pypy-3.9", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["pypy-3.9", "pypy-3.10", "3.8", "3.9", "3.10", "3.11", "3.12-dev"] steps: - name: Delay, waiting Pypi to update. @@ -154,7 +150,7 @@ jobs: - name: Preparations run: | sudo apt update && sudo apt install libjpeg-dev liblcms2-dev - python3 -m pip install pytest pillow numpy pympler defusedxml + python3 -m pip install pytest pillow packaging defusedxml python3 -m pip install --only-binary=:all: pillow_heif - name: Test wheel diff --git a/.github/workflows/wheels-pillow_heif.yml b/.github/workflows/wheels-pillow_heif.yml index 9eb199f5..caa9668c 100644 --- a/.github/workflows/wheels-pillow_heif.yml +++ b/.github/workflows/wheels-pillow_heif.yml @@ -173,71 +173,6 @@ jobs: - name: Fix cache permissions run: sudo chmod -R 777 ${{ env.BUILD_DIR }} - wheels_linux_cpython_32bit: - strategy: - fail-fast: true - matrix: - cibw_buildlinux: [ manylinux, musllinux ] - cibw_arch: [ "i686" ] - name: ${{ matrix.cibw_buildlinux }} • ${{ matrix.cibw_arch }} • CPython - runs-on: ubuntu-20.04 - env: - BUILD_DIR: "/tmp/ph_build_stuff" - KEY_HEAD: ${{ matrix.cibw_arch }}-${{ matrix.cibw_buildlinux }} - - steps: - - uses: actions/checkout@v3 - - name: Set up QEMU - if: matrix.cibw_arch == 'aarch64' - uses: docker/setup-qemu-action@v2 - with: - platforms: arm64 - - - name: musllinux preparations - if: matrix.cibw_buildlinux == 'musllinux' - run: echo INSTALL_OS_PACKAGES="apk update && apk --no-cache add $OS_PACKAGES" >> $GITHUB_ENV - env: - OS_PACKAGES: "fribidi-dev harfbuzz-dev jpeg-dev lcms2-dev openjpeg-dev" - - - name: 32-bit manylinux preparations - if: matrix.cibw_buildlinux == 'manylinux' - run: echo INSTALL_OS_PACKAGES="yum makecache && yum install -y $OS_PACKAGES" >> $GITHUB_ENV - env: - OS_PACKAGES: "libjpeg-turbo-devel lcms2-devel" - - - uses: actions/cache@v3 - with: - path: ${{ env.BUILD_DIR }} - key: ${{ env.KEY_HEAD }}-${{ env.KEY_C_BUILD }}-${{ env.KEY_LINUX_LIBS }} - env: - KEY_LINUX_LIBS: ${{ hashFiles('libheif/linux/**') }} - KEY_C_BUILD: ${{ hashFiles('libheif/linux_*.py') }}-${{ hashFiles('libheif/setup.py') }} - - - name: Run cibuildwheel - run: | - python3 -m pip install cibuildwheel==2.12.3 - python3 -m cibuildwheel - env: - CIBW_BUILD: ${{ format('cp3*-{0}_{1}', matrix.cibw_buildlinux, matrix.cibw_arch) }} - CIBW_ARCHS: ${{ matrix.cibw_arch }} - CIBW_BEFORE_ALL_LINUX: ${{ env.INSTALL_OS_PACKAGES }} - CIBW_ENVIRONMENT_LINUX: BUILD_DIR=/host${{ env.BUILD_DIR }} PH_LIGHT_ACTION=1 - - - name: Checking built wheels - run: | - python3 -m pip install twine - python3 -m twine check wheelhouse/* - - - name: Uploading wheels - uses: actions/upload-artifact@v3 - with: - name: wheels_pillow_heif - path: wheelhouse/*.whl - if-no-files-found: error - - - name: Fix cache permissions - run: sudo chmod -R 777 ${{ env.BUILD_DIR }} - wheels_linux_pypy: strategy: fail-fast: true diff --git a/CHANGELOG.md b/CHANGELOG.md index 38da36b0..97a6e12e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,13 @@ All notable changes to this project will be documented in this file. -## [0.1x.x - 2023-0x-xx] +## [0.13.0 - 2023-08-0x] ### Changed - The license for the project itself has been changed to "BSD-3-Clause" since "Apache 2.0" is not compatible with the "x265" encoder. #111 - Minimum required `Pillow` version increased from `8.4.0` to `9.1.1` +- Dropped `Python 3.7` support, `PyPy 3.8` wheels. +- Dropped 32 bit wheels for `Pillow-Heif`. `Pi-Heif` still have 32-bit wheels. ## [0.12.0 - 2023-07-08] diff --git a/README.md b/README.md index ef77428b..39292651 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![docs](https://readthedocs.org/projects/pillow-heif/badge/?version=latest)](https://pillow-heif.readthedocs.io/en/latest/?badge=latest) [![codecov](https://codecov.io/gh/bigcat88/pillow_heif/branch/master/graph/badge.svg?token=JY64F2OL6V)](https://codecov.io/gh/bigcat88/pillow_heif) -![PythonVersion](https://img.shields.io/badge/python-3.7%20%7C%203.8%20%7C%203.9%20%7C%203.10%20%7C%203.11-blue) +![PythonVersion](https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue) ![impl](https://img.shields.io/pypi/implementation/pillow_heif) ![pypi](https://img.shields.io/pypi/v/pillow_heif.svg) [![Downloads](https://static.pepy.tech/personalized-badge/pillow-heif?period=total&units=international_system&left_color=grey&right_color=orange&left_text=Downloads)](https://pepy.tech/project/pillow-heif) @@ -122,7 +122,6 @@ pillow_heif.register_avif_opener() | **_Wheels table_** | macOS
Intel | macOS
Silicon | Windows
64bit | musllinux* | manylinux* | |--------------------|:---------------:|:-----------------:|:-----------------:|:----------:|:----------:| -| CPython 3.7 | ✅ | N/A | ✅ | N/A | ✅ | | CPython 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | | CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | | CPython 3.10 | ✅ | ✅ | ✅ | ✅ | ✅ | @@ -131,6 +130,6 @@ pillow_heif.register_avif_opener() | PyPy 3.8 v7.3 | ✅ | N/A | ✅ | N/A | ✅ | | PyPy 3.9 v7.3 | ✅ | N/A | ✅ | N/A | ✅ | -* **i686**, **x86_64**, **aarch64** wheels. +* **x86_64**, **aarch64** wheels. `ARMv7l`, `PyPy` 32-bit wheels are published only for [pi-heif](https://pypi.org/project/pi-heif/) from `0.10.0` version. diff --git a/pi-heif/README.md b/pi-heif/README.md index ce815833..a33790b4 100644 --- a/pi-heif/README.md +++ b/pi-heif/README.md @@ -3,7 +3,7 @@ [![Analysis & Coverage](https://github.com/bigcat88/pillow_heif/actions/workflows/analysis-coverage.yml/badge.svg)](https://github.com/bigcat88/pillow_heif/actions/workflows/analysis-coverage.yml) [![Wheels test(Pi-Heif)](https://github.com/bigcat88/pillow_heif/actions/workflows/test-wheels-pi_heif.yml/badge.svg)](https://github.com/bigcat88/pillow_heif/actions/workflows/test-wheels-pi_heif.yml) -![PythonVersion](https://img.shields.io/badge/python-3.7%20%7C%203.8%20%7C%203.9%20%7C%203.10%20%7C%203.11-blue) +![PythonVersion](https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue) ![impl](https://img.shields.io/pypi/implementation/pi_heif) ![pypi](https://img.shields.io/pypi/v/pi_heif.svg) @@ -63,7 +63,6 @@ if pi_heif.is_supported("input.heic"): | **_Wheels table_** | macOS
Intel | macOS
Silicon | Windows
64bit | musllinux* | manylinux* | |--------------------|:---------------:|:-----------------:|:-----------------:|:----------:|:----------:| -| CPython 3.7 | ✅ | N/A | ✅ | N/A | ✅ | | CPython 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | | CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | | CPython 3.10 | ✅ | ✅ | ✅ | ✅ | ✅ | diff --git a/pi-heif/setup.cfg b/pi-heif/setup.cfg index 0a44071c..fe0e7cae 100644 --- a/pi-heif/setup.cfg +++ b/pi-heif/setup.cfg @@ -15,7 +15,6 @@ classifiers = Topic :: Multimedia :: Graphics Topic :: Multimedia :: Graphics :: Graphics Conversion Programming Language :: Python :: 3 - Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 @@ -34,7 +33,7 @@ project_urls = Changelog=https://github.com/bigcat88/pillow_heif/blob/master/CHANGELOG.md [options] -python_requires = >=3.7 +python_requires = >=3.8 zip_safe = False packages = find: install_requires = diff --git a/pyproject.toml b/pyproject.toml index ebee0389..454cf5a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,12 +1,12 @@ [build-system] requires = [ - "setuptools>=42", + "setuptools>=67.8", "wheel", ] [tool.black] line-length = 120 -target-versions = ["py37"] +target-versions = ["py38"] preview = true [tool.ruff] @@ -48,7 +48,7 @@ warn_no_return = true strict_optional = true [tool.pylint] -master.py-version = "3.7" +master.py-version = "3.8" master.extension-pkg-allow-list = ["_pillow_heif"] design.max-attributes = 8 design.max-branches = 16 @@ -69,7 +69,7 @@ messages_control.disable = [ [tool.cibuildwheel] build-verbosity = "2" -skip = ["cp36-*", "pp37-*", "cp37-musllinux*"] +skip = ["cp36-* cp37-* pp37-* pp38-*"] [tool.cibuildwheel.linux] test-extras = "tests" diff --git a/setup.cfg b/setup.cfg index 69ba9612..3568bd3e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -15,7 +15,6 @@ classifiers = Topic :: Multimedia :: Graphics Topic :: Multimedia :: Graphics :: Graphics Conversion Programming Language :: Python :: 3 - Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 @@ -34,7 +33,7 @@ project_urls = Changelog=https://github.com/bigcat88/pillow_heif/blob/master/CHANGELOG.md [options] -python_requires = >=3.7 +python_requires = >=3.8 zip_safe = False packages = find: install_requires =