diff --git a/.github/workflows/test_and_deploy.yml b/.github/workflows/test_and_deploy.yml index 02b5596..1329fe2 100644 --- a/.github/workflows/test_and_deploy.yml +++ b/.github/workflows/test_and_deploy.yml @@ -28,20 +28,34 @@ jobs: task: [black, ruff] steps: - uses: actions/checkout@v4 - - name: Set up Python 3.8 + - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.8 + python-version: "3.x" + + # Temporary fix for 'pip install imageio-ffmpeg' + # not including the FFMPEG binary on Apple Silicon macs + # This step can be removed when issue is fixed in imageio-ffmpeg + # https://github.com/imageio/imageio-ffmpeg/issues/71 + - name: Setup FFmpeg + if: runner.name == 'macos-latest' + run: | + brew update + brew install ffmpeg + - name: Install dependencies run: | pip install --upgrade pip pip install tox - - name: Run task + + - name: Run tox run: tox -e ${{ matrix.task }} + test: name: ${{ matrix.platform }} py${{ matrix.python-version }} runs-on: ${{ matrix.platform }} strategy: + fail-fast: false matrix: platform: [ ubuntu-latest, windows-latest, macos-latest ] python-version: [ "3.8", "3.9", "3.10", "3.11" ] @@ -64,6 +78,14 @@ jobs: powershell gl-ci-helpers/appveyor/install_opengl.ps1 if (Test-Path -Path "C:\Windows\system32\opengl32.dll" -PathType Leaf) {Exit 0} else {Exit 1} + # Temporary fix for 'pip install imageio-ffmpeg' + # not including the FFMPEG binary on Apple Silicon macs + # This step can be removed when issue is fixed in imageio-ffmpeg + # https://github.com/imageio/imageio-ffmpeg/issues/71 + - name: Setup FFmpeg + if: runner.os == 'macOS' + uses: AnimMouse/setup-ffmpeg@v1 + - name: Install dependencies run: | python -m pip install --upgrade pip @@ -92,7 +114,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.x" - name: Install dependencies diff --git a/pyproject.toml b/pyproject.toml index 3c03a73..fed478e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta" [tool.black] -target-version = ['py38', 'py39', 'py310', 'py311'] +target-version = ['py39', 'py310', 'py311', 'py312'] line-length = 79 exclude = ''' ( diff --git a/setup.cfg b/setup.cfg index 7ab117e..b0df13b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -16,9 +16,10 @@ classifiers = Framework :: napari Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 + Programming Language :: Python :: 3.12 Operating System :: OS Independent License :: OSI Approved :: BSD License diff --git a/tox.ini b/tox.ini index e5efda8..3460676 100644 --- a/tox.ini +++ b/tox.ini @@ -1,13 +1,13 @@ # For more information about tox, see https://tox.readthedocs.io/en/latest/ [tox] -envlist = py{38,39,310,311}-{linux,macos,windows}-pyqt, py{38,39,310}-{linux,macos,windows}-pyside +envlist = py{39,310,311,312}-{linux,macos,windows}-pyqt, py{39,310}-{linux}-pyside [gh-actions] python = - 3.8: py38 3.9: py39 3.10: py310 3.11: py311 + 3.12: py312 [gh-actions:env] PLATFORM = @@ -34,12 +34,12 @@ deps = pytest-xvfb ; sys_platform == 'linux' commands = pytest -v --color=yes --cov=napari_animation --cov-report=xml -[testenv:py{38,39,310,311}-{linux,macos,windows}-pyqt] +[testenv:py{39,310,311,312}-{linux,macos,windows}-pyqt] deps = napari[pyqt5,testing] lxml_html_clean # should only be needed till napari 0.5.0 -[testenv:py{38,39,310}-{linux,macos,windows}-pyside] +[testenv:py{39,310}-{linux}-pyside] deps = napari[pyside2,testing] lxml_html_clean # should only be needed till napari 0.5.0