mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2025-08-07 13:34:53 +03:00
Merge branch 'master' into luzfcb-dependabot-nginx
This commit is contained in:
commit
01856f6b8d
10
.github/contributors.json
vendored
10
.github/contributors.json
vendored
|
@ -1628,5 +1628,15 @@
|
||||||
"name": "Will",
|
"name": "Will",
|
||||||
"github_login": "novucs",
|
"github_login": "novucs",
|
||||||
"twitter_username": ""
|
"twitter_username": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "rxm7706",
|
||||||
|
"github_login": "rxm7706",
|
||||||
|
"twitter_username": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Marlon Castillo",
|
||||||
|
"github_login": "mcastle",
|
||||||
|
"twitter_username": ""
|
||||||
}
|
}
|
||||||
]
|
]
|
2
.github/workflows/issue-manager.yml
vendored
2
.github/workflows/issue-manager.yml
vendored
|
@ -23,7 +23,7 @@ jobs:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: tiangolo/issue-manager@0.5.0
|
- uses: tiangolo/issue-manager@0.5.1
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
config: >
|
config: >
|
||||||
|
|
|
@ -47,6 +47,11 @@ repos:
|
||||||
hooks:
|
hooks:
|
||||||
- id: flake8
|
- id: flake8
|
||||||
|
|
||||||
|
- repo: https://github.com/tox-dev/pyproject-fmt
|
||||||
|
rev: "2.2.3"
|
||||||
|
hooks:
|
||||||
|
- id: pyproject-fmt
|
||||||
|
|
||||||
ci:
|
ci:
|
||||||
autoupdate_schedule: weekly
|
autoupdate_schedule: weekly
|
||||||
skip: []
|
skip: []
|
||||||
|
|
46
CHANGELOG.md
46
CHANGELOG.md
|
@ -3,6 +3,52 @@ All enhancements and patches to Cookiecutter Django will be documented in this f
|
||||||
|
|
||||||
<!-- GENERATOR_PLACEHOLDER -->
|
<!-- GENERATOR_PLACEHOLDER -->
|
||||||
|
|
||||||
|
## 2024.09.09
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update sentry-sdk to 2.14.0 ([#5365](https://github.com/cookiecutter/cookiecutter-django/pull/5365))
|
||||||
|
|
||||||
|
## 2024.09.08
|
||||||
|
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Remove "storages" from `INSTALLED_APPS` ([#5361](https://github.com/cookiecutter/cookiecutter-django/pull/5361))
|
||||||
|
|
||||||
|
## 2024.09.07
|
||||||
|
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Fix Requires Python to allow minor versions ([#5360](https://github.com/cookiecutter/cookiecutter-django/pull/5360))
|
||||||
|
|
||||||
|
## 2024.09.06
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update ruff to 0.6.4 ([#5354](https://github.com/cookiecutter/cookiecutter-django/pull/5354))
|
||||||
|
|
||||||
|
- Update django-allauth to 64.2.1 ([#5352](https://github.com/cookiecutter/cookiecutter-django/pull/5352))
|
||||||
|
|
||||||
|
- Auto-update pre-commit hooks ([#5353](https://github.com/cookiecutter/cookiecutter-django/pull/5353))
|
||||||
|
|
||||||
|
## 2024.09.05
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update django-upgrade to 1.21.0 ([#5348](https://github.com/cookiecutter/cookiecutter-django/pull/5348))
|
||||||
|
|
||||||
|
## 2024.09.04
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update django-model-utils to 5.0.0 ([#5343](https://github.com/cookiecutter/cookiecutter-django/pull/5343))
|
||||||
|
|
||||||
## 2024.09.03
|
## 2024.09.03
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1468,6 +1468,13 @@ Listed in alphabetical order.
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Marlon Castillo</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://github.com/mcastle">mcastle</a>
|
||||||
|
</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Martin Blech</td>
|
<td>Martin Blech</td>
|
||||||
<td>
|
<td>
|
||||||
|
@ -1923,6 +1930,13 @@ Listed in alphabetical order.
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>rxm7706</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://github.com/rxm7706">rxm7706</a>
|
||||||
|
</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Ryan Fitch</td>
|
<td>Ryan Fitch</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
|
@ -1,35 +1,68 @@
|
||||||
# ==== pytest ====
|
[project]
|
||||||
[tool.pytest.ini_options]
|
name = "cookiecutter-django"
|
||||||
addopts = "-v --tb=short"
|
version = "2024.09.09"
|
||||||
norecursedirs = [
|
description = "A Cookiecutter template for creating production-ready Django projects quickly."
|
||||||
".tox",
|
readme = "README.md"
|
||||||
".git",
|
keywords = [
|
||||||
"*/migrations/*",
|
"cookiecutter",
|
||||||
"*/static/*",
|
"django",
|
||||||
"docs",
|
"project template",
|
||||||
"venv",
|
"scaffolding",
|
||||||
"*/{{cookiecutter.project_slug}}/*",
|
"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]
|
[tool.black]
|
||||||
line-length = 119
|
line-length = 119
|
||||||
target-version = ['py312']
|
target-version = [
|
||||||
|
'py312',
|
||||||
|
]
|
||||||
|
|
||||||
# ==== isort ====
|
# ==== isort ====
|
||||||
|
|
||||||
[tool.isort]
|
[tool.isort]
|
||||||
profile = "black"
|
profile = "black"
|
||||||
line_length = 119
|
line_length = 119
|
||||||
known_first_party = [
|
known_first_party = [
|
||||||
"tests",
|
"tests",
|
||||||
"scripts",
|
"scripts",
|
||||||
"hooks",
|
"hooks",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
# ==== djLint ====
|
# ==== djLint ====
|
||||||
|
|
||||||
|
[tool.pytest.ini_options]
|
||||||
|
addopts = "-v --tb=short"
|
||||||
|
norecursedirs = [
|
||||||
|
".tox",
|
||||||
|
".git",
|
||||||
|
"*/migrations/*",
|
||||||
|
"*/static/*",
|
||||||
|
"docs",
|
||||||
|
"venv",
|
||||||
|
"*/{{cookiecutter.project_slug}}/*",
|
||||||
|
]
|
||||||
|
|
||||||
|
# ==== black ====
|
||||||
|
|
||||||
[tool.djlint]
|
[tool.djlint]
|
||||||
blank_line_after_tag = "load,extends"
|
blank_line_after_tag = "load,extends"
|
||||||
close_void_tags = true
|
close_void_tags = true
|
||||||
|
|
|
@ -4,14 +4,14 @@ binaryornot==0.4.4
|
||||||
|
|
||||||
# Code quality
|
# Code quality
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
ruff==0.6.3
|
ruff==0.6.4
|
||||||
django-upgrade==1.20.0
|
django-upgrade==1.21.0
|
||||||
djlint==1.35.2
|
djlint==1.35.2
|
||||||
pre-commit==3.8.0
|
pre-commit==3.8.0
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
tox==4.18.0
|
tox==4.18.1
|
||||||
pytest==8.3.2
|
pytest==8.3.2
|
||||||
pytest-xdist==3.6.1
|
pytest-xdist==3.6.1
|
||||||
pytest-cookies==0.7.0
|
pytest-cookies==0.7.0
|
||||||
|
|
|
@ -47,7 +47,7 @@ def main() -> None:
|
||||||
print(f"Wrote {changelog_path}")
|
print(f"Wrote {changelog_path}")
|
||||||
|
|
||||||
# Update version
|
# Update version
|
||||||
setup_py_path = ROOT / "setup.py"
|
setup_py_path = ROOT / "pyproject.toml"
|
||||||
update_version(setup_py_path, release)
|
update_version(setup_py_path, release)
|
||||||
print(f"Updated version in {setup_py_path}")
|
print(f"Updated version in {setup_py_path}")
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ def write_changelog(file_path: Path, release: str, content: str) -> None:
|
||||||
|
|
||||||
|
|
||||||
def update_version(file_path: Path, release: str) -> None:
|
def update_version(file_path: Path, release: str) -> None:
|
||||||
"""Update template version in setup.py."""
|
"""Update template version in pyproject.toml."""
|
||||||
old_content = file_path.read_text()
|
old_content = file_path.read_text()
|
||||||
updated_content = re.sub(
|
updated_content = re.sub(
|
||||||
r'\nversion = "\d+\.\d+\.\d+"\n',
|
r'\nversion = "\d+\.\d+\.\d+"\n',
|
||||||
|
|
41
setup.py
41
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.03"
|
|
||||||
|
|
||||||
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"
|
|
||||||
),
|
|
||||||
)
|
|
2
tox.ini
2
tox.ini
|
@ -9,4 +9,4 @@ commands = pytest -n auto {posargs:./tests}
|
||||||
|
|
||||||
[testenv:black-template]
|
[testenv:black-template]
|
||||||
deps = black
|
deps = black
|
||||||
commands = black --check hooks tests setup.py docs scripts
|
commands = black --check hooks tests docs scripts
|
||||||
|
|
|
@ -28,14 +28,14 @@ repos:
|
||||||
exclude: '{{cookiecutter.project_slug}}/templates/'
|
exclude: '{{cookiecutter.project_slug}}/templates/'
|
||||||
|
|
||||||
- repo: https://github.com/adamchainz/django-upgrade
|
- repo: https://github.com/adamchainz/django-upgrade
|
||||||
rev: '1.20.0'
|
rev: '1.21.0'
|
||||||
hooks:
|
hooks:
|
||||||
- id: django-upgrade
|
- id: django-upgrade
|
||||||
args: ['--target-version', '5.0']
|
args: ['--target-version', '5.0']
|
||||||
|
|
||||||
# Run the Ruff linter.
|
# Run the Ruff linter.
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.6.3
|
rev: v0.6.4
|
||||||
hooks:
|
hooks:
|
||||||
# Linter
|
# Linter
|
||||||
- id: ruff
|
- id: ruff
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# define an alias for the specific python version used in this file.
|
# define an alias for the specific python version used in this file.
|
||||||
FROM docker.io/python:3.12.5-slim-bookworm AS python
|
FROM docker.io/python:3.12.6-slim-bookworm AS python
|
||||||
|
|
||||||
# Python build stage
|
# Python build stage
|
||||||
FROM python AS python-build-stage
|
FROM python AS python-build-stage
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# define an alias for the specific python version used in this file.
|
# define an alias for the specific python version used in this file.
|
||||||
FROM docker.io/python:3.12.5-slim-bookworm AS python
|
FROM docker.io/python:3.12.6-slim-bookworm AS python
|
||||||
|
|
||||||
|
|
||||||
# Python build stage
|
# Python build stage
|
||||||
|
|
|
@ -25,7 +25,7 @@ RUN npm run build
|
||||||
|
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
# define an alias for the specific python version used in this file.
|
# define an alias for the specific python version used in this file.
|
||||||
FROM docker.io/python:3.12.5-slim-bookworm AS python
|
FROM docker.io/python:3.12.6-slim-bookworm AS python
|
||||||
|
|
||||||
# Python build stage
|
# Python build stage
|
||||||
FROM python AS python-build-stage
|
FROM python AS python-build-stage
|
||||||
|
|
|
@ -78,12 +78,6 @@ SECURE_CONTENT_TYPE_NOSNIFF = env.bool(
|
||||||
default=True,
|
default=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
{% if cookiecutter.cloud_provider != 'None' -%}
|
|
||||||
# STORAGES
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# https://django-storages.readthedocs.io/en/latest/#installation
|
|
||||||
INSTALLED_APPS += ["storages"]
|
|
||||||
{%- endif -%}
|
|
||||||
{% if cookiecutter.cloud_provider == 'AWS' %}
|
{% if cookiecutter.cloud_provider == 'AWS' %}
|
||||||
# https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html#settings
|
# https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html#settings
|
||||||
AWS_ACCESS_KEY_ID = env("DJANGO_AWS_ACCESS_KEY_ID")
|
AWS_ACCESS_KEY_ID = env("DJANGO_AWS_ACCESS_KEY_ID")
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
"browser-sync": "^3.0.2",
|
"browser-sync": "^3.0.2",
|
||||||
"css-loader": "^7.1.2",
|
"css-loader": "^7.1.2",
|
||||||
"gulp-concat": "^2.6.1",
|
"gulp-concat": "^2.6.1",
|
||||||
"concurrently": "^8.0.1",
|
"concurrently": "^9.0.0",
|
||||||
"cssnano": "^7.0.0",
|
"cssnano": "^7.0.0",
|
||||||
"gulp": "^4.0.2",
|
"gulp": "^4.0.2",
|
||||||
"gulp-imagemin": "^7.1.0",
|
"gulp-imagemin": "^7.1.0",
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
"pixrem": "^5.0.0",
|
"pixrem": "^5.0.0",
|
||||||
"postcss": "^8.3.11",
|
"postcss": "^8.3.11",
|
||||||
"postcss-loader": "^8.0.0",
|
"postcss-loader": "^8.0.0",
|
||||||
"postcss-preset-env": "^9.0.0",
|
"postcss-preset-env": "^10.0.3",
|
||||||
"sass": "^1.43.4",
|
"sass": "^1.43.4",
|
||||||
"sass-loader": "^16.0.1",
|
"sass-loader": "^16.0.1",
|
||||||
"webpack": "^5.65.0",
|
"webpack": "^5.65.0",
|
||||||
|
|
|
@ -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==5.0.9 # pyup: < 5.1 # https://www.djangoproject.com/
|
||||||
django-environ==0.11.2 # https://github.com/joke2k/django-environ
|
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-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
|
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
|
crispy-bootstrap5==2024.2 # https://github.com/django-crispy-forms/crispy-bootstrap5
|
||||||
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
|
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
|
||||||
|
|
|
@ -29,7 +29,7 @@ sphinx-autobuild==2024.9.3 # https://github.com/GaretJax/sphinx-autobuild
|
||||||
|
|
||||||
# Code quality
|
# 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
|
coverage==7.6.1 # https://github.com/nedbat/coveragepy
|
||||||
djlint==1.35.2 # https://github.com/Riverside-Healthcare/djLint
|
djlint==1.35.2 # https://github.com/Riverside-Healthcare/djLint
|
||||||
pre-commit==3.8.0 # https://github.com/pre-commit/pre-commit
|
pre-commit==3.8.0 # https://github.com/pre-commit/pre-commit
|
||||||
|
|
|
@ -8,7 +8,7 @@ psycopg[c]==3.2.1 # https://github.com/psycopg/psycopg
|
||||||
Collectfasta==3.2.0 # https://github.com/jasongi/collectfasta
|
Collectfasta==3.2.0 # https://github.com/jasongi/collectfasta
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if cookiecutter.use_sentry == "y" %}
|
{%- if cookiecutter.use_sentry == "y" %}
|
||||||
sentry-sdk==2.13.0 # https://github.com/getsentry/sentry-python
|
sentry-sdk==2.14.0 # https://github.com/getsentry/sentry-python
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if cookiecutter.use_docker == "n" and cookiecutter.windows == "y" %}
|
{%- if cookiecutter.use_docker == "n" and cookiecutter.windows == "y" %}
|
||||||
hiredis==3.0.0 # https://github.com/redis/hiredis-py
|
hiredis==3.0.0 # https://github.com/redis/hiredis-py
|
||||||
|
|
Loading…
Reference in New Issue
Block a user