From 53ec88a13913666546d6fb92fea48b87b1206aeb Mon Sep 17 00:00:00 2001 From: edX requirements bot <49161187+edx-requirements-bot@users.noreply.github.com> Date: Wed, 6 Mar 2024 11:15:27 -0500 Subject: [PATCH] feat: add python312 support (#390) Co-authored-by: Usama Sadiq --- .github/workflows/ci.yml | 7 ++++--- CHANGELOG.rst | 10 ++++++++++ edx_django_utils/__init__.py | 2 +- requirements/base.txt | 6 ++++-- requirements/constraints.txt | 3 +++ requirements/dev.txt | 5 +++-- requirements/doc.in | 2 +- requirements/doc.txt | 12 ++---------- requirements/pip-tools.txt | 2 +- requirements/quality.txt | 3 ++- requirements/test.txt | 3 ++- setup.py | 2 +- tox.ini | 8 +++++--- 13 files changed, 39 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 494163f8..70954c89 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,11 +12,12 @@ jobs: run_tests: name: tests runs-on: ${{ matrix.os }} + continue-on-error: true strategy: matrix: os: [ubuntu-20.04] - python-version: ['3.8'] - toxenv: [docs, quality, django32, django42] + python-version: ['3.8', '3.12'] + toxenv: [docs, quality, django42] steps: - uses: actions/checkout@v4 @@ -37,7 +38,7 @@ jobs: run: tox - name: Run coverage - if: matrix.python-version == '3.8' && matrix.toxenv == 'django42' + if: matrix.python-version == '3.12' && matrix.toxenv == 'django42' uses: codecov/codecov-action@v3 with: flags: unittests diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 41e31c45..13811a92 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -11,6 +11,16 @@ Change Log .. There should always be an "Unreleased" section for changes pending release. +[5.11.0] - 2024-03-06 +--------------------- +Added +~~~~~ +* Added support for ``Python 3.12`` + +Removed +~~~~~~~ +* Dropped support for ``Django 3.2`` + [5.10.1] - 2024-01-17 --------------------- diff --git a/edx_django_utils/__init__.py b/edx_django_utils/__init__.py index 25396ddf..ae56e85f 100644 --- a/edx_django_utils/__init__.py +++ b/edx_django_utils/__init__.py @@ -2,7 +2,7 @@ EdX utilities for Django Application development.. """ -__version__ = "5.10.1" +__version__ = "5.11.0" default_app_config = ( "edx_django_utils.apps.EdxDjangoUtilsConfig" diff --git a/requirements/base.txt b/requirements/base.txt index a9148fbf..188ed6ef 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,8 +6,10 @@ # asgiref==3.7.2 # via django -backports-zoneinfo==0.2.1 - # via django +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # django cffi==1.16.0 # via pynacl click==8.1.7 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 7dfbe23f..a7981d10 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -21,3 +21,6 @@ sphinx==4.2.0 # version 1.0.0 requires docutils >0.19 but sphinx@4.2.0 needs docutils<0.18 doc8<1.0.0 + +# Needed for Django 4.2 + Python 3.12 compatibility +backports.zoneinfo; python_version<"3.9" diff --git a/requirements/dev.txt b/requirements/dev.txt index 084b122f..78b07fe4 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -15,8 +15,9 @@ astroid==3.1.0 # -r requirements/quality.txt # pylint # pylint-celery -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/quality.txt # django build==1.1.1 @@ -155,7 +156,7 @@ pbr==6.0.0 # via # -r requirements/quality.txt # stevedore -pip-tools==7.4.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.txt platformdirs==4.2.0 # via diff --git a/requirements/doc.in b/requirements/doc.in index 8135a8fd..65db8348 100644 --- a/requirements/doc.in +++ b/requirements/doc.in @@ -9,4 +9,4 @@ readme_renderer # Validates README.rst for usage on PyPI Sphinx # Documentation builder twine factory-boy -pytest #Needed? \ No newline at end of file +pytest #Needed? diff --git a/requirements/doc.txt b/requirements/doc.txt index 7645001a..f843b228 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -16,8 +16,9 @@ babel==2.14.0 # via # pydata-sphinx-theme # sphinx -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/test.txt # django beautifulsoup4==4.12.3 @@ -27,7 +28,6 @@ certifi==2024.2.2 cffi==1.16.0 # via # -r requirements/test.txt - # cryptography # pynacl charset-normalizer==3.3.2 # via requests @@ -37,8 +37,6 @@ coverage[toml]==7.4.3 # via # -r requirements/test.txt # pytest-cov -cryptography==42.0.5 - # via secretstorage ddt==1.7.2 # via -r requirements/test.txt django==4.2.11 @@ -90,10 +88,6 @@ iniconfig==2.0.0 # pytest jaraco-classes==3.3.1 # via keyring -jeepney==0.8.0 - # via - # keyring - # secretstorage jinja2==3.1.3 # via sphinx keyring==24.3.1 @@ -179,8 +173,6 @@ rfc3986==2.0.0 # via twine rich==13.7.1 # via twine -secretstorage==3.3.3 - # via keyring six==1.16.0 # via # -r requirements/test.txt diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 8528adba..921c5b5c 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -12,7 +12,7 @@ importlib-metadata==7.0.1 # via build packaging==23.2 # via build -pip-tools==7.4.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.in pyproject-hooks==1.0.0 # via diff --git a/requirements/quality.txt b/requirements/quality.txt index 46e949f6..3525fbbe 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -12,8 +12,9 @@ astroid==3.1.0 # via # pylint # pylint-celery -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/test.txt # django cffi==1.16.0 diff --git a/requirements/test.txt b/requirements/test.txt index 565052cc..e9a1038b 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -8,8 +8,9 @@ asgiref==3.7.2 # via # -r requirements/base.txt # django -backports-zoneinfo==0.2.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/base.txt # django cffi==1.16.0 diff --git a/setup.py b/setup.py index 19c8d394..89bcf132 100644 --- a/setup.py +++ b/setup.py @@ -127,12 +127,12 @@ def is_requirement(line): classifiers=[ 'Development Status :: 3 - Alpha', 'Framework :: Django', - 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.2', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Natural Language :: English', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.12', ], ) diff --git a/tox.ini b/tox.ini index 328b95d7..0170ed04 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django{32, 42} +envlist = py{38, 312}-django{42}, docs, quality [doc8] ignore = D000, D001 @@ -37,7 +37,7 @@ norecursedirs = .* docs requirements [testenv] deps = - django32: Django>=3.2,<4.0 + setuptools django42: Django>=4.2,<4.3 -r{toxinidir}/requirements/test.txt commands = @@ -51,6 +51,8 @@ allowlist_externals = make rm deps = + setuptools + wheel -r{toxinidir}/requirements/doc.txt commands = doc8 --ignore-path docs/_build README.rst docs @@ -70,6 +72,7 @@ allowlist_externals = rm touch deps = + setuptools -r{toxinidir}/requirements/quality.txt commands = touch tests/__init__.py @@ -87,4 +90,3 @@ deps = -r{toxinidir}/requirements/quality.txt commands = isort tests test_utils edx_django_utils manage.py setup.py test_settings.py -