Compare commits

...

65 Commits

Author SHA1 Message Date
dependabot[bot]
86519cb90a
Bump amazon/aws-cli from 2.27.12 to 2.28.0 (#5957)
Bump amazon/aws-cli

Bumps amazon/aws-cli from 2.27.12 to 2.28.0.

---
updated-dependencies:
- dependency-name: amazon/aws-cli
  dependency-version: 2.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 08:05:09 +01:00
pyup.io bot
2ee6e3c3c9
Update mypy to 1.17.1 (#5956)
Update mypy from 1.17.0 to 1.17.1
2025-08-01 08:04:51 +01:00
github-actions
2a5c44dac1 Release 2025.07.30 2025-07-31 02:46:32 +00:00
pyup.io bot
9c758ab0b3
Update sentry-sdk to 2.34.1 (#5955)
Update sentry-sdk from 2.33.2 to 2.34.1
2025-07-30 19:15:11 +01:00
pyup.io bot
af5a0d2961
Update ruff to 0.12.7 (#5952)
* Update ruff from 0.12.5 to 0.12.7

* Align versions

---------

Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-07-30 19:14:25 +01:00
browniebroke
f6a91a0072 Update Contributors 2025-07-30 18:11:58 +00:00
DevForsure
255f31dd2a
docs: remove $ from shell command examples for easier copy-pasting (#5948)
docs: remove $ from shell commands to improve copy-paste usability
2025-07-30 19:11:41 +01:00
github-actions
e682a9b7a9 Release 2025.07.27 2025-07-28 02:49:34 +00:00
pyup.io bot
c1873d9f2f
Update coverage to 7.10.1 (#5947)
Update coverage from 7.10.0 to 7.10.1
2025-07-27 22:31:24 +01:00
github-actions
5fae47541d Release 2025.07.25 2025-07-26 02:40:36 +00:00
pyup.io bot
082a17a58c
Update django-anymail to 13.0.1 (#5946)
* Update django-anymail from 13.0 to 13.0.1

* Update django-anymail from 13.0 to 13.0.1

* Update django-anymail from 13.0 to 13.0.1

* Update django-anymail from 13.0 to 13.0.1

* Update django-anymail from 13.0 to 13.0.1

* Update django-anymail from 13.0 to 13.0.1

* Update django-anymail from 13.0 to 13.0.1

* Update django-anymail from 13.0 to 13.0.1

* Update django-anymail from 13.0 to 13.0.1
2025-07-25 21:38:20 +01:00
github-actions
cac469c6ba Release 2025.07.24 2025-07-25 02:44:04 +00:00
pyup.io bot
539c7f6f46
Update coverage to 7.10.0 (#5944)
Update coverage from 7.9.2 to 7.10.0
2025-07-24 22:53:49 +01:00
pyup.io bot
068315e284
Update ruff to 0.12.5 (#5943)
Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-07-24 17:50:40 +01:00
dependabot[bot]
b2849637ce
Bump traefik from 3.4.4 to 3.5.0 (#5942)
Bump traefik

Bumps traefik from 3.4.4 to 3.5.0.

---
updated-dependencies:
- dependency-name: traefik
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-24 08:43:48 +01:00
github-actions
d93c080e57 Release 2025.07.22 2025-07-23 02:44:52 +00:00
pyup.io bot
bf5687912c
Update sentry-sdk to 2.33.2 (#5941)
Update sentry-sdk from 2.33.1 to 2.33.2
2025-07-22 19:22:17 +01:00
github-actions
95ac5a80fb Release 2025.07.21 2025-07-22 02:44:19 +00:00
pyup.io bot
bc88cbac97
Update sentry-sdk to 2.33.1 (#5940)
Update sentry-sdk from 2.33.0 to 2.33.1
2025-07-21 22:35:19 +01:00
github-actions
567e00f197 Release 2025.07.18 2025-07-19 02:39:24 +00:00
pyup.io bot
1fd01711f3
Update mypy to 1.17.0 (#5937)
Update mypy from 1.16.1 to 1.17.0
2025-07-18 13:54:33 +01:00
pyup.io bot
b2e95216e5
Update django-stubs to 5.2.2 (#5936)
Update django-stubs from 5.2.1 to 5.2.2
2025-07-18 13:28:41 +01:00
github-actions
a990561d40 Release 2025.07.17 2025-07-18 02:44:39 +00:00
pyup.io bot
480c29f760
Update ruff to 0.12.4 (#5935)
* Update ruff from 0.12.3 to 0.12.4

* Align versions

---------

Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-07-17 23:01:41 +01:00
github-actions
c5fba924ba Release 2025.07.16 2025-07-17 02:43:02 +00:00
pyup.io bot
7fc9e0867f
Update sentry-sdk to 2.33.0 (#5933) 2025-07-16 08:58:17 +01:00
github-actions
4f8e109b2f Release 2025.07.15 2025-07-16 02:42:57 +00:00
pyup.io bot
e27e6bf8f7
Update mypy to 1.16.1 (#5901)
Update mypy from 1.15.0 to 1.16.1

Co-authored-by: Bruno Alla <alla.brunoo@gmail.com>
2025-07-15 07:26:42 +01:00
dependabot[bot]
821224226f
Bump traefik from 3.4.3 to 3.4.4 (#5930) 2025-07-15 06:55:25 +01:00
github-actions
8e46a8f390 Release 2025.07.14 2025-07-15 02:45:05 +00:00
luzfcb
fc494593b1 Update Contributors 2025-07-14 03:13:05 +00:00
Lucas
34e255dbe0 Fix howto docker command 2025-07-14 00:12:48 -03:00
github-actions
f7e540dc8d Release 2025.07.11 2025-07-12 02:42:13 +00:00
pyup.io bot
3e02c2037b
Update ruff to 0.12.3 (#5928)
* Update ruff from 0.12.2 to 0.12.3

* Align versions

---------

Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-07-11 16:47:26 +02:00
pyup.io bot
da2a659dee
Update django-allauth to 65.10.0 (#5927)
Update django-allauth from 65.9.0 to 65.10.0
2025-07-11 07:30:47 +02:00
github-actions
d976c052c8 Release 2025.07.05 2025-07-06 02:44:00 +00:00
pyup.io bot
708eb4ccf8
Update coverage to 7.9.2 (#5925)
Update coverage from 7.9.1 to 7.9.2
2025-07-05 09:30:13 +02:00
github-actions
277537889e Release 2025.07.04 2025-07-05 02:35:46 +00:00
pyup.io bot
2b38fac5c7
Update ruff to 0.12.2 (#5923)
* Update ruff from 0.12.1 to 0.12.2

* Align versions

---------

Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-07-04 23:23:16 +02:00
github-actions
533a6bf1a8 Release 2025.07.02 2025-07-03 02:39:06 +00:00
pyup.io bot
d2d7927414
Update pillow to 11.3.0 (#5921)
Update pillow from 11.2.1 to 11.3.0
2025-07-02 07:40:17 +01:00
github-actions
ac8b3d64b6 Release 2025.06.30 2025-07-01 02:46:47 +00:00
dependabot[bot]
bfd8d00707
Bump traefik from 3.4.1 to 3.4.3 (#5917)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 10:50:35 +02:00
pyup.io bot
00fb4e01b0
Update uvicorn to 0.35.0 (#5919) 2025-06-30 10:50:04 +02:00
pyup.io bot
01e3cf72d2
Update sentry-sdk to 2.32.0 (#5918) 2025-06-30 10:49:33 +02:00
github-actions
f98b2c2a53 Release 2025.06.26 2025-06-27 02:37:54 +00:00
pyup.io bot
3902307653
Update ruff to 0.12.1 (#5916)
* Update ruff from 0.12.0 to 0.12.1

* Align versions

---------

Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-06-26 23:17:08 +01:00
github-actions
8b54050e07 Release 2025.06.24 2025-06-25 02:38:08 +00:00
github-actions[bot]
fb1c8307be
Auto-update pre-commit hooks (#5908)
Co-authored-by: browniebroke <861044+browniebroke@users.noreply.github.com>
2025-06-24 23:36:44 +01:00
pyup.io bot
e7b81d2e07
Update sentry-sdk to 2.31.0 (#5912)
Update sentry-sdk from 2.30.0 to 2.31.0
2025-06-24 23:35:51 +01:00
github-actions
85a01f5f1a Release 2025.06.19 2025-06-20 02:36:43 +00:00
pyup.io bot
e23eee2d85
Update pytest to 8.4.1 (#5907)
Update pytest from 8.4.0 to 8.4.1
2025-06-19 07:43:32 +01:00
github-actions
fc39cfa33e Release 2025.06.18 2025-06-19 02:37:20 +00:00
pyup.io bot
7a41c46259
Update ruff to 0.12.0 (#5904)
* Update ruff from 0.11.13 to 0.12.0

* Align versions

* Fix/ignore a few new Ruff violations

* Fix/ignore a few new Ruff violations

* Rename pre-commit hook id

---------

Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
Co-authored-by: Bruno Alla <alla.brunoo@gmail.com>
2025-06-18 18:52:22 +01:00
pyup.io bot
7a0e73640d
Update django-stubs to 5.2.1 (#5905) 2025-06-18 10:53:44 +01:00
pyup.io bot
cd06bde587
Update django-redis to 6.0.0 (#5903) 2025-06-18 10:52:54 +01:00
pyup.io bot
56690fa4f9
Update django-webpack-loader to 3.2.1 (#5902) 2025-06-18 10:51:42 +01:00
github-actions
4950e2bbd3 Release 2025.06.17 2025-06-18 02:36:47 +00:00
pyup.io bot
25a30c9a9e
Update django-coverage-plugin to 3.1.1 (#5900)
Update django-coverage-plugin from 3.1.0 to 3.1.1
2025-06-17 13:09:43 +01:00
pyup.io bot
b32ce8d5be
Update watchfiles to 1.1.0 (#5899)
Update watchfiles from 1.0.5 to 1.1.0
2025-06-17 13:09:34 +01:00
github-actions
4f850d953d Release 2025.06.15 2025-06-16 02:39:47 +00:00
pyup.io bot
55fa9189e6
Update coverage to 7.9.1 (#5898)
Update coverage from 7.9.0 to 7.9.1
2025-06-15 11:11:42 +01:00
github-actions
cbf309713e Release 2025.06.13 2025-06-14 02:35:05 +00:00
pyup.io bot
5737722073
Update coverage to 7.9.0 (#5897)
Update coverage from 7.8.2 to 7.9.0
2025-06-13 08:30:30 +01:00
pyup.io bot
c266a7a761
Update sentry-sdk to 2.30.0 (#5896)
Update sentry-sdk from 2.29.1 to 2.30.0
2025-06-13 08:30:16 +01:00
20 changed files with 281 additions and 68 deletions

View File

@ -13,7 +13,6 @@ labels: bug
<!-- To assist you best, please include commands that you've run, options you've selected and any relevant logs -->
- Host system configuration:
- Version of cookiecutter CLI (get it with `cookiecutter --version`):
- OS name and version:

View File

@ -1728,5 +1728,15 @@
"name": "Dominique Plante",
"github_login": "dominiqueplante",
"twitter_username": ""
},
{
"name": "Lucas Klasa",
"github_login": "lucaskbr",
"twitter_username": ""
},
{
"name": "DevForsure",
"github_login": "DevForsure",
"twitter_username": ""
}
]

View File

@ -44,7 +44,7 @@ repos:
- id: isort
- repo: https://github.com/PyCQA/flake8
rev: 7.2.0
rev: 7.3.0
hooks:
- id: flake8

View File

@ -3,6 +3,197 @@ All enhancements and patches to Cookiecutter Django will be documented in this f
<!-- GENERATOR_PLACEHOLDER -->
## 2025.07.30
### Changed
- docs: remove `$` from shell command examples for easier copy-pasting ([#5948](https://github.com/cookiecutter/cookiecutter-django/pull/5948))
### Updated
- Update sentry-sdk to 2.34.1 ([#5955](https://github.com/cookiecutter/cookiecutter-django/pull/5955))
- Update ruff to 0.12.7 ([#5952](https://github.com/cookiecutter/cookiecutter-django/pull/5952))
## 2025.07.27
### Updated
- Update coverage to 7.10.1 ([#5947](https://github.com/cookiecutter/cookiecutter-django/pull/5947))
## 2025.07.25
### Updated
- Update django-anymail to 13.0.1 ([#5946](https://github.com/cookiecutter/cookiecutter-django/pull/5946))
## 2025.07.24
### Updated
- Update coverage to 7.10.0 ([#5944](https://github.com/cookiecutter/cookiecutter-django/pull/5944))
- Update ruff to 0.12.5 ([#5943](https://github.com/cookiecutter/cookiecutter-django/pull/5943))
- Bump traefik from 3.4.4 to 3.5.0 ([#5942](https://github.com/cookiecutter/cookiecutter-django/pull/5942))
## 2025.07.22
### Updated
- Update sentry-sdk to 2.33.2 ([#5941](https://github.com/cookiecutter/cookiecutter-django/pull/5941))
## 2025.07.21
### Updated
- Update sentry-sdk to 2.33.1 ([#5940](https://github.com/cookiecutter/cookiecutter-django/pull/5940))
## 2025.07.18
### Updated
- Update mypy to 1.17.0 ([#5937](https://github.com/cookiecutter/cookiecutter-django/pull/5937))
- Update django-stubs to 5.2.2 ([#5936](https://github.com/cookiecutter/cookiecutter-django/pull/5936))
## 2025.07.17
### Updated
- Update ruff to 0.12.4 ([#5935](https://github.com/cookiecutter/cookiecutter-django/pull/5935))
## 2025.07.16
### Updated
- Update sentry-sdk to 2.33.0 ([#5933](https://github.com/cookiecutter/cookiecutter-django/pull/5933))
## 2025.07.15
### Updated
- Update mypy to 1.16.1 ([#5901](https://github.com/cookiecutter/cookiecutter-django/pull/5901))
- Bump traefik from 3.4.3 to 3.4.4 ([#5930](https://github.com/cookiecutter/cookiecutter-django/pull/5930))
## 2025.07.14
### Changed
- Fix howto docker command ([#5929](https://github.com/cookiecutter/cookiecutter-django/pull/5929))
## 2025.07.11
### Updated
- Update ruff to 0.12.3 ([#5928](https://github.com/cookiecutter/cookiecutter-django/pull/5928))
- Update django-allauth to 65.10.0 ([#5927](https://github.com/cookiecutter/cookiecutter-django/pull/5927))
## 2025.07.05
### Updated
- Update coverage to 7.9.2 ([#5925](https://github.com/cookiecutter/cookiecutter-django/pull/5925))
## 2025.07.04
### Updated
- Update ruff to 0.12.2 ([#5923](https://github.com/cookiecutter/cookiecutter-django/pull/5923))
## 2025.07.02
### Updated
- Update pillow to 11.3.0 ([#5921](https://github.com/cookiecutter/cookiecutter-django/pull/5921))
## 2025.06.30
### Updated
- Bump traefik from 3.4.1 to 3.4.3 ([#5917](https://github.com/cookiecutter/cookiecutter-django/pull/5917))
- Update uvicorn to 0.35.0 ([#5919](https://github.com/cookiecutter/cookiecutter-django/pull/5919))
- Update sentry-sdk to 2.32.0 ([#5918](https://github.com/cookiecutter/cookiecutter-django/pull/5918))
## 2025.06.26
### Updated
- Update ruff to 0.12.1 ([#5916](https://github.com/cookiecutter/cookiecutter-django/pull/5916))
## 2025.06.24
### Updated
- Update sentry-sdk to 2.31.0 ([#5912](https://github.com/cookiecutter/cookiecutter-django/pull/5912))
## 2025.06.19
### Updated
- Update pytest to 8.4.1 ([#5907](https://github.com/cookiecutter/cookiecutter-django/pull/5907))
## 2025.06.18
### Updated
- Update ruff to 0.12.0 ([#5904](https://github.com/cookiecutter/cookiecutter-django/pull/5904))
- Update django-stubs to 5.2.1 ([#5905](https://github.com/cookiecutter/cookiecutter-django/pull/5905))
- Update django-redis to 6.0.0 ([#5903](https://github.com/cookiecutter/cookiecutter-django/pull/5903))
- Update django-webpack-loader to 3.2.1 ([#5902](https://github.com/cookiecutter/cookiecutter-django/pull/5902))
## 2025.06.17
### Updated
- Update django-coverage-plugin to 3.1.1 ([#5900](https://github.com/cookiecutter/cookiecutter-django/pull/5900))
- Update watchfiles to 1.1.0 ([#5899](https://github.com/cookiecutter/cookiecutter-django/pull/5899))
## 2025.06.15
### Updated
- Update coverage to 7.9.1 ([#5898](https://github.com/cookiecutter/cookiecutter-django/pull/5898))
## 2025.06.13
### Updated
- Update coverage to 7.9.0 ([#5897](https://github.com/cookiecutter/cookiecutter-django/pull/5897))
- Update sentry-sdk to 2.30.0 ([#5896](https://github.com/cookiecutter/cookiecutter-django/pull/5896))
## 2025.06.11

View File

@ -768,6 +768,13 @@ Listed in alphabetical order.
</td>
<td></td>
</tr>
<tr>
<td>DevForsure</td>
<td>
<a href="https://github.com/DevForsure">DevForsure</a>
</td>
<td></td>
</tr>
<tr>
<td>Diane Chen</td>
<td>
@ -1510,6 +1517,13 @@ Listed in alphabetical order.
</td>
<td></td>
</tr>
<tr>
<td>Lucas Klasa</td>
<td>
<a href="https://github.com/lucaskbr">lucaskbr</a>
</td>
<td></td>
</tr>
<tr>
<td>Luis Nell</td>
<td>

View File

@ -84,11 +84,11 @@ and then editing the results to include your name, email, and various configurat
First, get Cookiecutter. Trust me, it's awesome:
$ pip install "cookiecutter>=1.7.0"
pip install "cookiecutter>=1.7.0"
Now run it against this repo:
$ cookiecutter https://github.com/cookiecutter/cookiecutter-django
cookiecutter https://github.com/cookiecutter/cookiecutter-django
You'll be prompted for some values. Provide them, then a Django project will be created for you.
@ -175,16 +175,16 @@ Answer the prompts with your own desired [options](http://cookiecutter-django.re
Enter the project and take a look around:
$ cd reddit/
$ ls
cd reddit/
ls
Create a git repo and push it there:
$ git init
$ git add .
$ git commit -m "first awesome commit"
$ git remote add origin git@github.com:pydanny/redditclone.git
$ git push -u origin master
git init
git add .
git commit -m "first awesome commit"
git remote add origin git@github.com:pydanny/redditclone.git
git push -u origin master
Now take a look at your repo. Don't forget to carefully look at the generated README. Awesome, right?

View File

@ -1,6 +1,6 @@
[project]
name = "cookiecutter-django"
version = "2025.06.11"
version = "2025.07.30"
description = "A Cookiecutter template for creating production-ready Django projects quickly."
readme = "README.md"
keywords = [
@ -43,7 +43,7 @@ dependencies = [
"pytest-xdist==3.6.1",
"pyyaml==6.0.2",
"requests==2.32.3",
"ruff==0.11.13",
"ruff==0.12.7",
"sh==2.1; sys_platform!='win23'",
"tox==4.23.2",
"tox-uv>=1.17",

42
uv.lock
View File

@ -182,7 +182,7 @@ wheels = [
[[package]]
name = "cookiecutter-django"
version = "2025.6.11"
version = "2025.7.30"
source = { virtual = "." }
dependencies = [
{ name = "binaryornot" },
@ -229,7 +229,7 @@ requires-dist = [
{ name = "pytest-xdist", specifier = "==3.6.1" },
{ name = "pyyaml", specifier = "==6.0.2" },
{ name = "requests", specifier = "==2.32.3" },
{ name = "ruff", specifier = "==0.11.13" },
{ name = "ruff", specifier = "==0.12.7" },
{ name = "sh", marker = "sys_platform != 'win23'", specifier = "==2.1" },
{ name = "tox", specifier = "==4.23.2" },
{ name = "tox-uv", specifier = ">=1.17" },
@ -830,27 +830,27 @@ wheels = [
[[package]]
name = "ruff"
version = "0.11.13"
version = "0.12.7"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/ed/da/9c6f995903b4d9474b39da91d2d626659af3ff1eeb43e9ae7c119349dba6/ruff-0.11.13.tar.gz", hash = "sha256:26fa247dc68d1d4e72c179e08889a25ac0c7ba4d78aecfc835d49cbfd60bf514", size = 4282054 }
sdist = { url = "https://files.pythonhosted.org/packages/a1/81/0bd3594fa0f690466e41bd033bdcdf86cba8288345ac77ad4afbe5ec743a/ruff-0.12.7.tar.gz", hash = "sha256:1fc3193f238bc2d7968772c82831a4ff69252f673be371fb49663f0068b7ec71", size = 5197814 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/7d/ce/a11d381192966e0b4290842cc8d4fac7dc9214ddf627c11c1afff87da29b/ruff-0.11.13-py3-none-linux_armv6l.whl", hash = "sha256:4bdfbf1240533f40042ec00c9e09a3aade6f8c10b6414cf11b519488d2635d46", size = 10292516 },
{ url = "https://files.pythonhosted.org/packages/78/db/87c3b59b0d4e753e40b6a3b4a2642dfd1dcaefbff121ddc64d6c8b47ba00/ruff-0.11.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:aef9c9ed1b5ca28bb15c7eac83b8670cf3b20b478195bd49c8d756ba0a36cf48", size = 11106083 },
{ url = "https://files.pythonhosted.org/packages/77/79/d8cec175856ff810a19825d09ce700265f905c643c69f45d2b737e4a470a/ruff-0.11.13-py3-none-macosx_11_0_arm64.whl", hash = "sha256:53b15a9dfdce029c842e9a5aebc3855e9ab7771395979ff85b7c1dedb53ddc2b", size = 10436024 },
{ url = "https://files.pythonhosted.org/packages/8b/5b/f6d94f2980fa1ee854b41568368a2e1252681b9238ab2895e133d303538f/ruff-0.11.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab153241400789138d13f362c43f7edecc0edfffce2afa6a68434000ecd8f69a", size = 10646324 },
{ url = "https://files.pythonhosted.org/packages/6c/9c/b4c2acf24ea4426016d511dfdc787f4ce1ceb835f3c5fbdbcb32b1c63bda/ruff-0.11.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c51f93029d54a910d3d24f7dd0bb909e31b6cd989a5e4ac513f4eb41629f0dc", size = 10174416 },
{ url = "https://files.pythonhosted.org/packages/f3/10/e2e62f77c65ede8cd032c2ca39c41f48feabedb6e282bfd6073d81bb671d/ruff-0.11.13-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1808b3ed53e1a777c2ef733aca9051dc9bf7c99b26ece15cb59a0320fbdbd629", size = 11724197 },
{ url = "https://files.pythonhosted.org/packages/bb/f0/466fe8469b85c561e081d798c45f8a1d21e0b4a5ef795a1d7f1a9a9ec182/ruff-0.11.13-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:d28ce58b5ecf0f43c1b71edffabe6ed7f245d5336b17805803312ec9bc665933", size = 12511615 },
{ url = "https://files.pythonhosted.org/packages/17/0e/cefe778b46dbd0cbcb03a839946c8f80a06f7968eb298aa4d1a4293f3448/ruff-0.11.13-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55e4bc3a77842da33c16d55b32c6cac1ec5fb0fbec9c8c513bdce76c4f922165", size = 12117080 },
{ url = "https://files.pythonhosted.org/packages/5d/2c/caaeda564cbe103bed145ea557cb86795b18651b0f6b3ff6a10e84e5a33f/ruff-0.11.13-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:633bf2c6f35678c56ec73189ba6fa19ff1c5e4807a78bf60ef487b9dd272cc71", size = 11326315 },
{ url = "https://files.pythonhosted.org/packages/75/f0/782e7d681d660eda8c536962920c41309e6dd4ebcea9a2714ed5127d44bd/ruff-0.11.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ffbc82d70424b275b089166310448051afdc6e914fdab90e08df66c43bb5ca9", size = 11555640 },
{ url = "https://files.pythonhosted.org/packages/5d/d4/3d580c616316c7f07fb3c99dbecfe01fbaea7b6fd9a82b801e72e5de742a/ruff-0.11.13-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4a9ddd3ec62a9a89578c85842b836e4ac832d4a2e0bfaad3b02243f930ceafcc", size = 10507364 },
{ url = "https://files.pythonhosted.org/packages/5a/dc/195e6f17d7b3ea6b12dc4f3e9de575db7983db187c378d44606e5d503319/ruff-0.11.13-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d237a496e0778d719efb05058c64d28b757c77824e04ffe8796c7436e26712b7", size = 10141462 },
{ url = "https://files.pythonhosted.org/packages/f4/8e/39a094af6967faa57ecdeacb91bedfb232474ff8c3d20f16a5514e6b3534/ruff-0.11.13-py3-none-musllinux_1_2_i686.whl", hash = "sha256:26816a218ca6ef02142343fd24c70f7cd8c5aa6c203bca284407adf675984432", size = 11121028 },
{ url = "https://files.pythonhosted.org/packages/5a/c0/b0b508193b0e8a1654ec683ebab18d309861f8bd64e3a2f9648b80d392cb/ruff-0.11.13-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:51c3f95abd9331dc5b87c47ac7f376db5616041173826dfd556cfe3d4977f492", size = 11602992 },
{ url = "https://files.pythonhosted.org/packages/7c/91/263e33ab93ab09ca06ce4f8f8547a858cc198072f873ebc9be7466790bae/ruff-0.11.13-py3-none-win32.whl", hash = "sha256:96c27935418e4e8e77a26bb05962817f28b8ef3843a6c6cc49d8783b5507f250", size = 10474944 },
{ url = "https://files.pythonhosted.org/packages/46/f4/7c27734ac2073aae8efb0119cae6931b6fb48017adf048fdf85c19337afc/ruff-0.11.13-py3-none-win_amd64.whl", hash = "sha256:29c3189895a8a6a657b7af4e97d330c8a3afd2c9c8f46c81e2fc5a31866517e3", size = 11548669 },
{ url = "https://files.pythonhosted.org/packages/ec/bf/b273dd11673fed8a6bd46032c0ea2a04b2ac9bfa9c628756a5856ba113b0/ruff-0.11.13-py3-none-win_arm64.whl", hash = "sha256:b4385285e9179d608ff1d2fb9922062663c658605819a6876d8beef0c30b7f3b", size = 10683928 },
{ url = "https://files.pythonhosted.org/packages/e1/d2/6cb35e9c85e7a91e8d22ab32ae07ac39cc34a71f1009a6f9e4a2a019e602/ruff-0.12.7-py3-none-linux_armv6l.whl", hash = "sha256:76e4f31529899b8c434c3c1dede98c4483b89590e15fb49f2d46183801565303", size = 11852189 },
{ url = "https://files.pythonhosted.org/packages/63/5b/a4136b9921aa84638f1a6be7fb086f8cad0fde538ba76bda3682f2599a2f/ruff-0.12.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:789b7a03e72507c54fb3ba6209e4bb36517b90f1a3569ea17084e3fd295500fb", size = 12519389 },
{ url = "https://files.pythonhosted.org/packages/a8/c9/3e24a8472484269b6b1821794141f879c54645a111ded4b6f58f9ab0705f/ruff-0.12.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2e1c2a3b8626339bb6369116e7030a4cf194ea48f49b64bb505732a7fce4f4e3", size = 11743384 },
{ url = "https://files.pythonhosted.org/packages/26/7c/458dd25deeb3452c43eaee853c0b17a1e84169f8021a26d500ead77964fd/ruff-0.12.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32dec41817623d388e645612ec70d5757a6d9c035f3744a52c7b195a57e03860", size = 11943759 },
{ url = "https://files.pythonhosted.org/packages/7f/8b/658798472ef260ca050e400ab96ef7e85c366c39cf3dfbef4d0a46a528b6/ruff-0.12.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47ef751f722053a5df5fa48d412dbb54d41ab9b17875c6840a58ec63ff0c247c", size = 11654028 },
{ url = "https://files.pythonhosted.org/packages/a8/86/9c2336f13b2a3326d06d39178fd3448dcc7025f82514d1b15816fe42bfe8/ruff-0.12.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a828a5fc25a3efd3e1ff7b241fd392686c9386f20e5ac90aa9234a5faa12c423", size = 13225209 },
{ url = "https://files.pythonhosted.org/packages/76/69/df73f65f53d6c463b19b6b312fd2391dc36425d926ec237a7ed028a90fc1/ruff-0.12.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5726f59b171111fa6a69d82aef48f00b56598b03a22f0f4170664ff4d8298efb", size = 14182353 },
{ url = "https://files.pythonhosted.org/packages/58/1e/de6cda406d99fea84b66811c189b5ea139814b98125b052424b55d28a41c/ruff-0.12.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:74e6f5c04c4dd4aba223f4fe6e7104f79e0eebf7d307e4f9b18c18362124bccd", size = 13631555 },
{ url = "https://files.pythonhosted.org/packages/6f/ae/625d46d5164a6cc9261945a5e89df24457dc8262539ace3ac36c40f0b51e/ruff-0.12.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d0bfe4e77fba61bf2ccadf8cf005d6133e3ce08793bbe870dd1c734f2699a3e", size = 12667556 },
{ url = "https://files.pythonhosted.org/packages/55/bf/9cb1ea5e3066779e42ade8d0cd3d3b0582a5720a814ae1586f85014656b6/ruff-0.12.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06bfb01e1623bf7f59ea749a841da56f8f653d641bfd046edee32ede7ff6c606", size = 12939784 },
{ url = "https://files.pythonhosted.org/packages/55/7f/7ead2663be5627c04be83754c4f3096603bf5e99ed856c7cd29618c691bd/ruff-0.12.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e41df94a957d50083fd09b916d6e89e497246698c3f3d5c681c8b3e7b9bb4ac8", size = 11771356 },
{ url = "https://files.pythonhosted.org/packages/17/40/a95352ea16edf78cd3a938085dccc55df692a4d8ba1b3af7accbe2c806b0/ruff-0.12.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4000623300563c709458d0ce170c3d0d788c23a058912f28bbadc6f905d67afa", size = 11612124 },
{ url = "https://files.pythonhosted.org/packages/4d/74/633b04871c669e23b8917877e812376827c06df866e1677f15abfadc95cb/ruff-0.12.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:69ffe0e5f9b2cf2b8e289a3f8945b402a1b19eff24ec389f45f23c42a3dd6fb5", size = 12479945 },
{ url = "https://files.pythonhosted.org/packages/be/34/c3ef2d7799c9778b835a76189c6f53c179d3bdebc8c65288c29032e03613/ruff-0.12.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a07a5c8ffa2611a52732bdc67bf88e243abd84fe2d7f6daef3826b59abbfeda4", size = 12998677 },
{ url = "https://files.pythonhosted.org/packages/77/ab/aca2e756ad7b09b3d662a41773f3edcbd262872a4fc81f920dc1ffa44541/ruff-0.12.7-py3-none-win32.whl", hash = "sha256:c928f1b2ec59fb77dfdf70e0419408898b63998789cc98197e15f560b9e77f77", size = 11756687 },
{ url = "https://files.pythonhosted.org/packages/b4/71/26d45a5042bc71db22ddd8252ca9d01e9ca454f230e2996bb04f16d72799/ruff-0.12.7-py3-none-win_amd64.whl", hash = "sha256:9c18f3d707ee9edf89da76131956aba1270c6348bfee8f6c647de841eac7194f", size = 12912365 },
{ url = "https://files.pythonhosted.org/packages/4c/9b/0b8aa09817b63e78d94b4977f18b1fcaead3165a5ee49251c5d5c245bb2d/ruff-0.12.7-py3-none-win_arm64.whl", hash = "sha256:dfce05101dbd11833a0776716d5d1578641b7fddb537fe7fa956ab85d1769b69", size = 11982083 },
]
[[package]]

View File

@ -36,10 +36,10 @@ repos:
# Run the Ruff linter.
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.11.13
rev: v0.12.7
hooks:
# Linter
- id: ruff
- id: ruff-check
args: [--fix, --exit-non-zero-on-fix]
# Formatter
- id: ruff-format

View File

@ -1,4 +1,4 @@
FROM docker.io/amazon/aws-cli:2.27.12
FROM docker.io/amazon/aws-cli:2.28.0
# Clear entrypoint from the base image, otherwise it's always calling the aws CLI
ENTRYPOINT []

View File

@ -1,4 +1,4 @@
FROM docker.io/traefik:3.4.1
FROM docker.io/traefik:3.5.0
RUN mkdir -p /etc/traefik/acme \
&& touch /etc/traefik/acme/acme.json \
&& chmod 600 /etc/traefik/acme/acme.json

View File

@ -17,9 +17,9 @@ app.config_from_object("django.conf:settings", namespace="CELERY")
@setup_logging.connect
def config_loggers(*args, **kwargs):
from logging.config import dictConfig
from logging.config import dictConfig # noqa: PLC0415
from django.conf import settings
from django.conf import settings # noqa: PLC0415
dictConfig(settings.LOGGING)

View File

@ -1,4 +1,3 @@
# ruff: noqa: E501
from .base import * # noqa: F403
from .base import INSTALLED_APPS
from .base import MIDDLEWARE
@ -79,7 +78,7 @@ if env("USE_DOCKER") == "yes":
import socket
hostname, _, ips = socket.gethostbyname_ex(socket.gethostname())
INTERNAL_IPS += [".".join(ip.split(".")[:-1] + ["1"]) for ip in ips]
INTERNAL_IPS += [".".join([*ip.split(".")[:-1], "1"]) for ip in ips]
{%- if cookiecutter.frontend_pipeline in ['Gulp', 'Webpack'] %}
try:
_, _, ips = socket.gethostbyname_ex("node")

View File

@ -15,7 +15,7 @@ from inside the `{{cookiecutter.project_slug}}/docs` directory.
{% else %}
To build and serve docs, use the commands::
docker compose -f docker-compose.local.yml up docs
docker compose -f docker-compose.docs.yml up
{% endif %}

View File

@ -10,7 +10,7 @@ def main():
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.local")
try:
from django.core.management import execute_from_command_line
from django.core.management import execute_from_command_line # noqa: PLC0415
except ImportError as exc:
raise ImportError( # noqa: TRY003
"Couldn't import Django. Are you sure it's installed and " # noqa: EM101

View File

@ -1,5 +1,5 @@
python-slugify==8.0.4 # https://github.com/un33k/python-slugify
Pillow==11.2.1 # pyup: != 11.2.0 # https://github.com/python-pillow/Pillow
Pillow==11.3.0 # pyup: != 11.2.0 # https://github.com/python-pillow/Pillow
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
{%- if cookiecutter.windows == 'y' and cookiecutter.use_docker == 'n' %}
rcssmin==1.1.2 --install-option="--without-c-extensions" # https://github.com/ndparker/rcssmin
@ -23,7 +23,7 @@ flower==2.0.1 # https://github.com/mher/flower
{%- endif %}
{%- endif %}
{%- if cookiecutter.use_async == 'y' %}
uvicorn[standard]==0.34.3 # https://github.com/encode/uvicorn
uvicorn[standard]==0.35.0 # https://github.com/encode/uvicorn
uvicorn-worker==0.3.0 # https://github.com/Kludex/uvicorn-worker
{%- endif %}
@ -32,13 +32,13 @@ uvicorn-worker==0.3.0 # https://github.com/Kludex/uvicorn-worker
django==5.1.11 # pyup: < 5.2 # https://www.djangoproject.com/
django-environ==0.12.0 # https://github.com/joke2k/django-environ
django-model-utils==5.0.0 # https://github.com/jazzband/django-model-utils
django-allauth[mfa]==65.9.0 # https://github.com/pennersr/django-allauth
django-allauth[mfa]==65.10.0 # https://github.com/pennersr/django-allauth
django-crispy-forms==2.4 # https://github.com/django-crispy-forms/django-crispy-forms
crispy-bootstrap5==2025.6 # https://github.com/django-crispy-forms/crispy-bootstrap5
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
django-compressor==4.5.1 # https://github.com/django-compressor/django-compressor
{%- endif %}
django-redis==5.4.0 # https://github.com/jazzband/django-redis
django-redis==6.0.0 # https://github.com/jazzband/django-redis
{%- if cookiecutter.use_drf == 'y' %}
# Django REST Framework
djangorestframework==3.16.0 # https://github.com/encode/django-rest-framework
@ -47,5 +47,5 @@ django-cors-headers==4.7.0 # https://github.com/adamchainz/django-cors-headers
drf-spectacular==0.28.0 # https://github.com/tfranzel/drf-spectacular
{%- endif %}
{%- if cookiecutter.frontend_pipeline == 'Webpack' %}
django-webpack-loader==3.2.0 # https://github.com/django-webpack/django-webpack-loader
django-webpack-loader==3.2.1 # https://github.com/django-webpack/django-webpack-loader
{%- endif %}

View File

@ -8,14 +8,14 @@ psycopg[c]==3.2.9 # https://github.com/psycopg/psycopg
psycopg[binary]==3.2.9 # https://github.com/psycopg/psycopg
{%- endif %}
{%- if cookiecutter.use_async == 'y' or cookiecutter.use_celery == 'y' %}
watchfiles==1.0.5 # https://github.com/samuelcolvin/watchfiles
watchfiles==1.1.0 # https://github.com/samuelcolvin/watchfiles
{%- endif %}
# Testing
# ------------------------------------------------------------------------------
mypy==1.15.0 # https://github.com/python/mypy
django-stubs[compatible-mypy]==5.2.0 # https://github.com/typeddjango/django-stubs
pytest==8.4.0 # https://github.com/pytest-dev/pytest
mypy==1.17.1 # https://github.com/python/mypy
django-stubs[compatible-mypy]==5.2.2 # https://github.com/typeddjango/django-stubs
pytest==8.4.1 # https://github.com/pytest-dev/pytest
pytest-sugar==1.0.0 # https://github.com/Teemu/pytest-sugar
{%- if cookiecutter.use_drf == "y" %}
djangorestframework-stubs==3.16.0 # https://github.com/typeddjango/djangorestframework-stubs
@ -28,8 +28,8 @@ sphinx-autobuild==2024.10.3 # https://github.com/GaretJax/sphinx-autobuild
# Code quality
# ------------------------------------------------------------------------------
ruff==0.11.13 # https://github.com/astral-sh/ruff
coverage==7.8.2 # https://github.com/nedbat/coveragepy
ruff==0.12.7 # https://github.com/astral-sh/ruff
coverage==7.10.1 # https://github.com/nedbat/coveragepy
djlint==1.36.4 # https://github.com/Riverside-Healthcare/djLint
pre-commit==4.2.0 # https://github.com/pre-commit/pre-commit
@ -39,5 +39,5 @@ factory-boy==3.3.2 # https://github.com/FactoryBoy/factory_boy
django-debug-toolbar==5.2.0 # https://github.com/jazzband/django-debug-toolbar
django-extensions==4.1 # https://github.com/django-extensions/django-extensions
django-coverage-plugin==3.1.0 # https://github.com/nedbat/django_coverage_plugin
django-coverage-plugin==3.1.1 # https://github.com/nedbat/django_coverage_plugin
pytest-django==4.11.1 # https://github.com/pytest-dev/pytest-django

View File

@ -8,7 +8,7 @@ psycopg[c]==3.2.9 # https://github.com/psycopg/psycopg
Collectfasta==3.3.0 # https://github.com/jasongi/collectfasta
{%- endif %}
{%- if cookiecutter.use_sentry == "y" %}
sentry-sdk==2.29.1 # https://github.com/getsentry/sentry-python
sentry-sdk==2.34.1 # https://github.com/getsentry/sentry-python
{%- endif %}
{%- if cookiecutter.use_docker == "n" and cookiecutter.windows == "y" %}
hiredis==3.2.1 # https://github.com/redis/hiredis-py
@ -24,21 +24,21 @@ django-storages[google]==1.14.6 # https://github.com/jschneier/django-storages
django-storages[azure]==1.14.6 # https://github.com/jschneier/django-storages
{%- endif %}
{%- if cookiecutter.mail_service == 'Mailgun' %}
django-anymail[mailgun]==13.0 # https://github.com/anymail/django-anymail
django-anymail[mailgun]==13.0.1 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Amazon SES' %}
django-anymail[amazon-ses]==13.0 # https://github.com/anymail/django-anymail
django-anymail[amazon-ses]==13.0.1 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Mailjet' %}
django-anymail[mailjet]==13.0 # https://github.com/anymail/django-anymail
django-anymail[mailjet]==13.0.1 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Mandrill' %}
django-anymail[mandrill]==13.0 # https://github.com/anymail/django-anymail
django-anymail[mandrill]==13.0.1 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Postmark' %}
django-anymail[postmark]==13.0 # https://github.com/anymail/django-anymail
django-anymail[postmark]==13.0.1 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Sendgrid' %}
django-anymail[sendgrid]==13.0 # https://github.com/anymail/django-anymail
django-anymail[sendgrid]==13.0.1 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Brevo' %}
django-anymail[brevo]==13.0 # https://github.com/anymail/django-anymail
django-anymail[brevo]==13.0.1 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'SparkPost' %}
django-anymail[sparkpost]==13.0 # https://github.com/anymail/django-anymail
django-anymail[sparkpost]==13.0.1 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Other SMTP' %}
django-anymail==13.0 # https://github.com/anymail/django-anymail
django-anymail==13.0.1 # https://github.com/anymail/django-anymail
{%- endif %}

View File

@ -10,4 +10,4 @@ class UsersConfig(AppConfig):
def ready(self):
with contextlib.suppress(ImportError):
import {{ cookiecutter.project_slug }}.users.signals # noqa: F401
import {{ cookiecutter.project_slug }}.users.signals # noqa: F401, PLC0415

View File

@ -60,7 +60,7 @@ class TestUserAdmin:
def _force_allauth(self, settings):
settings.DJANGO_ADMIN_FORCE_ALLAUTH = True
# Reload the admin module to apply the setting change
import {{ cookiecutter.project_slug }}.users.admin as users_admin
import {{ cookiecutter.project_slug }}.users.admin as users_admin # noqa: PLC0415
with contextlib.suppress(admin.sites.AlreadyRegistered): # type: ignore[attr-defined]
reload(users_admin)