diff --git a/.github/contributors.json b/.github/contributors.json index bccbb725f..7a029c764 100644 --- a/.github/contributors.json +++ b/.github/contributors.json @@ -1468,5 +1468,10 @@ "name": "Vageeshan Mankala", "github_login": "vagi8", "twitter_username": "" + }, + { + "name": "Jakub Boukal", + "github_login": "SukiCZ", + "twitter_username": "" } ] \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 91d964ceb..832ec4515 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,7 +3,7 @@ default_stages: [commit] repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.5.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer @@ -23,7 +23,7 @@ repos: args: ["--tab-width", "2"] - repo: https://github.com/asottile/pyupgrade - rev: v3.13.0 + rev: v3.15.0 hooks: - id: pyupgrade args: [--py311-plus] diff --git a/CHANGELOG.md b/CHANGELOG.md index d5c90c0e3..e83f271b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,82 @@ All enhancements and patches to Cookiecutter Django will be documented in this f +## 2023.10.08 + + +### Updated + +- Auto-update pre-commit hooks ([#4619](https://github.com/cookiecutter/cookiecutter-django/pull/4619)) + +## 2023.10.05 + + +### Updated + +- Update djangorestframework-stubs to 3.14.3 ([#4618](https://github.com/cookiecutter/cookiecutter-django/pull/4618)) + +- Update django-stubs to 4.2.4 ([#4566](https://github.com/cookiecutter/cookiecutter-django/pull/4566)) + +- Update mypy to 1.5.1 ([#4568](https://github.com/cookiecutter/cookiecutter-django/pull/4568)) + +## 2023.10.04 + + +### Updated + +- Update django to 4.2.6 ([#4617](https://github.com/cookiecutter/cookiecutter-django/pull/4617)) + +- Update coverage to 7.3.2 ([#4616](https://github.com/cookiecutter/cookiecutter-django/pull/4616)) + +- Update werkzeug to 3.0.0 ([#4608](https://github.com/cookiecutter/cookiecutter-django/pull/4608)) + +- Update django-redis to 5.4.0 ([#4609](https://github.com/cookiecutter/cookiecutter-django/pull/4609)) + +- Bump docs Python docker image from 3.11.5 to 3.11.6 ([#4615](https://github.com/cookiecutter/cookiecutter-django/pull/4615)) + +## 2023.10.03 + + +### Changed + +- [pre-commit.ci] pre-commit autoupdate ([#4613](https://github.com/cookiecutter/cookiecutter-django/pull/4613)) + +### Updated + +- Bump prod Python docker image from 3.11.5 to 3.11.6 ([#4611](https://github.com/cookiecutter/cookiecutter-django/pull/4611)) + +- Bump local Python docker image from 3.11.5 to 3.11.6 ([#4612](https://github.com/cookiecutter/cookiecutter-django/pull/4612)) + +- Auto-update pre-commit hooks ([#4610](https://github.com/cookiecutter/cookiecutter-django/pull/4610)) + +## 2023.09.29 + + +### Updated + +- Update django-storages to 1.14.1 ([#4604](https://github.com/cookiecutter/cookiecutter-django/pull/4604)) + +## 2023.09.28 + + +### Updated + +- Update psycopg to 3.1.12 ([#4601](https://github.com/cookiecutter/cookiecutter-django/pull/4601)) + +## 2023.09.27 + + +### Fixed + +- Fix ownership for /start-flower script in production Dockerfile ([#4603](https://github.com/cookiecutter/cookiecutter-django/pull/4603)) + +## 2023.09.26 + + +### Updated + +- Update redis to 5.0.1 ([#4600](https://github.com/cookiecutter/cookiecutter-django/pull/4600)) + ## 2023.09.25 diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index f7615c108..070199124 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -1013,6 +1013,13 @@ Listed in alphabetical order. + + Jakub Boukal + + SukiCZ + + + Jakub Musko diff --git a/README.md b/README.md index bac442703..3f5700f10 100644 --- a/README.md +++ b/README.md @@ -204,6 +204,8 @@ For local development, see the following: - If you think you found a bug or want to request a feature, please open an [issue](https://github.com/cookiecutter/cookiecutter-django/issues). - For anything else, you can chat with us on [Discord](https://discord.gg/uFXweDQc5a). +Contributors + ## For Readers of Two Scoops of Django You may notice that some elements of this project do not exactly match what we describe in chapter 3. The reason for that is this project, amongst other things, serves as a test bed for trying out new ideas and concepts. Sometimes they work, sometimes they don't, but the end result is that it won't necessarily match precisely what is described in the book I co-authored. diff --git a/requirements.txt b/requirements.txt index c96790a23..198cf3ab2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -cookiecutter==2.3.1 +cookiecutter==2.4.0 sh==2.0.6; sys_platform != "win32" binaryornot==0.4.4 @@ -22,7 +22,7 @@ pyyaml==6.0.1 # Scripting # ------------------------------------------------------------------------------ -PyGithub==1.59.1 +PyGithub==2.1.1 gitpython==3.1.37 jinja2==3.1.2 requests==2.31.0 diff --git a/scripts/update_changelog.py b/scripts/update_changelog.py index 7d43a0b57..5f3ad5ec3 100644 --- a/scripts/update_changelog.py +++ b/scripts/update_changelog.py @@ -32,6 +32,9 @@ def main() -> None: # Group pull requests by type of change grouped_pulls = group_pulls_by_change_type(merged_pulls) + if not any(grouped_pulls.values()): + print("Pull requests merged aren't worth a changelog mention.") + return # Generate portion of markdown release_changes_summary = generate_md(grouped_pulls) diff --git a/setup.py b/setup.py index 07e5a4d0a..f45c8edb3 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ except ImportError: from distutils.core import setup # We use calendar versioning -version = "2023.09.25" +version = "2023.10.08" with open("README.md") 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 cc2e6533e..e29068d58 100644 --- a/{{cookiecutter.project_slug}}/.pre-commit-config.yaml +++ b/{{cookiecutter.project_slug}}/.pre-commit-config.yaml @@ -3,7 +3,7 @@ default_stages: [commit] repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.5.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer @@ -31,7 +31,7 @@ repos: args: ['--target-version', '4.2'] - repo: https://github.com/asottile/pyupgrade - rev: v3.13.0 + rev: v3.15.0 hooks: - id: pyupgrade args: [--py311-plus] diff --git a/{{cookiecutter.project_slug}}/compose/local/django/Dockerfile b/{{cookiecutter.project_slug}}/compose/local/django/Dockerfile index 67571feed..deb3f5d61 100644 --- a/{{cookiecutter.project_slug}}/compose/local/django/Dockerfile +++ b/{{cookiecutter.project_slug}}/compose/local/django/Dockerfile @@ -1,5 +1,5 @@ # define an alias for the specific python version used in this file. -FROM python:3.11.5-slim-bullseye as python +FROM python:3.11.6-slim-bullseye as python # Python build stage FROM python as python-build-stage diff --git a/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile b/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile index 1652ac2ce..80a086ab6 100644 --- a/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile +++ b/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile @@ -1,5 +1,5 @@ # define an alias for the specific python version used in this file. -FROM python:3.11.5-slim-bullseye as python +FROM python:3.11.6-slim-bullseye as python # Python build stage diff --git a/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile b/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile index 49950b9af..6ddebbffe 100644 --- a/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile +++ b/{{cookiecutter.project_slug}}/compose/production/django/Dockerfile @@ -25,7 +25,7 @@ RUN npm run build {%- endif %} # define an alias for the specific python version used in this file. -FROM python:3.11.5-slim-bullseye as python +FROM python:3.11.6-slim-bullseye as python # Python build stage FROM python as python-build-stage @@ -103,7 +103,7 @@ RUN sed -i 's/\r$//g' /start-celerybeat RUN chmod +x /start-celerybeat -COPY ./compose/production/django/celery/flower/start /start-flower +COPY --chown=django:django ./compose/production/django/celery/flower/start /start-flower RUN sed -i 's/\r$//g' /start-flower RUN chmod +x /start-flower {%- endif %} diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index b66db7462..bfe1510c0 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -11,7 +11,7 @@ argon2-cffi==23.1.0 # https://github.com/hynek/argon2_cffi {%- if cookiecutter.use_whitenoise == 'y' %} whitenoise==6.5.0 # https://github.com/evansd/whitenoise {%- endif %} -redis==5.0.0 # https://github.com/redis/redis-py +redis==5.0.1 # https://github.com/redis/redis-py {%- if cookiecutter.use_docker == "y" or cookiecutter.windows == "n" %} hiredis==2.2.3 # https://github.com/redis/hiredis-py {%- endif %} @@ -28,7 +28,7 @@ uvicorn[standard]==0.23.2 # https://github.com/encode/uvicorn # Django # ------------------------------------------------------------------------------ -django==4.2.5 # pyup: < 5.0 # https://www.djangoproject.com/ +django==4.2.6 # pyup: < 5.0 # https://www.djangoproject.com/ django-environ==0.11.2 # https://github.com/joke2k/django-environ django-model-utils==4.3.1 # https://github.com/jazzband/django-model-utils django-allauth==0.57.0 # https://github.com/pennersr/django-allauth @@ -37,7 +37,7 @@ crispy-bootstrap5==0.7 # https://github.com/django-crispy-forms/crispy-bootstra {%- if cookiecutter.frontend_pipeline == 'Django Compressor' %} django-compressor==4.4 # https://github.com/django-compressor/django-compressor {%- endif %} -django-redis==5.3.0 # https://github.com/jazzband/django-redis +django-redis==5.4.0 # https://github.com/jazzband/django-redis {%- if cookiecutter.use_drf == 'y' %} # Django REST Framework djangorestframework==3.14.0 # https://github.com/encode/django-rest-framework diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt index 2fad924bb..9e4df6400 100644 --- a/{{cookiecutter.project_slug}}/requirements/local.txt +++ b/{{cookiecutter.project_slug}}/requirements/local.txt @@ -1,11 +1,11 @@ -r base.txt -Werkzeug[watchdog]==2.3.7 # https://github.com/pallets/werkzeug +Werkzeug[watchdog]==3.0.0 # https://github.com/pallets/werkzeug ipdb==0.13.13 # https://github.com/gotcha/ipdb {%- if cookiecutter.use_docker == 'y' %} -psycopg[c]==3.1.11 # https://github.com/psycopg/psycopg +psycopg[c]==3.1.12 # https://github.com/psycopg/psycopg {%- else %} -psycopg[binary]==3.1.11 # https://github.com/psycopg/psycopg +psycopg[binary]==3.1.12 # https://github.com/psycopg/psycopg {%- endif %} {%- if cookiecutter.use_async == 'y' or cookiecutter.use_celery == 'y' %} watchfiles==0.20.0 # https://github.com/samuelcolvin/watchfiles @@ -13,12 +13,12 @@ watchfiles==0.20.0 # https://github.com/samuelcolvin/watchfiles # Testing # ------------------------------------------------------------------------------ -mypy==1.4.1 # https://github.com/python/mypy -django-stubs[compatible-mypy]==4.2.3 # https://github.com/typeddjango/django-stubs +mypy==1.5.1 # https://github.com/python/mypy +django-stubs[compatible-mypy]==4.2.4 # https://github.com/typeddjango/django-stubs pytest==7.4.2 # https://github.com/pytest-dev/pytest pytest-sugar==0.9.7 # https://github.com/Frozenball/pytest-sugar {%- if cookiecutter.use_drf == "y" %} -djangorestframework-stubs[compatible-mypy]==3.14.2 # https://github.com/typeddjango/djangorestframework-stubs +djangorestframework-stubs[compatible-mypy]==3.14.3 # https://github.com/typeddjango/djangorestframework-stubs {%- endif %} # Documentation @@ -30,7 +30,7 @@ sphinx-autobuild==2021.3.14 # https://github.com/GaretJax/sphinx-autobuild # ------------------------------------------------------------------------------ flake8==6.1.0 # https://github.com/PyCQA/flake8 flake8-isort==6.1.0 # https://github.com/gforcada/flake8-isort -coverage==7.3.1 # https://github.com/nedbat/coveragepy +coverage==7.3.2 # https://github.com/nedbat/coveragepy black==23.9.1 # https://github.com/psf/black djlint==1.34.0 # https://github.com/Riverside-Healthcare/djLint pylint-django==2.5.3 # https://github.com/PyCQA/pylint-django diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt index b7f9f2193..ba6b42e36 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -3,7 +3,7 @@ -r base.txt gunicorn==21.2.0 # https://github.com/benoitc/gunicorn -psycopg[c]==3.1.11 # https://github.com/psycopg/psycopg +psycopg[c]==3.1.12 # https://github.com/psycopg/psycopg {%- if cookiecutter.use_whitenoise == 'n' %} Collectfast==2.2.0 # https://github.com/antonagestam/collectfast {%- endif %} @@ -17,11 +17,11 @@ hiredis==2.2.3 # https://github.com/redis/hiredis-py # Django # ------------------------------------------------------------------------------ {%- if cookiecutter.cloud_provider == 'AWS' %} -django-storages[s3]==1.14 # https://github.com/jschneier/django-storages +django-storages[s3]==1.14.1 # https://github.com/jschneier/django-storages {%- elif cookiecutter.cloud_provider == 'GCP' %} -django-storages[google]==1.14 # https://github.com/jschneier/django-storages +django-storages[google]==1.14.1 # https://github.com/jschneier/django-storages {%- elif cookiecutter.cloud_provider == 'Azure' %} -django-storages[azure]==1.14 # https://github.com/jschneier/django-storages +django-storages[azure]==1.14.1 # https://github.com/jschneier/django-storages {%- endif %} {%- if cookiecutter.mail_service == 'Mailgun' %} django-anymail[mailgun]==10.1 # https://github.com/anymail/django-anymail diff --git a/{{cookiecutter.project_slug}}/runtime.txt b/{{cookiecutter.project_slug}}/runtime.txt index 3124d55e9..76b6e496e 100644 --- a/{{cookiecutter.project_slug}}/runtime.txt +++ b/{{cookiecutter.project_slug}}/runtime.txt @@ -1 +1 @@ -python-3.11.5 +python-3.11.6