diff --git a/.github/contributors.json b/.github/contributors.json
index 68f1b4c2d..5c8b1f753 100644
--- a/.github/contributors.json
+++ b/.github/contributors.json
@@ -1327,5 +1327,10 @@
"name": "Omer-5",
"github_login": "Omer-5",
"twitter_username": ""
+ },
+ {
+ "name": "TAKAHASHI Shuuji",
+ "github_login": "shuuji3",
+ "twitter_username": ""
}
]
\ No newline at end of file
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index fedfdc47f..6400b593e 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -21,7 +21,7 @@ repos:
- id: black
- repo: https://github.com/PyCQA/isort
- rev: 5.11.1
+ rev: v5.11.3
hooks:
- id: isort
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5ee4a4757..150b750b7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,23 @@ All enhancements and patches to Cookiecutter Django will be documented in this f
+## 2022.12.21
+
+### Changed
+- Retry when trying to store a Celery result in backend ([#3996](https://github.com/cookiecutter/cookiecutter-django/pull/3996))
+- Update image URL for build status shield badge ([#4018](https://github.com/cookiecutter/cookiecutter-django/pull/4018))
+### Updated
+- Update pytz to 2022.7 ([#4020](https://github.com/cookiecutter/cookiecutter-django/pull/4020))
+- Update ipdb to 0.13.11 ([#4019](https://github.com/cookiecutter/cookiecutter-django/pull/4019))
+- Update tox to 4.0.16 ([#4017](https://github.com/cookiecutter/cookiecutter-django/pull/4017))
+- Update sentry-sdk to 1.12.1 ([#4014](https://github.com/cookiecutter/cookiecutter-django/pull/4014))
+- Update coverage to 7.0.0 ([#4013](https://github.com/cookiecutter/cookiecutter-django/pull/4013))
+- Update django-anymail to 9.0 ([#4012](https://github.com/cookiecutter/cookiecutter-django/pull/4012))
+- Auto-update pre-commit hooks ([#4005](https://github.com/cookiecutter/cookiecutter-django/pull/4005))
+- Update isort to 5.11.3 ([#4010](https://github.com/cookiecutter/cookiecutter-django/pull/4010))
+- Update drf-spectacular to 0.25.1 ([#4009](https://github.com/cookiecutter/cookiecutter-django/pull/4009))
+- Update hiredis to 2.1.0 ([#4006](https://github.com/cookiecutter/cookiecutter-django/pull/4006))
+
## 2022.12.13
### Changed
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index d8a9d8190..dba721de6 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -1671,6 +1671,13 @@ Listed in alphabetical order.
|
+
+ TAKAHASHI Shuuji |
+
+ shuuji3
+ |
+ |
+
Tames McTigue |
diff --git a/README.md b/README.md
index 4073bcb38..313ce0e51 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Cookiecutter Django
-[](https://github.com/cookiecutter/cookiecutter-django/actions?query=workflow%3ACI)
+[](https://github.com/cookiecutter/cookiecutter-django/actions/workflows/ci.yml?query=branch%3Amaster)
[](https://cookiecutter-django.readthedocs.io/en/latest/?badge=latest)
[](https://pyup.io/repos/github/cookiecutter/cookiecutter-django/)
[](https://discord.gg/uFXweDQc5a)
diff --git a/requirements.txt b/requirements.txt
index 62d71b3b4..3f5b0a6d8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,14 +5,14 @@ binaryornot==0.4.4
# Code quality
# ------------------------------------------------------------------------------
black==22.12.0
-isort==5.11.1
+isort==5.11.3
flake8==6.0.0
flake8-isort==5.0.3
pre-commit==2.20.0
# Testing
# ------------------------------------------------------------------------------
-tox==4.0.5
+tox==4.0.16
pytest==7.2.0
pytest-cookies==0.6.1
pytest-instafail==0.4.2
diff --git a/setup.py b/setup.py
index 680a75c09..7adacfaee 100644
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@ except ImportError:
from distutils.core import setup
# We use calendar versioning
-version = "2022.12.13"
+version = "2022.12.21"
with open("README.rst") as readme_file:
long_description = readme_file.read()
diff --git a/{{cookiecutter.project_slug}}/.pre-commit-config.yaml b/{{cookiecutter.project_slug}}/.pre-commit-config.yaml
index f0231004c..8cec23181 100644
--- a/{{cookiecutter.project_slug}}/.pre-commit-config.yaml
+++ b/{{cookiecutter.project_slug}}/.pre-commit-config.yaml
@@ -21,7 +21,7 @@ repos:
- id: black
- repo: https://github.com/PyCQA/isort
- rev: 5.11.1
+ rev: v5.11.3
hooks:
- id: isort
diff --git a/{{cookiecutter.project_slug}}/config/settings/base.py b/{{cookiecutter.project_slug}}/config/settings/base.py
index 1989fd8cb..6bf6a6e5c 100644
--- a/{{cookiecutter.project_slug}}/config/settings/base.py
+++ b/{{cookiecutter.project_slug}}/config/settings/base.py
@@ -283,6 +283,11 @@ CELERY_BROKER_URL = env("CELERY_BROKER_URL")
CELERY_RESULT_BACKEND = CELERY_BROKER_URL
# https://docs.celeryq.dev/en/stable/userguide/configuration.html#result-extended
CELERY_RESULT_EXTENDED = True
+# https://docs.celeryq.dev/en/stable/userguide/configuration.html#result-backend-always-retry
+# https://github.com/celery/celery/pull/6122
+CELERY_RESULT_BACKEND_ALWAYS_RETRY = True
+# https://docs.celeryq.dev/en/stable/userguide/configuration.html#result-backend-max-retries
+CELERY_RESULT_BACKEND_MAX_RETRIES = 10
# https://docs.celeryq.dev/en/stable/userguide/configuration.html#std:setting-accept_content
CELERY_ACCEPT_CONTENT = ["json"]
# https://docs.celeryq.dev/en/stable/userguide/configuration.html#std:setting-task_serializer
diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt
index 827530be9..9acae6a80 100644
--- a/{{cookiecutter.project_slug}}/requirements/base.txt
+++ b/{{cookiecutter.project_slug}}/requirements/base.txt
@@ -1,4 +1,4 @@
-pytz==2022.6 # https://github.com/stub42/pytz
+pytz==2022.7 # https://github.com/stub42/pytz
python-slugify==7.0.0 # https://github.com/un33k/python-slugify
Pillow==9.3.0 # https://github.com/python-pillow/Pillow
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
@@ -14,7 +14,7 @@ whitenoise==6.2.0 # https://github.com/evansd/whitenoise
{%- endif %}
redis==4.4.0 # https://github.com/redis/redis-py
{%- if cookiecutter.use_docker == "y" or cookiecutter.windows == "n" %}
-hiredis==2.0.0 # https://github.com/redis/hiredis-py
+hiredis==2.1.0 # https://github.com/redis/hiredis-py
{%- endif %}
{%- if cookiecutter.use_celery == "y" %}
celery==5.2.7 # pyup: < 6.0 # https://github.com/celery/celery
@@ -44,5 +44,5 @@ django-redis==5.2.0 # https://github.com/jazzband/django-redis
djangorestframework==3.14.0 # https://github.com/encode/django-rest-framework
django-cors-headers==3.13.0 # https://github.com/adamchainz/django-cors-headers
# DRF-spectacular for api documentation
-drf-spectacular==0.24.2 # https://github.com/tfranzel/drf-spectacular
+drf-spectacular==0.25.1 # https://github.com/tfranzel/drf-spectacular
{%- endif %}
diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt
index 6b073194c..3732a3f18 100644
--- a/{{cookiecutter.project_slug}}/requirements/local.txt
+++ b/{{cookiecutter.project_slug}}/requirements/local.txt
@@ -1,7 +1,7 @@
-r base.txt
Werkzeug[watchdog]==2.2.2 # https://github.com/pallets/werkzeug
-ipdb==0.13.9 # https://github.com/gotcha/ipdb
+ipdb==0.13.11 # https://github.com/gotcha/ipdb
{%- if cookiecutter.use_docker == 'y' %}
psycopg2==2.9.5 # https://github.com/psycopg/psycopg2
{%- else %}
@@ -30,7 +30,7 @@ sphinx-autobuild==2021.3.14 # https://github.com/GaretJax/sphinx-autobuild
# ------------------------------------------------------------------------------
flake8==6.0.0 # https://github.com/PyCQA/flake8
flake8-isort==5.0.3 # https://github.com/gforcada/flake8-isort
-coverage==6.5.0 # https://github.com/nedbat/coveragepy
+coverage==7.0.0 # https://github.com/nedbat/coveragepy
black==22.12.0 # https://github.com/psf/black
pylint-django==2.5.3 # https://github.com/PyCQA/pylint-django
{%- if cookiecutter.use_celery == 'y' %}
diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt
index c9b5b88a7..b7d73819b 100644
--- a/{{cookiecutter.project_slug}}/requirements/production.txt
+++ b/{{cookiecutter.project_slug}}/requirements/production.txt
@@ -8,10 +8,10 @@ psycopg2==2.9.5 # https://github.com/psycopg/psycopg2
Collectfast==2.2.0 # https://github.com/antonagestam/collectfast
{%- endif %}
{%- if cookiecutter.use_sentry == "y" %}
-sentry-sdk==1.11.1 # https://github.com/getsentry/sentry-python
+sentry-sdk==1.12.1 # https://github.com/getsentry/sentry-python
{%- endif %}
{%- if cookiecutter.use_docker == "n" and cookiecutter.windows == "y" %}
-hiredis==2.0.0 # https://github.com/redis/hiredis-py
+hiredis==2.1.0 # https://github.com/redis/hiredis-py
{%- endif %}
# Django
@@ -24,21 +24,21 @@ django-storages[google]==1.13.1 # https://github.com/jschneier/django-storages
django-storages[azure]==1.13.1 # https://github.com/jschneier/django-storages
{%- endif %}
{%- if cookiecutter.mail_service == 'Mailgun' %}
-django-anymail[mailgun]==8.6 # https://github.com/anymail/django-anymail
+django-anymail[mailgun]==9.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Amazon SES' %}
-django-anymail[amazon_ses]==8.6 # https://github.com/anymail/django-anymail
+django-anymail[amazon_ses]==9.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Mailjet' %}
-django-anymail[mailjet]==8.6 # https://github.com/anymail/django-anymail
+django-anymail[mailjet]==9.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Mandrill' %}
-django-anymail[mandrill]==8.6 # https://github.com/anymail/django-anymail
+django-anymail[mandrill]==9.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Postmark' %}
-django-anymail[postmark]==8.6 # https://github.com/anymail/django-anymail
+django-anymail[postmark]==9.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Sendgrid' %}
-django-anymail[sendgrid]==8.6 # https://github.com/anymail/django-anymail
+django-anymail[sendgrid]==9.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'SendinBlue' %}
-django-anymail[sendinblue]==8.6 # https://github.com/anymail/django-anymail
+django-anymail[sendinblue]==9.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'SparkPost' %}
-django-anymail[sparkpost]==8.6 # https://github.com/anymail/django-anymail
+django-anymail[sparkpost]==9.0 # https://github.com/anymail/django-anymail
{%- elif cookiecutter.mail_service == 'Other SMTP' %}
-django-anymail==8.6 # https://github.com/anymail/django-anymail
+django-anymail==9.0 # https://github.com/anymail/django-anymail
{%- endif %}
diff --git a/{{cookiecutter.project_slug}}/setup.cfg b/{{cookiecutter.project_slug}}/setup.cfg
index 3bec1fbee..b99bba644 100644
--- a/{{cookiecutter.project_slug}}/setup.cfg
+++ b/{{cookiecutter.project_slug}}/setup.cfg
@@ -34,7 +34,7 @@ django_settings_module = config.settings.test
ignore_errors = True
[coverage:run]
-include = {{cookiecutter.project_slug}}/*
+include = {{cookiecutter.project_slug}}/**
omit = *migrations*, *tests*
plugins =
django_coverage_plugin
|