From 897d3b95ddfadd9364b2e2bc019e6ade86e920ce Mon Sep 17 00:00:00 2001 From: Matthew Avaylon Date: Mon, 11 Mar 2024 09:10:07 -0700 Subject: [PATCH] Update to support python 3.12 (#172) * Update tox.ini * Update pyproject.toml * Update HDMF_dev.yaml * Update check_external_links.yml * Update black.yml * Update deploy_release.yml * Update run_all_tests.yml * Update run_coverage.yml * Update run_tests.yml * Update conf.py * Update bug_report.yml * Update test_gallery.py * Update requirements-min.txt * Update pyproject.toml * Update test_gallery.py * Update pyproject.toml * Update tox.ini * Update CHANGELOG.md --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + .github/workflows/HDMF_dev.yaml | 6 +-- .github/workflows/black.yml | 4 +- .github/workflows/check_external_links.yml | 6 +-- .github/workflows/deploy_release.yml | 6 +-- .github/workflows/run_all_tests.yml | 50 +++++++++++--------- .github/workflows/run_coverage.yml | 6 +-- .github/workflows/run_tests.yml | 28 +++++------ CHANGELOG.md | 4 ++ docs/source/conf.py | 2 +- pyproject.toml | 1 + requirements-min.txt | 2 +- test_gallery.py | 7 +++ tox.ini | 55 +++++++++++++--------- 14 files changed, 102 insertions(+), 76 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index ca2a47cb..9eac2de0 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -66,6 +66,7 @@ body: - "3.9" - "3.10" - "3.11" + - "3.12" validations: required: true - type: textarea diff --git a/.github/workflows/HDMF_dev.yaml b/.github/workflows/HDMF_dev.yaml index 075d8872..47f03bff 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.11 - uses: actions/setup-python@v4 + - name: Set up Python 3.12 + uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.12" - name: Install HDMF_Zarr Requirements run: | diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml index f23bfea1..43c3e683 100644 --- a/.github/workflows/black.yml +++ b/.github/workflows/black.yml @@ -6,8 +6,8 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3.2.0 - - uses: actions/setup-python@v4 + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 - uses: pre-commit/action@v3.0.0 with: extra_args: black diff --git a/.github/workflows/check_external_links.yml b/.github/workflows/check_external_links.yml index 109446ad..8a3a98d1 100644 --- a/.github/workflows/check_external_links.yml +++ b/.github/workflows/check_external_links.yml @@ -15,14 +15,14 @@ jobs: all_but_latest: true access_token: ${{ github.token }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'recursive' - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' - name: Install Sphinx dependencies and package run: | diff --git a/.github/workflows/deploy_release.yml b/.github/workflows/deploy_release.yml index dc6af733..d8c4566c 100644 --- a/.github/workflows/deploy_release.yml +++ b/.github/workflows/deploy_release.yml @@ -18,7 +18,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' - name: Install build dependencies run: | @@ -28,11 +28,11 @@ jobs: - name: Run tox tests run: | - tox -e py311-upgraded + tox -e py312-upgraded - name: Build wheel and source distribution run: | - tox -e build-py311-upgraded + tox -e build-py312-upgraded ls -1 dist - name: Test installation from a wheel diff --git a/.github/workflows/run_all_tests.yml b/.github/workflows/run_all_tests.yml index 5f5810cd..b9616c6f 100644 --- a/.github/workflows/run_all_tests.yml +++ b/.github/workflows/run_all_tests.yml @@ -26,23 +26,26 @@ jobs: - { name: linux-python3.9 , test-tox-env: py39 , build-tox-env: build-py39 , 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.11-optional , test-tox-env: py311-optional , build-tox-env: build-py311-optional , python-ver: "3.11", os: ubuntu-latest } - - { name: linux-python3.11-upgraded , test-tox-env: py311-upgraded , build-tox-env: build-py311-upgraded , python-ver: "3.11", os: ubuntu-latest } - - { name: linux-python3.11-prerelease , test-tox-env: py311-prerelease, build-tox-env: build-py311-prerelease, 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: 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.11-optional , test-tox-env: py311-optional , build-tox-env: build-py311-optional , python-ver: "3.11", os: windows-latest } - - { name: windows-python3.11-upgraded , test-tox-env: py311-upgraded , build-tox-env: build-py311-upgraded , python-ver: "3.11", os: windows-latest } - - { name: windows-python3.11-prerelease, test-tox-env: py311-prerelease, build-tox-env: build-py311-prerelease, 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: 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.11-optional , test-tox-env: py311-optional , build-tox-env: build-py311-optional , python-ver: "3.11", os: macos-latest } - - { name: macos-python3.11-upgraded , test-tox-env: py311-upgraded , build-tox-env: build-py311-upgraded , python-ver: "3.11", os: macos-latest } - - { name: macos-python3.11-prerelease , test-tox-env: py311-prerelease, build-tox-env: build-py311-prerelease, 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 } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -50,13 +53,13 @@ jobs: all_but_latest: true access_token: ${{ github.token }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'recursive' fetch-depth: 0 # tags are required for versioneer to determine the version - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-ver }} @@ -86,14 +89,14 @@ jobs: 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.11-upgraded , test-tox-env: gallery-py311-upgraded , python-ver: "3.11", os: ubuntu-latest } - - { name: linux-gallery-python3.11-prerelease , test-tox-env: gallery-py311-prerelease, python-ver: "3.11", 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.11-upgraded , test-tox-env: gallery-py311-upgraded , python-ver: "3.11", os: windows-latest } - - { name: windows-gallery-python3.11-prerelease, test-tox-env: gallery-py311-prerelease, python-ver: "3.11", 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.11-upgraded , test-tox-env: gallery-py311-upgraded , python-ver: "3.11", os: macos-latest } - - { name: macos-gallery-python3.11-prerelease , test-tox-env: gallery-py311-prerelease, python-ver: "3.11", 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 } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -101,13 +104,13 @@ jobs: all_but_latest: true access_token: ${{ github.token }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'recursive' fetch-depth: 0 # tags are required for versioneer to determine the version - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-ver }} @@ -133,9 +136,10 @@ jobs: - { 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.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.11-optional , test-tox-env: py311-optional , build-tox-env: build-py311-optional , python-ver: "3.11", os: ubuntu-latest } - - { name: conda-linux-python3.11-upgraded , test-tox-env: py311-upgraded , build-tox-env: build-py311-upgraded , python-ver: "3.11", os: ubuntu-latest } - - { name: conda-linux-python3.11-prerelease, test-tox-env: py311-prerelease, build-tox-env: build-py311-prerelease, 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 } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -143,7 +147,7 @@ jobs: all_but_latest: true access_token: ${{ github.token }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'recursive' fetch-depth: 0 # tags are required for versioneer to determine the version diff --git a/.github/workflows/run_coverage.yml b/.github/workflows/run_coverage.yml index d5baaabd..a32ef05d 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.11' + PYTHON: '3.12' steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -36,12 +36,12 @@ jobs: all_but_latest: true access_token: ${{ github.token }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'recursive' - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ env.PYTHON }} diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml index c30d8a3f..0f8d8f9b 100644 --- a/.github/workflows/run_tests.yml +++ b/.github/workflows/run_tests.yml @@ -20,13 +20,13 @@ jobs: 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.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 } # NOTE config below with "upload-wheels: true" specifies that wheels should be uploaded as an artifact - - { name: linux-python3.11-upgraded , test-tox-env: py311-upgraded , build-tox-env: build-py311-upgraded , python-ver: "3.11", os: ubuntu-latest , upload-wheels: true } + - { 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.11-upgraded , test-tox-env: py311-upgraded , build-tox-env: build-py311-upgraded , python-ver: "3.11", 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.11-upgraded , test-tox-env: py311-upgraded , build-tox-env: build-py311-upgraded , python-ver: "3.11", 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 } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -34,13 +34,13 @@ jobs: all_but_latest: true access_token: ${{ github.token }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'recursive' fetch-depth: 0 # tags are required for versioneer to determine the version - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-ver }} @@ -77,9 +77,9 @@ jobs: 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.11-upgraded , test-tox-env: gallery-py311-upgraded, python-ver: "3.11", 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.11-upgraded, test-tox-env: gallery-py311-upgraded, python-ver: "3.11", os: windows-latest } + - { name: windows-gallery-python3.12-upgraded, test-tox-env: gallery-py312-upgraded, python-ver: "3.12", os: windows-latest } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -87,12 +87,12 @@ jobs: all_but_latest: true access_token: ${{ github.token }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'recursive' - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-ver }} @@ -115,7 +115,7 @@ jobs: 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.11-upgraded , test-tox-env: py311-upgraded , build-tox-env: build-py311-upgraded , python-ver: "3.11", 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 } steps: - name: Cancel non-latest runs uses: styfle/cancel-workflow-action@0.11.0 @@ -123,7 +123,7 @@ jobs: all_but_latest: true access_token: ${{ github.token }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'recursive' fetch-depth: 0 # tags are required for versioneer to determine the version @@ -165,12 +165,12 @@ jobs: access_token: ${{ github.token }} - name: Checkout repo with submodules - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: 'recursive' - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a763c66..7eb0e247 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # HDMF-ZARR Changelog +## 0.7.0 (Upcoming) +### Enhancements +* Added support for python 3.12. @mavaylon1 [#172](https://github.com/hdmf-dev/hdmf-zarr/pull/172) + ## 0.6.0 (February 21, 2024) ### Enhancements diff --git a/docs/source/conf.py b/docs/source/conf.py index a3c08a2f..d3bc2002 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -75,7 +75,7 @@ } intersphinx_mapping = { - 'python': ('https://docs.python.org/3.11', None), + 'python': ('https://docs.python.org/3.12', None), 'numpy': ('https://numpy.org/doc/stable/', None), 'scipy': ('https://docs.scipy.org/doc/scipy/', None), 'matplotlib': ('https://matplotlib.org/stable/', None), diff --git a/pyproject.toml b/pyproject.toml index 0944455d..9bcbf1c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,6 +18,7 @@ classifiers = [ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "License :: OSI Approved :: BSD License", "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", diff --git a/requirements-min.txt b/requirements-min.txt index c452e4c5..b5a13e58 100644 --- a/requirements-min.txt +++ b/requirements-min.txt @@ -1,4 +1,4 @@ -hdmf==3.9.0 +hdmf==3.12.0 zarr==2.11.0 numcodecs==0.9.1 pynwb==2.5.0 diff --git a/test_gallery.py b/test_gallery.py index 8ad5ca52..3f3cd5c9 100644 --- a/test_gallery.py +++ b/test_gallery.py @@ -73,6 +73,9 @@ def _import_from_file(script): r"\nPyarrow will become a required dependency of pandas.*" ) +_deprecation_warning_datetime = ( + r"datetime.datetime.utcfromtimestamp() *" +) def run_gallery_tests(): global TOTAL, FAILURES, ERRORS @@ -135,6 +138,10 @@ def run_gallery_tests(): # this warning is triggered from pandas "ignore", message=_deprecation_warning_pandas_pyarrow_re, category=DeprecationWarning ) + warnings.filterwarnings( + # this is triggered from datetime + "ignore", message=_deprecation_warning_datetime, category=DeprecationWarning + ) _import_from_file(script_abs) except Exception: print(traceback.format_exc()) diff --git a/tox.ini b/tox.ini index 720a97f5..4ca607de 100644 --- a/tox.ini +++ b/tox.ini @@ -4,7 +4,7 @@ # and then run "tox" from this directory. [tox] -envlist = py38, py39, py310, py311 +envlist = py38, py39, py310, py311, py312 requires = pip >= 22.0 [testenv] @@ -26,14 +26,14 @@ commands = # Env to create coverage report locally [testenv:localcoverage] -basepython = python3.11 +basepython = python3.12 commands = pytest --cov=hdmf_zarr coverage html -d tests/coverage/htmlcov -# Test with python 3.11; pinned dev and optional reqs -[testenv:py311-optional] -basepython = python3.11 +# Test with python 3.12; pinned dev and optional reqs +[testenv:py312-optional] +basepython = python3.12 install_command = python -m pip install {opts} {packages} deps = @@ -41,9 +41,9 @@ deps = -rrequirements-opt.txt commands = {[testenv]commands} -# Test with python 3.11; pinned dev and optional reqs; upgraded run reqs -[testenv:py311-upgraded] -basepython = python3.11 +# Test with python 3.12; pinned dev and optional reqs; upgraded run reqs +[testenv:py312-upgraded] +basepython = python3.12 install_command = python -m pip install -U {opts} {packages} deps = @@ -51,9 +51,9 @@ deps = -rrequirements-opt.txt commands = {[testenv]commands} -# Test with python 3.11; pinned dev and optional reqs; upgraded, pre-release run reqs -[testenv:py311-prerelease] -basepython = python3.11 +# Test with python 3.12; pinned dev and optional reqs; upgraded, pre-release run reqs +[testenv:py312-prerelease] +basepython = python3.12 install_command = python -m pip install -U --pre {opts} {packages} deps = @@ -91,15 +91,19 @@ commands = {[testenv:build]commands} basepython = python3.11 commands = {[testenv:build]commands} -[testenv:build-py311-optional] -basepython = python3.11 +[testenv:build-py312] +basepython = python3.12 +commands = {[testenv:build]commands} + +[testenv:build-py312-optional] +basepython = python3.12 deps = {[testenv]deps} -rrequirements-opt.txt commands = {[testenv:build]commands} -[testenv:build-py311-upgraded] -basepython = python3.11 +[testenv:build-py312-upgraded] +basepython = python3.12 install_command = python -m pip install -U {opts} {packages} deps = @@ -107,8 +111,8 @@ deps = -rrequirements-opt.txt commands = {[testenv:build]commands} -[testenv:build-py311-prerelease] -basepython = python3.11 +[testenv:build-py312-prerelease] +basepython = python3.12 install_command = python -m pip install -U --pre {opts} {packages} deps = @@ -161,9 +165,14 @@ basepython = python3.11 deps = {[testenv:gallery]deps} commands = {[testenv:gallery]commands} -# Test with python 3.11; pinned dev, doc, and optional reqs; upgraded run reqs -[testenv:gallery-py311-upgraded] -basepython = python3.11 +[testenv:gallery-py312] +basepython = python3.12 +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 install_command = python -m pip install -U {opts} {packages} deps = @@ -172,9 +181,9 @@ deps = -rrequirements-opt.txt commands = {[testenv:gallery]commands} -# Test with python 3.11; pinned dev, doc, and optional reqs; pre-release run reqs -[testenv:gallery-py311-prerelease] -basepython = python3.11 +# Test with python 3.12; pinned dev, doc, and optional reqs; pre-release run reqs +[testenv:gallery-py312-prerelease] +basepython = python3.12 install_command = python -m pip install -U --pre {opts} {packages} deps =