diff --git a/.github/contributors.json b/.github/contributors.json index 7920e8caf..30bc0107e 100644 --- a/.github/contributors.json +++ b/.github/contributors.json @@ -1362,5 +1362,15 @@ "name": "duffn", "github_login": "duffn", "twitter_username": "" + }, + { + "name": "Delphine LEMIRE", + "github_login": "DelphineLemire", + "twitter_username": "" + }, + { + "name": "Hoai-Thu Vuong", + "github_login": "thuvh", + "twitter_username": "" } ] \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index c975b4987..23604fd77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,18 @@ All enhancements and patches to Cookiecutter Django will be documented in this f +## 2023.02.17 + +### Changed +- Update version of github actions on the template project ([#4167](https://github.com/cookiecutter/cookiecutter-django/pull/4167)) + +## 2023.02.09 + +### Changed +- Remove unused pip cache paths in GHA & add a note for pre-commit.ci ([#4151](https://github.com/cookiecutter/cookiecutter-django/pull/4151)) +### Updated +- Update mypy to 0.991 ([#4106](https://github.com/cookiecutter/cookiecutter-django/pull/4106)) + ## 2023.02.08 ### Updated diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 85b1ae88f..8a541c945 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -642,6 +642,13 @@ Listed in alphabetical order. jangeador + + Delphine LEMIRE + + DelphineLemire + + + Demetris Stavrou @@ -908,6 +915,13 @@ Listed in alphabetical order. + + Hoai-Thu Vuong + + thuvh + + + Howie Zhao diff --git a/requirements.txt b/requirements.txt index 15c7c8c0a..564e70596 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ cookiecutter==2.1.1 -sh==1.14.3; sys_platform != "win32" +sh==2.0.2; sys_platform != "win32" binaryornot==0.4.4 # Code quality @@ -8,11 +8,11 @@ black==23.1.0 isort==5.12.0 flake8==6.0.0 flake8-isort==6.0.0 -pre-commit==3.0.4 +pre-commit==3.1.0 # Testing # ------------------------------------------------------------------------------ -tox==4.4.5 +tox==4.4.6 pytest==7.2.1 pytest-cookies==0.6.1 pytest-instafail==0.4.2 @@ -20,7 +20,7 @@ pyyaml==6.0 # Scripting # ------------------------------------------------------------------------------ -PyGithub==1.57 -gitpython==3.1.30 +PyGithub==1.58.0 +gitpython==3.1.31 jinja2==3.1.2 requests==2.28.2 diff --git a/setup.py b/setup.py index 4bc6e081d..c7566ba70 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ except ImportError: from distutils.core import setup # We use calendar versioning -version = "2023.02.08" +version = "2023.02.17" with open("README.rst") as readme_file: long_description = readme_file.read() diff --git a/{{cookiecutter.project_slug}}/.github/workflows/ci.yml b/{{cookiecutter.project_slug}}/.github/workflows/ci.yml index 0790187bd..89d83f257 100644 --- a/{{cookiecutter.project_slug}}/.github/workflows/ci.yml +++ b/{{cookiecutter.project_slug}}/.github/workflows/ci.yml @@ -27,16 +27,15 @@ jobs: uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "3.10" - cache: pip - cache-dependency-path: | - requirements/base.txt - requirements/local.txt + {%- if cookiecutter.open_source_license != 'Not open source' %} + # Consider using pre-commit.ci for open source project + {%- endif %} - name: Run pre-commit - uses: pre-commit/action@v2.0.3 + uses: pre-commit/action@v3.0.0 # With no caching at all the entire ci process takes 4m 30s to complete! pytest: @@ -85,7 +84,7 @@ jobs: {%- else %} - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "3.10" cache: pip diff --git a/{{cookiecutter.project_slug}}/README.md b/{{cookiecutter.project_slug}}/README.md index 16ee6d1fe..83f9a7e48 100644 --- a/{{cookiecutter.project_slug}}/README.md +++ b/{{cookiecutter.project_slug}}/README.md @@ -63,6 +63,20 @@ celery -A config.celery_app worker -l info Please note: For Celery's import magic to work, it is important *where* the celery commands are run. If you are in the same folder with *manage.py*, you should be right. +To run [periodic tasks](https://docs.celeryq.dev/en/stable/userguide/periodic-tasks.html), you'll need to start the celery beat scheduler service. You can start it as a standalone process: + +``` bash +cd {{cookiecutter.project_slug}} +celery -A config.celery_app beat +``` + +or you can embed the beat service inside a worker with the `-B` option (not recommended for production use): + +``` bash +cd {{cookiecutter.project_slug}} +celery -A config.celery_app worker -B -l info +``` + {%- endif %} {%- if cookiecutter.use_mailhog == "y" %} diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index 9bcdf31bf..ac6f876f8 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -1,5 +1,5 @@ pytz==2022.7.1 # https://github.com/stub42/pytz -python-slugify==8.0.0 # https://github.com/un33k/python-slugify +python-slugify==8.0.1 # https://github.com/un33k/python-slugify Pillow==9.4.0 # https://github.com/python-pillow/Pillow {%- if cookiecutter.frontend_pipeline == 'Django Compressor' %} {%- if cookiecutter.windows == 'y' and cookiecutter.use_docker == 'n' %} @@ -10,11 +10,11 @@ rcssmin==1.1.1 # https://github.com/ndparker/rcssmin {%- endif %} argon2-cffi==21.3.0 # https://github.com/hynek/argon2_cffi {%- if cookiecutter.use_whitenoise == 'y' %} -whitenoise==6.3.0 # https://github.com/evansd/whitenoise +whitenoise==6.4.0 # https://github.com/evansd/whitenoise {%- endif %} redis==4.5.1 # https://github.com/redis/redis-py {%- if cookiecutter.use_docker == "y" or cookiecutter.windows == "n" %} -hiredis==2.2.1 # https://github.com/redis/hiredis-py +hiredis==2.2.2 # https://github.com/redis/hiredis-py {%- endif %} {%- if cookiecutter.use_celery == "y" %} celery==5.2.7 # pyup: < 6.0 # https://github.com/celery/celery @@ -29,11 +29,11 @@ uvicorn[standard]==0.20.0 # https://github.com/encode/uvicorn # Django # ------------------------------------------------------------------------------ -django==4.0.9 # pyup: < 4.1 # https://www.djangoproject.com/ +django==4.0.10 # pyup: < 4.1 # https://www.djangoproject.com/ django-environ==0.9.0 # https://github.com/joke2k/django-environ django-model-utils==4.3.1 # https://github.com/jazzband/django-model-utils django-allauth==0.52.0 # https://github.com/pennersr/django-allauth -django-crispy-forms==1.14.0 # https://github.com/django-crispy-forms/django-crispy-forms +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.3.1 # https://github.com/django-compressor/django-compressor @@ -42,7 +42,7 @@ django-redis==5.2.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==3.13.0 # https://github.com/adamchainz/django-cors-headers +django-cors-headers==3.14.0 # https://github.com/adamchainz/django-cors-headers # DRF-spectacular for api documentation 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 00c15d3cb..27fa30b36 100644 --- a/{{cookiecutter.project_slug}}/requirements/local.txt +++ b/{{cookiecutter.project_slug}}/requirements/local.txt @@ -1,6 +1,6 @@ -r base.txt -Werkzeug[watchdog]==2.2.2 # https://github.com/pallets/werkzeug +Werkzeug[watchdog]==2.2.3 # https://github.com/pallets/werkzeug ipdb==0.13.11 # https://github.com/gotcha/ipdb {%- if cookiecutter.use_docker == 'y' %} psycopg2==2.9.5 # https://github.com/psycopg/psycopg2 @@ -13,12 +13,12 @@ watchfiles==0.18.1 # https://github.com/samuelcolvin/watchfiles # Testing # ------------------------------------------------------------------------------ -mypy==0.991 # https://github.com/python/mypy -django-stubs==1.14.0 # https://github.com/typeddjango/django-stubs +mypy==1.0.1 # https://github.com/python/mypy +django-stubs==1.15.0 # https://github.com/typeddjango/django-stubs pytest==7.2.1 # https://github.com/pytest-dev/pytest pytest-sugar==0.9.6 # https://github.com/Frozenball/pytest-sugar {%- if cookiecutter.use_drf == "y" %} -djangorestframework-stubs==1.8.0 # https://github.com/typeddjango/djangorestframework-stubs +djangorestframework-stubs==1.9.1 # https://github.com/typeddjango/djangorestframework-stubs {%- endif %} # Documentation @@ -30,13 +30,13 @@ sphinx-autobuild==2021.3.14 # https://github.com/GaretJax/sphinx-autobuild # ------------------------------------------------------------------------------ flake8==6.0.0 # https://github.com/PyCQA/flake8 flake8-isort==6.0.0 # https://github.com/gforcada/flake8-isort -coverage==7.1.0 # https://github.com/nedbat/coveragepy +coverage==7.2.0 # https://github.com/nedbat/coveragepy black==23.1.0 # https://github.com/psf/black 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 {%- endif %} -pre-commit==3.0.4 # https://github.com/pre-commit/pre-commit +pre-commit==3.1.0 # https://github.com/pre-commit/pre-commit # Django # ------------------------------------------------------------------------------ diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt index 06917d8dd..7cee00d5d 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -11,7 +11,7 @@ Collectfast==2.2.0 # https://github.com/antonagestam/collectfast sentry-sdk==1.15.0 # https://github.com/getsentry/sentry-python {%- endif %} {%- if cookiecutter.use_docker == "n" and cookiecutter.windows == "y" %} -hiredis==2.2.1 # https://github.com/redis/hiredis-py +hiredis==2.2.2 # https://github.com/redis/hiredis-py {%- endif %} # Django