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/.github/workflows/update-contributors.yml b/.github/workflows/update-contributors.yml index 9b93ef6f1..d7973b681 100644 --- a/.github/workflows/update-contributors.yml +++ b/.github/workflows/update-contributors.yml @@ -33,7 +33,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4.16.0 + uses: stefanzweifel/git-auto-commit-action@v5.0.0 with: commit_message: Update Contributors file_pattern: CONTRIBUTORS.md .github/contributors.json diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 01032aec5..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.10.1 + rev: v3.15.0 hooks: - id: pyupgrade args: [--py311-plus] diff --git a/CHANGELOG.md b/CHANGELOG.md index c96ce4d56..9ac2daf9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,154 @@ All enhancements and patches to Cookiecutter Django will be documented in this f +## 2023.10.09 + + +### Updated + +- Bump stefanzweifel/git-auto-commit-action from 4.16.0 to 5.0.0 ([#4621](https://github.com/cookiecutter/cookiecutter-django/pull/4621)) + +- Update django-storages to 1.14.2 ([#4620](https://github.com/cookiecutter/cookiecutter-django/pull/4620)) + +## 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 + + +### Updated + +- Update django-upgrade to 1.15.0 ([#4598](https://github.com/cookiecutter/cookiecutter-django/pull/4598)) + +- Update django-allauth to 0.57.0 ([#4597](https://github.com/cookiecutter/cookiecutter-django/pull/4597)) + +- Auto-update pre-commit hooks ([#4596](https://github.com/cookiecutter/cookiecutter-django/pull/4596)) + +## 2023.09.23 + + +### Updated + +- Update psycopg to 3.1.11 ([#4595](https://github.com/cookiecutter/cookiecutter-django/pull/4595)) + +- Auto-update pre-commit hooks ([#4591](https://github.com/cookiecutter/cookiecutter-django/pull/4591)) + +- Update drf-spectacular to 0.26.5 ([#4594](https://github.com/cookiecutter/cookiecutter-django/pull/4594)) + +## 2023.09.21 + + +### Updated + +- Auto-update pre-commit hooks ([#4589](https://github.com/cookiecutter/cookiecutter-django/pull/4589)) + +- Update djlint to 1.34.0 ([#4590](https://github.com/cookiecutter/cookiecutter-django/pull/4590)) + +## 2023.09.19 + + +### Updated + +- Auto-update pre-commit hooks ([#4588](https://github.com/cookiecutter/cookiecutter-django/pull/4588)) + +- Update djlint to 1.33.0 ([#4587](https://github.com/cookiecutter/cookiecutter-django/pull/4587)) + +## 2023.09.16 + + +### Updated + +- Auto-update pre-commit hooks ([#4586](https://github.com/cookiecutter/cookiecutter-django/pull/4586)) + +## 2023.09.15 + + +### Updated + +- Update flake8-isort to 6.1.0 ([#4585](https://github.com/cookiecutter/cookiecutter-django/pull/4585)) + +- Update pillow to 10.0.1 ([#4584](https://github.com/cookiecutter/cookiecutter-django/pull/4584)) + +## 2023.09.14 + + +### Updated + +- Update sphinx to 7.2.6 ([#4583](https://github.com/cookiecutter/cookiecutter-django/pull/4583)) + ## 2023.09.13 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 986f57448..7e92f3c36 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 6a5062d4c..198cf3ab2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -cookiecutter==2.3.0 +cookiecutter==2.4.0 sh==2.0.6; sys_platform != "win32" binaryornot==0.4.4 @@ -7,8 +7,8 @@ binaryornot==0.4.4 black==23.9.1 isort==5.12.0 flake8==6.1.0 -django-upgrade==1.14.1 -djlint==1.32.1 +django-upgrade==1.15.0 +djlint==1.34.0 pre-commit==3.4.0 # Testing @@ -22,7 +22,7 @@ pyyaml==6.0.1 # Scripting # ------------------------------------------------------------------------------ -PyGithub==1.59.1 -gitpython==3.1.36 +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 b41bc2773..7223f3d78 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.13" +version = "2023.10.09" 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 fb249f2c0..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 @@ -25,13 +25,13 @@ repos: exclude: '{{cookiecutter.project_slug}}/templates/' - repo: https://github.com/adamchainz/django-upgrade - rev: '1.14.1' + rev: '1.15.0' hooks: - id: django-upgrade args: ['--target-version', '4.2'] - repo: https://github.com/asottile/pyupgrade - rev: v3.10.1 + rev: v3.15.0 hooks: - id: pyupgrade args: [--py311-plus] @@ -52,7 +52,7 @@ repos: - id: flake8 - repo: https://github.com/Riverside-Healthcare/djLint - rev: v1.32.1 + rev: v1.34.0 hooks: - id: djlint-reformat-django - id: djlint-django 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}}/compose/production/traefik/Dockerfile b/{{cookiecutter.project_slug}}/compose/production/traefik/Dockerfile index e547dfbb8..b85b02aa0 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.4 +FROM traefik:2.10.5 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}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index b61ec9b8b..d2dcb52fd 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -1,5 +1,5 @@ python-slugify==8.0.1 # https://github.com/un33k/python-slugify -Pillow==10.0.0 # https://github.com/python-pillow/Pillow +Pillow==10.0.1 # https://github.com/python-pillow/Pillow {%- if cookiecutter.frontend_pipeline == 'Django Compressor' %} {%- if cookiecutter.windows == 'y' and cookiecutter.use_docker == 'n' %} rcssmin==1.1.0 --install-option="--without-c-extensions" # https://github.com/ndparker/rcssmin @@ -9,9 +9,9 @@ rcssmin==1.1.1 # https://github.com/ndparker/rcssmin {%- endif %} 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 +whitenoise==6.6.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,22 +28,22 @@ 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.56.1 # https://github.com/pennersr/django-allauth +django-allauth==0.57.0 # https://github.com/pennersr/django-allauth django-crispy-forms==2.0 # https://github.com/django-crispy-forms/django-crispy-forms crispy-bootstrap5==0.7 # https://github.com/django-crispy-forms/crispy-bootstrap5 {%- 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 -django-cors-headers==4.2.0 # https://github.com/adamchainz/django-cors-headers +django-cors-headers==4.3.0 # https://github.com/adamchainz/django-cors-headers # DRF-spectacular for api documentation -drf-spectacular==0.26.4 # https://github.com/tfranzel/drf-spectacular +drf-spectacular==0.26.5 # https://github.com/tfranzel/drf-spectacular {%- endif %} {%- if cookiecutter.frontend_pipeline == 'Webpack' %} django-webpack-loader==2.0.1 # https://github.com/django-webpack/django-webpack-loader diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt index a716a3285..8b9d710d6 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.9 # https://github.com/psycopg/psycopg +psycopg[c]==3.1.12 # https://github.com/psycopg/psycopg {%- else %} -psycopg[binary]==3.1.9 # 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,10 +30,10 @@ sphinx-rtd-theme==1.0.0 # https://pypi.org/project/sphinx-rtd-theme/ # Code quality # ------------------------------------------------------------------------------ flake8==6.1.0 # https://github.com/PyCQA/flake8 -flake8-isort==6.0.0 # https://github.com/gforcada/flake8-isort -coverage==7.3.1 # https://github.com/nedbat/coveragepy +flake8-isort==6.1.0 # https://github.com/gforcada/flake8-isort +coverage==7.3.2 # https://github.com/nedbat/coveragepy black==23.9.1 # https://github.com/psf/black -djlint==1.32.1 # https://github.com/Riverside-Healthcare/djLint +djlint==1.34.0 # https://github.com/Riverside-Healthcare/djLint pylint-django==2.5.3 # https://github.com/PyCQA/pylint-django {%- if cookiecutter.use_celery == 'y' %} pylint-celery==0.3 # https://github.com/PyCQA/pylint-celery diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt index ecbb34799..1ddb49c8e 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -3,12 +3,12 @@ -r base.txt gunicorn==21.2.0 # https://github.com/benoitc/gunicorn -psycopg[c]==3.1.9 # 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 %} {%- if cookiecutter.use_sentry == "y" %} -sentry-sdk==1.31.0 # https://github.com/getsentry/sentry-python +sentry-sdk==1.32.0 # https://github.com/getsentry/sentry-python {%- endif %} {%- if cookiecutter.use_docker == "n" and cookiecutter.windows == "y" %} hiredis==2.2.3 # https://github.com/redis/hiredis-py @@ -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.2 # 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.2 # 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.2 # 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