diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml index e574a2ab34..c602ffc018 100644 --- a/.github/workflows/bump-version.yml +++ b/.github/workflows/bump-version.yml @@ -195,11 +195,11 @@ jobs: echo "steps.script.outputs.old_tag=v${current_tag}" echo "old_tag=v${current_tag}" >> $GITHUB_OUTPUT - - name: Set up Python 3.12 + - name: Set up Python 3.13 if: success() uses: actions/setup-python@v5 with: - python-version: '3.12' + python-version: '3.13' - name: Install Python dependencies run: | diff --git a/.github/workflows/ci-windows.yml b/.github/workflows/ci-windows.yml index b625754baf..d4cff442ff 100644 --- a/.github/workflows/ci-windows.yml +++ b/.github/workflows/ci-windows.yml @@ -20,7 +20,7 @@ jobs: strategy: matrix: os: [windows-latest] - python-version: ['3.9', '3.10', '3.11', '3.12'] + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 668a315959..9f56a516c1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,13 +30,13 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] include: - os: macos-latest - python-version: '3.12' + python-version: '3.13' # Intel runner - os: macos-13 - python-version: '3.12' + python-version: '3.13' steps: - uses: actions/checkout@v4 @@ -47,18 +47,10 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies - if: matrix.python-version != '3.8' run: | python -m pip install uv uv pip install --system --upgrade ".[all,test]" - # c.f. https://github.com/astral-sh/uv/issues/2062 - - name: Install dependencies (Python 3.8) - if: matrix.python-version == '3.8' - run: | - python -m pip install --upgrade pip - python -m pip install --upgrade ".[all,test]" - - name: List installed Python packages run: python -m pip list @@ -97,7 +89,7 @@ jobs: coverage xml - name: Report contrib coverage with Codecov - if: github.event_name != 'schedule' && matrix.python-version == '3.12' && matrix.os == 'ubuntu-latest' + if: github.event_name != 'schedule' && matrix.python-version == '3.13' && matrix.os == 'ubuntu-latest' uses: codecov/codecov-action@v5 with: fail_ci_if_error: true @@ -107,17 +99,17 @@ jobs: - name: Test docstring examples with doctest # TODO: Don't currently try to match amd64 and arm64 floating point for docs, but will in the future. - if: matrix.python-version == '3.12' && matrix.os != 'macos-latest' + if: matrix.python-version == '3.13' && matrix.os != 'macos-latest' run: coverage run --data-file=.coverage-doctest --module pytest src/ README.rst - name: Coverage report for doctest only - if: matrix.python-version == '3.12' && matrix.os != 'macos-latest' + if: matrix.python-version == '3.13' && matrix.os != 'macos-latest' run: | coverage report --data-file=.coverage-doctest coverage xml --data-file=.coverage-doctest -o doctest-coverage.xml - name: Report doctest coverage with Codecov - if: github.event_name != 'schedule' && matrix.python-version == '3.12' && matrix.os == 'ubuntu-latest' + if: github.event_name != 'schedule' && matrix.python-version == '3.13' && matrix.os == 'ubuntu-latest' uses: codecov/codecov-action@v5 with: fail_ci_if_error: true @@ -126,6 +118,6 @@ jobs: token: ${{ secrets.CODECOV_TOKEN }} - name: Run benchmarks - if: github.event_name == 'schedule' && matrix.python-version == '3.12' + if: github.event_name == 'schedule' && matrix.python-version == '3.13' run: | pytest --benchmark-sort=mean tests/benchmarks/test_benchmark.py diff --git a/.github/workflows/dependencies-head.yml b/.github/workflows/dependencies-head.yml index c714392d81..0742036e50 100644 --- a/.github/workflows/dependencies-head.yml +++ b/.github/workflows/dependencies-head.yml @@ -20,7 +20,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest, macos-13] - python-version: ['3.12'] + python-version: ['3.13'] steps: - uses: actions/checkout@v4 @@ -50,7 +50,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.12'] + python-version: ['3.13'] steps: - uses: actions/checkout@v4 @@ -79,7 +79,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.12'] + python-version: ['3.13'] steps: - uses: actions/checkout@v4 @@ -105,7 +105,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.12'] + python-version: ['3.13'] steps: - uses: actions/checkout@v4 @@ -130,7 +130,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.12'] + python-version: ['3.13'] steps: - uses: actions/checkout@v4 @@ -168,7 +168,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.12'] + python-version: ['3.13'] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c7a99fda4d..a802b904c9 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -27,7 +27,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.12' + python-version: '3.13' - name: Install Python dependencies run: | diff --git a/.github/workflows/lower-bound-requirements.yml b/.github/workflows/lower-bound-requirements.yml index 5bdd837c68..81130f861f 100644 --- a/.github/workflows/lower-bound-requirements.yml +++ b/.github/workflows/lower-bound-requirements.yml @@ -17,7 +17,7 @@ jobs: matrix: os: [ubuntu-latest] # minimum supported Python - python-version: ['3.8'] + python-version: ['3.9'] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/notebooks.yml b/.github/workflows/notebooks.yml index 52b6fb1af4..8e06f6e6d7 100644 --- a/.github/workflows/notebooks.yml +++ b/.github/workflows/notebooks.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.12'] + python-version: ['3.13'] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/publish-package.yml b/.github/workflows/publish-package.yml index 370cbf41a5..e4f2d7dd43 100644 --- a/.github/workflows/publish-package.yml +++ b/.github/workflows/publish-package.yml @@ -41,10 +41,10 @@ jobs: with: fetch-depth: 0 - - 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 python-build and twine run: | diff --git a/.github/workflows/release_tests.yml b/.github/workflows/release_tests.yml index 0569562704..362b019b37 100644 --- a/.github/workflows/release_tests.yml +++ b/.github/workflows/release_tests.yml @@ -21,13 +21,13 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] include: - os: macos-latest - python-version: '3.12' + python-version: '3.13' # Intel runner - os: macos-13 - python-version: '3.12' + python-version: '3.13' fail-fast: false steps: diff --git a/tests/contrib/test_viz.py b/tests/contrib/test_viz.py index f8f760931f..f7c0b29427 100644 --- a/tests/contrib/test_viz.py +++ b/tests/contrib/test_viz.py @@ -1,5 +1,4 @@ import json -import sys import matplotlib import matplotlib.pyplot as plt @@ -68,10 +67,6 @@ def test_plot_results(datadir): @pytest.mark.mpl_image_compare -@pytest.mark.xfail( - sys.version_info < (3, 8), - reason="baseline image generated with matplotlib v3.6.0 which is Python 3.8+", -) def test_plot_results_no_axis(datadir): data = json.load(datadir.joinpath("hypotest_results.json").open(encoding="utf-8"))