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 a1e12b36..8b4fb848 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,py314}, [base] deps = @@ -27,7 +26,7 @@ basepython = py311: {env:TOXPYTHON:python3.11} py312: {env:TOXPYTHON:python3.12} py313: {env:TOXPYTHON:python3.13} - py313-joblib-earliest: {env:TOXPYTHON:python3.13} + py314: {env:TOXPYTHON:python3.14} {clean,check,docs,report}: {env:TOXPYTHON:python3} setenv = PYTHONPATH={toxinidir}/tests @@ -41,11 +40,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 = @@ -62,7 +56,7 @@ commands = lint-imports [testenv:benchmark] -basepython = py313 +basepython = py314 setenv = PYTHONPATH={toxinidir}/tests PYTHONUNBUFFERED=yes @@ -78,7 +72,7 @@ commands = {posargs:pytest --benchmark-only --benchmark-autosave} [testenv:codspeed] -basepython = py313 +basepython = py314 setenv = PYTHONPATH={toxinidir}/tests PYTHONUNBUFFERED=yes @@ -121,4 +115,5 @@ 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 + 3.14: py314, report