From 21c6f1fb452300f4fd2f989f0a053f7221b1d98a Mon Sep 17 00:00:00 2001 From: Irtaza Akram Date: Mon, 8 Apr 2024 16:32:51 +0500 Subject: [PATCH] fix: add support for python 3.11 --- .github/workflows/ci.yml | 2 +- Makefile | 28 ++-- requirements/base.in | 1 + requirements/base.txt | 208 ++++++++++++++++++++++++++++ requirements/ci.txt | 26 ++-- requirements/common_constraints.txt | 32 +++++ requirements/constraints.txt | 9 +- requirements/dev.txt | 86 ++++++------ requirements/doc.txt | 45 +++--- requirements/pip-tools.txt | 8 +- requirements/quality.txt | 65 +++++---- requirements/test.txt | 38 ++--- setup.py | 1 + tox.ini | 3 +- 14 files changed, 407 insertions(+), 145 deletions(-) create mode 100644 requirements/base.txt create mode 100644 requirements/common_constraints.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3b973077..bbbe7e75 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-20.04] - python-version: ['3.8', '3.12'] + python-version: ['3.8', '3.11', '3.12'] toxenv: [quality, django42-drf314, django42-drflatest] steps: diff --git a/Makefile b/Makefile index 5a6c4a30..8c07546b 100644 --- a/Makefile +++ b/Makefile @@ -41,22 +41,28 @@ docs: ## generate Sphinx HTML documentation, including API docs tox -e docs $(BROWSER) docs/_build/html/index.html +COMMON_CONSTRAINTS_TXT=requirements/common_constraints.txt +.PHONY: $(COMMON_CONSTRAINTS_TXT) +$(COMMON_CONSTRAINTS_TXT): + wget -O "$(@)" https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt || touch "$(@)" + upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade -upgrade: ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in +upgrade: $(COMMON_CONSTRAINTS_TXT) ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in pip install -qr requirements/pip-tools.txt - pip-compile --rebuild --upgrade --allow-unsafe --rebuild -o requirements/pip.txt requirements/pip.in - pip-compile --rebuild --upgrade -o requirements/pip-tools.txt requirements/pip-tools.in + # Make sure to compile files after any other files they include! + pip-compile --upgrade --allow-unsafe --rebuild -o requirements/pip.txt requirements/pip.in + pip-compile --upgrade -o requirements/pip-tools.txt requirements/pip-tools.in pip install -qr requirements/pip.txt pip install -qr requirements/pip-tools.txt - pip-compile --rebuild --upgrade -o requirements/dev.txt requirements/dev.in - pip-compile --rebuild --upgrade -o requirements/doc.txt requirements/doc.in - pip-compile --rebuild --upgrade -o requirements/quality.txt requirements/quality.in - pip-compile --rebuild --upgrade -o requirements/test.txt requirements/test.in - pip-compile --rebuild --upgrade -o requirements/ci.txt requirements/ci.in + pip-compile --upgrade --allow-unsafe -o requirements/base.txt requirements/base.in + pip-compile --upgrade -o requirements/test.txt requirements/test.in + pip-compile --upgrade -o requirements/doc.txt requirements/doc.in + pip-compile --upgrade --allow-unsafe -o requirements/quality.txt requirements/quality.in + pip-compile --upgrade -o requirements/ci.txt requirements/ci.in + pip-compile --upgrade -o requirements/dev.txt requirements/dev.in # Let tox control the Django version for tests - sed -i.tmp '/^[d|D]jango==/d' requirements/test.txt - sed -i.tmp '/^djangorestframework==/d' requirements/test.txt - rm requirements/test.txt.tmp + sed '/^[dD]jango==/d' requirements/test.txt > requirements/test.tmp + mv requirements/test.tmp requirements/test.txt quality: ## check coding style with pycodestyle and pylint tox -e quality diff --git a/requirements/base.in b/requirements/base.in index a24d40ac..57336409 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -10,3 +10,4 @@ edx-toggles>=1.2.0 pytz XBlock>=1.2.2 event-tracking +setuptools diff --git a/requirements/base.txt b/requirements/base.txt new file mode 100644 index 00000000..01d8a0dc --- /dev/null +++ b/requirements/base.txt @@ -0,0 +1,208 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# make upgrade +# +amqp==5.2.0 + # via kombu +appdirs==1.4.4 + # via fs +asgiref==3.8.1 + # via django +attrs==23.2.0 + # via openedx-events +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # celery + # django + # djangorestframework + # kombu +billiard==4.2.0 + # via celery +celery==5.3.6 + # via event-tracking +certifi==2024.2.2 + # via requests +cffi==1.16.0 + # via + # cryptography + # pynacl +charset-normalizer==3.3.2 + # via requests +click==8.1.7 + # via + # celery + # click-didyoumean + # click-plugins + # click-repl + # code-annotations + # edx-django-utils +click-didyoumean==0.3.1 + # via celery +click-plugins==1.1.1 + # via celery +click-repl==0.3.0 + # via celery +code-annotations==1.8.0 + # via edx-toggles +cryptography==42.0.5 + # via pyjwt +django==4.2.11 + # via + # -c requirements/common_constraints.txt + # -r requirements/base.in + # django-crum + # django-model-utils + # django-waffle + # djangorestframework + # drf-jwt + # edx-django-utils + # edx-drf-extensions + # edx-toggles + # event-tracking + # openedx-events +django-crum==0.7.9 + # via + # edx-django-utils + # edx-toggles +django-model-utils==4.5.0 + # via -r requirements/base.in +django-waffle==4.1.0 + # via + # edx-django-utils + # edx-drf-extensions + # edx-toggles +djangorestframework==3.15.1 + # via + # -r requirements/base.in + # drf-jwt + # edx-drf-extensions +drf-jwt==1.19.2 + # via edx-drf-extensions +edx-django-utils==5.12.0 + # via + # edx-drf-extensions + # edx-toggles + # event-tracking + # openedx-events +edx-drf-extensions==10.3.0 + # via -r requirements/base.in +edx-opaque-keys[django]==2.5.1 + # via + # -r requirements/base.in + # edx-drf-extensions + # openedx-events +edx-toggles==5.2.0 + # via + # -r requirements/base.in + # event-tracking +event-tracking==2.3.2 + # via -r requirements/base.in +fastavro==1.9.4 + # via openedx-events +fs==2.4.16 + # via xblock +idna==3.6 + # via requests +jinja2==3.1.3 + # via code-annotations +kombu==5.3.6 + # via celery +lxml==5.2.1 + # via xblock +mako==1.3.2 + # via xblock +markupsafe==2.1.5 + # via + # jinja2 + # mako + # xblock +newrelic==9.8.0 + # via edx-django-utils +openedx-events==9.7.0 + # via event-tracking +pbr==6.0.0 + # via stevedore +prompt-toolkit==3.0.43 + # via click-repl +psutil==5.9.8 + # via edx-django-utils +pycparser==2.22 + # via cffi +pyjwt[crypto]==2.8.0 + # via + # drf-jwt + # edx-drf-extensions +pymongo==3.13.0 + # via + # edx-opaque-keys + # event-tracking +pynacl==1.5.0 + # via edx-django-utils +python-dateutil==2.9.0.post0 + # via + # celery + # xblock +python-slugify==8.0.4 + # via code-annotations +pytz==2024.1 + # via + # -r requirements/base.in + # event-tracking + # xblock +pyyaml==6.0.1 + # via + # code-annotations + # xblock +requests==2.31.0 + # via edx-drf-extensions +semantic-version==2.10.0 + # via edx-drf-extensions +simplejson==3.19.2 + # via xblock +six==1.16.0 + # via + # event-tracking + # fs + # python-dateutil +sqlparse==0.4.4 + # via django +stevedore==5.2.0 + # via + # code-annotations + # edx-django-utils + # edx-opaque-keys +text-unidecode==1.3 + # via python-slugify +typing-extensions==4.11.0 + # via + # asgiref + # edx-opaque-keys + # kombu +tzdata==2024.1 + # via + # backports-zoneinfo + # celery +urllib3==2.2.1 + # via requests +vine==5.1.0 + # via + # amqp + # celery + # kombu +wcwidth==0.2.13 + # via prompt-toolkit +web-fragments==2.2.0 + # via xblock +webob==1.8.7 + # via xblock +xblock==3.1.0 + # via -r requirements/base.in + +# The following packages are considered to be unsafe in a requirements file: +setuptools==69.2.0 + # via + # -r requirements/base.in + # fs diff --git a/requirements/ci.txt b/requirements/ci.txt index 7dec1e21..3afd2258 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,6 +4,12 @@ # # make upgrade # +cachetools==5.3.3 + # via tox +chardet==5.2.0 + # via tox +colorama==0.4.6 + # via tox distlib==0.3.8 # via virtualenv filelock==3.13.3 @@ -13,20 +19,22 @@ filelock==3.13.3 mock==5.1.0 # via -r requirements/ci.in packaging==24.0 - # via tox + # via + # pyproject-api + # tox platformdirs==4.2.0 - # via virtualenv + # via + # tox + # virtualenv pluggy==1.4.0 # via tox -py==1.11.0 - # via tox -six==1.16.0 +pyproject-api==1.6.1 # via tox tomli==2.0.1 - # via tox -tox==3.28.0 # via - # -c requirements/constraints.txt - # -r requirements/ci.in + # pyproject-api + # tox +tox==4.14.2 + # via -r requirements/ci.in virtualenv==20.25.1 # via tox diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt new file mode 100644 index 00000000..e3bf8eae --- /dev/null +++ b/requirements/common_constraints.txt @@ -0,0 +1,32 @@ +# A central location for most common version constraints +# (across edx repos) for pip-installation. +# +# Similar to other constraint files this file doesn't install any packages. +# It specifies version constraints that will be applied if a package is needed. +# When pinning something here, please provide an explanation of why it is a good +# idea to pin this package across all edx repos, Ideally, link to other information +# that will help people in the future to remove the pin when possible. +# Writing an issue against the offending project and linking to it here is good. +# +# Note: Changes to this file will automatically be used by other repos, referencing +# this file from Github directly. It does not require packaging in edx-lint. + + +# using LTS django version +Django<5.0 + +# elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process. +# elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html +elasticsearch<7.14.0 + +# django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected +django-simple-history==3.0.0 + +# opentelemetry requires version 6.x at the moment: +# https://github.com/open-telemetry/opentelemetry-python/issues/3570 +# Normally this could be added as a constraint in edx-django-utils, where we're +# adding the opentelemetry dependency. However, when we compile pip-tools.txt, +# that uses version 7.x, and then there's no undoing that when compiling base.txt. +# So we need to pin it globally, for now. +# Ticket for unpinning: https://github.com/openedx/edx-lint/issues/407 +importlib-metadata<7 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 716bcfd5..810e8f0c 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -1,4 +1,4 @@ -# Version constraints for pip installation. +# Version constraints for pip-installation. # # This file doesn't install any packages. It specifies version constraints # that will be applied if a package is needed. @@ -8,8 +8,7 @@ # pin when possible. Writing an issue against the offending project and # linking to it here is good. -Django < 3.3 +-c common_constraints.txt -# tox >= 4.0.0 is a complete rewrite of the tox package. It is not a -# simple upgrade. I've pinned the version to allow us to time to prioritize this upgrade. -tox < 4.0.0 \ No newline at end of file +# Temporary to Support the python 3.11 Upgrade +backports.zoneinfo;python_version<"3.9" # Newer versions have zoneinfo available in the standard library diff --git a/requirements/dev.txt b/requirements/dev.txt index 296354a2..c4dc8a32 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -16,15 +16,21 @@ astroid==3.1.0 # pylint-celery attrs==23.2.0 # via openedx-events -backports-zoneinfo[tzdata]==0.2.1 +backports-tarfile==1.0.0 + # via jaraco-context +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # celery + # django # djangorestframework # kombu billiard==4.2.0 # via celery -build==1.1.1 +build==1.2.1 # via pip-tools +cachetools==5.3.3 + # via tox celery==5.3.6 # via event-tracking certifi==2024.2.2 @@ -34,7 +40,9 @@ cffi==1.16.0 # cryptography # pynacl chardet==5.2.0 - # via diff-cover + # via + # diff-cover + # tox charset-normalizer==3.3.2 # via requests click==8.1.7 @@ -56,16 +64,16 @@ click-plugins==1.1.1 # via celery click-repl==0.3.0 # via celery -code-annotations==1.7.0 +code-annotations==1.8.0 # via # edx-lint # edx-toggles +colorama==0.4.6 + # via tox coverage[toml]==7.4.4 # via pytest-cov cryptography==42.0.5 - # via - # pyjwt - # secretstorage + # via pyjwt ddt==1.7.2 # via -r requirements/test.in diff-cover==8.0.3 @@ -74,9 +82,9 @@ dill==0.3.8 # via pylint distlib==0.3.8 # via virtualenv -django==3.2.25 +django==4.2.11 # via - # -c requirements/constraints.txt + # -c requirements/common_constraints.txt # -r requirements/base.in # django-crum # django-model-utils @@ -93,7 +101,7 @@ django-crum==0.7.9 # via # edx-django-utils # edx-toggles -django-model-utils==4.4.0 +django-model-utils==4.5.0 # via -r requirements/base.in django-waffle==4.1.0 # via @@ -109,13 +117,13 @@ docutils==0.20.1 # via readme-renderer drf-jwt==1.19.2 # via edx-drf-extensions -edx-django-utils==5.11.0 +edx-django-utils==5.12.0 # via # edx-drf-extensions # edx-toggles # event-tracking # openedx-events -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.3.0 # via -r requirements/base.in edx-i18n-tools==1.3.0 # via -r requirements/dev.in @@ -128,17 +136,17 @@ edx-opaque-keys[django]==2.5.1 # -r requirements/base.in # edx-drf-extensions # openedx-events -edx-toggles==5.1.1 +edx-toggles==5.2.0 # via # -r requirements/base.in # event-tracking -event-tracking==2.3.1 +event-tracking==2.3.2 # via -r requirements/base.in exceptiongroup==1.2.0 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==24.4.0 +faker==24.7.1 # via factory-boy fastavro==1.9.4 # via openedx-events @@ -152,8 +160,9 @@ fs==2.4.16 # via xblock idna==3.6 # via requests -importlib-metadata==7.1.0 +importlib-metadata==6.11.0 # via + # -c requirements/common_constraints.txt # build # keyring # twine @@ -165,25 +174,21 @@ isort==5.13.2 # via # -r requirements/quality.in # pylint -jaraco-classes==3.3.1 +jaraco-classes==3.4.0 # via keyring -jaraco-context==4.3.0 +jaraco-context==5.3.0 # via keyring jaraco-functools==4.0.0 # via keyring -jeepney==0.8.0 - # via - # keyring - # secretstorage jinja2==3.1.3 # via # code-annotations # diff-cover -keyring==25.0.0 +keyring==25.1.0 # via twine -kombu==5.3.5 +kombu==5.3.6 # via celery -lxml==5.1.0 +lxml==5.2.1 # via # edx-i18n-tools # xblock @@ -206,18 +211,19 @@ more-itertools==10.2.0 # via # jaraco-classes # jaraco-functools -newrelic==9.7.1 +newrelic==9.8.0 # via edx-django-utils nh3==0.2.17 # via readme-renderer -openedx-events==9.5.2 +openedx-events==9.7.0 # via event-tracking packaging==24.0 # via # build + # pyproject-api # pytest # tox -path==16.10.0 +path==16.13.0 # via edx-i18n-tools pbr==6.0.0 # via stevedore @@ -228,6 +234,7 @@ pkginfo==1.10.0 platformdirs==4.2.0 # via # pylint + # tox # virtualenv pluggy==1.4.0 # via @@ -240,11 +247,9 @@ prompt-toolkit==3.0.43 # via click-repl psutil==5.9.8 # via edx-django-utils -py==1.11.0 - # via tox pycodestyle==2.11.1 # via -r requirements/quality.in -pycparser==2.21 +pycparser==2.22 # via cffi pydocstyle==6.3.0 # via -r requirements/quality.in @@ -277,6 +282,8 @@ pymongo==3.13.0 # event-tracking pynacl==1.5.0 # via edx-django-utils +pyproject-api==1.6.1 + # via tox pyproject-hooks==1.0.0 # via # build @@ -300,7 +307,6 @@ python-slugify==8.0.4 pytz==2024.1 # via # -r requirements/base.in - # django # event-tracking # xblock pyyaml==6.0.1 @@ -321,8 +327,6 @@ rfc3986==2.0.0 # via twine rich==13.7.1 # via twine -secretstorage==3.3.3 - # via keyring semantic-version==2.10.0 # via edx-drf-extensions simplejson==3.19.2 @@ -333,7 +337,6 @@ six==1.16.0 # event-tracking # fs # python-dateutil - # tox snowballstemmer==2.2.0 # via pydocstyle sqlparse==0.4.4 @@ -351,18 +354,17 @@ tomli==2.0.1 # coverage # pip-tools # pylint + # pyproject-api # pyproject-hooks # pytest # tox tomlkit==0.12.4 # via pylint -tox==3.28.0 - # via - # -c requirements/constraints.txt - # -r requirements/dev.in +tox==4.14.2 + # via -r requirements/dev.in twine==5.0.0 # via -r requirements/quality.in -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via # asgiref # astroid @@ -388,13 +390,13 @@ virtualenv==20.25.1 # via tox wcwidth==0.2.13 # via prompt-toolkit -web-fragments==2.1.0 +web-fragments==2.2.0 # via xblock webob==1.8.7 # via xblock wheel==0.43.0 # via pip-tools -xblock==3.0.0 +xblock==3.1.0 # via -r requirements/base.in zipp==3.18.1 # via diff --git a/requirements/doc.txt b/requirements/doc.txt index ee533b1e..a8c9d79d 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -20,9 +20,11 @@ babel==2.14.0 # via # pydata-sphinx-theme # sphinx -backports-zoneinfo[tzdata]==0.2.1; python_version < '3.9' +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # celery + # django # djangorestframework # kombu beautifulsoup4==4.12.3 @@ -53,7 +55,7 @@ click-plugins==1.1.1 # via celery click-repl==0.3.0 # via celery -code-annotations==1.7.0 +code-annotations==1.8.0 # via edx-toggles coverage[toml]==7.4.4 # via pytest-cov @@ -61,9 +63,9 @@ cryptography==42.0.5 # via pyjwt ddt==1.7.2 # via -r requirements/test.in -django==3.2.25 +django==4.2.11 # via - # -c requirements/constraints.txt + # -c requirements/common_constraints.txt # -r requirements/base.in # django-crum # django-model-utils @@ -79,7 +81,7 @@ django-crum==0.7.9 # via # edx-django-utils # edx-toggles -django-model-utils==4.4.0 +django-model-utils==4.5.0 # via -r requirements/base.in django-waffle==4.1.0 # via @@ -101,30 +103,30 @@ docutils==0.19 # sphinx drf-jwt==1.19.2 # via edx-drf-extensions -edx-django-utils==5.11.0 +edx-django-utils==5.12.0 # via # edx-drf-extensions # edx-toggles # event-tracking # openedx-events -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.3.0 # via -r requirements/base.in edx-opaque-keys[django]==2.5.1 # via # -r requirements/base.in # edx-drf-extensions # openedx-events -edx-toggles==5.1.1 +edx-toggles==5.2.0 # via # -r requirements/base.in # event-tracking -event-tracking==2.3.1 +event-tracking==2.3.2 # via -r requirements/base.in exceptiongroup==1.2.0 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==24.4.0 +faker==24.7.1 # via factory-boy fastavro==1.9.4 # via openedx-events @@ -136,17 +138,19 @@ idna==3.6 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==7.1.0 - # via sphinx +importlib-metadata==6.11.0 + # via + # -c requirements/common_constraints.txt + # sphinx iniconfig==2.0.0 # via pytest jinja2==3.1.3 # via # code-annotations # sphinx -kombu==5.3.5 +kombu==5.3.6 # via celery -lxml==5.1.0 +lxml==5.2.1 # via xblock mako==1.3.2 # via xblock @@ -157,9 +161,9 @@ markupsafe==2.1.5 # xblock mock==5.1.0 # via -r requirements/test.in -newrelic==9.7.1 +newrelic==9.8.0 # via edx-django-utils -openedx-events==9.5.2 +openedx-events==9.7.0 # via event-tracking packaging==24.0 # via @@ -174,7 +178,7 @@ prompt-toolkit==3.0.43 # via click-repl psutil==5.9.8 # via edx-django-utils -pycparser==2.21 +pycparser==2.22 # via cffi pydata-sphinx-theme==0.14.4 # via sphinx-book-theme @@ -214,7 +218,6 @@ pytz==2024.1 # via # -r requirements/base.in # babel - # django # event-tracking # xblock pyyaml==6.0.1 @@ -274,7 +277,7 @@ tomli==2.0.1 # coverage # doc8 # pytest -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via # asgiref # edx-opaque-keys @@ -294,11 +297,11 @@ vine==5.1.0 # kombu wcwidth==0.2.13 # via prompt-toolkit -web-fragments==2.1.0 +web-fragments==2.2.0 # via xblock webob==1.8.7 # via xblock -xblock==3.0.0 +xblock==3.1.0 # via -r requirements/base.in zipp==3.18.1 # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 8931dc2e..6401f544 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,12 +4,14 @@ # # make upgrade # -build==1.1.1 +build==1.2.1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==7.1.0 - # via build +importlib-metadata==6.11.0 + # via + # -c requirements/common_constraints.txt + # build packaging==24.0 # via build pip-tools==7.4.1 diff --git a/requirements/quality.txt b/requirements/quality.txt index c03ad1a0..b9f2c536 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -16,9 +16,13 @@ astroid==3.1.0 # pylint-celery attrs==23.2.0 # via openedx-events -backports-zoneinfo[tzdata]==0.2.1 +backports-tarfile==1.0.0 + # via jaraco-context +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # celery + # django # djangorestframework # kombu billiard==4.2.0 @@ -51,23 +55,21 @@ click-plugins==1.1.1 # via celery click-repl==0.3.0 # via celery -code-annotations==1.7.0 +code-annotations==1.8.0 # via # edx-lint # edx-toggles coverage[toml]==7.4.4 # via pytest-cov cryptography==42.0.5 - # via - # pyjwt - # secretstorage + # via pyjwt ddt==1.7.2 # via -r requirements/test.in dill==0.3.8 # via pylint -django==3.2.25 +django==4.2.11 # via - # -c requirements/constraints.txt + # -c requirements/common_constraints.txt # -r requirements/base.in # django-crum # django-model-utils @@ -83,7 +85,7 @@ django-crum==0.7.9 # via # edx-django-utils # edx-toggles -django-model-utils==4.4.0 +django-model-utils==4.5.0 # via -r requirements/base.in django-waffle==4.1.0 # via @@ -99,13 +101,13 @@ docutils==0.20.1 # via readme-renderer drf-jwt==1.19.2 # via edx-drf-extensions -edx-django-utils==5.11.0 +edx-django-utils==5.12.0 # via # edx-drf-extensions # edx-toggles # event-tracking # openedx-events -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.3.0 # via -r requirements/base.in edx-lint==5.3.6 # via -r requirements/quality.in @@ -114,17 +116,17 @@ edx-opaque-keys[django]==2.5.1 # -r requirements/base.in # edx-drf-extensions # openedx-events -edx-toggles==5.1.1 +edx-toggles==5.2.0 # via # -r requirements/base.in # event-tracking -event-tracking==2.3.1 +event-tracking==2.3.2 # via -r requirements/base.in exceptiongroup==1.2.0 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==24.4.0 +faker==24.7.1 # via factory-boy fastavro==1.9.4 # via openedx-events @@ -134,8 +136,9 @@ fs==2.4.16 # via xblock idna==3.6 # via requests -importlib-metadata==7.1.0 +importlib-metadata==6.11.0 # via + # -c requirements/common_constraints.txt # keyring # twine importlib-resources==6.4.0 @@ -146,23 +149,19 @@ isort==5.13.2 # via # -r requirements/quality.in # pylint -jaraco-classes==3.3.1 +jaraco-classes==3.4.0 # via keyring -jaraco-context==4.3.0 +jaraco-context==5.3.0 # via keyring jaraco-functools==4.0.0 # via keyring -jeepney==0.8.0 - # via - # keyring - # secretstorage jinja2==3.1.3 # via code-annotations -keyring==25.0.0 +keyring==25.1.0 # via twine -kombu==5.3.5 +kombu==5.3.6 # via celery -lxml==5.1.0 +lxml==5.2.1 # via xblock mako==1.3.2 # via xblock @@ -183,11 +182,11 @@ more-itertools==10.2.0 # via # jaraco-classes # jaraco-functools -newrelic==9.7.1 +newrelic==9.8.0 # via edx-django-utils nh3==0.2.17 # via readme-renderer -openedx-events==9.5.2 +openedx-events==9.7.0 # via event-tracking packaging==24.0 # via pytest @@ -205,7 +204,7 @@ psutil==5.9.8 # via edx-django-utils pycodestyle==2.11.1 # via -r requirements/quality.in -pycparser==2.21 +pycparser==2.22 # via cffi pydocstyle==6.3.0 # via -r requirements/quality.in @@ -256,7 +255,6 @@ python-slugify==8.0.4 pytz==2024.1 # via # -r requirements/base.in - # django # event-tracking # xblock pyyaml==6.0.1 @@ -276,8 +274,6 @@ rfc3986==2.0.0 # via twine rich==13.7.1 # via twine -secretstorage==3.3.3 - # via keyring semantic-version==2.10.0 # via edx-drf-extensions simplejson==3.19.2 @@ -308,7 +304,7 @@ tomlkit==0.12.4 # via pylint twine==5.0.0 # via -r requirements/quality.in -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via # asgiref # astroid @@ -332,11 +328,11 @@ vine==5.1.0 # kombu wcwidth==0.2.13 # via prompt-toolkit -web-fragments==2.1.0 +web-fragments==2.2.0 # via xblock webob==1.8.7 # via xblock -xblock==3.0.0 +xblock==3.1.0 # via -r requirements/base.in zipp==3.18.1 # via @@ -344,4 +340,7 @@ zipp==3.18.1 # importlib-resources # The following packages are considered to be unsafe in a requirements file: -# setuptools +setuptools==69.2.0 + # via + # -r requirements/base.in + # fs diff --git a/requirements/test.txt b/requirements/test.txt index f548986c..29f0711f 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -12,9 +12,11 @@ asgiref==3.8.1 # via django attrs==23.2.0 # via openedx-events -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # celery + # django # djangorestframework # kombu billiard==4.2.0 @@ -43,7 +45,7 @@ click-plugins==1.1.1 # via celery click-repl==0.3.0 # via celery -code-annotations==1.7.0 +code-annotations==1.8.0 # via edx-toggles coverage[toml]==7.4.4 # via pytest-cov @@ -52,7 +54,7 @@ cryptography==42.0.5 ddt==1.7.2 # via -r requirements/test.in # via - # -c requirements/constraints.txt + # -c requirements/common_constraints.txt # -r requirements/base.in # django-crum # django-model-utils @@ -68,43 +70,44 @@ django-crum==0.7.9 # via # edx-django-utils # edx-toggles -django-model-utils==4.4.0 +django-model-utils==4.5.0 # via -r requirements/base.in django-waffle==4.1.0 # via # edx-django-utils # edx-drf-extensions # edx-toggles +djangorestframework==3.15.1 # via # -r requirements/base.in # drf-jwt # edx-drf-extensions drf-jwt==1.19.2 # via edx-drf-extensions -edx-django-utils==5.11.0 +edx-django-utils==5.12.0 # via # edx-drf-extensions # edx-toggles # event-tracking # openedx-events -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.3.0 # via -r requirements/base.in edx-opaque-keys[django]==2.5.1 # via # -r requirements/base.in # edx-drf-extensions # openedx-events -edx-toggles==5.1.1 +edx-toggles==5.2.0 # via # -r requirements/base.in # event-tracking -event-tracking==2.3.1 +event-tracking==2.3.2 # via -r requirements/base.in exceptiongroup==1.2.0 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==24.4.0 +faker==24.7.1 # via factory-boy fastavro==1.9.4 # via openedx-events @@ -118,9 +121,9 @@ iniconfig==2.0.0 # via pytest jinja2==3.1.3 # via code-annotations -kombu==5.3.5 +kombu==5.3.6 # via celery -lxml==5.1.0 +lxml==5.2.1 # via xblock mako==1.3.2 # via xblock @@ -131,9 +134,9 @@ markupsafe==2.1.5 # xblock mock==5.1.0 # via -r requirements/test.in -newrelic==9.7.1 +newrelic==9.8.0 # via edx-django-utils -openedx-events==9.5.2 +openedx-events==9.7.0 # via event-tracking packaging==24.0 # via pytest @@ -145,7 +148,7 @@ prompt-toolkit==3.0.43 # via click-repl psutil==5.9.8 # via edx-django-utils -pycparser==2.21 +pycparser==2.22 # via cffi pyjwt[crypto]==2.8.0 # via @@ -176,7 +179,6 @@ python-slugify==8.0.4 pytz==2024.1 # via # -r requirements/base.in - # django # event-tracking # xblock pyyaml==6.0.1 @@ -207,7 +209,7 @@ tomli==2.0.1 # via # coverage # pytest -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via # asgiref # edx-opaque-keys @@ -226,11 +228,11 @@ vine==5.1.0 # kombu wcwidth==0.2.13 # via prompt-toolkit -web-fragments==2.1.0 +web-fragments==2.2.0 # via xblock webob==1.8.7 # via xblock -xblock==3.0.0 +xblock==3.1.0 # via -r requirements/base.in # The following packages are considered to be unsafe in a requirements file: diff --git a/setup.py b/setup.py index 017bb57a..ac6d4626 100644 --- a/setup.py +++ b/setup.py @@ -131,6 +131,7 @@ def add_version_constraint_or_raise(current_line, current_requirements, add_if_n 'Natural Language :: English', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', ], ) diff --git a/tox.ini b/tox.ini index e5e893cb..827fc939 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = drf{314,latest},py{38,312}-django{42} +envlist = drf{314,latest},py{38,311,312}-django{42} [doc8] max-line-length = 120 @@ -50,7 +50,6 @@ allowlist_externals = rm touch deps = - wheel -r{toxinidir}/requirements/quality.txt commands = pylint completion