diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 76d26b8..86f421b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,20 +3,22 @@ on: pull_request concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true +permissions: + contents: read jobs: matrix: name: Build test matrix runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false ref: ${{ github.event.pull_request.head.sha }} - name: Setup Python uses: actions/setup-python@v6 with: - python-version: "3.13" + python-version: "3.14" cache: "pip" cache-dependency-path: "requirements/*.txt" - name: Run tox @@ -37,7 +39,7 @@ jobs: fail-fast: false steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false ref: ${{ github.event.pull_request.head.sha }} @@ -58,7 +60,7 @@ jobs: pip install $(grep -E "^(tox|tox-uv)==" requirements/local.txt) tox -e ${{ matrix.tox_env }} - name: Upload coverage data - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: coverage-data-${{ matrix.tox_env }} include-hidden-files: true @@ -66,7 +68,7 @@ jobs: if-no-files-found: ignore services: postgres: - image: postgres:17-alpine + image: postgres:18-alpine env: POSTGRES_PASSWORD: password ports: @@ -80,17 +82,17 @@ jobs: if: always() steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false ref: ${{ github.event.pull_request.head.sha }} - name: Setup Python uses: actions/setup-python@v6 with: - python-version: "3.13" + python-version: "3.14" cache: "pip" cache-dependency-path: "requirements/*.txt" - - uses: actions/download-artifact@v5 + - uses: actions/download-artifact@v8 with: pattern: coverage-data-* merge-multiple: true diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 74e0e26..037bae0 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -23,7 +23,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v6 with: - python-version: "3.13" + python-version: "3.14" - name: Build packages run: | pip install -r requirements/testing.txt diff --git a/LICENSE b/LICENSE index f82098c..e813c56 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2019-2025, Developer Society Limited +Copyright (c) 2019-2026, Developer Society Limited All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/pyproject.toml b/pyproject.toml index 68c8237..a76bc6a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ version = '0.2' description = 'Django Postgres Lock' readme = 'README.md' maintainers = [{ name = 'The Developer Society', email = 'studio@dev.ngo' }] -requires-python = '>= 3.9' +requires-python = '>= 3.10' dependencies = [ 'Django>=3.2', ] @@ -19,11 +19,11 @@ classifiers = [ 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Programming Language :: Python :: 3.13', + 'Programming Language :: Python :: 3.14', ] [project.urls] @@ -41,7 +41,7 @@ include = ['postgres_lock*'] [tool.ruff] line-length = 99 -target-version = 'py39' +target-version = 'py310' [tool.ruff.lint] extend-select = [ diff --git a/requirements/local.txt b/requirements/local.txt index 2ed707f..52e9b37 100644 --- a/requirements/local.txt +++ b/requirements/local.txt @@ -1,7 +1,7 @@ -r testing.txt -bump-my-version==1.2.2 +bump-my-version==1.3.0 Django>=5.2,<6.0 -psycopg==3.2.10 -tox==4.30.2 -tox-uv==1.28.0 +psycopg==3.3.3 +tox==4.51.0 +tox-uv==1.33.4 diff --git a/requirements/testing.txt b/requirements/testing.txt index c5675e3..842404e 100644 --- a/requirements/testing.txt +++ b/requirements/testing.txt @@ -1,6 +1,6 @@ -build==1.3.0 -check-wheel-contents==0.6.1 -coverage==7.10.6 -pipdeptree==2.28.0 -ruff==0.13.0 +build==1.4.2 +check-wheel-contents==0.6.3 +coverage==7.13.5 +pipdeptree==2.34.0 +ruff==0.15.8 twine==6.2.0 diff --git a/tox.ini b/tox.ini index 76ecfc4..3656f7e 100644 --- a/tox.ini +++ b/tox.ini @@ -2,9 +2,9 @@ envlist = check lint - py{39,310}-django3.2 - py{39,310,311,312}-django4.2 - py{310,311,312,313}-django5.2 + py310-django3.2 + py{310,311,312}-django4.2 + py{310,311,312,313,314}-django5.2 coverage no_package = true @@ -22,13 +22,13 @@ commands = make test package = editable [testenv:check] -basepython = python3.13 +basepython = python3.14 commands = make check [testenv:lint] -basepython = python3.13 +basepython = python3.14 commands = make lint [testenv:coverage] -basepython = python3.13 +basepython = python3.14 commands = make coverage-report