diff --git a/.github/workflows/release-wheels.yml b/.github/workflows/release-wheels.yml index 18379dc..30a40b7 100644 --- a/.github/workflows/release-wheels.yml +++ b/.github/workflows/release-wheels.yml @@ -42,92 +42,92 @@ jobs: matrix: include: # Windows 32 bit - # - os: windows-latest - # python: 39 - # platform_id: win32 - # - os: windows-latest - # python: 310 - # platform_id: win32 - # - os: windows-latest - # python: 311 - # platform_id: win32 - # - os: windows-latest - # python: 312 - # platform_id: win32 - # - os: windows-latest - # python: 313 - # platform_id: win32 - # - # # Windows 64 bit - # - os: windows-latest - # python: 39 - # platform_id: win_amd64 - # - os: windows-latest - # python: 310 - # platform_id: win_amd64 - # - os: windows-latest - # python: 311 - # platform_id: win_amd64 - # - os: windows-latest - # python: 312 - # platform_id: win_amd64 - # - os: windows-latest - # python: 313 - # platform_id: win_amd64 - # - # # Linux 64 bit manylinux2014 - # - os: ubuntu-latest - # python: 39 - # platform_id: manylinux_x86_64 - # manylinux_image: manylinux2014 - # - os: ubuntu-latest - # python: 310 - # platform_id: manylinux_x86_64 - # manylinux_image: manylinux2014 - # - os: ubuntu-latest - # python: 311 - # platform_id: manylinux_x86_64 - # manylinux_image: manylinux2014 - # - os: ubuntu-latest - # python: 312 - # platform_id: manylinux_x86_64 - # manylinux_image: manylinux2014 - # - os: ubuntu-latest - # python: 313 - # platform_id: manylinux_x86_64 - # manylinux_image: manylinux2014 - # - # # Linux aarch64 - # - os: ubuntu-latest - # python: 39 - # platform_id: manylinux_aarch64 - # - os: ubuntu-latest - # python: 310 - # platform_id: manylinux_aarch64 - # - os: ubuntu-latest - # python: 311 - # platform_id: manylinux_aarch64 - # - os: ubuntu-latest - # python: 312 - # platform_id: manylinux_aarch64 - # - os: ubuntu-latest - # python: 313 - # platform_id: manylinux_aarch64 + - os: windows-latest + python: 39 + platform_id: win32 + - os: windows-latest + python: 310 + platform_id: win32 + - os: windows-latest + python: 311 + platform_id: win32 + - os: windows-latest + python: 312 + platform_id: win32 + - os: windows-latest + python: 313 + platform_id: win32 + + # Windows 64 bit + - os: windows-latest + python: 39 + platform_id: win_amd64 + - os: windows-latest + python: 310 + platform_id: win_amd64 + - os: windows-latest + python: 311 + platform_id: win_amd64 + - os: windows-latest + python: 312 + platform_id: win_amd64 + - os: windows-latest + python: 313 + platform_id: win_amd64 + + # Linux 64 bit manylinux2014 + - os: ubuntu-latest + python: 39 + platform_id: manylinux_x86_64 + manylinux_image: manylinux2014 + - os: ubuntu-latest + python: 310 + platform_id: manylinux_x86_64 + manylinux_image: manylinux2014 + - os: ubuntu-latest + python: 311 + platform_id: manylinux_x86_64 + manylinux_image: manylinux2014 + - os: ubuntu-latest + python: 312 + platform_id: manylinux_x86_64 + manylinux_image: manylinux2014 + - os: ubuntu-latest + python: 313 + platform_id: manylinux_x86_64 + manylinux_image: manylinux2014 - # MacOS 12 x86_64 - - os: macos-12 + # Linux aarch64 + - os: ubuntu-latest + python: 39 + platform_id: manylinux_aarch64 + - os: ubuntu-latest + python: 310 + platform_id: manylinux_aarch64 + - os: ubuntu-latest + python: 311 + platform_id: manylinux_aarch64 + - os: ubuntu-latest + python: 312 + platform_id: manylinux_aarch64 + - os: ubuntu-latest + python: 313 + platform_id: manylinux_aarch64 + + # MacOS 13 x86_64 + - os: macos-13 python: 39 platform_id: macosx_x86_64 - - os: macos-12 + - os: macos-13 python: 310 platform_id: macosx_x86_64 - - os: macos-12 + - os: macos-13 python: 311 platform_id: macosx_x86_64 - - os: macos-12 + - os: macos-13 python: 312 platform_id: macosx_x86_64 - - os: macos-12 + - os: macos-13 python: 313 platform_id: macosx_x86_64 @@ -171,56 +171,56 @@ jobs: name: wheel-${{ matrix.python }}-${{ matrix.platform_id }} path: ./dist - # build-wheels-macos-arm64: - # name: Build wheel for cp${{ matrix.python }}-${{ matrix.platform_id }} - # runs-on: ${{ matrix.os }} - # strategy: - # fail-fast: false - # matrix: - # include: - # # MacOS 14 arm64 - # - os: macos-14 - # python: 39 - # platform_id: macosx_arm64 - # - os: macos-14 - # python: 310 - # platform_id: macosx_arm64 - # - os: macos-14 - # python: 311 - # platform_id: macosx_arm64 - # - os: macos-14 - # python: 312 - # platform_id: macosx_arm64 - # - os: macos-14 - # python: 313 - # platform_id: macosx_arm64 - # - # steps: - # - uses: actions/checkout@v4 - # with: - # submodules: true - # - # - uses: actions/setup-python@v5 - # name: Install Python - # with: - # python-version: '3.9' - # - # - name: Install cibuildwheel - # run: python -m pip install cibuildwheel>=2.21 wheel>=0.42 - # - # - name: Build wheels - # env: - # CIBW_BUILD: cp${{ matrix.python }}-* - # CIBW_ARCHS_MACOS: arm64 - # CIBW_BUILD_VERBOSITY: 1 - # run: | - # python -m cibuildwheel --output-dir dist - # - # - name: Store artifacts - # uses: actions/upload-artifact@v4 - # with: - # name: wheel-${{ matrix.python }}-${{ matrix.platform_id }} - # path: ./dist/*.whl + build-wheels-macos-arm64: + name: Build wheel for cp${{ matrix.python }}-${{ matrix.platform_id }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + # MacOS 14 arm64 + - os: macos-14 + python: 39 + platform_id: macosx_arm64 + - os: macos-14 + python: 310 + platform_id: macosx_arm64 + - os: macos-14 + python: 311 + platform_id: macosx_arm64 + - os: macos-14 + python: 312 + platform_id: macosx_arm64 + - os: macos-14 + python: 313 + platform_id: macosx_arm64 + + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - uses: actions/setup-python@v5 + name: Install Python + with: + python-version: '3.9' + + - name: Install cibuildwheel + run: python -m pip install cibuildwheel>=2.21 wheel>=0.42 + + - name: Build wheels + env: + CIBW_BUILD: cp${{ matrix.python }}-* + CIBW_ARCHS_MACOS: arm64 + CIBW_BUILD_VERBOSITY: 1 + run: | + python -m cibuildwheel --output-dir dist + + - name: Store artifacts + uses: actions/upload-artifact@v4 + with: + name: wheel-${{ matrix.python }}-${{ matrix.platform_id }} + path: ./dist/*.whl # test-package: # name: Test built package @@ -271,23 +271,23 @@ jobs: # The pypi upload fails with non-linux containers, so grab the uploaded # artifacts and run using those # See: https://github.com/pypa/gh-action-pypi-publish/discussions/15 - # deploy: - # name: Upload wheels to PyPI - # # needs: [ test-package ] - # needs: [ build-wheels, build-sdist, build-wheels-macos-arm64 ] - # runs-on: ubuntu-latest - # environment: - # name: pypi - # url: https://pypi.org/project/pylibjpeg-openjpeg/ - # permissions: - # id-token: write - # - # steps: - # - name: Download the wheels - # uses: actions/download-artifact@v4 - # with: - # path: dist/ - # merge-multiple: true - # - # - name: Publish package to PyPi - # uses: pypa/gh-action-pypi-publish@release/v1 + deploy: + name: Upload wheels to PyPI + # needs: [ test-package ] + needs: [ build-wheels, build-sdist, build-wheels-macos-arm64 ] + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/project/pylibjpeg-openjpeg/ + permissions: + id-token: write + + steps: + - name: Download the wheels + uses: actions/download-artifact@v4 + with: + path: dist/ + merge-multiple: true + + - name: Publish package to PyPi + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/docs/changes/v2.4.0.rst b/docs/changes/v2.4.0.rst index 659d9bb..ce6dc04 100644 --- a/docs/changes/v2.4.0.rst +++ b/docs/changes/v2.4.0.rst @@ -10,11 +10,3 @@ Changes * Supported Python versions are 3.9 to 3.13. * NumPy < 2.0 is no longer supported. * Switched to OpenJpeg v2.5.2 - -Known Issues ------------- - -* OpenJpeg seems to be unable to correctly encode image data with more than 16-bit - precision when running on big endian systems -* Encoding images on little endian systems works with up to 24-bit precision, but the - results for lossy encoding can be extremely poor for more than 20+ bits.