From 3d08b6089eee359d9f4af7b462ebb25e556f58aa Mon Sep 17 00:00:00 2001 From: Matthew Avaylon Date: Fri, 22 Nov 2024 16:26:02 -0800 Subject: [PATCH] Remove Python 3.8 and add Python 3.13 (#240) * Update tox.ini * Update requirements-min.txt * Update HDMF_dev.yaml * Update check_external_links.yml * Update run_all_tests.yml * Update run_coverage.yml * Update run_tests.yml * Update bug_report.yml * Update requirements-min.txt * Update requirements-min.txt * Update requirements-min.txt * Update requirements-min.txt * Update pyproject.toml * Update HDMF_dev.yaml * Update HDMF_dev.yaml * Update pyproject.toml * Update requirements-min.txt * Update requirements-min.txt * Update requirements.txt * Update requirements-min.txt * Update pyproject.toml * Update CHANGELOG.md * Update requirements.txt * Update pyproject.toml * Update CHANGELOG.md * Update pyproject.toml * Update requirements-dev.txt * Update requirements-dev.txt --------- Co-authored-by: Ryan Ly --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/workflows/HDMF_dev.yaml | 4 +- .github/workflows/check_external_links.yml | 2 +- .github/workflows/run_all_tests.yml | 60 ++++++++--------- .github/workflows/run_coverage.yml | 2 +- .github/workflows/run_tests.yml | 28 ++++---- CHANGELOG.md | 1 + pyproject.toml | 7 +- requirements-dev.txt | 6 +- requirements-min.txt | 9 ++- tox.ini | 76 +++++++++++----------- 11 files changed, 98 insertions(+), 99 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 9eac2de0..5f5b3171 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -62,11 +62,11 @@ body: attributes: label: Python Version options: - - "3.8" - "3.9" - "3.10" - "3.11" - "3.12" + - "3.13" validations: required: true - type: textarea diff --git a/.github/workflows/HDMF_dev.yaml b/.github/workflows/HDMF_dev.yaml index eb6a4900..b493b079 100644 --- a/.github/workflows/HDMF_dev.yaml +++ b/.github/workflows/HDMF_dev.yaml @@ -16,10 +16,10 @@ jobs: with: fetch-depth: 0 # tags are required for versioneer to determine the version - - name: Set up Python 3.12 + - name: Set up Python 3.13 uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.13" - name: Install HDMF_Zarr Requirements run: | diff --git a/.github/workflows/check_external_links.yml b/.github/workflows/check_external_links.yml index 8a3a98d1..2fadbb80 100644 --- a/.github/workflows/check_external_links.yml +++ b/.github/workflows/check_external_links.yml @@ -22,7 +22,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.12' + python-version: '3.13' - name: Install Sphinx dependencies and package run: | diff --git a/.github/workflows/run_all_tests.yml b/.github/workflows/run_all_tests.yml index b9616c6f..92bf2fcc 100644 --- a/.github/workflows/run_all_tests.yml +++ b/.github/workflows/run_all_tests.yml @@ -22,30 +22,30 @@ jobs: fail-fast: false matrix: include: - - { name: linux-python3.8-minimum , test-tox-env: py38-minimum , build-tox-env: build-py38-minimum , python-ver: "3.8" , os: ubuntu-latest } - - { name: linux-python3.9 , test-tox-env: py39 , build-tox-env: build-py39 , python-ver: "3.9" , os: ubuntu-latest } + - { name: linux-python3.9-minimum , test-tox-env: py39-minimum , build-tox-env: build-py39-minimum , python-ver: "3.9" , os: ubuntu-latest } - { name: linux-python3.10 , test-tox-env: py310 , build-tox-env: build-py310 , python-ver: "3.10", os: ubuntu-latest } - { name: linux-python3.11 , test-tox-env: py311 , build-tox-env: build-py311 , python-ver: "3.11", os: ubuntu-latest } - { name: linux-python3.12 , test-tox-env: py312 , build-tox-env: build-py312 , python-ver: "3.12", os: ubuntu-latest } - - { name: linux-python3.12-optional , test-tox-env: py312-optional , build-tox-env: build-py312-optional , python-ver: "3.12", os: ubuntu-latest } - - { name: linux-python3.12-upgraded , test-tox-env: py312-upgraded , build-tox-env: build-py312-upgraded , python-ver: "3.12", os: ubuntu-latest } - - { name: linux-python3.12-prerelease , test-tox-env: py312-prerelease, build-tox-env: build-py312-prerelease, python-ver: "3.12", os: ubuntu-latest } - - { name: windows-python3.8-minimum , test-tox-env: py38-minimum , build-tox-env: build-py38-minimum , python-ver: "3.8" , os: windows-latest } - - { name: windows-python3.9 , test-tox-env: py39 , build-tox-env: build-py39 , python-ver: "3.9" , os: windows-latest } + - { name: linux-python3.13 , test-tox-env: py313 , build-tox-env: build-py313 , python-ver: "3.13", os: ubuntu-latest } + - { name: linux-python3.13-optional , test-tox-env: py313-optional , build-tox-env: build-py313-optional , python-ver: "3.13", os: ubuntu-latest } + - { name: linux-python3.13-upgraded , test-tox-env: py313-upgraded , build-tox-env: build-py313-upgraded , python-ver: "3.13", os: ubuntu-latest } + - { name: linux-python3.13-prerelease , test-tox-env: py313-prerelease, build-tox-env: build-py313-prerelease, python-ver: "3.13", os: ubuntu-latest } + - { name: windows-python3.9-minimum , test-tox-env: py39-minimum , build-tox-env: build-py39-minimum , python-ver: "3.9" , os: windows-latest } - { name: windows-python3.10 , test-tox-env: py310 , build-tox-env: build-py310 , python-ver: "3.10", os: windows-latest } - { name: windows-python3.11 , test-tox-env: py311 , build-tox-env: build-py311 , python-ver: "3.11", os: windows-latest } - { name: windows-python3.12 , test-tox-env: py312 , build-tox-env: build-py312 , python-ver: "3.12", os: windows-latest } - - { name: windows-python3.12-optional , test-tox-env: py312-optional , build-tox-env: build-py312-optional , python-ver: "3.12", os: windows-latest } - - { name: windows-python3.12-upgraded , test-tox-env: py312-upgraded , build-tox-env: build-py312-upgraded , python-ver: "3.12", os: windows-latest } - - { name: windows-python3.12-prerelease, test-tox-env: py312-prerelease, build-tox-env: build-py312-prerelease, python-ver: "3.12", os: windows-latest } - - { name: macos-python3.8-minimum , test-tox-env: py38-minimum , build-tox-env: build-py38-minimum , python-ver: "3.8" , os: macos-latest } - - { name: macos-python3.9 , test-tox-env: py39 , build-tox-env: build-py39 , python-ver: "3.9" , os: macos-latest } + - { name: windows-python3.13 , test-tox-env: py313 , build-tox-env: build-py313 , python-ver: "3.13", os: windows-latest } + - { name: windows-python3.13-optional , test-tox-env: py313-optional , build-tox-env: build-py313-optional , python-ver: "3.13", os: windows-latest } + - { name: windows-python3.13-upgraded , test-tox-env: py313-upgraded , build-tox-env: build-py313-upgraded , python-ver: "3.13", os: windows-latest } + - { name: windows-python3.13-prerelease, test-tox-env: py313-prerelease, build-tox-env: build-py313-prerelease, python-ver: "3.13", os: windows-latest } + - { name: macos-python3.9-minimum , test-tox-env: py39-minimum , build-tox-env: build-py39-minimum , python-ver: "3.9" , os: macos-latest } - { name: macos-python3.10 , test-tox-env: py310 , build-tox-env: build-py310 , python-ver: "3.10", os: macos-latest } - { name: macos-python3.11 , test-tox-env: py311 , build-tox-env: build-py311 , python-ver: "3.11", os: macos-latest } - { name: macos-python3.12 , test-tox-env: py312 , build-tox-env: build-py312 , python-ver: "3.12", os: macos-latest } - - { name: macos-python3.12-optional , test-tox-env: py312-optional , build-tox-env: build-py312-optional , python-ver: "3.12", os: macos-latest } - - { name: macos-python3.12-upgraded , test-tox-env: py312-upgraded , build-tox-env: build-py312-upgraded , python-ver: "3.12", os: macos-latest } - - { name: macos-python3.12-prerelease , test-tox-env: py312-prerelease, build-tox-env: build-py312-prerelease, python-ver: "3.12", os: macos-latest } + - { name: macos-python3.13 , test-tox-env: py313 , build-tox-env: build-py313 , python-ver: "3.13", os: macos-latest } + - { name: macos-python3.13-optional , test-tox-env: py313-optional , build-tox-env: build-py313-optional , python-ver: "3.13", os: macos-latest } + - { name: macos-python3.13-upgraded , test-tox-env: py313-upgraded , build-tox-env: build-py313-upgraded , python-ver: "3.13", os: macos-latest } + - { name: macos-python3.13-prerelease , test-tox-env: py313-prerelease, build-tox-env: build-py313-prerelease, python-ver: "3.13", os: macos-latest } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -88,15 +88,15 @@ jobs: fail-fast: false matrix: include: - - { name: linux-gallery-python3.8-minimum , test-tox-env: gallery-py38-minimum , python-ver: "3.8" , os: ubuntu-latest } - - { name: linux-gallery-python3.12-upgraded , test-tox-env: gallery-py312-upgraded , python-ver: "3.12", os: ubuntu-latest } - - { name: linux-gallery-python3.12-prerelease , test-tox-env: gallery-py312-prerelease, python-ver: "3.12", os: ubuntu-latest } - - { name: windows-gallery-python3.8-minimum , test-tox-env: gallery-py38-minimum , python-ver: "3.8" , os: windows-latest } - - { name: windows-gallery-python3.12-upgraded , test-tox-env: gallery-py312-upgraded , python-ver: "3.12", os: windows-latest } - - { name: windows-gallery-python3.12-prerelease, test-tox-env: gallery-py312-prerelease, python-ver: "3.12", os: windows-latest } - - { name: macos-gallery-python3.8-minimum , test-tox-env: gallery-py38-minimum , python-ver: "3.8" , os: macos-latest } - - { name: macos-gallery-python3.12-upgraded , test-tox-env: gallery-py312-upgraded , python-ver: "3.12", os: macos-latest } - - { name: macos-gallery-python3.12-prerelease , test-tox-env: gallery-py312-prerelease, python-ver: "3.12", os: macos-latest } + - { name: linux-gallery-python3.9-minimum , test-tox-env: gallery-py39-minimum , python-ver: "3.9" , os: ubuntu-latest } + - { name: linux-gallery-python3.13-upgraded , test-tox-env: gallery-py313-upgraded , python-ver: "3.13", os: ubuntu-latest } + - { name: linux-gallery-python3.13-prerelease , test-tox-env: gallery-py313-prerelease, python-ver: "3.13", os: ubuntu-latest } + - { name: windows-gallery-python3.9-minimum , test-tox-env: gallery-py39-minimum , python-ver: "3.9" , os: windows-latest } + - { name: windows-gallery-python3.13-upgraded , test-tox-env: gallery-py313-upgraded , python-ver: "3.13", os: windows-latest } + - { name: windows-gallery-python3.13-prerelease, test-tox-env: gallery-py313-prerelease, python-ver: "3.13", os: windows-latest } + - { name: macos-gallery-python3.9-minimum , test-tox-env: gallery-py39-minimum , python-ver: "3.9" , os: macos-latest } + - { name: macos-gallery-python3.13-upgraded , test-tox-env: gallery-py313-upgraded , python-ver: "3.13", os: macos-latest } + - { name: macos-gallery-python3.13-prerelease , test-tox-env: gallery-py313-prerelease, python-ver: "3.13", os: macos-latest } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -132,14 +132,14 @@ jobs: fail-fast: false matrix: include: - - { name: conda-linux-python3.8-minimum , test-tox-env: py38-minimum , build-tox-env: build-py38-minimum , python-ver: "3.8" , os: ubuntu-latest } - - { name: conda-linux-python3.9 , test-tox-env: py39 , build-tox-env: build-py39 , python-ver: "3.9" , os: ubuntu-latest } + - { name: conda-linux-python3.9-minimum , test-tox-env: py39-minimum , build-tox-env: build-py39-minimum , python-ver: "3.8" , os: ubuntu-latest } - { name: conda-linux-python3.10 , test-tox-env: py310 , build-tox-env: build-py310 , python-ver: "3.10", os: ubuntu-latest } - { name: conda-linux-python3.11 , test-tox-env: py311 , build-tox-env: build-py311 , python-ver: "3.11", os: ubuntu-latest } - - { name: conda-linux-python3.12 , test-tox-env: py312 , build-tox-env: build-py312 , python-ver: "3.12", os: ubuntu-latest } - - { name: conda-linux-python3.12-optional , test-tox-env: py312-optional , build-tox-env: build-py312-optional , python-ver: "3.12", os: ubuntu-latest } - - { name: conda-linux-python3.12-upgraded , test-tox-env: py312-upgraded , build-tox-env: build-py312-upgraded , python-ver: "3.12", os: ubuntu-latest } - - { name: conda-linux-python3.12-prerelease, test-tox-env: py312-prerelease, build-tox-env: build-py312-prerelease, python-ver: "3.12", os: ubuntu-latest } + - { name: conda-linux-python3.12 , test-tox-env: py312 , build-tox-env: build-py312 , python-ver: "3.12", os: ubuntu-latest } + - { name: conda-linux-python3.13 , test-tox-env: py313 , build-tox-env: build-py313 , python-ver: "3.13", os: ubuntu-latest } + - { name: conda-linux-python3.13-optional , test-tox-env: py313-optional , build-tox-env: build-py313-optional , python-ver: "3.13", os: ubuntu-latest } + - { name: conda-linux-python3.13-upgraded , test-tox-env: py313-upgraded , build-tox-env: build-py313-upgraded , python-ver: "3.13", os: ubuntu-latest } + - { name: conda-linux-python3.13-prerelease, test-tox-env: py313-prerelease, build-tox-env: build-py313-prerelease, python-ver: "3.13", os: ubuntu-latest } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 diff --git a/.github/workflows/run_coverage.yml b/.github/workflows/run_coverage.yml index 4e96604d..21150fc5 100644 --- a/.github/workflows/run_coverage.yml +++ b/.github/workflows/run_coverage.yml @@ -28,7 +28,7 @@ jobs: - { os: macos-latest , opt_req: false } env: OS: ${{ matrix.os }} - PYTHON: '3.12' + PYTHON: '3.13' steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml index a4a42e6d..827606c0 100644 --- a/.github/workflows/run_tests.yml +++ b/.github/workflows/run_tests.yml @@ -19,14 +19,14 @@ jobs: fail-fast: false matrix: include: - - { name: linux-python3.8-minimum , test-tox-env: py38-minimum , build-tox-env: build-py38-minimum , python-ver: "3.8" , os: ubuntu-latest } - - { name: linux-python3.12 , test-tox-env: py312 , build-tox-env: build-py312 , python-ver: "3.12", os: ubuntu-latest } + - { name: linux-python3.9-minimum , test-tox-env: py39-minimum , build-tox-env: build-py39-minimum , python-ver: "3.9" , os: ubuntu-latest } + - { name: linux-python3.13 , test-tox-env: py313 , build-tox-env: build-py313 , python-ver: "3.13", os: ubuntu-latest } # NOTE config below with "upload-wheels: true" specifies that wheels should be uploaded as an artifact - - { name: linux-python3.12-upgraded , test-tox-env: py312-upgraded , build-tox-env: build-py312-upgraded , python-ver: "3.12", os: ubuntu-latest , upload-wheels: true } - - { name: windows-python3.8-minimum , test-tox-env: py38-minimum , build-tox-env: build-py38-minimum , python-ver: "3.8" , os: windows-latest } - - { name: windows-python3.12-upgraded , test-tox-env: py312-upgraded , build-tox-env: build-py312-upgraded , python-ver: "3.12", os: windows-latest } - - { name: macos-python3.8-minimum , test-tox-env: py38-minimum , build-tox-env: build-py38-minimum , python-ver: "3.8" , os: macos-latest } - - { name: macos-python3.12-upgraded , test-tox-env: py312-upgraded , build-tox-env: build-py312-upgraded , python-ver: "3.12", os: macos-latest } + - { name: linux-python3.13-upgraded , test-tox-env: py313-upgraded , build-tox-env: build-py313-upgraded , python-ver: "3.13", os: ubuntu-latest , upload-wheels: true } + - { name: windows-python3.9-minimum , test-tox-env: py39-minimum , build-tox-env: build-py39-minimum , python-ver: "3.9" , os: windows-latest } + - { name: windows-python3.13-upgraded , test-tox-env: py313-upgraded , build-tox-env: build-py313-upgraded , python-ver: "3.13", os: windows-latest } + - { name: macos-python3.9-minimum , test-tox-env: py39-minimum , build-tox-env: build-py39-minimum , python-ver: "3.9" , os: macos-latest } + - { name: macos-python3.13-upgraded , test-tox-env: py313-upgraded , build-tox-env: build-py313-upgraded , python-ver: "3.13", os: macos-latest } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -76,10 +76,10 @@ jobs: fail-fast: false matrix: include: - - { name: linux-gallery-python3.8-minimum , test-tox-env: gallery-py38-minimum , python-ver: "3.8" , os: ubuntu-latest } - - { name: linux-gallery-python3.12-upgraded , test-tox-env: gallery-py312-upgraded, python-ver: "3.12", os: ubuntu-latest } - - { name: windows-gallery-python3.8-minimum , test-tox-env: gallery-py38-minimum , python-ver: "3.8" , os: windows-latest } - - { name: windows-gallery-python3.12-upgraded, test-tox-env: gallery-py312-upgraded, python-ver: "3.12", os: windows-latest } + - { name: linux-gallery-python3.9-minimum , test-tox-env: gallery-py39-minimum , python-ver: "3.9" , os: ubuntu-latest } + - { name: linux-gallery-python3.13-upgraded , test-tox-env: gallery-py313-upgraded, python-ver: "3.13", os: ubuntu-latest } + - { name: windows-gallery-python3.9-minimum , test-tox-env: gallery-py39-minimum , python-ver: "3.9" , os: windows-latest } + - { name: windows-gallery-python3.13-upgraded, test-tox-env: gallery-py313-upgraded, python-ver: "3.13", os: windows-latest } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -114,8 +114,8 @@ jobs: fail-fast: false matrix: include: - - { name: conda-linux-python3.8-minimum , test-tox-env: py38-minimum , build-tox-env: build-py38-minimum , python-ver: "3.8" , os: ubuntu-latest } - - { name: conda-linux-python3.12-upgraded , test-tox-env: py312-upgraded , build-tox-env: build-py312-upgraded , python-ver: "3.12", os: ubuntu-latest } + - { name: conda-linux-python3.9-minimum , test-tox-env: py39-minimum , build-tox-env: build-py39-minimum , python-ver: "3.9" , os: ubuntu-latest } + - { name: conda-linux-python3.13-upgraded , test-tox-env: py313-upgraded , build-tox-env: build-py313-upgraded , python-ver: "3.13", os: ubuntu-latest } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -172,7 +172,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.13' - name: Download wheel and source distributions from artifact uses: actions/download-artifact@v4 diff --git a/CHANGELOG.md b/CHANGELOG.md index fb8cf7a3..ff767365 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ * Updated packages used for testing and readthedocs configuration. @mavaylon1, @rly [#214](https://github.com/hdmf-dev/hdmf-zarr/pull/214) * Add `force_overwite` parameter for `ZarrIO.__init__` to allow overwriting an existing file or directory. @oruebel [#229](https://github.com/hdmf-dev/hdmf-zarr/pull/229) * Remove allowance of `hdmf.Array` in `__init__` of `AbstractZarrTableDataset` and `ZarrDataset` to be compatible with HDMF 4.0. @rly [#236](https://github.com/hdmf-dev/hdmf-zarr/pull/236) +* Remove support for python 3.8. @mavaylon1 [#240](https://github.com/hdmf-dev/hdmf-zarr/pull/240) ### Bug Fixes * Fix reading of cached specs and caching of specs during export. @rly [#232](https://github.com/hdmf-dev/hdmf-zarr/pull/232) diff --git a/pyproject.toml b/pyproject.toml index 09a5c881..9b36cba3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,11 +10,10 @@ authors = [ ] description = "A package defining a Zarr I/O backend for HDMF" readme = "README.rst" -requires-python = ">=3.8" +requires-python = ">=3.9" license = {text = "BSD"} classifiers = [ "Programming Language :: Python", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -30,9 +29,9 @@ classifiers = [ ] dependencies = [ 'hdmf>=3.14.5', - 'zarr>=2.11.0, <3.0', # pin below 3.0 until HDMF-zarr supports zarr 3.0 + 'zarr>=2.18.0, <3.0', # pin below 3.0 until HDMF-zarr supports zarr 3.0 'numpy>=1.24', - 'numcodecs>=0.9.1', + 'numcodecs>=0.10.0', 'pynwb>=2.8.3', 'threadpoolctl>=3.1.0', ] diff --git a/requirements-dev.txt b/requirements-dev.txt index 047125eb..75e9ba1c 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -5,11 +5,11 @@ # black==24.3.0 codespell==2.2.6 -coverage==7.3.2 +coverage==7.6.7 hdf5plugin==4.3.0 # hdf5plugin is used to test conversion of plugin filters pre-commit==3.5.0 -pytest==7.4.3 -pytest-cov==4.1.0 +pytest==8.3.3 +pytest-cov==6.0.0 python-dateutil==2.8.2 ruff==0.1.3 tox==4.11.3 diff --git a/requirements-min.txt b/requirements-min.txt index 02f97f1d..bc954b0a 100644 --- a/requirements-min.txt +++ b/requirements-min.txt @@ -1,7 +1,6 @@ -hdmf==3.14.2 -zarr==2.11.0 -numcodecs==0.9.1 -pynwb==2.5.0 +hdmf==3.14.5 +zarr==2.13.0 +numcodecs==0.10.0 +pynwb==2.8.3 setuptools -importlib_resources;python_version<'3.9' # Remove when python 3.9 becomes the new minimum threadpoolctl==3.1.0 diff --git a/tox.ini b/tox.ini index 4722b7c6..96c145e5 100644 --- a/tox.ini +++ b/tox.ini @@ -4,7 +4,7 @@ # and then run "tox" from this directory. [tox] -envlist = py38, py39, py310, py311, py312 +envlist = py39, py310, py311, py312, py313 requires = pip >= 22.0 [testenv] @@ -25,14 +25,14 @@ commands = # Env to create coverage report locally [testenv:localcoverage] -basepython = python3.12 +basepython = python3.13 commands = pytest --cov=hdmf_zarr coverage html -d tests/coverage/htmlcov -# Test with python 3.12; pinned dev and optional reqs +# Test with python 3.13; pinned dev and optional reqs [testenv:py312-optional] -basepython = python3.12 +basepython = python3.13 install_command = python -m pip install {opts} {packages} deps = @@ -40,9 +40,9 @@ deps = -rrequirements-opt.txt commands = {[testenv]commands} -# Test with python 3.12; pinned dev and optional reqs; upgraded run reqs -[testenv:py312-upgraded] -basepython = python3.12 +# Test with python 3.13; pinned dev and optional reqs; upgraded run reqs +[testenv:py313-upgraded] +basepython = python3.13 install_command = python -m pip install -U {opts} {packages} deps = @@ -50,9 +50,9 @@ deps = -rrequirements-opt.txt commands = {[testenv]commands} -# Test with python 3.12; pinned dev and optional reqs; upgraded, pre-release run reqs -[testenv:py312-prerelease] -basepython = python3.12 +# Test with python 3.13; pinned dev and optional reqs; upgraded, pre-release run reqs +[testenv:py313-prerelease] +basepython = python3.13 install_command = python -m pip install -U --pre {opts} {packages} deps = @@ -60,9 +60,9 @@ deps = -rrequirements-opt.txt commands = {[testenv]commands} -# Test with python 3.8; pinned dev reqs; minimum run reqs -[testenv:py38-minimum] -basepython = python3.8 +# Test with python 3.9; pinned dev reqs; minimum run reqs +[testenv:py39-minimum] +basepython = python3.9 deps = -rrequirements-dev.txt -rrequirements-min.txt @@ -74,10 +74,6 @@ commands = python -m pip install --upgrade build python -m build -[testenv:build-py38] -basepython = python3.8 -commands = {[testenv:build]commands} - [testenv:build-py39] basepython = python3.9 commands = {[testenv:build]commands} @@ -94,15 +90,19 @@ commands = {[testenv:build]commands} basepython = python3.12 commands = {[testenv:build]commands} -[testenv:build-py312-optional] -basepython = python3.12 +[testenv:build-py313] +basepython = python3.13 +commands = {[testenv:build]commands} + +[testenv:build-py313-optional] +basepython = python3.13 deps = {[testenv]deps} -rrequirements-opt.txt commands = {[testenv:build]commands} -[testenv:build-py312-upgraded] -basepython = python3.12 +[testenv:build-py313-upgraded] +basepython = python3.13 install_command = python -m pip install -U {opts} {packages} deps = @@ -110,8 +110,8 @@ deps = -rrequirements-opt.txt commands = {[testenv:build]commands} -[testenv:build-py312-prerelease] -basepython = python3.12 +[testenv:build-py313-prerelease] +basepython = python3.13 install_command = python -m pip install -U --pre {opts} {packages} deps = @@ -119,8 +119,8 @@ deps = -rrequirements-opt.txt commands = {[testenv:build]commands} -[testenv:build-py38-minimum] -basepython = python3.8 +[testenv:build-py39-minimum] +basepython = python3.9 deps = -rrequirements-dev.txt -rrequirements-min.txt @@ -144,11 +144,6 @@ deps = commands = python test_gallery.py -[testenv:gallery-py38] -basepython = python3.8 -deps = {[testenv:gallery]deps} -commands = {[testenv:gallery]commands} - [testenv:gallery-py39] basepython = python3.9 deps = {[testenv:gallery]deps} @@ -169,9 +164,14 @@ basepython = python3.12 deps = {[testenv:gallery]deps} commands = {[testenv:gallery]commands} +[testenv:gallery-py313] +basepython = python3.13 +deps = {[testenv:gallery]deps} +commands = {[testenv:gallery]commands} + # Test with python 3.12; pinned dev, doc, and optional reqs; upgraded run reqs -[testenv:gallery-py312-upgraded] -basepython = python3.12 +[testenv:gallery-py313-upgraded] +basepython = python3.13 install_command = python -m pip install -U {opts} {packages} deps = @@ -180,9 +180,9 @@ deps = -rrequirements-opt.txt commands = {[testenv:gallery]commands} -# Test with python 3.12; pinned dev, doc, and optional reqs; pre-release run reqs -[testenv:gallery-py312-prerelease] -basepython = python3.12 +# Test with python 3.13; pinned dev, doc, and optional reqs; pre-release run reqs +[testenv:gallery-py313-prerelease] +basepython = python3.13 install_command = python -m pip install -U --pre {opts} {packages} deps = @@ -191,9 +191,9 @@ deps = -rrequirements-opt.txt commands = {[testenv:gallery]commands} -# Test with python 3.8; pinned dev and doc reqs; minimum run reqs -[testenv:gallery-py38-minimum] -basepython = python3.8 +# Test with python 3.9; pinned dev and doc reqs; minimum run reqs +[testenv:gallery-py39-minimum] +basepython = python3.9 deps = -rrequirements-dev.txt -rrequirements-min.txt