Compare commits

..

141 Commits

Author SHA1 Message Date
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
github-actions
75285a876c Release 2025.06.11 2025-06-12 02:36:29 +00:00
pyup.io bot
f82df6f501
Update collectfasta to 3.3.0 (#5892) 2025-06-11 09:00:52 +01:00
dependabot[bot]
37398d692b
Bump stefanzweifel/git-auto-commit-action from 5 to 6 (#5893)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-11 08:59:46 +01:00
github-actions
ffed1b2653 Release 2025.06.10 2025-06-11 02:36:28 +00:00
pyup.io bot
76de3fe445
Update django to 5.1.11 (#5891) 2025-06-10 17:43:31 +01:00
pyup.io bot
0ab457ebca
Update crispy-bootstrap5 to 2025.6 (#5888)
Update crispy-bootstrap5 from 2025.4 to 2025.6
2025-06-10 08:37:16 +01:00
github-actions
826793b210 Release 2025.06.06 2025-06-07 02:35:34 +00:00
pyup.io bot
95bdedbc61
Update ruff to 0.11.13 (#5887) 2025-06-06 15:49:43 +01:00
github-actions
c70632e583 Release 2025.06.05 2025-06-06 02:36:17 +00:00
dependabot[bot]
8e0fbcb6b7
Bump python from 3.12.10 to 3.12.11 in docs Docker (#5883)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-05 14:16:52 +01:00
dependabot[bot]
5f8e0e169b
Bump python from 3.12.10 to 3.12.11 in production Docker (#5884)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-05 14:16:27 +01:00
dependabot[bot]
96f02eaf6b
Bump python from 3.12.10 3.12.11 in local Docker (#5885)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-05 14:16:06 +01:00
pyup.io bot
d09df158df
Update django to 5.1.10 (#5882) 2025-06-05 14:13:09 +01:00
github-actions
ba23459c43 Release 2025.06.04 2025-06-05 02:36:17 +00:00
pyup.io bot
5a0456eee3
Update argon2-cffi to 25.1.0 (#5880)
Update argon2-cffi from 23.1.0 to 25.1.0
2025-06-04 08:57:48 +01:00
pyup.io bot
53efe49582
Update pytest to 8.4.0 (#5881) 2025-06-04 08:56:33 +01:00
github-actions
f5548e5249 Release 2025.06.02 2025-06-03 02:36:17 +00:00
pyup.io bot
3e9cac0745
Update django-allauth to 65.9.0 (#5879)
Update django-allauth from 65.8.1 to 65.9.0
2025-06-02 23:46:11 +01:00
pyup.io bot
84b8748ed5
Update uvicorn to 0.34.3 (#5878)
Update uvicorn from 0.34.2 to 0.34.3
2025-06-02 23:46:00 +01:00
pyup.io bot
9156c58feb
Update celery to 5.5.3 (#5877)
Update celery from 5.5.2 to 5.5.3
2025-06-02 23:45:50 +01:00
pyup.io bot
7b8ef0a08e
Update ruff to 0.11.12 (#5872)
Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-06-02 10:35:46 +01:00
github-actions
98bcde07e7 Release 2025.05.28 2025-05-29 02:35:52 +00:00
pyup.io bot
7c06034d1f
Update redis to 6.2.0 (#5871) 2025-05-28 08:58:01 +01:00
dependabot[bot]
3dde62ed1b
Bump traefik from 3.4.0 to 3.4.1 (#5870) 2025-05-28 07:50:38 +01:00
github-actions
a4aad012c7 Release 2025.05.27 2025-05-28 02:35:54 +00:00
pyup.io bot
9eebe290e0
Update coverage to 7.8.2 (#5868) 2025-05-27 11:42:03 +01:00
pyup.io bot
900ec01cec
Update hiredis to 3.2.1 (#5867) 2025-05-27 11:39:47 +01:00
github-actions
a39af939e2 Release 2025.05.24 2025-05-25 02:39:11 +00:00
github-actions[bot]
7988f3fd23
Auto-update pre-commit hooks (#5866)
Co-authored-by: browniebroke <861044+browniebroke@users.noreply.github.com>
2025-05-24 10:43:21 +01:00
github-actions
3d8f4ee247 Release 2025.05.23 2025-05-24 02:33:36 +00:00
pyup.io bot
d37046ed5a
Update hiredis to 3.2.0 (#5864)
* Update hiredis from 3.1.1 to 3.2.0

* Update hiredis from 3.1.1 to 3.2.0
2025-05-23 13:34:52 +01:00
pyup.io bot
4777cdfa80
Update ruff to 0.11.11 (#5865)
* Update ruff from 0.11.10 to 0.11.11

* Align versions

---------

Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-05-23 13:34:43 +01:00
github-actions
699c164d6d Release 2025.05.22 2025-05-23 02:35:32 +00:00
Bruno Alla
b97986d341
Remove pin for fido2 library (#5861) 2025-05-22 14:50:18 +01:00
pyup.io bot
2a92365331
Update coverage to 7.8.1 (#5860) 2025-05-22 12:52:42 +01:00
pyup.io bot
ee02e671ac
Update django-allauth to 65.8.1 (#5859) 2025-05-22 12:52:31 +01:00
github-actions
b22faebb73 Release 2025.05.21 2025-05-22 02:35:34 +00:00
github-actions[bot]
05f7b43a25
Auto-update pre-commit hooks (#5858)
Co-authored-by: browniebroke <861044+browniebroke@users.noreply.github.com>
2025-05-21 09:01:38 +01:00
github-actions
c98d5d0cee Release 2025.05.20 2025-05-21 02:35:47 +00:00
pyup.io bot
38acfabfba
Update sentry-sdk to 2.29.1 (#5853)
Update sentry-sdk from 2.28.0 to 2.29.1

Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
2025-05-20 23:58:18 +01:00
Bruno Alla
9c021a0e29
Pin fido2<2 (#5854) 2025-05-20 17:58:16 +01:00
pyup.io bot
e7fdaf71c4
Update django-webpack-loader from 3.1.1 to 3.2.0 (#5852) 2025-05-20 14:45:06 +01:00
github-actions
42f0191b57 Release 2025.05.16 2025-05-17 02:33:46 +00:00
pyup.io bot
1133ed4f5a
Update django-celery-beat from 2.7.0 to 2.8.1 (#5841) 2025-05-16 11:06:10 +01:00
pyup.io bot
2ace5c2035
Update ruff to 0.11.10 (#5847)
Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-05-16 11:04:24 +01:00
github-actions
e2f0866ebf Release 2025.05.14 2025-05-15 02:34:54 +00:00
github-actions[bot]
3e554c7f56
Auto-update pre-commit hooks (#5846)
Co-authored-by: browniebroke <861044+browniebroke@users.noreply.github.com>
2025-05-14 08:41:28 +01:00
github-actions
f2085d8235 Release 2025.05.13 2025-05-14 02:35:10 +00:00
Dominique Plante
a7a8fe659a
Remove redundant use_celery condition in local compose file (#5845) 2025-05-13 23:21:19 +01:00
pyup.io bot
1fa7bcf480
Update psycopg to 3.2.9 (#5844) 2025-05-13 22:26:21 +01:00
pyup.io bot
1e822d401d
Update redis from 6.0.0 to 6.1.0 (#5842) 2025-05-13 22:07:03 +01:00
github-actions
b82478e20f Release 2025.05.12 2025-05-13 02:35:29 +00:00
pyup.io bot
d560bcd226
Update sentry-sdk from 2.27.0 to 2.28.0 (#5839) 2025-05-12 11:55:19 +01:00
pyup.io bot
1625d4b786
Update djangorestframework-stubs from 3.15.3 to 3.16.0 (#5806) 2025-05-12 09:38:43 +01:00
dependabot[bot]
901531e108
Bump traefik from 3.3.5 to 3.4.0 (#5824) 2025-05-12 09:38:12 +01:00
dependabot[bot]
e21e19fb97
Bump python from 3.12.9 to 3.12.10 in production Dockerfile (#5774) 2025-05-12 09:37:32 +01:00
dependabot[bot]
31fdd07423
Bump python from 3.12.9 to 3.12.10 in docs Dockerfile (#5773) 2025-05-12 09:36:57 +01:00
dependabot[bot]
d5f9b4606a
Bump python from 3.12.9 to 3.12.10 local Dockerfile (#5772)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-12 09:36:06 +01:00
pyup.io bot
42c88653b0
Update redis from 5.3.0 to 6.0.0 (#5814) 2025-05-12 09:31:09 +01:00
pyup.io bot
00b9add585
Update psycopg to 3.2.8 (#5836) 2025-05-12 09:30:09 +01:00
pyup.io bot
da34308002
Update django-stubs to 5.2.0 (#5804)
Co-authored-by: Bruno Alla <alla.brunoo@gmail.com>
2025-05-12 09:29:29 +01:00
dependabot[bot]
218cee4ae4
Bump amazon/aws-cli (#5838) 2025-05-12 09:18:31 +01:00
browniebroke
dd2a3b35db Update Contributors 2025-05-12 08:17:44 +00:00
Dominique Plante
8a7b5473ee
Fix media folder permissions prod dockerfile (#5831) 2025-05-12 09:17:13 +01:00
browniebroke
f7e1091764 Update Contributors 2025-05-12 08:16:31 +00:00
Jeff Foster
341e7c1a68
Add support for PostgreSQL 17 (#5805)
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
2025-05-12 09:16:13 +01:00
browniebroke
6c0a918a6d Update Contributors 2025-05-12 08:15:57 +00:00
Jeongseok Kang
d42fc65750
Remove extra spaces in Dockerfile COPY instruction paths (#5822) 2025-05-12 09:15:41 +01:00
pyup.io bot
802f2e4e59
Update ruff to 0.11.9 (#5834)
Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-05-12 09:11:57 +01:00
pyup.io bot
2156ab0914
Update hiredis to 3.1.1 (#5833) 2025-05-12 09:11:38 +01:00
github-actions
27e15941e1 Release 2025.05.09 2025-05-10 02:32:58 +00:00
pyup.io bot
c1cded527a
Update django-debug-toolbar from 5.1.0 to 5.2.0 (#5816) 2025-05-09 12:26:23 +01:00
pyup.io bot
4c14f22f2b
Update django-allauth from 65.7.0 to 65.8.0 (#5830) 2025-05-09 12:25:24 +01:00
pyup.io bot
be4ad11181
Update django from 5.1.8 to 5.1.9 (#5828) 2025-05-09 12:24:59 +01:00
github-actions
c534821b9a Release 2025.05.02 2025-05-03 02:32:55 +00:00
pyup.io bot
38373810c5
Update ruff to 0.11.8 (#5819)
* Update ruff from 0.11.7 to 0.11.8

* Align versions

---------

Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-05-02 08:16:31 +01:00
github-actions
9638d8946b Release 2025.04.30 2025-05-01 02:37:14 +00:00
pyup.io bot
64334f0ea3
Update celery from 5.5.0 to 5.5.2 (#5803) 2025-04-30 22:10:30 +01:00
pyup.io bot
f359e21ce1
Update ruff to 0.11.7 (#5815)
* Update ruff from 0.11.6 to 0.11.7

* Align versions

---------

Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-04-30 22:10:03 +01:00
pyup.io bot
d310da85f4
Update sentry-sdk from 2.25.1 to 2.27.0 (#5799) 2025-04-30 22:08:56 +01:00
pyup.io bot
72048bbcb7
Update uvicorn from 0.34.0 to 0.34.2 (#5791) 2025-04-30 22:08:42 +01:00
pyup.io bot
7337946a11
Update django-crispy-forms from 2.3 to 2.4 (#5780) 2025-04-30 22:08:21 +01:00
pyup.io bot
369dffa7c3
Update pillow from 11.1.0 to 11.2.1 (#5779) 2025-04-30 22:08:02 +01:00
pyup.io bot
ba3df2a915
Update django-extensions from 4.0 to 4.1 (#5776) 2025-04-30 22:07:47 +01:00
pyup.io bot
9251245037
Update watchfiles from 1.0.4 to 1.0.5 (#5771) 2025-04-30 22:07:31 +01:00
dependabot[bot]
28e1406368
Bump astral-sh/setup-uv from 5 to 6 (#5801)
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 5 to 6.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](https://github.com/astral-sh/setup-uv/compare/v5...v6)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-30 22:02:29 +01:00
pyup.io bot
54ad75120a
Update ruff to 0.11.6 (#5789)
* Update ruff from 0.11.4 to 0.11.6

* Align versions

---------

Co-authored-by: pyup-bot <16239342+pyup-bot@users.noreply.github.com>
2025-04-30 22:01:38 +01:00
pyup-bot
f7cfc41853 Update psycopg from 3.2.6 to 3.2.7 2025-04-30 17:29:19 -03:00
pyup-bot
ccb9695605 Update psycopg from 3.2.6 to 3.2.7 2025-04-30 17:29:19 -03:00
pyup-bot
c36d588a46 Update psycopg from 3.2.6 to 3.2.7 2025-04-30 17:29:19 -03:00
pyup-bot
037ccea084 Update redis from 5.2.1 to 5.3.0 2025-04-30 16:32:51 -03:00
Bruno Alla
846af52e73 Group Docker Python upgrades 2025-04-09 12:30:20 +01:00
github-actions
9a3a3c686a Release 2025.04.08 2025-04-09 02:33:08 +00:00
pyup.io bot
8316bdc708
Update django-extensions from 3.2.3 to 4.0 (#5770) 2025-04-08 09:37:28 +01:00
github-actions
71f6c8ac09 Release 2025.04.05 2025-04-06 02:33:35 +00:00
browniebroke
22fb3141a1 Update Contributors 2025-04-05 10:42:33 +00:00
Aidos Kanapyanov
458a21ee5c
Add Docker build caching on GitHub Actions (#5700) 2025-04-05 11:42:17 +01:00
pyup.io bot
06c0cd2bf8
Update ruff to 0.11.4 (#5767) 2025-04-05 11:03:17 +01:00
browniebroke
10d80a2ff9 Update Contributors 2025-04-05 09:58:43 +00:00
Pepa
6455b39c07
Pin Pillow and Sphinx to non yanked release (#5765) 2025-04-05 10:58:27 +01:00
Bruno Alla
bf9ac68fed
Skip align-versions workflow (#5766)
* Skip align-versions workflow on forks

* Update repo link in local.txt

* Update condition to restrict on GitHub actor
2025-04-04 14:03:23 +01:00
github-actions
bb2d056a15 Release 2025.04.03 2025-04-04 02:31:57 +00:00
pyup.io bot
7ba49c9dc5
Update django-anymail to 13.0 (#5763) 2025-04-03 23:23:35 +01:00
pyup.io bot
b4590cf8d9
Update pytest-django from 4.11.0 to 4.11.1 (#5762) 2025-04-03 21:42:46 +01:00
pyup.io bot
8f1b488069
Update ruff to 0.11.3 (#5761) 2025-04-03 16:12:24 +01:00
pyup.io bot
9085f602fa
Update django-allauth from 65.6.0 to 65.7.0 (#5760) 2025-04-03 14:18:33 +01:00
35 changed files with 590 additions and 117 deletions

View File

@ -1703,5 +1703,35 @@
"name": "Igor Jerosimić", "name": "Igor Jerosimić",
"github_login": "igor-wl", "github_login": "igor-wl",
"twitter_username": "" "twitter_username": ""
},
{
"name": "Pepa",
"github_login": "07pepa",
"twitter_username": ""
},
{
"name": "Aidos Kanapyanov",
"github_login": "aidoskanapyanov",
"twitter_username": ""
},
{
"name": "Jeongseok Kang",
"github_login": "rapsealk",
"twitter_username": ""
},
{
"name": "Jeff Foster",
"github_login": "jeffpfoster",
"twitter_username": ""
},
{
"name": "Dominique Plante",
"github_login": "dominiqueplante",
"twitter_username": ""
},
{
"name": "Lucas Klasa",
"github_login": "lucaskbr",
"twitter_username": ""
} }
] ]

View File

@ -43,6 +43,10 @@ updates:
- "version-update:semver-minor" - "version-update:semver-minor"
labels: labels:
- "update" - "update"
groups:
docker-python:
patterns:
- "*"
- package-ecosystem: "docker" - package-ecosystem: "docker"
directories: directories:

View File

@ -14,6 +14,7 @@ permissions:
jobs: jobs:
run: run:
if: ${{ github.actor == 'pyup-bot' }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
GH_PAT: ${{ secrets.GH_PAT }} GH_PAT: ${{ secrets.GH_PAT }}
@ -42,10 +43,10 @@ jobs:
with: with:
ref: ${{ github.head_ref }} ref: ${{ github.head_ref }}
- uses: astral-sh/setup-uv@v5 - uses: astral-sh/setup-uv@v6
- run: uv run ${{ matrix.job.script }} - run: uv run ${{ matrix.job.script }}
- uses: stefanzweifel/git-auto-commit-action@v5 - uses: stefanzweifel/git-auto-commit-action@v6
with: with:
commit_message: Align versions commit_message: Align versions

View File

@ -24,7 +24,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v5 uses: astral-sh/setup-uv@v6
- name: Install dependencies - name: Install dependencies
run: uv sync run: uv sync
- name: Run tests - name: Run tests
@ -53,7 +53,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v5 uses: astral-sh/setup-uv@v6
- name: Install dependencies - name: Install dependencies
run: uv sync run: uv sync
- name: Docker ${{ matrix.script.name }} - name: Docker ${{ matrix.script.name }}
@ -98,7 +98,7 @@ jobs:
with: with:
python-version: "3.12" python-version: "3.12"
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v5 uses: astral-sh/setup-uv@v6
- name: Install dependencies - name: Install dependencies
run: uv sync run: uv sync
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4

View File

@ -26,8 +26,8 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
if: ${{ env.GH_PAT == '' }} if: ${{ env.GH_PAT == '' }}
- uses: astral-sh/setup-uv@v5 - uses: astral-sh/setup-uv@v6
- run: uv lock - run: uv lock
- uses: stefanzweifel/git-auto-commit-action@v5 - uses: stefanzweifel/git-auto-commit-action@v6
with: with:
commit_message: Regenerate uv.lock commit_message: Regenerate uv.lock

View File

@ -18,7 +18,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v5 uses: astral-sh/setup-uv@v6
- name: Create Django Major Issue - name: Create Django Major Issue
run: uv run --frozen scripts/create_django_issue.py run: uv run --frozen scripts/create_django_issue.py
env: env:

View File

@ -16,7 +16,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v5 uses: astral-sh/setup-uv@v6
- name: Set git details - name: Set git details
run: | run: |
git config --global user.name "github-actions" git config --global user.name "github-actions"

View File

@ -19,14 +19,14 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v5 uses: astral-sh/setup-uv@v6
- name: Update list - name: Update list
run: uv run --frozen scripts/update_contributors.py run: uv run --frozen scripts/update_contributors.py
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Commit changes - name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v5.0.1 uses: stefanzweifel/git-auto-commit-action@v6
with: with:
commit_message: Update Contributors commit_message: Update Contributors
file_pattern: CONTRIBUTORS.md .github/contributors.json file_pattern: CONTRIBUTORS.md .github/contributors.json

View File

@ -27,7 +27,7 @@ repos:
args: ["--tab-width", "2"] args: ["--tab-width", "2"]
- repo: https://github.com/asottile/pyupgrade - repo: https://github.com/asottile/pyupgrade
rev: v3.19.1 rev: v3.20.0
hooks: hooks:
- id: pyupgrade - id: pyupgrade
args: [--py312-plus] args: [--py312-plus]
@ -44,12 +44,12 @@ repos:
- id: isort - id: isort
- repo: https://github.com/PyCQA/flake8 - repo: https://github.com/PyCQA/flake8
rev: 7.2.0 rev: 7.3.0
hooks: hooks:
- id: flake8 - id: flake8
- repo: https://github.com/tox-dev/pyproject-fmt - repo: https://github.com/tox-dev/pyproject-fmt
rev: "v2.5.1" rev: "v2.6.0"
hooks: hooks:
- id: pyproject-fmt - id: pyproject-fmt

View File

@ -3,6 +3,377 @@ All enhancements and patches to Cookiecutter Django will be documented in this f
<!-- GENERATOR_PLACEHOLDER --> <!-- GENERATOR_PLACEHOLDER -->
## 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
### Updated
- Update collectfasta to 3.3.0 ([#5892](https://github.com/cookiecutter/cookiecutter-django/pull/5892))
## 2025.06.10
### Updated
- Update django to 5.1.11 ([#5891](https://github.com/cookiecutter/cookiecutter-django/pull/5891))
- Update crispy-bootstrap5 to 2025.6 ([#5888](https://github.com/cookiecutter/cookiecutter-django/pull/5888))
## 2025.06.06
### Updated
- Update ruff to 0.11.13 ([#5887](https://github.com/cookiecutter/cookiecutter-django/pull/5887))
## 2025.06.05
### Updated
- Bump python from 3.12.10 to 3.12.11 in docs Docker ([#5883](https://github.com/cookiecutter/cookiecutter-django/pull/5883))
- Bump python from 3.12.10 to 3.12.11 in production Docker ([#5884](https://github.com/cookiecutter/cookiecutter-django/pull/5884))
- Bump python from 3.12.10 3.12.11 in local Docker ([#5885](https://github.com/cookiecutter/cookiecutter-django/pull/5885))
- Update django to 5.1.10 ([#5882](https://github.com/cookiecutter/cookiecutter-django/pull/5882))
## 2025.06.04
### Updated
- Update argon2-cffi to 25.1.0 ([#5880](https://github.com/cookiecutter/cookiecutter-django/pull/5880))
- Update pytest to 8.4.0 ([#5881](https://github.com/cookiecutter/cookiecutter-django/pull/5881))
## 2025.06.02
### Updated
- Update django-allauth to 65.9.0 ([#5879](https://github.com/cookiecutter/cookiecutter-django/pull/5879))
- Update uvicorn to 0.34.3 ([#5878](https://github.com/cookiecutter/cookiecutter-django/pull/5878))
- Update celery to 5.5.3 ([#5877](https://github.com/cookiecutter/cookiecutter-django/pull/5877))
- Update ruff to 0.11.12 ([#5872](https://github.com/cookiecutter/cookiecutter-django/pull/5872))
## 2025.05.28
### Updated
- Update redis to 6.2.0 ([#5871](https://github.com/cookiecutter/cookiecutter-django/pull/5871))
- Bump traefik from 3.4.0 to 3.4.1 ([#5870](https://github.com/cookiecutter/cookiecutter-django/pull/5870))
## 2025.05.27
### Updated
- Update coverage to 7.8.2 ([#5868](https://github.com/cookiecutter/cookiecutter-django/pull/5868))
- Update hiredis to 3.2.1 ([#5867](https://github.com/cookiecutter/cookiecutter-django/pull/5867))
## 2025.05.24
### Updated
- Auto-update pre-commit hooks ([#5866](https://github.com/cookiecutter/cookiecutter-django/pull/5866))
## 2025.05.23
### Updated
- Update hiredis to 3.2.0 ([#5864](https://github.com/cookiecutter/cookiecutter-django/pull/5864))
- Update ruff to 0.11.11 ([#5865](https://github.com/cookiecutter/cookiecutter-django/pull/5865))
## 2025.05.22
### Changed
- Remove pin for fido2 library ([#5861](https://github.com/cookiecutter/cookiecutter-django/pull/5861))
### Updated
- Update coverage to 7.8.1 ([#5860](https://github.com/cookiecutter/cookiecutter-django/pull/5860))
- Update django-allauth to 65.8.1 ([#5859](https://github.com/cookiecutter/cookiecutter-django/pull/5859))
## 2025.05.21
### Updated
- Auto-update pre-commit hooks ([#5858](https://github.com/cookiecutter/cookiecutter-django/pull/5858))
## 2025.05.20
### Fixed
- Pin fido2&lt;2 ([#5854](https://github.com/cookiecutter/cookiecutter-django/pull/5854))
### Updated
- Update sentry-sdk to 2.29.1 ([#5853](https://github.com/cookiecutter/cookiecutter-django/pull/5853))
- Update django-webpack-loader to 3.2.0 ([#5852](https://github.com/cookiecutter/cookiecutter-django/pull/5852))
## 2025.05.16
### Updated
- Update django-celery-beat to 2.8.1 ([#5841](https://github.com/cookiecutter/cookiecutter-django/pull/5841))
- Update ruff to 0.11.10 ([#5847](https://github.com/cookiecutter/cookiecutter-django/pull/5847))
## 2025.05.14
### Updated
- Auto-update pre-commit hooks ([#5846](https://github.com/cookiecutter/cookiecutter-django/pull/5846))
## 2025.05.13
### Changed
- Remove redundant `use_celery` condition in local compose file ([#5845](https://github.com/cookiecutter/cookiecutter-django/pull/5845))
### Updated
- Update psycopg to 3.2.9 ([#5844](https://github.com/cookiecutter/cookiecutter-django/pull/5844))
- Update redis to 6.1.0 ([#5842](https://github.com/cookiecutter/cookiecutter-django/pull/5842))
## 2025.05.12
### Changed
- Remove extra spaces in Dockerfile `COPY` instruction paths ([#5822](https://github.com/cookiecutter/cookiecutter-django/pull/5822))
- Add support for PostgreSQL 17 ([#5805](https://github.com/cookiecutter/cookiecutter-django/pull/5805))
### Fixed
- Fix media folder permissions prod dockerfile ([#5831](https://github.com/cookiecutter/cookiecutter-django/pull/5831))
### Updated
- Update sentry-sdk to 2.28.0 ([#5839](https://github.com/cookiecutter/cookiecutter-django/pull/5839))
- Update djangorestframework-stubs to 3.16.0 ([#5806](https://github.com/cookiecutter/cookiecutter-django/pull/5806))
- Bump traefik from 3.3.5 to 3.4.0 ([#5824](https://github.com/cookiecutter/cookiecutter-django/pull/5824))
- Bump python from 3.12.9 to 3.12.10 in production Dockerfile ([#5774](https://github.com/cookiecutter/cookiecutter-django/pull/5774))
- Bump python from 3.12.9 to 3.12.10 in docs Dockerfile ([#5773](https://github.com/cookiecutter/cookiecutter-django/pull/5773))
- Bump python from 3.12.9 to 3.12.10 local Dockerfile ([#5772](https://github.com/cookiecutter/cookiecutter-django/pull/5772))
- Update redis to 6.0.0 ([#5814](https://github.com/cookiecutter/cookiecutter-django/pull/5814))
- Update psycopg to 3.2.8 ([#5836](https://github.com/cookiecutter/cookiecutter-django/pull/5836))
- Update django-stubs to 5.2.0 ([#5804](https://github.com/cookiecutter/cookiecutter-django/pull/5804))
- Bump amazon/aws-cli from 2.25.0 to 2.27.12 ([#5838](https://github.com/cookiecutter/cookiecutter-django/pull/5838))
- Update ruff to 0.11.9 ([#5834](https://github.com/cookiecutter/cookiecutter-django/pull/5834))
- Update hiredis to 3.1.1 ([#5833](https://github.com/cookiecutter/cookiecutter-django/pull/5833))
## 2025.05.09
### Updated
- Update django-debug-toolbar to 5.2.0 ([#5816](https://github.com/cookiecutter/cookiecutter-django/pull/5816))
- Update django-allauth to 65.8.0 ([#5830](https://github.com/cookiecutter/cookiecutter-django/pull/5830))
- Update django to 5.1.9 ([#5828](https://github.com/cookiecutter/cookiecutter-django/pull/5828))
## 2025.05.02
### Updated
- Update ruff to 0.11.8 ([#5819](https://github.com/cookiecutter/cookiecutter-django/pull/5819))
## 2025.04.30
### Updated
- Update celery to 5.5.2 ([#5803](https://github.com/cookiecutter/cookiecutter-django/pull/5803))
- Update ruff to 0.11.7 ([#5815](https://github.com/cookiecutter/cookiecutter-django/pull/5815))
- Update sentry-sdk to 2.27.0 ([#5799](https://github.com/cookiecutter/cookiecutter-django/pull/5799))
- Update uvicorn to 0.34.2 ([#5791](https://github.com/cookiecutter/cookiecutter-django/pull/5791))
- Update django-crispy-forms to 2.4 ([#5780](https://github.com/cookiecutter/cookiecutter-django/pull/5780))
- Update pillow to 11.2.1 ([#5779](https://github.com/cookiecutter/cookiecutter-django/pull/5779))
- Update django-extensions to 4.1 ([#5776](https://github.com/cookiecutter/cookiecutter-django/pull/5776))
- Update watchfiles to 1.0.5 ([#5771](https://github.com/cookiecutter/cookiecutter-django/pull/5771))
- Update ruff to 0.11.6 ([#5789](https://github.com/cookiecutter/cookiecutter-django/pull/5789))
- Update psycopg to 3.2.7 ([#5811](https://github.com/cookiecutter/cookiecutter-django/pull/5811))
- Update redis to 5.3.0 ([#5813](https://github.com/cookiecutter/cookiecutter-django/pull/5813))
## 2025.04.08
### Updated
- Update django-extensions to 4.0 ([#5770](https://github.com/cookiecutter/cookiecutter-django/pull/5770))
## 2025.04.05
### Changed
- Add Docker build caching on GitHub Actions ([#5700](https://github.com/cookiecutter/cookiecutter-django/pull/5700))
- Pin Pillow and Sphinx to non yanked release ([#5765](https://github.com/cookiecutter/cookiecutter-django/pull/5765))
### Updated
- Update ruff to 0.11.4 ([#5767](https://github.com/cookiecutter/cookiecutter-django/pull/5767))
## 2025.04.03
### Updated
- Update django-anymail to 13.0 ([#5763](https://github.com/cookiecutter/cookiecutter-django/pull/5763))
- Update pytest-django to 4.11.1 ([#5762](https://github.com/cookiecutter/cookiecutter-django/pull/5762))
- Update ruff to 0.11.3 ([#5761](https://github.com/cookiecutter/cookiecutter-django/pull/5761))
- Update django-allauth to 65.7.0 ([#5760](https://github.com/cookiecutter/cookiecutter-django/pull/5760))
## 2025.04.02 ## 2025.04.02

View File

@ -201,6 +201,13 @@ Listed in alphabetical order.
</td> </td>
<td></td> <td></td>
</tr> </tr>
<tr>
<td>Aidos Kanapyanov</td>
<td>
<a href="https://github.com/aidoskanapyanov">aidoskanapyanov</a>
</td>
<td></td>
</tr>
<tr> <tr>
<td>Alan Cyment</td> <td>Alan Cyment</td>
<td> <td>
@ -775,6 +782,13 @@ Listed in alphabetical order.
</td> </td>
<td></td> <td></td>
</tr> </tr>
<tr>
<td>Dominique Plante</td>
<td>
<a href="https://github.com/dominiqueplante">dominiqueplante</a>
</td>
<td></td>
</tr>
<tr> <tr>
<td>Dong Huynh</td> <td>Dong Huynh</td>
<td> <td>
@ -1202,6 +1216,13 @@ Listed in alphabetical order.
</td> </td>
<td></td> <td></td>
</tr> </tr>
<tr>
<td>Jeff Foster</td>
<td>
<a href="https://github.com/jeffpfoster">jeffpfoster</a>
</td>
<td></td>
</tr>
<tr> <tr>
<td>Jens Kaeske</td> <td>Jens Kaeske</td>
<td> <td>
@ -1216,6 +1237,13 @@ Listed in alphabetical order.
</td> </td>
<td></td> <td></td>
</tr> </tr>
<tr>
<td>Jeongseok Kang</td>
<td>
<a href="https://github.com/rapsealk">rapsealk</a>
</td>
<td></td>
</tr>
<tr> <tr>
<td>Jerome Caisip</td> <td>Jerome Caisip</td>
<td> <td>
@ -1482,6 +1510,13 @@ Listed in alphabetical order.
</td> </td>
<td></td> <td></td>
</tr> </tr>
<tr>
<td>Lucas Klasa</td>
<td>
<a href="https://github.com/lucaskbr">lucaskbr</a>
</td>
<td></td>
</tr>
<tr> <tr>
<td>Luis Nell</td> <td>Luis Nell</td>
<td> <td>
@ -1881,6 +1916,13 @@ Listed in alphabetical order.
</td> </td>
<td></td> <td></td>
</tr> </tr>
<tr>
<td>Pepa</td>
<td>
<a href="https://github.com/07pepa">07pepa</a>
</td>
<td></td>
</tr>
<tr> <tr>
<td>Peter Bittner</td> <td>Peter Bittner</td>
<td> <td>

View File

@ -51,7 +51,7 @@ _These features can be enabled during initial project setup._
## Constraints ## Constraints
- Only maintained 3rd party libraries are used. - Only maintained 3rd party libraries are used.
- Uses PostgreSQL everywhere: 13 - 16 ([MySQL fork](https://github.com/mabdullahadeel/cookiecutter-django-mysql) also available). - Uses PostgreSQL everywhere: 13 - 17 ([MySQL fork](https://github.com/mabdullahadeel/cookiecutter-django-mysql) also available).
- Environment variables for configuration (This won't work with Apache/mod_wsgi). - Environment variables for configuration (This won't work with Apache/mod_wsgi).
## Support this Project! ## Support this Project!
@ -129,11 +129,12 @@ Answer the prompts with your own desired [options](http://cookiecutter-django.re
Choose from 1, 2, 3 [1]: 1 Choose from 1, 2, 3 [1]: 1
use_docker [n]: n use_docker [n]: n
Select postgresql_version: Select postgresql_version:
1 - 16 1 - 17
2 - 15 2 - 16
3 - 14 3 - 15
4 - 13 4 - 14
Choose from 1, 2, 3, 4 [1]: 1 5 - 13
Choose from 1, 2, 3, 4, 5 [1]: 1
Select cloud_provider: Select cloud_provider:
1 - AWS 1 - AWS
2 - GCP 2 - GCP

View File

@ -18,7 +18,7 @@
"windows": "n", "windows": "n",
"editor": ["None", "PyCharm", "VS Code"], "editor": ["None", "PyCharm", "VS Code"],
"use_docker": "n", "use_docker": "n",
"postgresql_version": ["16", "15", "14", "13"], "postgresql_version": ["17", "16", "15", "14", "13"],
"cloud_provider": ["AWS", "GCP", "Azure", "None"], "cloud_provider": ["AWS", "GCP", "Azure", "None"],
"mail_service": [ "mail_service": [
"Mailgun", "Mailgun",

View File

@ -66,10 +66,11 @@ use_docker:
postgresql_version: postgresql_version:
Select a PostgreSQL_ version to use. The choices are: Select a PostgreSQL_ version to use. The choices are:
1. 16 1. 17
2. 15 2. 16
3. 14 3. 15
4. 13 4. 14
5. 13
cloud_provider: cloud_provider:
Select a cloud provider for static & media files. The choices are: Select a cloud provider for static & media files. The choices are:

View File

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

View File

@ -59,6 +59,7 @@ SUPPORTED_COMBINATIONS = [
{"editor": "VS Code"}, {"editor": "VS Code"},
{"use_docker": "y"}, {"use_docker": "y"},
{"use_docker": "n"}, {"use_docker": "n"},
{"postgresql_version": "17"},
{"postgresql_version": "16"}, {"postgresql_version": "16"},
{"postgresql_version": "15"}, {"postgresql_version": "15"},
{"postgresql_version": "14"}, {"postgresql_version": "14"},

42
uv.lock
View File

@ -182,7 +182,7 @@ wheels = [
[[package]] [[package]]
name = "cookiecutter-django" name = "cookiecutter-django"
version = "2025.4.2" version = "2025.7.11"
source = { virtual = "." } source = { virtual = "." }
dependencies = [ dependencies = [
{ name = "binaryornot" }, { name = "binaryornot" },
@ -229,7 +229,7 @@ requires-dist = [
{ name = "pytest-xdist", specifier = "==3.6.1" }, { name = "pytest-xdist", specifier = "==3.6.1" },
{ name = "pyyaml", specifier = "==6.0.2" }, { name = "pyyaml", specifier = "==6.0.2" },
{ name = "requests", specifier = "==2.32.3" }, { name = "requests", specifier = "==2.32.3" },
{ name = "ruff", specifier = "==0.11.2" }, { name = "ruff", specifier = "==0.12.3" },
{ name = "sh", marker = "sys_platform != 'win23'", specifier = "==2.1" }, { name = "sh", marker = "sys_platform != 'win23'", specifier = "==2.1" },
{ name = "tox", specifier = "==4.23.2" }, { name = "tox", specifier = "==4.23.2" },
{ name = "tox-uv", specifier = ">=1.17" }, { name = "tox-uv", specifier = ">=1.17" },
@ -830,27 +830,27 @@ wheels = [
[[package]] [[package]]
name = "ruff" name = "ruff"
version = "0.11.2" version = "0.12.3"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/90/61/fb87430f040e4e577e784e325351186976516faef17d6fcd921fe28edfd7/ruff-0.11.2.tar.gz", hash = "sha256:ec47591497d5a1050175bdf4e1a4e6272cddff7da88a2ad595e1e326041d8d94", size = 3857511 } sdist = { url = "https://files.pythonhosted.org/packages/c3/2a/43955b530c49684d3c38fcda18c43caf91e99204c2a065552528e0552d4f/ruff-0.12.3.tar.gz", hash = "sha256:f1b5a4b6668fd7b7ea3697d8d98857390b40c1320a63a178eee6be0899ea2d77", size = 4459341 }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/62/99/102578506f0f5fa29fd7e0df0a273864f79af044757aef73d1cae0afe6ad/ruff-0.11.2-py3-none-linux_armv6l.whl", hash = "sha256:c69e20ea49e973f3afec2c06376eb56045709f0212615c1adb0eda35e8a4e477", size = 10113146 }, { url = "https://files.pythonhosted.org/packages/e2/fd/b44c5115539de0d598d75232a1cc7201430b6891808df111b8b0506aae43/ruff-0.12.3-py3-none-linux_armv6l.whl", hash = "sha256:47552138f7206454eaf0c4fe827e546e9ddac62c2a3d2585ca54d29a890137a2", size = 10430499 },
{ url = "https://files.pythonhosted.org/packages/74/ad/5cd4ba58ab602a579997a8494b96f10f316e874d7c435bcc1a92e6da1b12/ruff-0.11.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:2c5424cc1c4eb1d8ecabe6d4f1b70470b4f24a0c0171356290b1953ad8f0e272", size = 10867092 }, { url = "https://files.pythonhosted.org/packages/43/c5/9eba4f337970d7f639a37077be067e4ec80a2ad359e4cc6c5b56805cbc66/ruff-0.12.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:0a9153b000c6fe169bb307f5bd1b691221c4286c133407b8827c406a55282041", size = 11213413 },
{ url = "https://files.pythonhosted.org/packages/fc/3e/d3f13619e1d152c7b600a38c1a035e833e794c6625c9a6cea6f63dbf3af4/ruff-0.11.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:ecf20854cc73f42171eedb66f006a43d0a21bfb98a2523a809931cda569552d9", size = 10224082 }, { url = "https://files.pythonhosted.org/packages/e2/2c/fac3016236cf1fe0bdc8e5de4f24c76ce53c6dd9b5f350d902549b7719b2/ruff-0.12.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:fa6b24600cf3b750e48ddb6057e901dd5b9aa426e316addb2a1af185a7509882", size = 10586941 },
{ url = "https://files.pythonhosted.org/packages/90/06/f77b3d790d24a93f38e3806216f263974909888fd1e826717c3ec956bbcd/ruff-0.11.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c543bf65d5d27240321604cee0633a70c6c25c9a2f2492efa9f6d4b8e4199bb", size = 10394818 }, { url = "https://files.pythonhosted.org/packages/c5/0f/41fec224e9dfa49a139f0b402ad6f5d53696ba1800e0f77b279d55210ca9/ruff-0.12.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2506961bf6ead54887ba3562604d69cb430f59b42133d36976421bc8bd45901", size = 10783001 },
{ url = "https://files.pythonhosted.org/packages/99/7f/78aa431d3ddebfc2418cd95b786642557ba8b3cb578c075239da9ce97ff9/ruff-0.11.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:20967168cc21195db5830b9224be0e964cc9c8ecf3b5a9e3ce19876e8d3a96e3", size = 9952251 }, { url = "https://files.pythonhosted.org/packages/0d/ca/dd64a9ce56d9ed6cad109606ac014860b1c217c883e93bf61536400ba107/ruff-0.12.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c4faaff1f90cea9d3033cbbcdf1acf5d7fb11d8180758feb31337391691f3df0", size = 10269641 },
{ url = "https://files.pythonhosted.org/packages/30/3e/f11186d1ddfaca438c3bbff73c6a2fdb5b60e6450cc466129c694b0ab7a2/ruff-0.11.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:955a9ce63483999d9f0b8f0b4a3ad669e53484232853054cc8b9d51ab4c5de74", size = 11563566 }, { url = "https://files.pythonhosted.org/packages/63/5c/2be545034c6bd5ce5bb740ced3e7014d7916f4c445974be11d2a406d5088/ruff-0.12.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40dced4a79d7c264389de1c59467d5d5cefd79e7e06d1dfa2c75497b5269a5a6", size = 11875059 },
{ url = "https://files.pythonhosted.org/packages/22/6c/6ca91befbc0a6539ee133d9a9ce60b1a354db12c3c5d11cfdbf77140f851/ruff-0.11.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:86b3a27c38b8fce73bcd262b0de32e9a6801b76d52cdb3ae4c914515f0cef608", size = 12208721 }, { url = "https://files.pythonhosted.org/packages/8e/d4/a74ef1e801ceb5855e9527dae105eaff136afcb9cc4d2056d44feb0e4792/ruff-0.12.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:0262d50ba2767ed0fe212aa7e62112a1dcbfd46b858c5bf7bbd11f326998bafc", size = 12658890 },
{ url = "https://files.pythonhosted.org/packages/19/b0/24516a3b850d55b17c03fc399b681c6a549d06ce665915721dc5d6458a5c/ruff-0.11.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3b66a03b248c9fcd9d64d445bafdf1589326bee6fc5c8e92d7562e58883e30f", size = 11662274 }, { url = "https://files.pythonhosted.org/packages/13/c8/1057916416de02e6d7c9bcd550868a49b72df94e3cca0aeb77457dcd9644/ruff-0.12.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12371aec33e1a3758597c5c631bae9a5286f3c963bdfb4d17acdd2d395406687", size = 12232008 },
{ url = "https://files.pythonhosted.org/packages/d7/65/76be06d28ecb7c6070280cef2bcb20c98fbf99ff60b1c57d2fb9b8771348/ruff-0.11.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0397c2672db015be5aa3d4dac54c69aa012429097ff219392c018e21f5085147", size = 13792284 }, { url = "https://files.pythonhosted.org/packages/f5/59/4f7c130cc25220392051fadfe15f63ed70001487eca21d1796db46cbcc04/ruff-0.12.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:560f13b6baa49785665276c963edc363f8ad4b4fc910a883e2625bdb14a83a9e", size = 11499096 },
{ url = "https://files.pythonhosted.org/packages/ce/d2/4ceed7147e05852876f3b5f3fdc23f878ce2b7e0b90dd6e698bda3d20787/ruff-0.11.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:869bcf3f9abf6457fbe39b5a37333aa4eecc52a3b99c98827ccc371a8e5b6f1b", size = 11327861 }, { url = "https://files.pythonhosted.org/packages/d4/01/a0ad24a5d2ed6be03a312e30d32d4e3904bfdbc1cdbe63c47be9d0e82c79/ruff-0.12.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:023040a3499f6f974ae9091bcdd0385dd9e9eb4942f231c23c57708147b06311", size = 11688307 },
{ url = "https://files.pythonhosted.org/packages/c4/78/4935ecba13706fd60ebe0e3dc50371f2bdc3d9bc80e68adc32ff93914534/ruff-0.11.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2a2b50ca35457ba785cd8c93ebbe529467594087b527a08d487cf0ee7b3087e9", size = 10276560 }, { url = "https://files.pythonhosted.org/packages/93/72/08f9e826085b1f57c9a0226e48acb27643ff19b61516a34c6cab9d6ff3fa/ruff-0.12.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:883d844967bffff5ab28bba1a4d246c1a1b2933f48cb9840f3fdc5111c603b07", size = 10661020 },
{ url = "https://files.pythonhosted.org/packages/81/7f/1b2435c3f5245d410bb5dc80f13ec796454c21fbda12b77d7588d5cf4e29/ruff-0.11.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7c69c74bf53ddcfbc22e6eb2f31211df7f65054bfc1f72288fc71e5f82db3eab", size = 9945091 }, { url = "https://files.pythonhosted.org/packages/80/a0/68da1250d12893466c78e54b4a0ff381370a33d848804bb51279367fc688/ruff-0.12.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:2120d3aa855ff385e0e562fdee14d564c9675edbe41625c87eeab744a7830d12", size = 10246300 },
{ url = "https://files.pythonhosted.org/packages/39/c4/692284c07e6bf2b31d82bb8c32f8840f9d0627d92983edaac991a2b66c0a/ruff-0.11.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6e8fb75e14560f7cf53b15bbc55baf5ecbe373dd5f3aab96ff7aa7777edd7630", size = 10977133 }, { url = "https://files.pythonhosted.org/packages/6a/22/5f0093d556403e04b6fd0984fc0fb32fbb6f6ce116828fd54306a946f444/ruff-0.12.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6b16647cbb470eaf4750d27dddc6ebf7758b918887b56d39e9c22cce2049082b", size = 11263119 },
{ url = "https://files.pythonhosted.org/packages/94/cf/8ab81cb7dd7a3b0a3960c2769825038f3adcd75faf46dd6376086df8b128/ruff-0.11.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:842a472d7b4d6f5924e9297aa38149e5dcb1e628773b70e6387ae2c97a63c58f", size = 11378514 }, { url = "https://files.pythonhosted.org/packages/92/c9/f4c0b69bdaffb9968ba40dd5fa7df354ae0c73d01f988601d8fac0c639b1/ruff-0.12.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e1417051edb436230023575b149e8ff843a324557fe0a265863b7602df86722f", size = 11746990 },
{ url = "https://files.pythonhosted.org/packages/d9/3a/a647fa4f316482dacf2fd68e8a386327a33d6eabd8eb2f9a0c3d291ec549/ruff-0.11.2-py3-none-win32.whl", hash = "sha256:aca01ccd0eb5eb7156b324cfaa088586f06a86d9e5314b0eb330cb48415097cc", size = 10319835 }, { url = "https://files.pythonhosted.org/packages/fe/84/7cc7bd73924ee6be4724be0db5414a4a2ed82d06b30827342315a1be9e9c/ruff-0.12.3-py3-none-win32.whl", hash = "sha256:dfd45e6e926deb6409d0616078a666ebce93e55e07f0fb0228d4b2608b2c248d", size = 10589263 },
{ url = "https://files.pythonhosted.org/packages/86/54/3c12d3af58012a5e2cd7ebdbe9983f4834af3f8cbea0e8a8c74fa1e23b2b/ruff-0.11.2-py3-none-win_amd64.whl", hash = "sha256:3170150172a8f994136c0c66f494edf199a0bbea7a409f649e4bc8f4d7084080", size = 11373713 }, { url = "https://files.pythonhosted.org/packages/07/87/c070f5f027bd81f3efee7d14cb4d84067ecf67a3a8efb43aadfc72aa79a6/ruff-0.12.3-py3-none-win_amd64.whl", hash = "sha256:a946cf1e7ba3209bdef039eb97647f1c77f6f540e5845ec9c114d3af8df873e7", size = 11695072 },
{ url = "https://files.pythonhosted.org/packages/d6/d4/dd813703af8a1e2ac33bf3feb27e8a5ad514c9f219df80c64d69807e7f71/ruff-0.11.2-py3-none-win_arm64.whl", hash = "sha256:52933095158ff328f4c77af3d74f0379e34fd52f175144cefc1b192e7ccd32b4", size = 10441990 }, { url = "https://files.pythonhosted.org/packages/e0/30/f3eaf6563c637b6e66238ed6535f6775480db973c836336e4122161986fc/ruff-0.12.3-py3-none-win_arm64.whl", hash = "sha256:5f9c7c9c8f84c2d7f27e93674d27136fbf489720251544c4da7fb3d742e011b1", size = 10805855 },
] ]
[[package]] [[package]]

View File

@ -68,11 +68,31 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
{%- if cookiecutter.use_docker == 'y' %} {%- if cookiecutter.use_docker == 'y' %}
- name: Build the Stack - name: Set up Docker Buildx
run: docker compose -f docker-compose.local.yml build django uses: docker/setup-buildx-action@v3
- name: Build the docs - name: Build and cache local backend
run: docker compose -f docker-compose.docs.yml build docs uses: docker/bake-action@v6
with:
push: false
load: true
files: docker-compose.local.yml
targets: django
set: |
django.cache-from=type=gha,scope=django-cached-tests
django.cache-to=type=gha,scope=django-cached-tests,mode=max
postgres.cache-from=type=gha,scope=postgres-cached-tests
postgres.cache-to=type=gha,scope=postgres-cached-tests,mode=max
- name: Build and cache docs
uses: docker/bake-action@v6
with:
push: false
load: true
files: docker-compose.docs.yml
set: |
docs.cache-from=type=gha,scope=cached-docs
docs.cache-to=type=gha,scope=cached-docs,mode=max
- name: Check DB Migrations - name: Check DB Migrations
run: docker compose -f docker-compose.local.yml run --rm django python manage.py makemigrations --check run: docker compose -f docker-compose.local.yml run --rm django python manage.py makemigrations --check

View File

@ -29,17 +29,17 @@ 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.24.0' rev: '1.25.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.11.2 rev: v0.12.3
hooks: hooks:
# Linter # Linter
- id: ruff - id: ruff-check
args: [--fix, --exit-non-zero-on-fix] args: [--fix, --exit-non-zero-on-fix]
# Formatter # Formatter
- id: ruff-format - id: ruff-format

View File

@ -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.9-slim-bookworm AS python FROM docker.io/python:3.12.11-slim-bookworm AS python
# Python build stage # Python build stage
FROM python AS python-build-stage FROM python AS python-build-stage
@ -17,7 +17,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
COPY ./requirements . COPY ./requirements .
# Create Python Dependency and Sub-Dependency Wheels. # Create Python Dependency and Sub-Dependency Wheels.
RUN pip wheel --wheel-dir /usr/src/app/wheels \ RUN pip wheel --wheel-dir /usr/src/app/wheels \
-r ${BUILD_ENVIRONMENT}.txt -r ${BUILD_ENVIRONMENT}.txt
@ -48,7 +48,7 @@ RUN groupadd --gid 1000 dev-user \
# Install required system dependencies # Install required system dependencies
RUN apt-get update && apt-get install --no-install-recommends -y \ RUN apt-get update && apt-get install --no-install-recommends -y \
# psycopg dependencies # psycopg dependencies
libpq-dev \ libpq-dev \
wait-for-it \ wait-for-it \
# Translations dependencies # Translations dependencies
gettext \ gettext \
@ -58,7 +58,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
# All absolute dir copies ignore workdir instruction. All relative dir copies are wrt to the workdir instruction # All absolute dir copies ignore workdir instruction. All relative dir copies are wrt to the workdir instruction
# copy python dependency wheels from python-build-stage # copy python dependency wheels from python-build-stage
COPY --from=python-build-stage /usr/src/app/wheels /wheels/ COPY --from=python-build-stage /usr/src/app/wheels /wheels/
# use wheels to install python dependencies # use wheels to install python dependencies
RUN pip install --no-cache-dir --no-index --find-links=/wheels/ /wheels/* \ RUN pip install --no-cache-dir --no-index --find-links=/wheels/ /wheels/* \

View File

@ -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.9-slim-bookworm AS python FROM docker.io/python:3.12.11-slim-bookworm AS python
# Python build stage # Python build stage
@ -20,7 +20,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
COPY ./requirements /requirements COPY ./requirements /requirements
# create python dependency wheels # create python dependency wheels
RUN pip wheel --no-cache-dir --wheel-dir /usr/src/app/wheels \ RUN pip wheel --no-cache-dir --wheel-dir /usr/src/app/wheels \
-r /requirements/local.txt -r /requirements/production.txt \ -r /requirements/local.txt -r /requirements/production.txt \
&& rm -rf /requirements && rm -rf /requirements

View File

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

View File

@ -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.9-slim-bookworm AS python FROM docker.io/python:3.12.11-slim-bookworm AS python
# Python build stage # Python build stage
FROM python AS python-build-stage FROM python AS python-build-stage
@ -44,7 +44,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
COPY ./requirements . COPY ./requirements .
# Create Python Dependency and Sub-Dependency Wheels. # Create Python Dependency and Sub-Dependency Wheels.
RUN pip wheel --wheel-dir /usr/src/app/wheels \ RUN pip wheel --wheel-dir /usr/src/app/wheels \
-r ${BUILD_ENVIRONMENT}.txt -r ${BUILD_ENVIRONMENT}.txt
@ -78,7 +78,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
# All absolute dir copies ignore workdir instruction. All relative dir copies are wrt to the workdir instruction # All absolute dir copies ignore workdir instruction. All relative dir copies are wrt to the workdir instruction
# copy python dependency wheels from python-build-stage # copy python dependency wheels from python-build-stage
COPY --from=python-build-stage /usr/src/app/wheels /wheels/ COPY --from=python-build-stage /usr/src/app/wheels /wheels/
# use wheels to install python dependencies # use wheels to install python dependencies
RUN pip install --no-cache-dir --no-index --find-links=/wheels/ /wheels/* \ RUN pip install --no-cache-dir --no-index --find-links=/wheels/ /wheels/* \
@ -119,6 +119,11 @@ COPY --from=client-builder --chown=django:django ${APP_HOME} ${APP_HOME}
COPY --chown=django:django . ${APP_HOME} COPY --chown=django:django . ${APP_HOME}
{%- endif %} {%- endif %}
{%- if cookiecutter.cloud_provider == 'None' %}
# explicitly create the media folder before changing ownership below
RUN mkdir -p ${APP_HOME}/{{ cookiecutter.project_slug }}/media
{%- endif %}
# make django owner of the WORKDIR directory as well. # make django owner of the WORKDIR directory as well.
RUN chown -R django:django ${APP_HOME} RUN chown -R django:django ${APP_HOME}

View File

@ -1,4 +1,4 @@
FROM docker.io/traefik:3.3.5 FROM docker.io/traefik:3.4.3
RUN mkdir -p /etc/traefik/acme \ RUN mkdir -p /etc/traefik/acme \
&& touch /etc/traefik/acme/acme.json \ && touch /etc/traefik/acme/acme.json \
&& chmod 600 /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 @setup_logging.connect
def config_loggers(*args, **kwargs): 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) dictConfig(settings.LOGGING)

View File

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

View File

@ -53,10 +53,8 @@ services:
redis: redis:
image: docker.io/redis:6 image: docker.io/redis:6
container_name: {{ cookiecutter.project_slug }}_local_redis container_name: {{ cookiecutter.project_slug }}_local_redis
{% if cookiecutter.use_celery == 'y' %}
volumes: volumes:
- {{ cookiecutter.project_slug }}_local_redis_data:/data - {{ cookiecutter.project_slug }}_local_redis_data:/data
{% endif %}
celeryworker: celeryworker:
<<: *django <<: *django

View File

@ -15,7 +15,7 @@ from inside the `{{cookiecutter.project_slug}}/docs` directory.
{% else %} {% else %}
To build and serve docs, use the commands:: 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 %} {% endif %}

View File

@ -10,7 +10,7 @@ def main():
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.local") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.local")
try: 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: except ImportError as exc:
raise ImportError( # noqa: TRY003 raise ImportError( # noqa: TRY003
"Couldn't import Django. Are you sure it's installed and " # noqa: EM101 "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 python-slugify==8.0.4 # https://github.com/un33k/python-slugify
Pillow==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.frontend_pipeline == 'Django Compressor' %}
{%- if cookiecutter.windows == 'y' and cookiecutter.use_docker == 'n' %} {%- if cookiecutter.windows == 'y' and cookiecutter.use_docker == 'n' %}
rcssmin==1.1.2 --install-option="--without-c-extensions" # https://github.com/ndparker/rcssmin rcssmin==1.1.2 --install-option="--without-c-extensions" # https://github.com/ndparker/rcssmin
@ -7,38 +7,38 @@ rcssmin==1.1.2 --install-option="--without-c-extensions" # https://github.com/n
rcssmin==1.1.2 # https://github.com/ndparker/rcssmin rcssmin==1.1.2 # https://github.com/ndparker/rcssmin
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
argon2-cffi==23.1.0 # https://github.com/hynek/argon2_cffi argon2-cffi==25.1.0 # https://github.com/hynek/argon2_cffi
{%- if cookiecutter.use_whitenoise == 'y' %} {%- if cookiecutter.use_whitenoise == 'y' %}
whitenoise==6.9.0 # https://github.com/evansd/whitenoise whitenoise==6.9.0 # https://github.com/evansd/whitenoise
{%- endif %} {%- endif %}
redis==5.2.1 # https://github.com/redis/redis-py redis==6.2.0 # https://github.com/redis/redis-py
{%- if cookiecutter.use_docker == "y" or cookiecutter.windows == "n" %} {%- if cookiecutter.use_docker == "y" or cookiecutter.windows == "n" %}
hiredis==3.1.0 # https://github.com/redis/hiredis-py hiredis==3.2.1 # https://github.com/redis/hiredis-py
{%- endif %} {%- endif %}
{%- if cookiecutter.use_celery == "y" %} {%- if cookiecutter.use_celery == "y" %}
celery==5.5.0 # pyup: < 6.0 # https://github.com/celery/celery celery==5.5.3 # pyup: < 6.0 # https://github.com/celery/celery
django-celery-beat==2.7.0 # https://github.com/celery/django-celery-beat django-celery-beat==2.8.1 # https://github.com/celery/django-celery-beat
{%- if cookiecutter.use_docker == 'y' %} {%- if cookiecutter.use_docker == 'y' %}
flower==2.0.1 # https://github.com/mher/flower flower==2.0.1 # https://github.com/mher/flower
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- if cookiecutter.use_async == 'y' %} {%- if cookiecutter.use_async == 'y' %}
uvicorn[standard]==0.34.0 # 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 uvicorn-worker==0.3.0 # https://github.com/Kludex/uvicorn-worker
{%- endif %} {%- endif %}
# Django # Django
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
django==5.1.8 # pyup: < 5.2 # https://www.djangoproject.com/ django==5.1.11 # pyup: < 5.2 # https://www.djangoproject.com/
django-environ==0.12.0 # https://github.com/joke2k/django-environ 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-model-utils==5.0.0 # https://github.com/jazzband/django-model-utils
django-allauth[mfa]==65.6.0 # https://github.com/pennersr/django-allauth django-allauth[mfa]==65.10.0 # https://github.com/pennersr/django-allauth
django-crispy-forms==2.3 # https://github.com/django-crispy-forms/django-crispy-forms django-crispy-forms==2.4 # https://github.com/django-crispy-forms/django-crispy-forms
crispy-bootstrap5==2025.4 # https://github.com/django-crispy-forms/crispy-bootstrap5 crispy-bootstrap5==2025.6 # https://github.com/django-crispy-forms/crispy-bootstrap5
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %} {%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
django-compressor==4.5.1 # https://github.com/django-compressor/django-compressor django-compressor==4.5.1 # https://github.com/django-compressor/django-compressor
{%- endif %} {%- 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' %} {%- if cookiecutter.use_drf == 'y' %}
# Django REST Framework # Django REST Framework
djangorestframework==3.16.0 # https://github.com/encode/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 drf-spectacular==0.28.0 # https://github.com/tfranzel/drf-spectacular
{%- endif %} {%- endif %}
{%- if cookiecutter.frontend_pipeline == 'Webpack' %} {%- if cookiecutter.frontend_pipeline == 'Webpack' %}
django-webpack-loader==3.1.1 # https://github.com/django-webpack/django-webpack-loader django-webpack-loader==3.2.1 # https://github.com/django-webpack/django-webpack-loader
{%- endif %} {%- endif %}

View File

@ -3,33 +3,33 @@
Werkzeug[watchdog]==3.1.3 # https://github.com/pallets/werkzeug Werkzeug[watchdog]==3.1.3 # https://github.com/pallets/werkzeug
ipdb==0.13.13 # https://github.com/gotcha/ipdb ipdb==0.13.13 # https://github.com/gotcha/ipdb
{%- if cookiecutter.use_docker == 'y' %} {%- if cookiecutter.use_docker == 'y' %}
psycopg[c]==3.2.6 # https://github.com/psycopg/psycopg psycopg[c]==3.2.9 # https://github.com/psycopg/psycopg
{%- else %} {%- else %}
psycopg[binary]==3.2.6 # https://github.com/psycopg/psycopg psycopg[binary]==3.2.9 # https://github.com/psycopg/psycopg
{%- endif %} {%- endif %}
{%- if cookiecutter.use_async == 'y' or cookiecutter.use_celery == 'y' %} {%- if cookiecutter.use_async == 'y' or cookiecutter.use_celery == 'y' %}
watchfiles==1.0.4 # https://github.com/samuelcolvin/watchfiles watchfiles==1.1.0 # https://github.com/samuelcolvin/watchfiles
{%- endif %} {%- endif %}
# Testing # Testing
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
mypy==1.15.0 # https://github.com/python/mypy mypy==1.15.0 # https://github.com/python/mypy
django-stubs[compatible-mypy]==5.1.3 # https://github.com/typeddjango/django-stubs django-stubs[compatible-mypy]==5.2.1 # https://github.com/typeddjango/django-stubs
pytest==8.3.5 # https://github.com/pytest-dev/pytest pytest==8.4.1 # https://github.com/pytest-dev/pytest
pytest-sugar==1.0.0 # https://github.com/Frozenball/pytest-sugar pytest-sugar==1.0.0 # https://github.com/Teemu/pytest-sugar
{%- if cookiecutter.use_drf == "y" %} {%- if cookiecutter.use_drf == "y" %}
djangorestframework-stubs==3.15.3 # https://github.com/typeddjango/djangorestframework-stubs djangorestframework-stubs==3.16.0 # https://github.com/typeddjango/djangorestframework-stubs
{%- endif %} {%- endif %}
# Documentation # Documentation
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
sphinx==8.3.0 # https://github.com/sphinx-doc/sphinx sphinx==8.2.3 # pyup: != 8.3.0 # https://github.com/sphinx-doc/sphinx
sphinx-autobuild==2024.10.3 # https://github.com/GaretJax/sphinx-autobuild sphinx-autobuild==2024.10.3 # https://github.com/GaretJax/sphinx-autobuild
# Code quality # Code quality
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
ruff==0.11.2 # https://github.com/astral-sh/ruff ruff==0.12.3 # https://github.com/astral-sh/ruff
coverage==7.8.0 # https://github.com/nedbat/coveragepy coverage==7.9.2 # https://github.com/nedbat/coveragepy
djlint==1.36.4 # https://github.com/Riverside-Healthcare/djLint djlint==1.36.4 # https://github.com/Riverside-Healthcare/djLint
pre-commit==4.2.0 # https://github.com/pre-commit/pre-commit pre-commit==4.2.0 # https://github.com/pre-commit/pre-commit
@ -37,7 +37,7 @@ pre-commit==4.2.0 # https://github.com/pre-commit/pre-commit
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
factory-boy==3.3.2 # https://github.com/FactoryBoy/factory_boy factory-boy==3.3.2 # https://github.com/FactoryBoy/factory_boy
django-debug-toolbar==5.1.0 # https://github.com/jazzband/django-debug-toolbar django-debug-toolbar==5.2.0 # https://github.com/jazzband/django-debug-toolbar
django-extensions==3.2.3 # https://github.com/django-extensions/django-extensions 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.0 # https://github.com/pytest-dev/pytest-django pytest-django==4.11.1 # https://github.com/pytest-dev/pytest-django

View File

@ -3,15 +3,15 @@
-r base.txt -r base.txt
gunicorn==23.0.0 # https://github.com/benoitc/gunicorn gunicorn==23.0.0 # https://github.com/benoitc/gunicorn
psycopg[c]==3.2.6 # https://github.com/psycopg/psycopg psycopg[c]==3.2.9 # https://github.com/psycopg/psycopg
{%- if cookiecutter.use_whitenoise == 'n'and cookiecutter.cloud_provider in ('AWS', 'GCP') %} {%- if cookiecutter.use_whitenoise == 'n'and cookiecutter.cloud_provider in ('AWS', 'GCP') %}
Collectfasta==3.2.1 # https://github.com/jasongi/collectfasta Collectfasta==3.3.0 # https://github.com/jasongi/collectfasta
{%- endif %} {%- endif %}
{%- if cookiecutter.use_sentry == "y" %} {%- if cookiecutter.use_sentry == "y" %}
sentry-sdk==2.25.1 # https://github.com/getsentry/sentry-python sentry-sdk==2.32.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.1.0 # https://github.com/redis/hiredis-py hiredis==3.2.1 # https://github.com/redis/hiredis-py
{%- endif %} {%- endif %}
# Django # Django
@ -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 django-storages[azure]==1.14.6 # https://github.com/jschneier/django-storages
{%- endif %} {%- endif %}
{%- if cookiecutter.mail_service == 'Mailgun' %} {%- if cookiecutter.mail_service == 'Mailgun' %}
django-anymail[mailgun]==12.0 # https://github.com/anymail/django-anymail django-anymail[mailgun]==13.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Amazon SES' %} {%- elif cookiecutter.mail_service == 'Amazon SES' %}
django-anymail[amazon-ses]==12.0 # https://github.com/anymail/django-anymail django-anymail[amazon-ses]==13.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Mailjet' %} {%- elif cookiecutter.mail_service == 'Mailjet' %}
django-anymail[mailjet]==12.0 # https://github.com/anymail/django-anymail django-anymail[mailjet]==13.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Mandrill' %} {%- elif cookiecutter.mail_service == 'Mandrill' %}
django-anymail[mandrill]==12.0 # https://github.com/anymail/django-anymail django-anymail[mandrill]==13.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Postmark' %} {%- elif cookiecutter.mail_service == 'Postmark' %}
django-anymail[postmark]==12.0 # https://github.com/anymail/django-anymail django-anymail[postmark]==13.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Sendgrid' %} {%- elif cookiecutter.mail_service == 'Sendgrid' %}
django-anymail[sendgrid]==12.0 # https://github.com/anymail/django-anymail django-anymail[sendgrid]==13.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Brevo' %} {%- elif cookiecutter.mail_service == 'Brevo' %}
django-anymail[brevo]==12.0 # https://github.com/anymail/django-anymail django-anymail[brevo]==13.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'SparkPost' %} {%- elif cookiecutter.mail_service == 'SparkPost' %}
django-anymail[sparkpost]==12.0 # https://github.com/anymail/django-anymail django-anymail[sparkpost]==13.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Other SMTP' %} {%- elif cookiecutter.mail_service == 'Other SMTP' %}
django-anymail==12.0 # https://github.com/anymail/django-anymail django-anymail==13.0 # https://github.com/anymail/django-anymail
{%- endif %} {%- endif %}

View File

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

View File

@ -17,7 +17,7 @@ class UserAdminChangeForm(admin_forms.UserChangeForm):
{%- endif %} {%- endif %}
class UserAdminCreationForm(admin_forms.AdminUserCreationForm): # type: ignore[name-defined] # django-stubs is missing the class, thats why the error is thrown: typeddjango/django-stubs#2555 class UserAdminCreationForm(admin_forms.AdminUserCreationForm):
""" """
Form for User Creation in the Admin Area. Form for User Creation in the Admin Area.
To change user signup, see UserSignupForm and UserSocialSignupForm. To change user signup, see UserSignupForm and UserSocialSignupForm.

View File

@ -60,7 +60,7 @@ class TestUserAdmin:
def _force_allauth(self, settings): def _force_allauth(self, settings):
settings.DJANGO_ADMIN_FORCE_ALLAUTH = True settings.DJANGO_ADMIN_FORCE_ALLAUTH = True
# Reload the admin module to apply the setting change # 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] with contextlib.suppress(admin.sites.AlreadyRegistered): # type: ignore[attr-defined]
reload(users_admin) reload(users_admin)