diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8f350af..092af9b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -11,33 +11,25 @@ jobs: strategy: max-parallel: 2 matrix: - python-version: ["3.11", "3.12"] - django: ["42", "52"] - exclude: - - python-version: "3.12" - django: "42" + os: [ubuntu-22.04] + python-version: ["3.12"] + toxenv: [django52] steps: - name: Checkout uses: actions/checkout@v5 - - name: Cache dependency - uses: actions/cache@v4 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements/test.txt') }} - restore-keys: | - ${{ runner.os }}-pip- - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} + - name: Install pip + run: pip install -r requirements/pip.txt + - name: Install Dev Requirements - run: | - make install-dev-dependencies + run: pip install -r requirements/ci.txt + - name: Run Python Tests - run: | - export TOXENV=${TOX_ENV//./} - make run-tests env: - TOX_ENV: py${{matrix.python-version}}-django${{matrix.django}} + TOXENV: ${{ matrix.toxenv }} + run: tox diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 6b1cc5f..7123b94 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -16,6 +16,16 @@ Unreleased * +[1.3.0] - 2026-06-26 +~~~~~~~~~~~~~~~~~~~~~ + +Added +_____ + +* Add support for Verawood release. +* Drop support for Python 3.11 (Verawood requires Python 3.12+). +* Drop support for Django 4.2 (Verawood requires Django 5.2+). + 1.2.0 - 2025-10-14 ********************************************** diff --git a/README.rst b/README.rst index a4b0aca..94135bf 100644 --- a/README.rst +++ b/README.rst @@ -73,6 +73,10 @@ Compatibility Notes +------------------+---------------+ | Teak | >= 1.1.0 | +------------------+---------------+ +| Ulmo | >= 1.2.0 | ++------------------+---------------+ +| Verawood | >= 1.3.0 | ++------------------+---------------+ Usage ======= diff --git a/requirements/base.txt b/requirements/base.txt index b91c7bd..86844dd 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,23 +1,27 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # appdirs==1.4.4 # via fs -asgiref==3.10.0 +asgiref==3.11.1 # via django -boto3==1.40.51 +boto3==1.43.36 # via fs-s3fs -botocore==1.40.51 +botocore==1.43.36 # via # boto3 # s3transfer -django==5.2.7 +django==5.2.15 # via # -c requirements/constraints.txt # openedx-django-pyfs +dnspython==2.8.0 + # via pymongo +edx-opaque-keys==4.0.0 + # via xblock fs==2.4.16 # via # fs-s3fs @@ -25,15 +29,15 @@ fs==2.4.16 # xblock fs-s3fs==1.1.1 # via openedx-django-pyfs -jmespath==1.0.1 +jmespath==1.1.0 # via # boto3 # botocore lazy==1.6 # via xblock -lxml==6.0.2 +lxml==6.1.1 # via xblock -mako==1.3.10 +mako==1.3.12 # via # xblock # xblock-utils @@ -41,19 +45,21 @@ markupsafe==3.0.3 # via # mako # xblock -openedx-django-pyfs==3.8.0 +openedx-django-pyfs==4.0.0 # via xblock +pymongo==4.17.0 + # via edx-opaque-keys python-dateutil==2.9.0.post0 # via # botocore # xblock -pytz==2025.2 +pytz==2026.2 # via xblock pyyaml==6.0.3 # via xblock -s3transfer==0.14.0 +s3transfer==0.19.0 # via boto3 -simplejson==3.20.2 +simplejson==4.1.1 # via # xblock # xblock-utils @@ -62,17 +68,19 @@ six==1.17.0 # fs # fs-s3fs # python-dateutil -sqlparse==0.5.3 +sqlparse==0.5.5 # via django -urllib3==2.5.0 +stevedore==5.8.0 + # via edx-opaque-keys +typing-extensions==4.15.0 + # via edx-opaque-keys +urllib3==2.7.0 # via botocore -web-fragments==3.1.0 - # via - # xblock - # xblock-utils -webob==1.8.9 +web-fragments==4.0.0 + # via xblock-utils +webob==1.8.10 # via xblock -xblock[django]==5.2.0 +xblock[django]==6.3.0 # via # -r requirements/base.in # xblock-utils diff --git a/requirements/ci.txt b/requirements/ci.txt index bba0cfe..ccdec91 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,48 +1,54 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -cachetools==6.2.1 +cachetools==7.1.4 # via tox -certifi==2025.10.5 +certifi==2026.6.17 # via requests -chardet==5.2.0 - # via tox -charset-normalizer==3.4.4 +charset-normalizer==3.4.7 # via requests codecov==2.1.13 # via -r requirements/ci.in colorama==0.4.6 # via tox -coverage==7.10.7 +coverage==7.14.3 # via codecov -distlib==0.4.0 +distlib==0.4.3 # via virtualenv -filelock==3.20.0 +filelock==3.29.4 # via + # python-discovery # tox # virtualenv -idna==3.11 +idna==3.18 # via requests -packaging==25.0 +packaging==26.2 # via # pyproject-api # tox -platformdirs==4.5.0 +platformdirs==4.10.0 # via + # python-discovery # tox # virtualenv pluggy==1.6.0 # via tox -pyproject-api==1.10.0 +pyproject-api==1.10.1 # via tox -requests==2.32.5 +python-discovery==1.4.2 + # via + # tox + # virtualenv +requests==2.34.2 # via codecov -tox==4.31.0 +tomli-w==1.2.0 + # via tox +tox==4.56.1 # via -r requirements/ci.in -urllib3==2.5.0 +urllib3==2.7.0 # via requests -virtualenv==20.35.3 +virtualenv==21.5.1 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 5b53ca3..4d8a012 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade @@ -14,7 +14,7 @@ appdirs==1.4.4 # -r requirements/quality.txt # -r requirements/test.txt # fs -asgiref==3.10.0 +asgiref==3.11.1 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -24,39 +24,35 @@ astroid==3.3.11 # -r requirements/quality.txt # pylint # pylint-celery -backports-tarfile==1.2.0 - # via - # -r requirements/quality.txt - # jaraco-context -billiard==4.2.2 +billiard==4.2.4 # via # -r requirements/quality.txt # -r requirements/test.txt # celery -boto3==1.40.51 +boto3==1.43.36 # via # -r requirements/quality.txt # -r requirements/test.txt # fs-s3fs -botocore==1.40.51 +botocore==1.43.36 # via # -r requirements/quality.txt # -r requirements/test.txt # boto3 # s3transfer -build==1.3.0 +build==1.5.0 # via # -r requirements/pip-tools.txt # pip-tools -cachetools==6.2.1 +cachetools==7.1.4 # via # -r requirements/ci.txt # tox -celery==5.5.3 +celery==5.6.3 # via # -r requirements/quality.txt # -r requirements/test.txt -certifi==2025.10.5 +certifi==2026.6.17 # via # -r requirements/ci.txt # -r requirements/quality.txt @@ -66,18 +62,15 @@ cffi==2.0.0 # via # -r requirements/quality.txt # cryptography -chardet==5.2.0 - # via - # -r requirements/ci.txt - # diff-cover - # tox -charset-normalizer==3.4.4 +chardet==7.4.3 + # via diff-cover +charset-normalizer==3.4.7 # via # -r requirements/ci.txt # -r requirements/quality.txt # -r requirements/test.txt # requests -click==8.3.0 +click==8.4.2 # via # -r requirements/pip-tools.txt # -r requirements/quality.txt @@ -109,7 +102,7 @@ click-repl==0.3.0 # -r requirements/quality.txt # -r requirements/test.txt # celery -code-annotations==2.3.0 +code-annotations==3.0.0 # via # -r requirements/quality.txt # edx-lint @@ -119,28 +112,28 @@ colorama==0.4.6 # via # -r requirements/ci.txt # tox -coverage[toml]==7.10.7 +coverage[toml]==7.14.3 # via # -r requirements/ci.txt # -r requirements/quality.txt # -r requirements/test.txt # codecov # pytest-cov -cryptography==46.0.2 +cryptography==49.0.0 # via # -r requirements/quality.txt # secretstorage -diff-cover==9.7.1 +diff-cover==10.3.0 # via -r requirements/dev.in -dill==0.4.0 +dill==0.4.1 # via # -r requirements/quality.txt # pylint -distlib==0.4.0 +distlib==0.4.3 # via # -r requirements/ci.txt # virtualenv -django==5.2.7 +django==5.2.15 # via # -c requirements/constraints.txt # -r requirements/quality.txt @@ -149,30 +142,32 @@ django==5.2.7 # django-statici18n # edx-i18n-tools # openedx-django-pyfs -django-appconf==1.1.0 +django-appconf==1.2.0 # via django-statici18n -django-statici18n==2.6.0 +django-statici18n==2.7.1 # via -r requirements/dev.in dnspython==2.8.0 # via # -r requirements/quality.txt # -r requirements/test.txt # pymongo -docutils==0.22.2 +docutils==0.23 # via # -r requirements/quality.txt # readme-renderer -edx-i18n-tools==1.9.0 +edx-i18n-tools==2.0.0 # via -r requirements/dev.in -edx-lint==5.6.0 +edx-lint==6.1.0 # via -r requirements/quality.txt -edx-opaque-keys==3.0.0 +edx-opaque-keys==4.0.0 # via # -r requirements/quality.txt # -r requirements/test.txt -filelock==3.20.0 + # xblock +filelock==3.29.4 # via # -r requirements/ci.txt + # python-discovery # tox # virtualenv fs==2.4.16 @@ -187,21 +182,17 @@ fs-s3fs==1.1.1 # -r requirements/quality.txt # -r requirements/test.txt # openedx-django-pyfs -id==1.5.0 +id==1.6.1 # via # -r requirements/quality.txt # twine -idna==3.11 +idna==3.18 # via # -r requirements/ci.txt # -r requirements/quality.txt # -r requirements/test.txt # requests -importlib-metadata==8.7.0 - # via - # -r requirements/quality.txt - # keyring -iniconfig==2.1.0 +iniconfig==2.3.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -214,11 +205,11 @@ jaraco-classes==3.4.0 # via # -r requirements/quality.txt # keyring -jaraco-context==6.0.1 +jaraco-context==6.1.2 # via # -r requirements/quality.txt # keyring -jaraco-functools==4.3.0 +jaraco-functools==4.5.0 # via # -r requirements/quality.txt # keyring @@ -232,17 +223,17 @@ jinja2==3.1.6 # -r requirements/quality.txt # code-annotations # diff-cover -jmespath==1.0.1 +jmespath==1.1.0 # via # -r requirements/quality.txt # -r requirements/test.txt # boto3 # botocore -keyring==25.6.0 +keyring==25.7.0 # via # -r requirements/quality.txt # twine -kombu==5.5.4 +kombu==5.6.2 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -252,23 +243,23 @@ lazy==1.6 # -r requirements/quality.txt # -r requirements/test.txt # xblock -lxml[html-clean]==6.0.2 +lxml[html-clean]==6.1.1 # via # -r requirements/quality.txt # -r requirements/test.txt # edx-i18n-tools # lxml-html-clean # xblock -lxml-html-clean==0.4.3 +lxml-html-clean==0.4.5 # via lxml -mako==1.3.10 +mako==1.3.12 # via # -r requirements/dev.in # -r requirements/quality.txt # -r requirements/test.txt # xblock # xblock-utils -markdown-it-py==4.0.0 +markdown-it-py==4.2.0 # via # -r requirements/quality.txt # rich @@ -287,21 +278,21 @@ mdurl==0.1.2 # via # -r requirements/quality.txt # markdown-it-py -more-itertools==10.8.0 +more-itertools==11.1.0 # via # -r requirements/quality.txt # jaraco-classes # jaraco-functools -nh3==0.3.1 +nh3==0.3.6 # via # -r requirements/quality.txt # readme-renderer -openedx-django-pyfs==3.8.0 +openedx-django-pyfs==4.0.0 # via # -r requirements/quality.txt # -r requirements/test.txt # xblock -packaging==25.0 +packaging==26.2 # via # -r requirements/ci.txt # -r requirements/pip-tools.txt @@ -313,15 +304,17 @@ packaging==25.0 # pytest # tox # twine + # wheel path==16.16.0 # via edx-i18n-tools -pip-tools==7.5.1 +pip-tools==7.5.3 # via -r requirements/pip-tools.txt -platformdirs==4.5.0 +platformdirs==4.10.0 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint + # python-discovery # tox # virtualenv pluggy==1.6.0 @@ -342,13 +335,13 @@ prompt-toolkit==3.0.52 # click-repl pycodestyle==2.14.0 # via -r requirements/quality.txt -pycparser==2.23 +pycparser==3.0 # via # -r requirements/quality.txt # cffi pydocstyle==6.3.0 # via -r requirements/quality.txt -pygments==2.19.2 +pygments==2.20.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -368,7 +361,7 @@ pylint-celery==0.3 # via # -r requirements/quality.txt # edx-lint -pylint-django==2.6.1 +pylint-django==2.7.0 # via # -r requirements/quality.txt # edx-lint @@ -377,12 +370,12 @@ pylint-plugin-utils==0.9.0 # -r requirements/quality.txt # pylint-celery # pylint-django -pymongo==4.15.3 +pymongo==4.17.0 # via # -r requirements/quality.txt # -r requirements/test.txt # edx-opaque-keys -pyproject-api==1.10.0 +pyproject-api==1.10.1 # via # -r requirements/ci.txt # tox @@ -391,17 +384,17 @@ pyproject-hooks==1.2.0 # -r requirements/pip-tools.txt # build # pip-tools -pytest==8.4.2 +pytest==9.1.1 # via # -r requirements/quality.txt # -r requirements/test.txt # pytest-cov # pytest-django -pytest-cov==7.0.0 +pytest-cov==7.1.0 # via # -r requirements/quality.txt # -r requirements/test.txt -pytest-django==4.11.1 +pytest-django==4.12.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -412,11 +405,16 @@ python-dateutil==2.9.0.post0 # botocore # celery # xblock +python-discovery==1.4.2 + # via + # -r requirements/ci.txt + # tox + # virtualenv python-slugify==8.0.4 # via # -r requirements/quality.txt # code-annotations -pytz==2025.2 +pytz==2026.2 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -428,17 +426,16 @@ pyyaml==6.0.3 # code-annotations # edx-i18n-tools # xblock -readme-renderer==44.0 +readme-renderer==45.0 # via # -r requirements/quality.txt # twine -requests==2.32.5 +requests==2.34.2 # via # -r requirements/ci.txt # -r requirements/quality.txt # -r requirements/test.txt # codecov - # id # requests-toolbelt # twine requests-toolbelt==1.0.0 @@ -449,20 +446,20 @@ rfc3986==2.0.0 # via # -r requirements/quality.txt # twine -rich==14.2.0 +rich==15.0.0 # via # -r requirements/quality.txt # twine -s3transfer==0.14.0 +s3transfer==0.19.0 # via # -r requirements/quality.txt # -r requirements/test.txt # boto3 -secretstorage==3.4.0 +secretstorage==3.5.0 # via # -r requirements/quality.txt # keyring -simplejson==3.20.2 +simplejson==4.1.1 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -477,16 +474,16 @@ six==1.17.0 # fs-s3fs # python-dateutil # transifex-client -snowballstemmer==3.0.1 +snowballstemmer==3.1.1 # via # -r requirements/quality.txt # pydocstyle -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r requirements/quality.txt # -r requirements/test.txt # django -stevedore==5.5.0 +stevedore==5.8.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -496,11 +493,16 @@ text-unidecode==1.3 # via # -r requirements/quality.txt # python-slugify -tomlkit==0.13.3 +tomli-w==1.2.0 + # via + # -r requirements/ci.txt + # tox +tomlkit==0.15.0 # via # -r requirements/quality.txt + # edx-lint # pylint -tox==4.31.0 +tox==4.56.1 # via # -r requirements/ci.txt # tox-battery @@ -515,17 +517,23 @@ typing-extensions==4.15.0 # -r requirements/quality.txt # -r requirements/test.txt # edx-opaque-keys -tzdata==2025.2 +tzdata==2026.2 # via # -r requirements/quality.txt # -r requirements/test.txt # kombu -urllib3==2.5.0 +tzlocal==5.4.3 + # via + # -r requirements/quality.txt + # -r requirements/test.txt + # celery +urllib3==2.7.0 # via # -r requirements/ci.txt # -r requirements/quality.txt # -r requirements/test.txt # botocore + # id # requests # transifex-client # twine @@ -536,31 +544,30 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.35.3 +virtualenv==21.5.1 # via # -r requirements/ci.txt # tox -wcwidth==0.2.14 +wcwidth==0.8.1 # via # -r requirements/quality.txt # -r requirements/test.txt # prompt-toolkit -web-fragments==3.1.0 +web-fragments==4.0.0 # via # -r requirements/quality.txt # -r requirements/test.txt - # xblock # xblock-utils -webob==1.8.9 +webob==1.8.10 # via # -r requirements/quality.txt # -r requirements/test.txt # xblock -wheel==0.45.1 +wheel==0.47.0 # via # -r requirements/pip-tools.txt # pip-tools -xblock[django]==5.2.0 +xblock[django]==6.3.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -569,10 +576,6 @@ xblock-utils==4.0.0 # via # -r requirements/quality.txt # -r requirements/test.txt -zipp==3.23.0 - # via - # -r requirements/quality.txt - # importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/django42.txt b/requirements/django42.txt deleted file mode 100644 index bb879a5..0000000 --- a/requirements/django42.txt +++ /dev/null @@ -1 +0,0 @@ -django==4.2.23 \ No newline at end of file diff --git a/requirements/django52.txt b/requirements/django52.txt index 9109eb2..f480bed 100644 --- a/requirements/django52.txt +++ b/requirements/django52.txt @@ -1 +1 @@ -django==5.2.7 +django==5.2.15 diff --git a/requirements/doc.txt b/requirements/doc.txt index 13792df..0b7a969 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade @@ -14,36 +14,36 @@ appdirs==1.4.4 # via # -r requirements/test.txt # fs -asgiref==3.10.0 +asgiref==3.11.1 # via # -r requirements/test.txt # django -babel==2.17.0 +babel==2.18.0 # via sphinx -billiard==4.2.2 +billiard==4.2.4 # via # -r requirements/test.txt # celery -boto3==1.40.51 +boto3==1.43.36 # via # -r requirements/test.txt # fs-s3fs -botocore==1.40.51 +botocore==1.43.36 # via # -r requirements/test.txt # boto3 # s3transfer -celery==5.5.3 +celery==5.6.3 # via -r requirements/test.txt -certifi==2025.10.5 +certifi==2026.6.17 # via # -r requirements/test.txt # requests -charset-normalizer==3.4.4 +charset-normalizer==3.4.7 # via # -r requirements/test.txt # requests -click==8.3.0 +click==8.4.2 # via # -r requirements/test.txt # celery @@ -62,11 +62,11 @@ click-repl==0.3.0 # via # -r requirements/test.txt # celery -coverage[toml]==7.10.7 +coverage[toml]==7.14.3 # via # -r requirements/test.txt # pytest-cov -django==5.2.7 +django==5.2.15 # via # -c requirements/constraints.txt # -r requirements/test.txt @@ -83,8 +83,10 @@ docutils==0.19 # readme-renderer # restructuredtext-lint # sphinx -edx-opaque-keys==3.0.0 - # via -r requirements/test.txt +edx-opaque-keys==4.0.0 + # via + # -r requirements/test.txt + # xblock edx-sphinx-theme==3.1.0 # via -r requirements/doc.in fs==2.4.16 @@ -97,24 +99,24 @@ fs-s3fs==1.1.1 # via # -r requirements/test.txt # openedx-django-pyfs -idna==3.11 +idna==3.18 # via # -r requirements/test.txt # requests -imagesize==1.4.1 +imagesize==2.0.0 # via sphinx -iniconfig==2.1.0 +iniconfig==2.3.0 # via # -r requirements/test.txt # pytest jinja2==3.1.6 # via sphinx -jmespath==1.0.1 +jmespath==1.1.0 # via # -r requirements/test.txt # boto3 # botocore -kombu==5.5.4 +kombu==5.6.2 # via # -r requirements/test.txt # celery @@ -122,11 +124,11 @@ lazy==1.6 # via # -r requirements/test.txt # xblock -lxml==6.0.2 +lxml==6.1.1 # via # -r requirements/test.txt # xblock -mako==1.3.10 +mako==1.3.12 # via # -r requirements/test.txt # xblock @@ -137,13 +139,13 @@ markupsafe==3.0.3 # jinja2 # mako # xblock -nh3==0.3.1 +nh3==0.3.6 # via readme-renderer -openedx-django-pyfs==3.8.0 +openedx-django-pyfs==4.0.0 # via # -r requirements/test.txt # xblock -packaging==25.0 +packaging==26.2 # via # -r requirements/test.txt # kombu @@ -158,25 +160,25 @@ prompt-toolkit==3.0.52 # via # -r requirements/test.txt # click-repl -pygments==2.19.2 +pygments==2.20.0 # via # -r requirements/test.txt # doc8 # pytest # readme-renderer # sphinx -pymongo==4.15.3 +pymongo==4.17.0 # via # -r requirements/test.txt # edx-opaque-keys -pytest==8.4.2 +pytest==9.1.1 # via # -r requirements/test.txt # pytest-cov # pytest-django -pytest-cov==7.0.0 +pytest-cov==7.1.0 # via -r requirements/test.txt -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/test.txt python-dateutil==2.9.0.post0 # via @@ -184,7 +186,7 @@ python-dateutil==2.9.0.post0 # botocore # celery # xblock -pytz==2025.2 +pytz==2026.2 # via # -r requirements/test.txt # xblock @@ -194,17 +196,17 @@ pyyaml==6.0.3 # xblock readme-renderer==43.0 # via -r requirements/doc.in -requests==2.32.5 +requests==2.34.2 # via # -r requirements/test.txt # sphinx -restructuredtext-lint==1.4.0 +restructuredtext-lint==2.0.2 # via doc8 -s3transfer==0.14.0 +s3transfer==0.19.0 # via # -r requirements/test.txt # boto3 -simplejson==3.20.2 +simplejson==4.1.1 # via # -r requirements/test.txt # xblock @@ -216,7 +218,7 @@ six==1.17.0 # fs # fs-s3fs # python-dateutil -snowballstemmer==3.0.1 +snowballstemmer==3.1.1 # via sphinx sphinx==5.3.0 # via @@ -234,11 +236,11 @@ sphinxcontrib-qthelp==2.0.0 # via sphinx sphinxcontrib-serializinghtml==2.0.0 # via sphinx -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r requirements/test.txt # django -stevedore==5.5.0 +stevedore==5.8.0 # via # -r requirements/test.txt # doc8 @@ -247,11 +249,15 @@ typing-extensions==4.15.0 # via # -r requirements/test.txt # edx-opaque-keys -tzdata==2025.2 +tzdata==2026.2 # via # -r requirements/test.txt # kombu -urllib3==2.5.0 +tzlocal==5.4.3 + # via + # -r requirements/test.txt + # celery +urllib3==2.7.0 # via # -r requirements/test.txt # botocore @@ -262,20 +268,19 @@ vine==5.1.0 # amqp # celery # kombu -wcwidth==0.2.14 +wcwidth==0.8.1 # via # -r requirements/test.txt # prompt-toolkit -web-fragments==3.1.0 +web-fragments==4.0.0 # via # -r requirements/test.txt - # xblock # xblock-utils -webob==1.8.9 +webob==1.8.10 # via # -r requirements/test.txt # xblock -xblock[django]==5.2.0 +xblock[django]==6.3.0 # via # -r requirements/test.txt # xblock-utils diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index e97cb1b..a082bfc 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,22 +1,24 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -build==1.3.0 +build==1.5.0 # via pip-tools -click==8.3.0 +click==8.4.2 # via pip-tools -packaging==25.0 - # via build -pip-tools==7.5.1 +packaging==26.2 + # via + # build + # wheel +pip-tools==7.5.3 # via -r requirements/pip-tools.in pyproject-hooks==1.2.0 # via # build # pip-tools -wheel==0.45.1 +wheel==0.47.0 # via pip-tools # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pip.txt b/requirements/pip.txt index dec1587..690c874 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,14 +1,16 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # -# make upgrade +# pip-compile --allow-unsafe --output-file=requirements/pip.txt requirements/pip.in # -wheel==0.45.1 +packaging==26.2 + # via wheel +wheel==0.47.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==25.2 +pip==26.1.2 # via -r requirements/pip.in -setuptools==80.9.0 +setuptools==82.0.1 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index cbf35a4..d9de355 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade @@ -12,7 +12,7 @@ appdirs==1.4.4 # via # -r requirements/test.txt # fs -asgiref==3.10.0 +asgiref==3.11.1 # via # -r requirements/test.txt # django @@ -20,34 +20,32 @@ astroid==3.3.11 # via # pylint # pylint-celery -backports-tarfile==1.2.0 - # via jaraco-context -billiard==4.2.2 +billiard==4.2.4 # via # -r requirements/test.txt # celery -boto3==1.40.51 +boto3==1.43.36 # via # -r requirements/test.txt # fs-s3fs -botocore==1.40.51 +botocore==1.43.36 # via # -r requirements/test.txt # boto3 # s3transfer -celery==5.5.3 +celery==5.6.3 # via -r requirements/test.txt -certifi==2025.10.5 +certifi==2026.6.17 # via # -r requirements/test.txt # requests cffi==2.0.0 # via cryptography -charset-normalizer==3.4.4 +charset-normalizer==3.4.7 # via # -r requirements/test.txt # requests -click==8.3.0 +click==8.4.2 # via # -r requirements/test.txt # celery @@ -71,17 +69,17 @@ click-repl==0.3.0 # via # -r requirements/test.txt # celery -code-annotations==2.3.0 +code-annotations==3.0.0 # via edx-lint -coverage[toml]==7.10.7 +coverage[toml]==7.14.3 # via # -r requirements/test.txt # pytest-cov -cryptography==46.0.2 +cryptography==49.0.0 # via secretstorage -dill==0.4.0 +dill==0.4.1 # via pylint -django==5.2.7 +django==5.2.15 # via # -c requirements/constraints.txt # -r requirements/test.txt @@ -90,12 +88,14 @@ dnspython==2.8.0 # via # -r requirements/test.txt # pymongo -docutils==0.22.2 +docutils==0.23 # via readme-renderer -edx-lint==5.6.0 +edx-lint==6.1.0 # via -r requirements/quality.in -edx-opaque-keys==3.0.0 - # via -r requirements/test.txt +edx-opaque-keys==4.0.0 + # via + # -r requirements/test.txt + # xblock fs==2.4.16 # via # -r requirements/test.txt @@ -106,15 +106,13 @@ fs-s3fs==1.1.1 # via # -r requirements/test.txt # openedx-django-pyfs -id==1.5.0 +id==1.6.1 # via twine -idna==3.11 +idna==3.18 # via # -r requirements/test.txt # requests -importlib-metadata==8.7.0 - # via keyring -iniconfig==2.1.0 +iniconfig==2.3.0 # via # -r requirements/test.txt # pytest @@ -124,9 +122,9 @@ isort==6.1.0 # pylint jaraco-classes==3.4.0 # via keyring -jaraco-context==6.0.1 +jaraco-context==6.1.2 # via keyring -jaraco-functools==4.3.0 +jaraco-functools==4.5.0 # via keyring jeepney==0.9.0 # via @@ -134,14 +132,14 @@ jeepney==0.9.0 # secretstorage jinja2==3.1.6 # via code-annotations -jmespath==1.0.1 +jmespath==1.1.0 # via # -r requirements/test.txt # boto3 # botocore -keyring==25.6.0 +keyring==25.7.0 # via twine -kombu==5.5.4 +kombu==5.6.2 # via # -r requirements/test.txt # celery @@ -149,16 +147,16 @@ lazy==1.6 # via # -r requirements/test.txt # xblock -lxml==6.0.2 +lxml==6.1.1 # via # -r requirements/test.txt # xblock -mako==1.3.10 +mako==1.3.12 # via # -r requirements/test.txt # xblock # xblock-utils -markdown-it-py==4.0.0 +markdown-it-py==4.2.0 # via rich markupsafe==3.0.3 # via @@ -170,23 +168,23 @@ mccabe==0.7.0 # via pylint mdurl==0.1.2 # via markdown-it-py -more-itertools==10.8.0 +more-itertools==11.1.0 # via # jaraco-classes # jaraco-functools -nh3==0.3.1 +nh3==0.3.6 # via readme-renderer -openedx-django-pyfs==3.8.0 +openedx-django-pyfs==4.0.0 # via # -r requirements/test.txt # xblock -packaging==25.0 +packaging==26.2 # via # -r requirements/test.txt # kombu # pytest # twine -platformdirs==4.5.0 +platformdirs==4.10.0 # via pylint pluggy==1.6.0 # via @@ -199,11 +197,11 @@ prompt-toolkit==3.0.52 # click-repl pycodestyle==2.14.0 # via -r requirements/quality.in -pycparser==2.23 +pycparser==3.0 # via cffi pydocstyle==6.3.0 # via -r requirements/quality.in -pygments==2.19.2 +pygments==2.20.0 # via # -r requirements/test.txt # pytest @@ -218,24 +216,24 @@ pylint==3.3.9 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.6.1 +pylint-django==2.7.0 # via edx-lint pylint-plugin-utils==0.9.0 # via # pylint-celery # pylint-django -pymongo==4.15.3 +pymongo==4.17.0 # via # -r requirements/test.txt # edx-opaque-keys -pytest==8.4.2 +pytest==9.1.1 # via # -r requirements/test.txt # pytest-cov # pytest-django -pytest-cov==7.0.0 +pytest-cov==7.1.0 # via -r requirements/test.txt -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/test.txt python-dateutil==2.9.0.post0 # via @@ -245,7 +243,7 @@ python-dateutil==2.9.0.post0 # xblock python-slugify==8.0.4 # via code-annotations -pytz==2025.2 +pytz==2026.2 # via # -r requirements/test.txt # xblock @@ -254,27 +252,26 @@ pyyaml==6.0.3 # -r requirements/test.txt # code-annotations # xblock -readme-renderer==44.0 +readme-renderer==45.0 # via twine -requests==2.32.5 +requests==2.34.2 # via # -r requirements/test.txt - # id # requests-toolbelt # twine requests-toolbelt==1.0.0 # via twine rfc3986==2.0.0 # via twine -rich==14.2.0 +rich==15.0.0 # via twine -s3transfer==0.14.0 +s3transfer==0.19.0 # via # -r requirements/test.txt # boto3 -secretstorage==3.4.0 +secretstorage==3.5.0 # via keyring -simplejson==3.20.2 +simplejson==4.1.1 # via # -r requirements/test.txt # xblock @@ -286,35 +283,42 @@ six==1.17.0 # fs # fs-s3fs # python-dateutil -snowballstemmer==3.0.1 +snowballstemmer==3.1.1 # via pydocstyle -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r requirements/test.txt # django -stevedore==5.5.0 +stevedore==5.8.0 # via # -r requirements/test.txt # code-annotations # edx-opaque-keys text-unidecode==1.3 # via python-slugify -tomlkit==0.13.3 - # via pylint +tomlkit==0.15.0 + # via + # edx-lint + # pylint twine==6.2.0 # via -r requirements/quality.in typing-extensions==4.15.0 # via # -r requirements/test.txt # edx-opaque-keys -tzdata==2025.2 +tzdata==2026.2 # via # -r requirements/test.txt # kombu -urllib3==2.5.0 +tzlocal==5.4.3 + # via + # -r requirements/test.txt + # celery +urllib3==2.7.0 # via # -r requirements/test.txt # botocore + # id # requests # twine vine==5.1.0 @@ -323,27 +327,24 @@ vine==5.1.0 # amqp # celery # kombu -wcwidth==0.2.14 +wcwidth==0.8.1 # via # -r requirements/test.txt # prompt-toolkit -web-fragments==3.1.0 +web-fragments==4.0.0 # via # -r requirements/test.txt - # xblock # xblock-utils -webob==1.8.9 +webob==1.8.10 # via # -r requirements/test.txt # xblock -xblock[django]==5.2.0 +xblock[django]==6.3.0 # via # -r requirements/test.txt # xblock-utils xblock-utils==4.0.0 # via -r requirements/test.txt -zipp==3.23.0 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/test.txt b/requirements/test.txt index 5ddcd73..48153b9 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade @@ -10,28 +10,28 @@ appdirs==1.4.4 # via # -r requirements/base.txt # fs -asgiref==3.10.0 +asgiref==3.11.1 # via # -r requirements/base.txt # django -billiard==4.2.2 +billiard==4.2.4 # via celery -boto3==1.40.51 +boto3==1.43.36 # via # -r requirements/base.txt # fs-s3fs -botocore==1.40.51 +botocore==1.43.36 # via # -r requirements/base.txt # boto3 # s3transfer -celery==5.5.3 +celery==5.6.3 # via -r requirements/test.in -certifi==2025.10.5 +certifi==2026.6.17 # via requests -charset-normalizer==3.4.4 +charset-normalizer==3.4.7 # via requests -click==8.3.0 +click==8.4.2 # via # celery # click-didyoumean @@ -43,16 +43,21 @@ click-plugins==1.1.1.2 # via celery click-repl==0.3.0 # via celery -coverage[toml]==7.10.7 +coverage[toml]==7.14.3 # via pytest-cov # via # -c requirements/constraints.txt # -r requirements/base.txt # openedx-django-pyfs dnspython==2.8.0 - # via pymongo -edx-opaque-keys==3.0.0 - # via -r requirements/test.in + # via + # -r requirements/base.txt + # pymongo +edx-opaque-keys==4.0.0 + # via + # -r requirements/base.txt + # -r requirements/test.in + # xblock fs==2.4.16 # via # -r requirements/base.txt @@ -63,26 +68,26 @@ fs-s3fs==1.1.1 # via # -r requirements/base.txt # openedx-django-pyfs -idna==3.11 +idna==3.18 # via requests -iniconfig==2.1.0 +iniconfig==2.3.0 # via pytest -jmespath==1.0.1 +jmespath==1.1.0 # via # -r requirements/base.txt # boto3 # botocore -kombu==5.5.4 +kombu==5.6.2 # via celery lazy==1.6 # via # -r requirements/base.txt # xblock -lxml==6.0.2 +lxml==6.1.1 # via # -r requirements/base.txt # xblock -mako==1.3.10 +mako==1.3.12 # via # -r requirements/base.txt # xblock @@ -92,11 +97,11 @@ markupsafe==3.0.3 # -r requirements/base.txt # mako # xblock -openedx-django-pyfs==3.8.0 +openedx-django-pyfs==4.0.0 # via # -r requirements/base.txt # xblock -packaging==25.0 +packaging==26.2 # via # kombu # pytest @@ -106,17 +111,19 @@ pluggy==1.6.0 # pytest-cov prompt-toolkit==3.0.52 # via click-repl -pygments==2.19.2 +pygments==2.20.0 # via pytest -pymongo==4.15.3 - # via edx-opaque-keys -pytest==8.4.2 +pymongo==4.17.0 + # via + # -r requirements/base.txt + # edx-opaque-keys +pytest==9.1.1 # via # pytest-cov # pytest-django -pytest-cov==7.0.0 +pytest-cov==7.1.0 # via -r requirements/test.in -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/test.in python-dateutil==2.9.0.post0 # via @@ -124,7 +131,7 @@ python-dateutil==2.9.0.post0 # botocore # celery # xblock -pytz==2025.2 +pytz==2026.2 # via # -r requirements/base.txt # xblock @@ -132,13 +139,13 @@ pyyaml==6.0.3 # via # -r requirements/base.txt # xblock -requests==2.32.5 +requests==2.34.2 # via -r requirements/test.in -s3transfer==0.14.0 +s3transfer==0.19.0 # via # -r requirements/base.txt # boto3 -simplejson==3.20.2 +simplejson==4.1.1 # via # -r requirements/base.txt # xblock @@ -149,17 +156,23 @@ six==1.17.0 # fs # fs-s3fs # python-dateutil -sqlparse==0.5.3 +sqlparse==0.5.5 # via # -r requirements/base.txt # django -stevedore==5.5.0 - # via edx-opaque-keys +stevedore==5.8.0 + # via + # -r requirements/base.txt + # edx-opaque-keys typing-extensions==4.15.0 - # via edx-opaque-keys -tzdata==2025.2 + # via + # -r requirements/base.txt + # edx-opaque-keys +tzdata==2026.2 # via kombu -urllib3==2.5.0 +tzlocal==5.4.3 + # via celery +urllib3==2.7.0 # via # -r requirements/base.txt # botocore @@ -169,18 +182,17 @@ vine==5.1.0 # amqp # celery # kombu -wcwidth==0.2.14 +wcwidth==0.8.1 # via prompt-toolkit -web-fragments==3.1.0 +web-fragments==4.0.0 # via # -r requirements/base.txt - # xblock # xblock-utils -webob==1.8.9 +webob==1.8.10 # via # -r requirements/base.txt # xblock -xblock[django]==5.2.0 +xblock[django]==6.3.0 # via # -r requirements/base.txt # xblock-utils diff --git a/requirements/tox.txt b/requirements/tox.txt index cd4c8c9..60dd0f8 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -1,34 +1,40 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -cachetools==6.2.1 - # via tox -chardet==5.2.0 +cachetools==7.1.4 # via tox colorama==0.4.6 # via tox -distlib==0.4.0 +distlib==0.4.3 # via virtualenv -filelock==3.20.0 +filelock==3.29.4 # via + # python-discovery # tox # virtualenv -packaging==25.0 +packaging==26.2 # via # pyproject-api # tox -platformdirs==4.5.0 +platformdirs==4.10.0 # via + # python-discovery # tox # virtualenv pluggy==1.6.0 # via tox -pyproject-api==1.10.0 +pyproject-api==1.10.1 + # via tox +python-discovery==1.4.2 + # via + # tox + # virtualenv +tomli-w==1.2.0 # via tox -tox==4.31.0 +tox==4.56.1 # via -r requirements/tox.in -virtualenv==20.35.3 +virtualenv==21.5.1 # via tox diff --git a/setup.py b/setup.py index 94c843d..6acebf9 100755 --- a/setup.py +++ b/setup.py @@ -94,7 +94,7 @@ def package_data(pkg, roots): ), include_package_data=True, install_requires=load_requirements('requirements/base.in'), - python_requires=">=3.11", + python_requires=">=3.12", license="AGPL 3.0", zip_safe=False, keywords='Python edunext xblock webhook-xblock', @@ -103,8 +103,8 @@ def package_data(pkg, roots): 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)', 'Natural Language :: English', - 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', + 'Framework :: Django :: 5.2', ], entry_points={ 'xblock.v1': [ diff --git a/tox.ini b/tox.ini index 0d1bb23..4292db7 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,5 @@ [tox] envlist = - py311-django42 - py311-django52 py312-django52 [doc8] @@ -41,10 +39,8 @@ norecursedirs = .* docs requirements site-packages setenv = DJANGO_SETTINGS_MODULE = webhook_xblock.settings.test envdir= - py311: {toxworkdir}/py311 py312: {toxworkdir}/py312 deps = - django42: -r requirements/django42.txt django52: -r requirements/django52.txt -r{toxinidir}/requirements/test.txt commands = diff --git a/webhook_xblock/__init__.py b/webhook_xblock/__init__.py index 22e5548..c308b67 100644 --- a/webhook_xblock/__init__.py +++ b/webhook_xblock/__init__.py @@ -3,4 +3,4 @@ """ from .webhook_xblock import WebhookXblock -__version__ = '1.2.0' +__version__ = '1.3.0'