diff --git a/.github/contributors.json b/.github/contributors.json
index 723c72083c..c95797b182 100644
--- a/.github/contributors.json
+++ b/.github/contributors.json
@@ -1508,5 +1508,15 @@
"name": "Nix Siow",
"github_login": "nixsiow",
"twitter_username": "nixsiow"
+ },
+ {
+ "name": "Jens Kaeske",
+ "github_login": "jkaeske",
+ "twitter_username": ""
+ },
+ {
+ "name": "henningbra",
+ "github_login": "henningbra",
+ "twitter_username": ""
}
]
\ No newline at end of file
diff --git a/.github/workflows/issue-manager.yml b/.github/workflows/issue-manager.yml
index 715aca133f..103612cfe3 100644
--- a/.github/workflows/issue-manager.yml
+++ b/.github/workflows/issue-manager.yml
@@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: tiangolo/issue-manager@0.4.1
+ - uses: tiangolo/issue-manager@0.5.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
config: >
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 8c10de974f..baafb694f4 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -33,7 +33,7 @@ repos:
exclude: hooks/
- repo: https://github.com/psf/black
- rev: 23.12.1
+ rev: 24.1.1
hooks:
- id: black
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 707bef2684..e6c1cdc3f5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,81 @@ All enhancements and patches to Cookiecutter Django will be documented in this f
+## 2024.01.31
+
+
+### Updated
+
+- Update python-slugify to 8.0.3 ([#4826](https://github.com/cookiecutter/cookiecutter-django/pull/4826))
+
+## 2024.01.30
+
+
+### Updated
+
+- Update pytest-django to 4.8.0 ([#4823](https://github.com/cookiecutter/cookiecutter-django/pull/4823))
+
+- Update sentry-sdk to 1.40.0 ([#4822](https://github.com/cookiecutter/cookiecutter-django/pull/4822))
+
+- Update uvicorn to 0.27.0.post1 ([#4818](https://github.com/cookiecutter/cookiecutter-django/pull/4818))
+
+## 2024.01.29
+
+
+### Changed
+
+- Fix deprecation warning about renaming of `webpack_loader.loader` to `webpack_loader.loaders` ([#4815](https://github.com/cookiecutter/cookiecutter-django/pull/4815))
+
+### Documentation
+
+- Update mention of coverage config file to `pyproject.toml` in documentation ([#4816](https://github.com/cookiecutter/cookiecutter-django/pull/4816))
+
+### Updated
+
+- Update black to 24.1.1 ([#4814](https://github.com/cookiecutter/cookiecutter-django/pull/4814))
+
+- Auto-update pre-commit hooks ([#4817](https://github.com/cookiecutter/cookiecutter-django/pull/4817))
+
+## 2024.01.27
+
+
+### Changed
+
+- Do not show webpack devserver overlay for warnings ([#4809](https://github.com/cookiecutter/cookiecutter-django/pull/4809))
+
+### Updated
+
+- Update python-slugify to 8.0.2 ([#4805](https://github.com/cookiecutter/cookiecutter-django/pull/4805))
+
+- Update coverage to 7.4.1 ([#4807](https://github.com/cookiecutter/cookiecutter-django/pull/4807))
+
+## 2024.01.26
+
+
+### Updated
+
+- Update black to 24.1.0 ([#4806](https://github.com/cookiecutter/cookiecutter-django/pull/4806))
+
+## 2024.01.25
+
+
+### Changed
+
+- Replace custom static & media storage classes by passing options in the `STORAGES` setting ([#4803](https://github.com/cookiecutter/cookiecutter-django/pull/4803))
+
+- Add registry to Docker images names ([#4804](https://github.com/cookiecutter/cookiecutter-django/pull/4804))
+
+## 2024.01.24
+
+
+### Changed
+
+- Migrate to the unified `STORAGES` setting added in Django 4.2 ([#4477](https://github.com/cookiecutter/cookiecutter-django/pull/4477))
+
+### Updated
+
+- Update uvicorn to 0.27.0 ([#4800](https://github.com/cookiecutter/cookiecutter-django/pull/4800))
+
## 2024.01.21
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 9a384d1414..7b778f4393 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -964,6 +964,13 @@ Listed in alphabetical order.
Jens Nilsson |
diff --git a/docs/testing.rst b/docs/testing.rst
index 6387a6e1ef..d403a30ebb 100644
--- a/docs/testing.rst
+++ b/docs/testing.rst
@@ -43,7 +43,7 @@ If you're running the project locally with Docker, use these commands instead: :
At the root of the project folder, you will find the `pytest.ini` file. You can use this to customize_ the ``pytest`` to your liking.
- There is also the `.coveragerc`. This is the configuration file for the ``coverage`` tool. You can find out more about `configuring`_ ``coverage``.
+ The configuration for ``coverage`` can be found in ``pyproject.toml``. You can find out more about `configuring`_ ``coverage``.
.. seealso::
diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py
index 37f96efc03..1ddab0636f 100644
--- a/hooks/post_gen_project.py
+++ b/hooks/post_gen_project.py
@@ -8,6 +8,7 @@
TODO: restrict Cookiecutter Django project initialization to
Python 3.x environments only
"""
+
from __future__ import print_function
import json
@@ -429,10 +430,6 @@ def remove_drf_starter_files():
os.remove(os.path.join("{{cookiecutter.project_slug}}", "users", "tests", "test_swagger.py"))
-def remove_storages_module():
- os.remove(os.path.join("{{cookiecutter.project_slug}}", "utils", "storages.py"))
-
-
def main():
debug = "{{ cookiecutter.debug }}".lower() == "y"
@@ -499,7 +496,6 @@ def main():
WARNING + "You chose to not use any cloud providers nor Docker, "
"media files won't be served in production." + TERMINATOR
)
- remove_storages_module()
if "{{ cookiecutter.use_celery }}".lower() == "n":
remove_celery_files()
diff --git a/hooks/pre_gen_project.py b/hooks/pre_gen_project.py
index 33dc2e834e..2956b9ab4d 100644
--- a/hooks/pre_gen_project.py
+++ b/hooks/pre_gen_project.py
@@ -7,6 +7,7 @@
TODO: restrict Cookiecutter Django project initialization
to Python 3.x environments only
"""
+
from __future__ import print_function
import sys
diff --git a/requirements.txt b/requirements.txt
index aadf4abb1c..8203af3ac8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,7 +4,7 @@ binaryornot==0.4.4
# Code quality
# ------------------------------------------------------------------------------
-black==23.12.1
+black==24.1.1
isort==5.13.2
flake8==7.0.0
django-upgrade==1.15.0
@@ -22,7 +22,7 @@ pyyaml==6.0.1
# Scripting
# ------------------------------------------------------------------------------
-PyGithub==2.1.1
+PyGithub==2.2.0
gitpython==3.1.41
jinja2==3.1.3
requests==2.31.0
diff --git a/scripts/create_django_issue.py b/scripts/create_django_issue.py
index f9ff765457..2e59f18b06 100644
--- a/scripts/create_django_issue.py
+++ b/scripts/create_django_issue.py
@@ -6,6 +6,7 @@
This script handles when there are multiple Django versions that need
to keep up to date.
"""
+
from __future__ import annotations
import os
diff --git a/setup.py b/setup.py
index 8aa7a43bb2..47c5298ab1 100644
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@
from distutils.core import setup
# We use calendar versioning
-version = "2024.01.21"
+version = "2024.01.31"
with open("README.md") as readme_file:
long_description = readme_file.read()
diff --git a/tests/test_hooks.py b/tests/test_hooks.py
index 6afdc400b8..2ccac84b23 100644
--- a/tests/test_hooks.py
+++ b/tests/test_hooks.py
@@ -1,4 +1,5 @@
"""Unit tests for the hooks"""
+
import os
from pathlib import Path
diff --git a/{{cookiecutter.project_slug}}/.pre-commit-config.yaml b/{{cookiecutter.project_slug}}/.pre-commit-config.yaml
index c0e1db7ca8..12a1f5e817 100644
--- a/{{cookiecutter.project_slug}}/.pre-commit-config.yaml
+++ b/{{cookiecutter.project_slug}}/.pre-commit-config.yaml
@@ -40,7 +40,7 @@ repos:
args: [--py311-plus]
- repo: https://github.com/psf/black
- rev: 23.12.1
+ rev: 24.1.1
hooks:
- id: black
diff --git a/{{cookiecutter.project_slug}}/compose/local/django/Dockerfile b/{{cookiecutter.project_slug}}/compose/local/django/Dockerfile
index 703474a6f2..575a4518a3 100644
--- a/{{cookiecutter.project_slug}}/compose/local/django/Dockerfile
+++ b/{{cookiecutter.project_slug}}/compose/local/django/Dockerfile
@@ -1,8 +1,8 @@
# define an alias for the specific python version used in this file.
-FROM python:3.11.7-slim-bookworm as python
+FROM docker.io/python:3.11.7-slim-bookworm as python
# Python build stage
-FROM python as python-build-stage
+FROM docker.io/python as python-build-stage
ARG BUILD_ENVIRONMENT=local
@@ -22,7 +22,7 @@ RUN pip wheel --wheel-dir /usr/src/app/wheels \
# Python 'run' stage
-FROM python as python-run-stage
+FROM docker.io/python as python-run-stage
ARG BUILD_ENVIRONMENT=local
ARG APP_HOME=/app
diff --git a/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile b/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile
index 41ab15b9f5..2b68c84b21 100644
--- a/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile
+++ b/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile
@@ -1,9 +1,9 @@
# define an alias for the specific python version used in this file.
-FROM python:3.11.7-slim-bookworm as python
+FROM docker.io/python:3.11.7-slim-bookworm as python
# Python build stage
-FROM python as python-build-stage
+FROM docker.io/python as python-build-stage
ENV PYTHONDONTWRITEBYTECODE 1
@@ -26,7 +26,7 @@ RUN pip wheel --no-cache-dir --wheel-dir /usr/src/app/wheels \
# Python 'run' stage
-FROM python as python-run-stage
+FROM docker.io/python as python-run-stage
ARG BUILD_ENVIRONMENT
ENV PYTHONUNBUFFERED 1
diff --git a/{{cookiecutter.project_slug}}/compose/local/node/Dockerfile b/{{cookiecutter.project_slug}}/compose/local/node/Dockerfile
index 41f42b6251..0848ecaf81 100644
--- a/{{cookiecutter.project_slug}}/compose/local/node/Dockerfile
+++ b/{{cookiecutter.project_slug}}/compose/local/node/Dockerfile
@@ -1,4 +1,4 @@
-FROM node:20-bookworm-slim
+FROM docker.io/node:20-bookworm-slim
WORKDIR /app
diff --git a/{{cookiecutter.project_slug}}/compose/production/aws/Dockerfile b/{{cookiecutter.project_slug}}/compose/production/aws/Dockerfile
index 4d1ecbb209..36eea7f8c2 100644
--- a/{{cookiecutter.project_slug}}/compose/production/aws/Dockerfile
+++ b/{{cookiecutter.project_slug}}/compose/production/aws/Dockerfile
@@ -1,4 +1,4 @@
-FROM garland/aws-cli-docker:1.16.140
+FROM docker.io/garland/aws-cli-docker:1.16.140
COPY ./compose/production/aws/maintenance /usr/local/bin/maintenance
COPY ./compose/production/postgres/maintenance/_sourced /usr/local/bin/maintenance/_sourced
diff --git a/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile b/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile
index e0da6063c6..079f6bd78e 100644
--- a/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile
+++ b/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile
@@ -1,5 +1,5 @@
{% if cookiecutter.frontend_pipeline in ['Gulp', 'Webpack'] -%}
-FROM node:20-bookworm-slim as client-builder
+FROM docker.io/node:20-bookworm-slim as client-builder
ARG APP_HOME=/app
WORKDIR ${APP_HOME}
@@ -25,10 +25,10 @@ RUN npm run build
{%- endif %}
# define an alias for the specific python version used in this file.
-FROM python:3.11.7-slim-bookworm as python
+FROM docker.io/python:3.11.7-slim-bookworm as python
# Python build stage
-FROM python as python-build-stage
+FROM docker.io/python as python-build-stage
ARG BUILD_ENVIRONMENT=production
@@ -48,7 +48,7 @@ RUN pip wheel --wheel-dir /usr/src/app/wheels \
# Python 'run' stage
-FROM python as python-run-stage
+FROM docker.io/python as python-run-stage
ARG BUILD_ENVIRONMENT=production
ARG APP_HOME=/app
diff --git a/{{cookiecutter.project_slug}}/compose/production/nginx/Dockerfile b/{{cookiecutter.project_slug}}/compose/production/nginx/Dockerfile
index 911b16f717..ec2ad35cb6 100644
--- a/{{cookiecutter.project_slug}}/compose/production/nginx/Dockerfile
+++ b/{{cookiecutter.project_slug}}/compose/production/nginx/Dockerfile
@@ -1,2 +1,2 @@
-FROM nginx:1.17.8-alpine
+FROM docker.io/nginx:1.17.8-alpine
COPY ./compose/production/nginx/default.conf /etc/nginx/conf.d/default.conf
diff --git a/{{cookiecutter.project_slug}}/compose/production/postgres/Dockerfile b/{{cookiecutter.project_slug}}/compose/production/postgres/Dockerfile
index eca29bada1..5da8982f4e 100644
--- a/{{cookiecutter.project_slug}}/compose/production/postgres/Dockerfile
+++ b/{{cookiecutter.project_slug}}/compose/production/postgres/Dockerfile
@@ -1,4 +1,4 @@
-FROM postgres:{{ cookiecutter.postgresql_version }}
+FROM docker.io/postgres:{{ cookiecutter.postgresql_version }}
COPY ./compose/production/postgres/maintenance /usr/local/bin/maintenance
RUN chmod +x /usr/local/bin/maintenance/*
diff --git a/{{cookiecutter.project_slug}}/compose/production/traefik/Dockerfile b/{{cookiecutter.project_slug}}/compose/production/traefik/Dockerfile
index 321551eadd..c32b158734 100644
--- a/{{cookiecutter.project_slug}}/compose/production/traefik/Dockerfile
+++ b/{{cookiecutter.project_slug}}/compose/production/traefik/Dockerfile
@@ -1,4 +1,4 @@
-FROM traefik:2.10.7
+FROM docker.io/traefik:2.10.7
RUN mkdir -p /etc/traefik/acme \
&& touch /etc/traefik/acme/acme.json \
&& chmod 600 /etc/traefik/acme/acme.json
diff --git a/{{cookiecutter.project_slug}}/config/asgi.py b/{{cookiecutter.project_slug}}/config/asgi.py
index 65e76ca0ab..c391bf87bf 100644
--- a/{{cookiecutter.project_slug}}/config/asgi.py
+++ b/{{cookiecutter.project_slug}}/config/asgi.py
@@ -7,6 +7,7 @@
https://docs.djangoproject.com/en/dev/howto/deployment/asgi/
"""
+
import os
import sys
from pathlib import Path
diff --git a/{{cookiecutter.project_slug}}/config/settings/base.py b/{{cookiecutter.project_slug}}/config/settings/base.py
index ecc5a540d9..3bf3a73ccb 100644
--- a/{{cookiecutter.project_slug}}/config/settings/base.py
+++ b/{{cookiecutter.project_slug}}/config/settings/base.py
@@ -1,6 +1,5 @@
-"""
-Base settings to build other settings files upon.
-"""
+"""Base settings to build other settings files upon."""
+
from pathlib import Path
import environ
diff --git a/{{cookiecutter.project_slug}}/config/settings/production.py b/{{cookiecutter.project_slug}}/config/settings/production.py
index 70dc6d7dd8..7f62935717 100644
--- a/{{cookiecutter.project_slug}}/config/settings/production.py
+++ b/{{cookiecutter.project_slug}}/config/settings/production.py
@@ -115,24 +115,47 @@
},
{%- elif cookiecutter.cloud_provider == 'AWS' %}
"default": {
- "BACKEND": "{{cookiecutter.project_slug}}.utils.storages.MediaS3Storage",
+ "BACKEND": "storages.backends.s3.S3Storage",
+ "OPTIONS": {
+ "location": "media",
+ "file_overwrite": False,
+ },
},
"staticfiles": {
- "BACKEND": "{{cookiecutter.project_slug}}.utils.storages.StaticS3Storage",
+ "BACKEND": "storages.backends.s3.S3Storage",
+ "OPTIONS": {
+ "location": "static",
+ "default_acl": "public-read",
+ },
},
{%- elif cookiecutter.cloud_provider == 'GCP' %}
"default": {
- "BACKEND": "{{cookiecutter.project_slug}}.utils.storages.MediaGoogleCloudStorage",
+ "BACKEND": "storages.backends.gcloud.GoogleCloudStorage",
+ "OPTIONS": {
+ "location": "media",
+ "file_overwrite": False,
+ },
},
"staticfiles": {
- "BACKEND": "{{cookiecutter.project_slug}}.utils.storages.StaticGoogleCloudStorage",
+ "BACKEND": "storages.backends.gcloud.GoogleCloudStorage",
+ "OPTIONS": {
+ "location": "static",
+ "default_acl": "publicRead",
+ },
},
{%- elif cookiecutter.cloud_provider == 'Azure' %}
"default": {
- "BACKEND": "{{cookiecutter.project_slug}}.utils.storages.MediaAzureStorage",
+ "BACKEND": "storages.backends.azure_storage.AzureStorage",
+ "OPTIONS": {
+ "location": "media",
+ "file_overwrite": False,
+ },
},
"staticfiles": {
- "BACKEND": "{{cookiecutter.project_slug}}.utils.storages.StaticAzureStorage",
+ "BACKEND": "storages.backends.azure_storage.AzureStorage",
+ "OPTIONS": {
+ "location": "static",
+ },
},
{%- endif %}
}
diff --git a/{{cookiecutter.project_slug}}/config/settings/test.py b/{{cookiecutter.project_slug}}/config/settings/test.py
index 68126182ef..7c54e02175 100644
--- a/{{cookiecutter.project_slug}}/config/settings/test.py
+++ b/{{cookiecutter.project_slug}}/config/settings/test.py
@@ -32,12 +32,12 @@
# MEDIA
# ------------------------------------------------------------------------------
# https://docs.djangoproject.com/en/dev/ref/settings/#media-url
-MEDIA_URL = 'http://media.testserver'
+MEDIA_URL = "http://media.testserver"
{%- if cookiecutter.frontend_pipeline == 'Webpack' %}
# django-webpack-loader
# ------------------------------------------------------------------------------
-WEBPACK_LOADER["DEFAULT"]["LOADER_CLASS"] = "webpack_loader.loader.FakeWebpackLoader" # noqa: F405
+WEBPACK_LOADER["DEFAULT"]["LOADER_CLASS"] = "webpack_loader.loaders.FakeWebpackLoader" # noqa: F405
{%- endif %}
# Your stuff...
diff --git a/{{cookiecutter.project_slug}}/config/wsgi.py b/{{cookiecutter.project_slug}}/config/wsgi.py
index 3fd809ef39..1dbd8a8d8b 100644
--- a/{{cookiecutter.project_slug}}/config/wsgi.py
+++ b/{{cookiecutter.project_slug}}/config/wsgi.py
@@ -13,6 +13,7 @@
framework.
"""
+
import os
import sys
from pathlib import Path
diff --git a/{{cookiecutter.project_slug}}/local.yml b/{{cookiecutter.project_slug}}/local.yml
index 6609f80534..d924b739f7 100644
--- a/{{cookiecutter.project_slug}}/local.yml
+++ b/{{cookiecutter.project_slug}}/local.yml
@@ -58,7 +58,7 @@ services:
{%- if cookiecutter.use_mailpit == 'y' %}
mailpit:
- image: axllent/mailpit:latest
+ image: docker.io/axllent/mailpit:latest
container_name: {{ cookiecutter.project_slug }}_local_mailpit
ports:
- "8025:8025"
@@ -67,7 +67,7 @@ services:
{%- if cookiecutter.use_celery == 'y' %}
redis:
- image: redis:6
+ image: docker.io/redis:6
container_name: {{ cookiecutter.project_slug }}_local_redis
celeryworker:
diff --git a/{{cookiecutter.project_slug}}/production.yml b/{{cookiecutter.project_slug}}/production.yml
index 30d72d61e7..f7bf5284f3 100644
--- a/{{cookiecutter.project_slug}}/production.yml
+++ b/{{cookiecutter.project_slug}}/production.yml
@@ -67,7 +67,7 @@ services:
{%- endif %}
redis:
- image: redis:6
+ image: docker.io/redis:6
{%- if cookiecutter.use_celery == 'y' %}
celeryworker:
diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt
index f74a6e64d1..addb674064 100644
--- a/{{cookiecutter.project_slug}}/requirements/base.txt
+++ b/{{cookiecutter.project_slug}}/requirements/base.txt
@@ -1,4 +1,4 @@
-python-slugify==8.0.1 # https://github.com/un33k/python-slugify
+python-slugify==8.0.3 # https://github.com/un33k/python-slugify
Pillow==10.2.0 # https://github.com/python-pillow/Pillow
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
{%- if cookiecutter.windows == 'y' and cookiecutter.use_docker == 'n' %}
@@ -23,7 +23,7 @@ flower==2.0.1 # https://github.com/mher/flower
{%- endif %}
{%- endif %}
{%- if cookiecutter.use_async == 'y' %}
-uvicorn[standard]==0.27.0 # https://github.com/encode/uvicorn
+uvicorn[standard]==0.27.0.post1 # https://github.com/encode/uvicorn
{%- endif %}
# Django
diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt
index 2a80055c06..4856257df8 100644
--- a/{{cookiecutter.project_slug}}/requirements/local.txt
+++ b/{{cookiecutter.project_slug}}/requirements/local.txt
@@ -30,8 +30,8 @@ sphinx-autobuild==2021.3.14 # https://github.com/GaretJax/sphinx-autobuild
# ------------------------------------------------------------------------------
flake8==7.0.0 # https://github.com/PyCQA/flake8
flake8-isort==6.1.1 # https://github.com/gforcada/flake8-isort
-coverage==7.4.0 # https://github.com/nedbat/coveragepy
-black==23.12.1 # https://github.com/psf/black
+coverage==7.4.1 # https://github.com/nedbat/coveragepy
+black==24.1.1 # https://github.com/psf/black
djlint==1.34.1 # https://github.com/Riverside-Healthcare/djLint
pylint-django==2.5.5 # https://github.com/PyCQA/pylint-django
{%- if cookiecutter.use_celery == 'y' %}
@@ -46,4 +46,4 @@ factory-boy==3.3.0 # https://github.com/FactoryBoy/factory_boy
django-debug-toolbar==4.2.0 # https://github.com/jazzband/django-debug-toolbar
django-extensions==3.2.3 # https://github.com/django-extensions/django-extensions
django-coverage-plugin==3.1.0 # https://github.com/nedbat/django_coverage_plugin
-pytest-django==4.7.0 # https://github.com/pytest-dev/pytest-django
+pytest-django==4.8.0 # https://github.com/pytest-dev/pytest-django
diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt
index 80afd9e180..8a50ecc00f 100644
--- a/{{cookiecutter.project_slug}}/requirements/production.txt
+++ b/{{cookiecutter.project_slug}}/requirements/production.txt
@@ -8,7 +8,7 @@ psycopg[c]==3.1.17 # https://github.com/psycopg/psycopg
Collectfast==2.2.0 # https://github.com/antonagestam/collectfast
{%- endif %}
{%- if cookiecutter.use_sentry == "y" %}
-sentry-sdk==1.39.2 # https://github.com/getsentry/sentry-python
+sentry-sdk==1.40.0 # https://github.com/getsentry/sentry-python
{%- endif %}
{%- if cookiecutter.use_docker == "n" and cookiecutter.windows == "y" %}
hiredis==2.3.2 # https://github.com/redis/hiredis-py
diff --git a/{{cookiecutter.project_slug}}/webpack/dev.config.js b/{{cookiecutter.project_slug}}/webpack/dev.config.js
index c2f14abb15..8276c34890 100644
--- a/{{cookiecutter.project_slug}}/webpack/dev.config.js
+++ b/{{cookiecutter.project_slug}}/webpack/dev.config.js
@@ -13,6 +13,13 @@ module.exports = merge(commonConfig, {
'/': 'http://django:8000',
{%- endif %}
},
+ client: {
+ overlay: {
+ errors: true,
+ warnings: false,
+ runtimeErrors: true,
+ },
+ },
// We need hot=false (Disable HMR) to set liveReload=true
hot: false,
liveReload: true,
diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/test_forms.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/test_forms.py
index 023aad0566..ca624c89a6 100644
--- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/test_forms.py
+++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/test_forms.py
@@ -1,6 +1,5 @@
-"""
-Module for all Form Tests.
-"""
+"""Module for all Form Tests."""
+
from django.utils.translation import gettext_lazy as _
from {{ cookiecutter.project_slug }}.users.forms import UserAdminCreationForm
diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/utils/__init__.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/utils/__init__.py
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/utils/storages.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/utils/storages.py
deleted file mode 100644
index cc055378a7..0000000000
--- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/utils/storages.py
+++ /dev/null
@@ -1,36 +0,0 @@
-{% if cookiecutter.cloud_provider == 'AWS' -%}
-from storages.backends.s3 import S3Storage
-
-
-class StaticS3Storage(S3Storage):
- location = "static"
- default_acl = "public-read"
-
-
-class MediaS3Storage(S3Storage):
- location = "media"
- file_overwrite = False
-{%- elif cookiecutter.cloud_provider == 'GCP' -%}
-from storages.backends.gcloud import GoogleCloudStorage
-
-
-class StaticGoogleCloudStorage(GoogleCloudStorage):
- location = "static"
- default_acl = "publicRead"
-
-
-class MediaGoogleCloudStorage(GoogleCloudStorage):
- location = "media"
- file_overwrite = False
-{%- elif cookiecutter.cloud_provider == 'Azure' -%}
-from storages.backends.azure_storage import AzureStorage
-
-
-class StaticAzureStorage(AzureStorage):
- location = "static"
-
-
-class MediaAzureStorage(AzureStorage):
- location = "media"
- file_overwrite = False
-{%- endif %}
|