diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 828ff23..40c0376 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,7 +18,7 @@ jobs: needs: [ ruff ] strategy: matrix: - python-version: [3.8, 3.9, "3.10", 3.11, 3.12] + python-version: [3.8, 3.9, "3.10", 3.11, 3.12, 3.13] django-version: [4.2, 5.0, 5.1, "main"] exclude: # Django 5.0 @@ -83,16 +83,10 @@ jobs: needs: [ tests_matrix ] steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: "3.11" - cache: 'pip' - cache-dependency-path: requirements-dev.txt - - name: Build package - run: | - python -m pip install -r requirements-dev.txt - make build - + - name: Install uv + uses: astral-sh/setup-uv@v3 + - name: Build + run: make build tests: if: always() diff --git a/.gitignore b/.gitignore index 30e3e14..232409b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,35 @@ -*.pyc -__pycache__ + +# Editors +.vscode/ +.idea/ + +# Local development +.python-version +.envrc +.venv +uv.lock + +# Testing +.coverage* +.tox/ + +# Vagrant +.vagrant/ + +# Mac/OSX +.DS_Store + +# Windows +Thumbs.db + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# Distribution / packaging *.egg-info docs/_build/ -.coverage* dist/ -.python-version -.tox/ build/ build-check-description/ diff --git a/Makefile b/Makefile index ce52ca5..e162ca5 100644 --- a/Makefile +++ b/Makefile @@ -46,11 +46,11 @@ endif .PHONY: build build: - python -m build - twine check dist/* - check-manifest - pyroma . - check-wheel-contents dist + uv build + uvx twine check dist/* + uvx check-manifest + uvx pyroma . + uvx check-wheel-contents dist .PHONY: publish publish: porcelain branch docs build diff --git a/pyproject.toml b/pyproject.toml index 1398682..d259a9b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] -build-backend = "setuptools.build_meta" -requires = ["setuptools>=64"] +requires = ["hatchling"] +build-backend = "hatchling.build" [project] authors = [ @@ -88,3 +88,14 @@ package = ["src/django_marina", "*/django_marina/src/django_marina"] [tool.coverage.report] show_missing = true skip_covered = true + +[dependency-groups] +dev = [ + "check-manifest>=0.50", + "check-wheel-contents>=0.6.0", + "coverage>=7.6.1", + "pyroma>=4.2", + "ruff>=0.7.1", + "tox-uv>=1.13.1", + "twine>=5.1.1", +] diff --git a/tox.ini b/tox.ini index 37926f1..d79b523 100644 --- a/tox.ini +++ b/tox.ini @@ -6,6 +6,7 @@ envlist = py310-{4.2,5.0,5.1,main}, py311-{4.2,5.0,5.1,main}, py312-{4.2,5.0,5.1,main}, + py313-{4.2,5.0,5.1,main}, docs, ruff, @@ -16,6 +17,7 @@ basepython = py310: python3.10 py311: python3.11 py312: python3.12 + py313: python3.13 usedevelop = true pip_pre = true setenv =