diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8e48564c..e59fed97 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,8 +14,10 @@ jobs: strategy: matrix: os: [ubuntu-20.04] - python-version: ['3.8'] - toxenv: [django32, django42, quality, csslint, eslint, translations_validate] + python-version: + - '3.8' + - '3.11' + toxenv: [django42, quality, csslint, eslint, translations_validate] steps: - uses: actions/checkout@v3 diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ad29a41..6613249f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## Version 4.1.0 +* Added python 3.11 support. Dropped django32 support. + ## Version 4.0.0 * Remove Transifex calls and bundled translation files for the OEP-58 proposal. diff --git a/freetextresponse/__init__.py b/freetextresponse/__init__.py index c222d0f9..653038d8 100644 --- a/freetextresponse/__init__.py +++ b/freetextresponse/__init__.py @@ -4,4 +4,4 @@ present in order for the student to receive credit. """ -__version__ = "4.0.0" +__version__ = "4.1.0" diff --git a/requirements/base.txt b/requirements/base.txt index 02d6a5a8..fe392454 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,28 +6,32 @@ # appdirs==1.4.4 # via fs -asgiref==3.7.2 +asgiref==3.8.1 # via django -django==3.2.24 +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # django +django==4.2.11 # via # -c requirements/common_constraints.txt # -r requirements/base.in fs==2.4.16 # via xblock -lxml==5.1.0 - # via xblock +lxml==4.9.4 + # via + # -c requirements/constraints.txt + # xblock mako==1.3.2 # via xblock markupsafe==2.1.5 # via # mako # xblock -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via xblock pytz==2024.1 - # via - # django - # xblock + # via xblock pyyaml==6.0.1 # via xblock simplejson==3.19.2 @@ -41,11 +45,11 @@ sqlparse==0.4.4 # via django typing-extensions==4.10.0 # via asgiref -web-fragments==2.1.0 +web-fragments==2.2.0 # via xblock webob==1.8.7 # via xblock -xblock==1.10.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/requirements/ci.txt b/requirements/ci.txt index ddd9c1e7..53fbcda7 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -30,14 +30,14 @@ distlib==0.3.8 # virtualenv docopt==0.6.2 # via coveralls -filelock==3.13.1 +filelock==3.13.3 # via # -r requirements/tox.txt # tox # virtualenv idna==3.6 # via requests -packaging==23.2 +packaging==24.0 # via # -r requirements/tox.txt # pyproject-api @@ -62,7 +62,7 @@ tomli==2.0.1 # -r requirements/tox.txt # pyproject-api # tox -tox==4.13.0 +tox==4.14.2 # via -r requirements/tox.txt urllib3==2.2.1 # via requests diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt index 15aafb29..e3bf8eae 100644 --- a/requirements/common_constraints.txt +++ b/requirements/common_constraints.txt @@ -13,7 +13,7 @@ # using LTS django version -Django<4.0 +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 @@ -21,3 +21,12 @@ 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 7183fafd..47223bf9 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -12,3 +12,9 @@ -c common_constraints.txt # TODO: Many pinned dependencies should be unpinned and/or moved to this constraints file. + +# Adding pin to avoid conflicts. +lxml<5.0.0 # xblock-sdk + +# 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/pip.txt b/requirements/pip.txt index 66656035..cf449024 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.42.0 +wheel==0.43.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: pip==24.0 # via -r requirements/pip.in -setuptools==69.1.1 +setuptools==69.2.0 # via -r requirements/pip.in diff --git a/requirements/pip_tools.txt b/requirements/pip_tools.txt index fb84d102..4e1105e9 100644 --- a/requirements/pip_tools.txt +++ b/requirements/pip_tools.txt @@ -4,15 +4,17 @@ # # make upgrade # -build==1.0.3 +build==1.2.1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==7.0.1 - # via build -packaging==23.2 +importlib-metadata==6.11.0 + # via + # -c requirements/common_constraints.txt + # build +packaging==24.0 # via build -pip-tools==7.4.0 +pip-tools==7.4.1 # via -r requirements/pip_tools.in pyproject-hooks==1.0.0 # via @@ -23,9 +25,9 @@ tomli==2.0.1 # build # pip-tools # pyproject-hooks -wheel==0.42.0 +wheel==0.43.0 # via pip-tools -zipp==3.17.0 +zipp==3.18.1 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/quality.txt b/requirements/quality.txt index bcce4e07..4918f026 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -13,22 +13,28 @@ arrow==1.3.0 # via # -r requirements/test.txt # cookiecutter -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/base.txt # -r requirements/test.txt # django astroid==3.1.0 # via pylint +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # -r requirements/test.txt + # django binaryornot==0.4.4 # via # -r requirements/test.txt # cookiecutter -boto3==1.34.50 +boto3==1.34.77 # via # -r requirements/test.txt # fs-s3fs -botocore==1.34.50 +botocore==1.34.77 # via # -r requirements/test.txt # boto3 @@ -53,13 +59,13 @@ cookiecutter==2.6.0 # via # -r requirements/test.txt # xblock-sdk -coverage==7.4.3 +coverage==7.4.4 # via -r requirements/test.txt ddt==1.7.2 # via -r requirements/test.txt dill==0.3.8 # via pylint -django==3.2.24 +django==4.2.11 # via # -c requirements/common_constraints.txt # -r requirements/base.txt @@ -99,8 +105,9 @@ jmespath==1.0.1 # botocore lazy==1.6 # via -r requirements/test.txt -lxml==5.1.0 +lxml==4.9.4 # via + # -c requirements/constraints.txt # -r requirements/base.txt # -r requirements/test.txt # xblock @@ -151,7 +158,7 @@ pypng==0.20220715.0 # via # -r requirements/test.txt # xblock-sdk -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -166,7 +173,6 @@ pytz==2024.1 # via # -r requirements/base.txt # -r requirements/test.txt - # django # xblock pyyaml==6.0.1 # via @@ -179,11 +185,11 @@ requests==2.31.0 # -r requirements/test.txt # cookiecutter # xblock-sdk -rich==13.7.0 +rich==13.7.1 # via # -r requirements/test.txt # cookiecutter -s3transfer==0.10.0 +s3transfer==0.10.1 # via # -r requirements/test.txt # boto3 @@ -217,7 +223,7 @@ tomli==2.0.1 # via pylint tomlkit==0.12.4 # via pylint -types-python-dateutil==2.8.19.20240106 +types-python-dateutil==2.9.0.20240316 # via # -r requirements/test.txt # arrow @@ -235,7 +241,7 @@ urllib3==1.26.18 # -r requirements/test.txt # botocore # requests -web-fragments==2.1.0 +web-fragments==2.2.0 # via # -r requirements/base.txt # -r requirements/test.txt @@ -247,12 +253,12 @@ webob==1.8.7 # -r requirements/test.txt # xblock # xblock-sdk -xblock==1.10.0 +xblock==3.1.0 # via # -r requirements/base.txt # -r requirements/test.txt # xblock-sdk -xblock-sdk==0.7.0 +xblock-sdk==0.10.0 # via -r requirements/test.txt # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/test.txt b/requirements/test.txt index 81e67dd1..65ebe452 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -8,13 +8,17 @@ appdirs==1.4.4 # via fs arrow==1.3.0 # via cookiecutter -asgiref==3.7.2 +asgiref==3.8.1 # via django +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # django binaryornot==0.4.4 # via cookiecutter -boto3==1.34.50 +boto3==1.34.77 # via fs-s3fs -botocore==1.34.50 +botocore==1.34.77 # via # boto3 # s3transfer @@ -28,7 +32,7 @@ click==8.1.7 # via cookiecutter cookiecutter==2.6.0 # via xblock-sdk -coverage==7.4.3 +coverage==7.4.4 # via -r requirements/test.in ddt==1.7.2 # via -r requirements/test.in @@ -59,8 +63,9 @@ jmespath==1.0.1 # botocore lazy==1.6 # via -r requirements/test.in -lxml==5.1.0 +lxml==4.9.4 # via + # -c requirements/constraints.txt # xblock # xblock-sdk mako==1.3.2 @@ -84,7 +89,7 @@ pymongo==3.13.0 # via edx-opaque-keys pypng==0.20220715.0 # via xblock-sdk -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # arrow # botocore @@ -92,9 +97,7 @@ python-dateutil==2.8.2 python-slugify==8.0.4 # via cookiecutter pytz==2024.1 - # via - # django - # xblock + # via xblock pyyaml==6.0.1 # via # cookiecutter @@ -103,9 +106,9 @@ requests==2.31.0 # via # cookiecutter # xblock-sdk -rich==13.7.0 +rich==13.7.1 # via cookiecutter -s3transfer==0.10.0 +s3transfer==0.10.1 # via boto3 simplejson==3.19.2 # via @@ -122,7 +125,7 @@ stevedore==5.2.0 # via edx-opaque-keys text-unidecode==1.3 # via python-slugify -types-python-dateutil==2.8.19.20240106 +types-python-dateutil==2.9.0.20240316 # via arrow typing-extensions==4.10.0 # via @@ -133,7 +136,7 @@ urllib3==1.26.18 # via # botocore # requests -web-fragments==2.1.0 +web-fragments==2.2.0 # via # xblock # xblock-sdk @@ -141,9 +144,9 @@ webob==1.8.7 # via # xblock # xblock-sdk -xblock==1.10.0 +xblock==3.1.0 # via xblock-sdk -xblock-sdk==0.7.0 +xblock-sdk==0.10.0 # via -r requirements/test.in # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/tox.txt b/requirements/tox.txt index e9a64909..cc5293d6 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -12,11 +12,11 @@ colorama==0.4.6 # via tox distlib==0.3.8 # via virtualenv -filelock==3.13.1 +filelock==3.13.3 # via # tox # virtualenv -packaging==23.2 +packaging==24.0 # via # pyproject-api # tox @@ -32,7 +32,7 @@ tomli==2.0.1 # via # pyproject-api # tox -tox==4.13.0 +tox==4.14.2 # via -r requirements/tox.in virtualenv==20.25.1 # via tox diff --git a/setup.py b/setup.py index 4c83f4d9..cc0fc0fb 100644 --- a/setup.py +++ b/setup.py @@ -147,8 +147,8 @@ def is_requirement(line): 'Programming Language :: JavaScript', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.11', 'Framework :: Django', - 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.2', 'Topic :: Education', 'Topic :: Internet :: WWW/HTTP', diff --git a/tox.ini b/tox.ini index 723f13b1..ede4dd72 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,9 @@ [tox] -envlist = csslint,eslint,pycodestyle,pylint,py38-django{32,42}, translations_validate +envlist = csslint,eslint,pycodestyle,pylint,py38-django{42}, translations_validate [testenv] usedevelop = True deps = - django32: Django>=3.2,<4.0 django42: Django>=4.2,<4.3 -rrequirements/test.txt commands = @@ -59,21 +58,21 @@ commands = [testenv:translations_compile] deps = - edx-i18n-tools==0.4.8 + edx-i18n-tools==1.3.0 changedir = {toxinidir}/freetextresponse commands = i18n_tool generate [testenv:translations_dummy] deps = - edx-i18n-tools==0.4.8 + edx-i18n-tools==1.3.0 changedir = {toxinidir}/freetextresponse commands = i18n_tool dummy [testenv:translations_detect_changed] deps = - edx-i18n-tools==0.4.8 + edx-i18n-tools==1.3.0 changedir = {toxinidir}/freetextresponse commands = i18n_tool extract @@ -81,7 +80,7 @@ commands = [testenv:translations_extract] deps = - edx-i18n-tools==0.4.8 + edx-i18n-tools==1.3.0 changedir = {toxinidir}/freetextresponse commands = i18n_tool extract