From 8a3b2750ed80ef4cbf1958d918b248f71c613410 Mon Sep 17 00:00:00 2001 From: David Seddon Date: Wed, 8 Oct 2025 09:53:42 +0100 Subject: [PATCH 1/2] Remove joblib tox job --- tox.ini | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/tox.ini b/tox.ini index a1e12b36..8c7b49c1 100644 --- a/tox.ini +++ b/tox.ini @@ -3,8 +3,7 @@ envlist = clean, check, docs, - {py39,py310,py311,py312,py13}, - py13-joblib-earliest, + {py39,py310,py311,py312,py313}, [base] deps = @@ -27,7 +26,6 @@ basepython = py311: {env:TOXPYTHON:python3.11} py312: {env:TOXPYTHON:python3.12} py313: {env:TOXPYTHON:python3.13} - py313-joblib-earliest: {env:TOXPYTHON:python3.13} {clean,check,docs,report}: {env:TOXPYTHON:python3} setenv = PYTHONPATH={toxinidir}/tests @@ -41,11 +39,6 @@ deps = commands = {posargs:pytest --cov --cov-report=term-missing --benchmark-skip -vv tests} -[testenv:py313-joblib-earliest] -deps = - {[base]deps} - joblib==1.3.0 - [testenv:check] basepython = py313 deps = @@ -121,4 +114,4 @@ python = 3.10: py310, report 3.11: py311, report 3.12: py312, report - 3.13: py313, py313-joblib-earliest, report, check, docs + 3.13: py313, report, check, docs From 4666a7b8606e30840822d4b9a3fd58bc10ef596e Mon Sep 17 00:00:00 2001 From: David Seddon Date: Wed, 8 Oct 2025 09:47:15 +0100 Subject: [PATCH 2/2] Support Python 3.14 --- .github/workflows/main.yml | 17 +++++++++-------- .github/workflows/release.yml | 22 +++++++++++++--------- CHANGELOG.rst | 5 +++++ pyproject.toml | 1 + tox.ini | 8 +++++--- 5 files changed, 33 insertions(+), 20 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0a8e41bd..9290edf4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: python-version: [ - "3.9", "3.10", "3.11", "3.12", "3.13-dev" + "3.9", "3.10", "3.11", "3.12", "3.13", "3.14" ] os: [ubuntu-latest, macos-latest, windows-latest] @@ -25,7 +25,7 @@ jobs: - uses: actions-rs/toolchain@v1 with: toolchain: stable - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Install dependencies @@ -40,7 +40,7 @@ jobs: check_rust: name: Check Rust - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 @@ -59,15 +59,15 @@ jobs: working-directory: ./rust benchmarks: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v7 - name: Setup python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.13" allow-prereleases: true @@ -82,8 +82,9 @@ jobs: uv pip install pytest==7.4.4 pyyaml==6.0.1 pytest-codspeed==3.2.0 Django==5.1.1 /home/runner/work/grimp/grimp - name: Run benchmarks - uses: CodSpeedHQ/action@v3 + uses: CodSpeedHQ/action@v4 with: token: ${{ secrets.CODSPEED_TOKEN }} + mode: instrumentation run: | uv run pytest tests/benchmarking/ --codspeed \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bb7b983d..19667b85 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,8 +33,8 @@ jobs: - runner: ubuntu-latest target: ppc64le steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v5 + - uses: actions/setup-python@v6 with: python-version: | 3.9 @@ -42,6 +42,7 @@ jobs: 3.11 3.12 3.13 + 3.14 allow-prereleases: true - name: Build wheels uses: PyO3/maturin-action@v1 @@ -70,8 +71,8 @@ jobs: - runner: ubuntu-latest target: armv7 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v5 + - uses: actions/setup-python@v6 with: python-version: | 3.9 @@ -79,6 +80,7 @@ jobs: 3.11 3.12 3.13 + 3.14 allow-prereleases: true - name: Build wheels uses: PyO3/maturin-action@v1 @@ -103,8 +105,8 @@ jobs: - runner: windows-latest target: x86 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v5 + - uses: actions/setup-python@v6 with: python-version: | 3.9 @@ -112,6 +114,7 @@ jobs: 3.11 3.12 3.13 + 3.14 allow-prereleases: true architecture: ${{ matrix.platform.target }} - name: Build wheels @@ -136,8 +139,8 @@ jobs: - runner: macos-14 target: aarch64 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v5 + - uses: actions/setup-python@v6 with: python-version: | 3.9 @@ -145,6 +148,7 @@ jobs: 3.11 3.12 3.13 + 3.14 allow-prereleases: true - name: Build wheels uses: PyO3/maturin-action@v1 @@ -161,7 +165,7 @@ jobs: sdist: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Build sdist uses: PyO3/maturin-action@v1 with: diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 78b3e8b5..9edab700 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog ========= +latest +------ + +* Officially support Python 3.14. + 3.11 (2025-09-01) ----------------- diff --git a/pyproject.toml b/pyproject.toml index 0d493960..c3e07ffb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Rust", "Topic :: Utilities", diff --git a/tox.ini b/tox.ini index 8c7b49c1..8b4fb848 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,7 @@ envlist = clean, check, docs, - {py39,py310,py311,py312,py313}, + {py39,py310,py311,py312,py313,py314}, [base] deps = @@ -26,6 +26,7 @@ basepython = py311: {env:TOXPYTHON:python3.11} py312: {env:TOXPYTHON:python3.12} py313: {env:TOXPYTHON:python3.13} + py314: {env:TOXPYTHON:python3.14} {clean,check,docs,report}: {env:TOXPYTHON:python3} setenv = PYTHONPATH={toxinidir}/tests @@ -55,7 +56,7 @@ commands = lint-imports [testenv:benchmark] -basepython = py313 +basepython = py314 setenv = PYTHONPATH={toxinidir}/tests PYTHONUNBUFFERED=yes @@ -71,7 +72,7 @@ commands = {posargs:pytest --benchmark-only --benchmark-autosave} [testenv:codspeed] -basepython = py313 +basepython = py314 setenv = PYTHONPATH={toxinidir}/tests PYTHONUNBUFFERED=yes @@ -115,3 +116,4 @@ python = 3.11: py311, report 3.12: py312, report 3.13: py313, report, check, docs + 3.14: py314, report