diff --git a/.github/workflows/pre-commit-autoupdate.yml b/.github/workflows/pre-commit-autoupdate.yml index b5c91ca5c..df4ea1f9a 100644 --- a/.github/workflows/pre-commit-autoupdate.yml +++ b/.github/workflows/pre-commit-autoupdate.yml @@ -31,7 +31,7 @@ jobs: run: pre-commit autoupdate - name: Create Pull Request - uses: peter-evans/create-pull-request@v3.14.0 + uses: peter-evans/create-pull-request@v4 with: token: ${{ secrets.GITHUB_TOKEN }} branch: update/pre-commit-autoupdate diff --git a/.github/workflows/update-contributors.yml b/.github/workflows/update-contributors.yml index 0cc62cfb0..16c5c6226 100644 --- a/.github/workflows/update-contributors.yml +++ b/.github/workflows/update-contributors.yml @@ -26,7 +26,7 @@ jobs: run: python scripts/update_contributors.py - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4.13.1 + uses: stefanzweifel/git-auto-commit-action@v4.14.1 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 7c9e6eca7..da839860e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,13 +3,13 @@ default_stages: [commit] repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.1.0 + rev: v4.2.0 hooks: - id: trailing-whitespace - id: check-yaml - repo: https://github.com/psf/black - rev: 22.1.0 + rev: 22.3.0 hooks: - id: black diff --git a/CHANGELOG.md b/CHANGELOG.md index 84e61e6c6..a616f9469 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,93 @@ All enhancements and patches to Cookiecutter Django will be documented in this f +## 2022.04.27 + +### Updated +- Update mypy to 0.950 ([#3687](https://github.com/cookiecutter/cookiecutter-django/pull/3687)) +- Update python-slugify to 6.1.2 ([#3686](https://github.com/cookiecutter/cookiecutter-django/pull/3686)) +- Update drf-spectacular to 0.22.1 ([#3684](https://github.com/cookiecutter/cookiecutter-django/pull/3684)) + +## 2022.04.25 + +### Updated +- Update pytest to 7.1.2 ([#3683](https://github.com/cookiecutter/cookiecutter-django/pull/3683)) + +## 2022.04.19 + +### Updated +- Update tox to 3.25.0 ([#3675](https://github.com/cookiecutter/cookiecutter-django/pull/3675)) +- Update sentry-sdk to 1.5.10 ([#3679](https://github.com/cookiecutter/cookiecutter-django/pull/3679)) + +## 2022.04.13 + +### Updated +- Bump stefanzweifel/git-auto-commit-action from 4.14.0 to 4.14.1 ([#3677](https://github.com/cookiecutter/cookiecutter-django/pull/3677)) + +## 2022.04.11 + +### Updated +- Update django to 3.2.13 ([#3676](https://github.com/cookiecutter/cookiecutter-django/pull/3676)) + +## 2022.04.08 + +### Updated +- Auto-update pre-commit hooks ([#3673](https://github.com/cookiecutter/cookiecutter-django/pull/3673)) + +## 2022.04.05 + +### Updated +- Update celery to 5.2.6 ([#3671](https://github.com/cookiecutter/cookiecutter-django/pull/3671)) + +## 2022.04.04 + +### Updated +- Update redis to 4.2.2 ([#3670](https://github.com/cookiecutter/cookiecutter-django/pull/3670)) +- Update celery to 5.2.5 ([#3669](https://github.com/cookiecutter/cookiecutter-django/pull/3669)) +- Update pre-commit to 2.18.1 ([#3668](https://github.com/cookiecutter/cookiecutter-django/pull/3668)) +- Update pillow to 9.1.0 ([#3665](https://github.com/cookiecutter/cookiecutter-django/pull/3665)) + +## 2022.04.01 + +### Changed +- Update domain for Celery docs ([#3663](https://github.com/cookiecutter/cookiecutter-django/pull/3663)) +### Updated +- Update watchgod to 0.8.2 ([#3664](https://github.com/cookiecutter/cookiecutter-django/pull/3664)) +- Update redis to 4.2.1 ([#3660](https://github.com/cookiecutter/cookiecutter-django/pull/3660)) + +## 2022.03.28 + +### Changed +- Update `black` version to `22.3.0` ([#3657](https://github.com/cookiecutter/cookiecutter-django/pull/3657)) + +## 2022.03.27 + +### Updated +- Update sphinx to 4.5.0 ([#3654](https://github.com/cookiecutter/cookiecutter-django/pull/3654)) +- Update jinja2 to 3.1.1 ([#3652](https://github.com/cookiecutter/cookiecutter-django/pull/3652)) +- Update pylint-django to 2.5.3 ([#3650](https://github.com/cookiecutter/cookiecutter-django/pull/3650)) +- Update django-allauth to 0.50.0 ([#3649](https://github.com/cookiecutter/cookiecutter-django/pull/3649)) +- Update mypy to 0.942 ([#3648](https://github.com/cookiecutter/cookiecutter-django/pull/3648)) +- Update jinja2 to 3.1.0 ([#3647](https://github.com/cookiecutter/cookiecutter-django/pull/3647)) +- Update redis to 4.2.0 ([#3646](https://github.com/cookiecutter/cookiecutter-django/pull/3646)) +- Update watchgod to 0.8.1 ([#3643](https://github.com/cookiecutter/cookiecutter-django/pull/3643)) +- Bump stefanzweifel/git-auto-commit-action from 4.13.1 to 4.14.0 ([#3641](https://github.com/cookiecutter/cookiecutter-django/pull/3641)) +- Update drf-spectacular to 0.22.0 ([#3642](https://github.com/cookiecutter/cookiecutter-django/pull/3642)) +- Update pytz to 2022.1 ([#3639](https://github.com/cookiecutter/cookiecutter-django/pull/3639)) +- Update sentry-sdk to 1.5.8 ([#3638](https://github.com/cookiecutter/cookiecutter-django/pull/3638)) +- Update pytest to 7.1.1 ([#3637](https://github.com/cookiecutter/cookiecutter-django/pull/3637)) +- Update uvicorn to 0.17.6 ([#3627](https://github.com/cookiecutter/cookiecutter-django/pull/3627)) + +## 2022.03.23 + +### Updated +- Bump peter-evans/create-pull-request from 3.14.0 to 4 ([#3645](https://github.com/cookiecutter/cookiecutter-django/pull/3645)) + +## 2022.03.20 + +### Changed +- Unify compressor, gulp and custom bootstrap options ([#3535](https://github.com/cookiecutter/cookiecutter-django/pull/3535)) + ## 2022.03.14 ### Fixed diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..8a5fc4158 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,3 @@ +## Code of Conduct + +Everyone who interacts in the Cookiecutter project's codebase, issue trackers, chat rooms, and mailing lists is expected to follow the [PyPA Code of Conduct](https://www.pypa.io/en/latest/code-of-conduct/). diff --git a/README.md b/README.md index d9cc0e6b0..9e0c6f550 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ production-ready Django projects quickly. *These features can be enabled during initial project setup.* - Serve static files from Amazon S3, Google Cloud Storage or [Whitenoise](https://whitenoise.readthedocs.io/) -- Configuration for [Celery](http://www.celeryproject.org/) and [Flower](https://github.com/mher/flower) (the latter in Docker setup only) +- Configuration for [Celery](https://docs.celeryq.dev) and [Flower](https://github.com/mher/flower) (the latter in Docker setup only) - Integration with [MailHog](https://github.com/mailhog/MailHog) for local email testing - Integration with [Sentry](https://sentry.io/welcome/) for error logging @@ -245,8 +245,3 @@ experience better. - [How to create a Django Application using Cookiecutter and Django 1.8](https://www.swapps.io/blog/how-to-create-a-django-application-using-cookiecutter-and-django-1-8/) - Sept. 12, 2015 Have a blog or online publication? Write about your cookiecutter-django tips and tricks, then send us a pull request with the link. - -## Code of Conduct - -Everyone interacting in the Cookiecutter project's codebases, issue trackers, chat -rooms, and mailing lists is expected to follow the [PyPA Code of Conduct](https://www.pypa.io/en/latest/code-of-conduct/). diff --git a/docs/developing-locally-docker.rst b/docs/developing-locally-docker.rst index e0b522c8c..4bb5d9032 100644 --- a/docs/developing-locally-docker.rst +++ b/docs/developing-locally-docker.rst @@ -18,7 +18,7 @@ Prerequisites * Docker; if you don't have it yet, follow the `installation instructions`_; * Docker Compose; refer to the official documentation for the `installation guide`_. -* Pre-commit; refer to the official documentation for the [pre-commit](https://pre-commit.com/#install). +* Pre-commit; refer to the official documentation for the `pre-commit`_. .. _`installation instructions`: https://docs.docker.com/install/#supported-platforms .. _`installation guide`: https://docs.docker.com/compose/install/ @@ -190,7 +190,7 @@ Celery tasks in local development ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When not using docker Celery tasks are set to run in Eager mode, so that a full stack is not needed. When using docker the task scheduler will be used by default. -If you need tasks to be executed on the main thread during development set CELERY_TASK_ALWAYS_EAGER = True in config/settings/local.py. +If you need tasks to be executed on the main thread during development set ``CELERY_TASK_ALWAYS_EAGER = True`` in ``config/settings/local.py``. Possible uses could be for testing, or ease of profiling with DJDT. @@ -215,7 +215,7 @@ Developing locally with HTTPS Increasingly it is becoming necessary to develop software in a secure environment in order that there are very few changes when deploying to production. Recently Facebook changed their policies for apps/sites that use Facebook login which requires the use of an HTTPS URL for the OAuth redirect URL. So if you want to use the ``users`` application with a OAuth provider such as Facebook, securing your communication to the local development environment will be necessary. -In order to create a secure environment, we need to have a trusted SSL certficate installed in our Docker application. +In order to create a secure environment, we need to have a trusted SSL certificate installed in our Docker application. #. **Let's Encrypt** diff --git a/docs/requirements.txt b/docs/requirements.txt index d9286ce24..ba0b67c5f 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,2 +1,2 @@ -sphinx==4.4.0 +sphinx==4.5.0 sphinx-rtd-theme==1.0.0 diff --git a/requirements.txt b/requirements.txt index 1e98d0f2a..3f480418c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,16 +4,16 @@ binaryornot==0.4.4 # Code quality # ------------------------------------------------------------------------------ -black==22.1.0 +black==22.3.0 isort==5.10.1 flake8==4.0.1 flake8-isort==4.1.1 -pre-commit==2.17.0 +pre-commit==2.18.1 # Testing # ------------------------------------------------------------------------------ -tox==3.24.5 -pytest==7.0.1 +tox==3.25.0 +pytest==7.1.2 pytest-cookies==0.6.1 pytest-instafail==0.4.2 pyyaml==6.0 @@ -22,5 +22,5 @@ pyyaml==6.0 # ------------------------------------------------------------------------------ PyGithub==1.55 gitpython==3.1.27 -jinja2==3.0.3 +jinja2==3.1.1 requests==2.27.1 diff --git a/scripts/create_django_issue.py b/scripts/create_django_issue.py index daee8fe16..f1ff51a06 100644 --- a/scripts/create_django_issue.py +++ b/scripts/create_django_issue.py @@ -47,6 +47,11 @@ class DjVersion(NamedTuple): major, minor, *_ = version_str.split(".") return cls(major=int(major), minor=int(minor)) + @classmethod + def parse_to_tuple(cls, version_str: str): + version = cls.parse(version_str=version_str) + return version.major, version.minor + def get_package_info(package: str) -> dict: """Get package metadata using PyPI API.""" @@ -75,17 +80,22 @@ def get_name_and_version(requirements_line: str) -> tuple[str, ...]: return name_without_extras, version -def get_all_latest_django_versions() -> tuple[DjVersion, list[DjVersion]]: +def get_all_latest_django_versions( + django_max_version: tuple[DjVersion] = None, +) -> tuple[DjVersion, list[DjVersion]]: """ Grabs all Django versions that are worthy of a GitHub issue. - Depends on Django versions having higher major version or minor version. """ + _django_max_version = (99, 99) + if django_max_version: + _django_max_version = django_max_version + print("Fetching all Django versions from PyPI") base_txt = REQUIREMENTS_DIR / "base.txt" with base_txt.open() as f: for line in f.readlines(): - if "django==" in line: + if "django==" in line.lower(): break else: print(f"django not found in {base_txt}") # Huh...? @@ -97,7 +107,7 @@ def get_all_latest_django_versions() -> tuple[DjVersion, list[DjVersion]]: current_minor_version = DjVersion.parse(current_version_str) newer_versions: set[DjVersion] = set() for django_version in get_django_versions(): - if django_version > current_minor_version: + if _django_max_version >= django_version >= current_minor_version: newer_versions.add(django_version) return current_minor_version, sorted(newer_versions, reverse=True) @@ -143,7 +153,13 @@ class GitHubManager: for requirements_file in self.requirements_files: with (REQUIREMENTS_DIR / f"{requirements_file}.txt").open() as f: for line in f.readlines(): - if "==" in line and not line.startswith("{%"): + if ( + "==" in line + and not line.startswith("{%") + and not line.startswith(" #") + and not line.startswith("#") + and not line.startswith(" ") + ): name, version = get_name_and_version(line) self.requirements[requirements_file][name] = ( version, @@ -192,9 +208,9 @@ class GitHubManager: # updated packages, or known releases that will happen but haven't yet if issue := self.existing_issues.get(needed_dj_version): if index := issue.body.find(package_name): - name, _current, prev_compat, ok = [ + name, _current, prev_compat, ok = ( s.strip() for s in issue.body[index:].split("|", 4)[:4] - ] + ) if ok in ("✅", "❓", "🕒"): return prev_compat, ok @@ -251,11 +267,12 @@ class GitHubManager: ) requirements += ( f"| {self._get_md_home_page_url(info).format(package_name)} " - f"| {version} " - f"| {compat_version} " + f"| {version.strip()} " + f"| {compat_version.strip()} " f"| {icon} " f"|\n" ) + return requirements def create_or_edit_issue(self, needed_dj_version: DjVersion, description: str): @@ -277,9 +294,11 @@ class GitHubManager: self.create_or_edit_issue(version, md_content) -def main() -> None: +def main(django_max_version=None) -> None: # Check if there are any djs - current_dj, latest_djs = get_all_latest_django_versions() + current_dj, latest_djs = get_all_latest_django_versions( + django_max_version=django_max_version + ) if not latest_djs: sys.exit(0) manager = GitHubManager(current_dj, latest_djs) @@ -292,4 +311,9 @@ if __name__ == "__main__": raise RuntimeError( "No github repo, please set the environment variable GITHUB_REPOSITORY" ) - main() + max_version = None + last_arg = sys.argv[-1] + if CURRENT_FILE.name not in last_arg: + max_version = DjVersion.parse_to_tuple(version_str=last_arg) + + main(django_max_version=max_version) diff --git a/setup.py b/setup.py index 99e054595..3b3bf6b2f 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ except ImportError: from distutils.core import setup # We use calendar versioning -version = "2022.03.14" +version = "2022.04.27" 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 5ea57c56c..dd663231e 100644 --- a/{{cookiecutter.project_slug}}/.pre-commit-config.yaml +++ b/{{cookiecutter.project_slug}}/.pre-commit-config.yaml @@ -3,14 +3,14 @@ default_stages: [commit] repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.1.0 + rev: v4.2.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - repo: https://github.com/psf/black - rev: 22.1.0 + rev: 22.3.0 hooks: - id: black diff --git a/{{cookiecutter.project_slug}}/config/settings/base.py b/{{cookiecutter.project_slug}}/config/settings/base.py index a841b6190..fd94d34b5 100644 --- a/{{cookiecutter.project_slug}}/config/settings/base.py +++ b/{{cookiecutter.project_slug}}/config/settings/base.py @@ -280,25 +280,25 @@ LOGGING = { # Celery # ------------------------------------------------------------------------------ if USE_TZ: - # http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-timezone + # https://docs.celeryq.dev/en/stable/userguide/configuration.html#std:setting-timezone CELERY_TIMEZONE = TIME_ZONE -# http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-broker_url +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#std:setting-broker_url CELERY_BROKER_URL = env("CELERY_BROKER_URL") -# http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-result_backend +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#std:setting-result_backend CELERY_RESULT_BACKEND = CELERY_BROKER_URL -# http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-accept_content +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#std:setting-accept_content CELERY_ACCEPT_CONTENT = ["json"] -# http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-task_serializer +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#std:setting-task_serializer CELERY_TASK_SERIALIZER = "json" -# http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-result_serializer +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#std:setting-result_serializer CELERY_RESULT_SERIALIZER = "json" -# http://docs.celeryproject.org/en/latest/userguide/configuration.html#task-time-limit +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#task-time-limit # TODO: set to whatever value is adequate in your circumstances CELERY_TASK_TIME_LIMIT = 5 * 60 -# http://docs.celeryproject.org/en/latest/userguide/configuration.html#task-soft-time-limit +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#task-soft-time-limit # TODO: set to whatever value is adequate in your circumstances CELERY_TASK_SOFT_TIME_LIMIT = 60 -# http://docs.celeryproject.org/en/latest/userguide/configuration.html#beat-scheduler +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#beat-scheduler CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers:DatabaseScheduler" {%- endif %} diff --git a/{{cookiecutter.project_slug}}/config/settings/local.py b/{{cookiecutter.project_slug}}/config/settings/local.py index 5ed6f5853..7220c5e4c 100644 --- a/{{cookiecutter.project_slug}}/config/settings/local.py +++ b/{{cookiecutter.project_slug}}/config/settings/local.py @@ -88,10 +88,10 @@ INSTALLED_APPS += ["django_extensions"] # noqa F405 # Celery # ------------------------------------------------------------------------------ {% if cookiecutter.use_docker == 'n' -%} -# http://docs.celeryproject.org/en/latest/userguide/configuration.html#task-always-eager +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#task-always-eager CELERY_TASK_ALWAYS_EAGER = True {%- endif %} -# http://docs.celeryproject.org/en/latest/userguide/configuration.html#task-eager-propagates +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#task-eager-propagates CELERY_TASK_EAGER_PROPAGATES = True {%- endif %} diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index 650135c23..b21647098 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -1,6 +1,6 @@ -pytz==2021.3 # https://github.com/stub42/pytz -python-slugify==6.1.1 # https://github.com/un33k/python-slugify -Pillow==9.0.1 # https://github.com/python-pillow/Pillow +pytz==2022.1 # https://github.com/stub42/pytz +python-slugify==6.1.2 # https://github.com/un33k/python-slugify +Pillow==9.1.0 # 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 @@ -12,27 +12,27 @@ argon2-cffi==21.3.0 # https://github.com/hynek/argon2_cffi {%- if cookiecutter.use_whitenoise == 'y' %} whitenoise==6.0.0 # https://github.com/evansd/whitenoise {%- endif %} -redis==4.1.4 # https://github.com/redis/redis-py +redis==4.2.2 # 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 {%- endif %} {%- if cookiecutter.use_celery == "y" %} -celery==5.2.3 # pyup: < 6.0 # https://github.com/celery/celery +celery==5.2.6 # pyup: < 6.0 # https://github.com/celery/celery django-celery-beat==2.2.1 # https://github.com/celery/django-celery-beat {%- if cookiecutter.use_docker == 'y' %} flower==1.0.0 # https://github.com/mher/flower {%- endif %} {%- endif %} {%- if cookiecutter.use_async == 'y' %} -uvicorn[standard]==0.17.5 # https://github.com/encode/uvicorn +uvicorn[standard]==0.17.6 # https://github.com/encode/uvicorn {%- endif %} # Django # ------------------------------------------------------------------------------ -django==3.2.12 # pyup: < 4.0 # https://www.djangoproject.com/ +django==3.2.13 # pyup: < 4.0 # https://www.djangoproject.com/ django-environ==0.8.1 # https://github.com/joke2k/django-environ django-model-utils==4.2.0 # https://github.com/jazzband/django-model-utils -django-allauth==0.49.0 # https://github.com/pennersr/django-allauth +django-allauth==0.50.0 # https://github.com/pennersr/django-allauth django-crispy-forms==1.14.0 # https://github.com/django-crispy-forms/django-crispy-forms crispy-bootstrap5==0.6 # https://github.com/django-crispy-forms/crispy-bootstrap5 {%- if cookiecutter.frontend_pipeline == 'Django Compressor' %} @@ -44,7 +44,7 @@ django-redis==5.2.0 # https://github.com/jazzband/django-redis djangorestframework==3.13.1 # https://github.com/encode/django-rest-framework django-cors-headers==3.11.0 # https://github.com/adamchainz/django-cors-headers # DRF-spectacular for api documentation -drf-spectacular==0.21.2 # https://github.com/tfranzel/drf-spectacular +drf-spectacular==0.22.1 # https://github.com/tfranzel/drf-spectacular {%- endif %} {%- if cookiecutter.frontend_pipeline == 'Webpack' %} django-webpack-loader==1.4.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 781c67443..ea65e429c 100644 --- a/{{cookiecutter.project_slug}}/requirements/local.txt +++ b/{{cookiecutter.project_slug}}/requirements/local.txt @@ -8,14 +8,14 @@ psycopg2==2.9.3 # https://github.com/psycopg/psycopg2 psycopg2-binary==2.9.3 # https://github.com/psycopg/psycopg2 {%- endif %} {%- if cookiecutter.use_async == 'y' or cookiecutter.use_celery == 'y' %} -watchgod==0.7 # https://github.com/samuelcolvin/watchgod +watchgod==0.8.2 # https://github.com/samuelcolvin/watchgod {%- endif %} # Testing # ------------------------------------------------------------------------------ -mypy==0.931 # https://github.com/python/mypy +mypy==0.950 # https://github.com/python/mypy django-stubs==1.9.0 # https://github.com/typeddjango/django-stubs -pytest==7.0.1 # https://github.com/pytest-dev/pytest +pytest==7.1.2 # https://github.com/pytest-dev/pytest pytest-sugar==0.9.4 # https://github.com/Frozenball/pytest-sugar {%- if cookiecutter.use_drf == "y" %} djangorestframework-stubs==1.4.0 # https://github.com/typeddjango/djangorestframework-stubs @@ -23,7 +23,7 @@ djangorestframework-stubs==1.4.0 # https://github.com/typeddjango/djangorestfra # Documentation # ------------------------------------------------------------------------------ -sphinx==4.4.0 # https://github.com/sphinx-doc/sphinx +sphinx==4.5.0 # https://github.com/sphinx-doc/sphinx sphinx-autobuild==2021.3.14 # https://github.com/GaretJax/sphinx-autobuild # Code quality @@ -31,12 +31,12 @@ sphinx-autobuild==2021.3.14 # https://github.com/GaretJax/sphinx-autobuild flake8==4.0.1 # https://github.com/PyCQA/flake8 flake8-isort==4.1.1 # https://github.com/gforcada/flake8-isort coverage==6.3.2 # https://github.com/nedbat/coveragepy -black==22.1.0 # https://github.com/psf/black -pylint-django==2.5.2 # https://github.com/PyCQA/pylint-django +black==22.3.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==2.17.0 # https://github.com/pre-commit/pre-commit +pre-commit==2.18.1 # 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 07a571460..6708666f9 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -8,7 +8,7 @@ psycopg2==2.9.3 # https://github.com/psycopg/psycopg2 Collectfast==2.2.0 # https://github.com/antonagestam/collectfast {%- endif %} {%- if cookiecutter.use_sentry == "y" %} -sentry-sdk==1.5.7 # https://github.com/getsentry/sentry-python +sentry-sdk==1.5.10 # 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