diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d8d601e92..06c073565 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -47,6 +47,11 @@ repos: hooks: - id: flake8 + - repo: https://github.com/tox-dev/pyproject-fmt + rev: "2.0.4" + hooks: + - id: pyproject-fmt + ci: autoupdate_schedule: weekly skip: [] diff --git a/CHANGELOG.md b/CHANGELOG.md index ca9dfe2b3..a8ba79a48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ All enhancements and patches to Cookiecutter Django will be documented in this f +## 2024.09.05 + + +### Updated + +- Update django-upgrade to 1.21.0 ([#5348](https://github.com/cookiecutter/cookiecutter-django/pull/5348)) + ## 2024.09.04 diff --git a/pyproject.toml b/pyproject.toml index 6e68762f7..04d40a217 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,35 +1,68 @@ -# ==== pytest ==== -[tool.pytest.ini_options] -addopts = "-v --tb=short" -norecursedirs = [ - ".tox", - ".git", - "*/migrations/*", - "*/static/*", - "docs", - "venv", - "*/{{cookiecutter.project_slug}}/*", +[project] +name = "cookiecutter-django" +version = "2024.09.05" +description = "A Cookiecutter template for creating production-ready Django projects quickly." +readme = "README.md" +keywords = [ + "cookiecutter", + "django", + "project template", + "scaffolding", + "skeleton", ] +license = { text = "BSD" } +authors = [ + { name = "Daniel Roy Greenfeld", email = "pydanny@gmail.com" }, +] +requires-python = "==3.12" +classifiers = [ + "Development Status :: 4 - Beta", + "Environment :: Console", + "Framework :: Django :: 5.0", + "Intended Audience :: Developers", + "License :: OSI Approved :: BSD License", + "Natural Language :: English", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: Implementation :: CPython", + "Topic :: Software Development", +] +urls = { Repository = "https://github.com/cookiecutter/cookiecutter-django" } - -# ==== black ==== [tool.black] line-length = 119 -target-version = ['py312'] - +target-version = [ + 'py312', +] # ==== isort ==== + [tool.isort] profile = "black" line_length = 119 known_first_party = [ - "tests", - "scripts", - "hooks", + "tests", + "scripts", + "hooks", ] - # ==== djLint ==== + +[tool.pytest.ini_options] +addopts = "-v --tb=short" +norecursedirs = [ + ".tox", + ".git", + "*/migrations/*", + "*/static/*", + "docs", + "venv", + "*/{{cookiecutter.project_slug}}/*", +] + +# ==== black ==== + [tool.djlint] blank_line_after_tag = "load,extends" close_void_tags = true diff --git a/requirements.txt b/requirements.txt index 0e35cc7ea..67e61da56 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ binaryornot==0.4.4 # Code quality # ------------------------------------------------------------------------------ -ruff==0.6.3 +ruff==0.6.4 django-upgrade==1.21.0 djlint==1.35.2 pre-commit==3.8.0 diff --git a/scripts/update_changelog.py b/scripts/update_changelog.py index 5f3ad5ec3..9909b1eee 100644 --- a/scripts/update_changelog.py +++ b/scripts/update_changelog.py @@ -47,7 +47,7 @@ def main() -> None: print(f"Wrote {changelog_path}") # Update version - setup_py_path = ROOT / "setup.py" + setup_py_path = ROOT / "pyproject.toml" update_version(setup_py_path, release) print(f"Updated version in {setup_py_path}") diff --git a/setup.py b/setup.py index eb3b1cc7e..e69de29bb 100644 --- a/setup.py +++ b/setup.py @@ -1,41 +0,0 @@ -#!/usr/bin/env python -try: - from setuptools import setup -except ImportError: - from distutils.core import setup - -# We use calendar versioning -version = "2024.09.04" - -with open("README.md") as readme_file: - long_description = readme_file.read() - -setup( - name="cookiecutter-django", - version=version, - description=("A Cookiecutter template for creating production-ready " "Django projects quickly."), - long_description=long_description, - author="Daniel Roy Greenfeld", - author_email="pydanny@gmail.com", - url="https://github.com/cookiecutter/cookiecutter-django", - packages=[], - license="BSD", - zip_safe=False, - classifiers=[ - "Development Status :: 4 - Beta", - "Environment :: Console", - "Framework :: Django :: 5.0", - "Intended Audience :: Developers", - "Natural Language :: English", - "License :: OSI Approved :: BSD License", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: Implementation :: CPython", - "Topic :: Software Development", - ], - keywords=( - "cookiecutter, Python, projects, project templates, django, " - "skeleton, scaffolding, project directory, setup.py" - ), -) diff --git a/{{cookiecutter.project_slug}}/.pre-commit-config.yaml b/{{cookiecutter.project_slug}}/.pre-commit-config.yaml index a3d291592..f6e3faa88 100644 --- a/{{cookiecutter.project_slug}}/.pre-commit-config.yaml +++ b/{{cookiecutter.project_slug}}/.pre-commit-config.yaml @@ -32,14 +32,14 @@ repos: exclude: '{{cookiecutter.project_slug}}/templates/' - repo: https://github.com/adamchainz/django-upgrade - rev: '1.20.0' + rev: '1.21.0' hooks: - id: django-upgrade args: ['--target-version', '5.0'] # Run the Ruff linter. - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.6.3 + rev: v0.6.4 hooks: # Linter - id: ruff diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index fb1f876c0..03220b9c8 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -32,7 +32,7 @@ uvicorn-worker==0.2.0 # https://github.com/Kludex/uvicorn-worker django==5.0.9 # pyup: < 5.1 # https://www.djangoproject.com/ django-environ==0.11.2 # https://github.com/joke2k/django-environ django-model-utils==5.0.0 # https://github.com/jazzband/django-model-utils -django-allauth[mfa]==64.2.0 # https://github.com/pennersr/django-allauth +django-allauth[mfa]==64.2.1 # https://github.com/pennersr/django-allauth django-crispy-forms==2.3 # https://github.com/django-crispy-forms/django-crispy-forms crispy-bootstrap5==2024.2 # https://github.com/django-crispy-forms/crispy-bootstrap5 {%- if cookiecutter.frontend_pipeline == 'Django Compressor' %} diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt index 28032149b..c9e4a775c 100644 --- a/{{cookiecutter.project_slug}}/requirements/local.txt +++ b/{{cookiecutter.project_slug}}/requirements/local.txt @@ -30,7 +30,7 @@ sphinx-rtd-theme==2.0.0 # https://pypi.org/project/sphinx-rtd-theme/ # Code quality # ------------------------------------------------------------------------------ -ruff==0.6.3 # https://github.com/astral-sh/ruff +ruff==0.6.4 # https://github.com/astral-sh/ruff coverage==7.6.1 # https://github.com/nedbat/coveragepy djlint==1.35.2 # https://github.com/Riverside-Healthcare/djLint pre-commit==3.8.0 # https://github.com/pre-commit/pre-commit