diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f2b901..8a2d562 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.11', '3.12'] + python-version: ['3.12'] toxenv: ['default', 'quality'] steps: - uses: actions/checkout@v4 diff --git a/README.rst b/README.rst index 177529e..a41a7e9 100644 --- a/README.rst +++ b/README.rst @@ -30,7 +30,7 @@ One Time Setup cd codejail-includes # Set up a virtualenv using virtualenvwrapper with the same name as the repo and activate it - mkvirtualenv -p python3.11 codejail-includes + mkvirtualenv -p python3.12 codejail-includes Every time you develop something in this repo diff --git a/requirements/base.txt b/requirements/base.txt index 1f4abdb..9ab7f50 100644 --- a/requirements/base.txt +++ b/requirements/base.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 diff --git a/requirements/ci.txt b/requirements/ci.txt index 4fe9c79..ae0016f 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,34 +1,38 @@ # -# 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==5.5.2 - # via tox -chardet==5.2.0 +cachetools==7.0.3 # via tox colorama==0.4.6 # via tox -distlib==0.3.9 +distlib==0.4.0 # via virtualenv -filelock==3.18.0 +filelock==3.25.0 # via + # python-discovery # tox # virtualenv -packaging==25.0 +packaging==26.0 # via # pyproject-api # tox -platformdirs==4.3.7 +platformdirs==4.9.4 # via + # python-discovery # tox # virtualenv -pluggy==1.5.0 +pluggy==1.6.0 + # via tox +pyproject-api==1.10.0 # via tox -pyproject-api==1.9.0 +python-discovery==1.1.0 + # via virtualenv +tomli-w==1.2.0 # via tox -tox==4.25.0 +tox==4.48.1 # via -r requirements/ci.in -virtualenv==20.31.1 +virtualenv==21.1.0 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 39fbf1d..2d29b30 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,40 +1,37 @@ # -# 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 # -astroid==3.3.9 +astroid==4.0.4 # via # -r requirements/quality.txt # pylint # pylint-celery -backports-tarfile==1.2.0 - # via - # -r requirements/quality.txt - # jaraco-context -build==1.2.2.post1 +build==1.4.0 # via # -r requirements/pip-tools.txt # pip-tools -cachetools==5.5.2 +cachetools==7.0.3 # via # -r requirements/ci.txt # tox -certifi==2025.4.26 +certifi==2026.2.25 # via # -r requirements/quality.txt # requests -chardet==5.2.0 +cffi==2.0.0 # via - # -r requirements/ci.txt - # diff-cover - # tox -charset-normalizer==3.4.2 + # -r requirements/quality.txt + # cryptography +chardet==7.0.1 + # via diff-cover +charset-normalizer==3.4.5 # via # -r requirements/quality.txt # requests -click==8.1.8 +click==8.3.1 # via # -r requirements/pip-tools.txt # -r requirements/quality.txt @@ -46,7 +43,7 @@ click-log==0.4.0 # via # -r requirements/quality.txt # edx-lint -code-annotations==2.3.0 +code-annotations==2.3.2 # via # -r requirements/quality.txt # edx-lint @@ -54,48 +51,49 @@ colorama==0.4.6 # via # -r requirements/ci.txt # tox -coverage[toml]==7.8.0 +coverage[toml]==7.13.4 # via # -r requirements/quality.txt # pytest-cov -diff-cover==9.2.4 +cryptography==46.0.5 + # via + # -r requirements/quality.txt + # secretstorage +diff-cover==10.2.0 # via -r requirements/dev.in -dill==0.4.0 +dill==0.4.1 # via # -r requirements/quality.txt # pylint -distlib==0.3.9 +distlib==0.4.0 # via # -r requirements/ci.txt # virtualenv -docutils==0.21.2 +docutils==0.22.4 # via # -r requirements/quality.txt # readme-renderer edx-lint==5.6.0 # via -r requirements/quality.txt -filelock==3.18.0 +filelock==3.25.0 # via # -r requirements/ci.txt + # python-discovery # tox # virtualenv -id==1.5.0 +id==1.6.1 # via # -r requirements/quality.txt # twine -idna==3.10 +idna==3.11 # via # -r requirements/quality.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 # pytest -isort==6.0.1 +isort==8.0.1 # via # -r requirements/quality.txt # pylint @@ -103,28 +101,33 @@ jaraco-classes==3.4.0 # via # -r requirements/quality.txt # keyring -jaraco-context==6.0.1 +jaraco-context==6.1.0 + # via + # -r requirements/quality.txt + # keyring +jaraco-functools==4.4.0 # via # -r requirements/quality.txt # keyring -jaraco-functools==4.1.0 +jeepney==0.9.0 # via # -r requirements/quality.txt # keyring + # secretstorage jinja2==3.1.6 # via # -r requirements/quality.txt # code-annotations # diff-cover -keyring==25.6.0 +keyring==25.7.0 # via # -r requirements/quality.txt # twine -markdown-it-py==3.0.0 +markdown-it-py==4.0.0 # via # -r requirements/quality.txt # rich -markupsafe==3.0.2 +markupsafe==3.0.3 # via # -r requirements/quality.txt # jinja2 @@ -136,16 +139,16 @@ mdurl==0.1.2 # via # -r requirements/quality.txt # markdown-it-py -more-itertools==10.7.0 +more-itertools==10.8.0 # via # -r requirements/quality.txt # jaraco-classes # jaraco-functools -nh3==0.2.21 +nh3==0.3.3 # via # -r requirements/quality.txt # readme-renderer -packaging==25.0 +packaging==26.0 # via # -r requirements/ci.txt # -r requirements/pip-tools.txt @@ -155,37 +158,41 @@ packaging==25.0 # pytest # tox # twine -pbr==6.1.1 - # via - # -r requirements/quality.txt - # stevedore -pip-tools==7.4.1 + # wheel +pip-tools==7.5.3 # via -r requirements/pip-tools.txt -platformdirs==4.3.7 +platformdirs==4.9.4 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint + # python-discovery # tox # virtualenv -pluggy==1.5.0 +pluggy==1.6.0 # via # -r requirements/ci.txt # -r requirements/quality.txt # diff-cover # pytest + # pytest-cov # tox -pycodestyle==2.13.0 +pycodestyle==2.14.0 # via -r requirements/quality.txt +pycparser==3.0 + # via + # -r requirements/quality.txt + # cffi pydocstyle==6.3.0 # via -r requirements/quality.txt -pygments==2.19.1 +pygments==2.19.2 # via # -r requirements/quality.txt # diff-cover + # pytest # readme-renderer # rich -pylint==3.3.7 +pylint==4.0.5 # via # -r requirements/quality.txt # edx-lint @@ -196,16 +203,16 @@ 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 -pylint-plugin-utils==0.8.2 +pylint-plugin-utils==0.9.0 # via # -r requirements/quality.txt # pylint-celery # pylint-django -pyproject-api==1.9.0 +pyproject-api==1.10.0 # via # -r requirements/ci.txt # tox @@ -214,17 +221,21 @@ pyproject-hooks==1.2.0 # -r requirements/pip-tools.txt # build # pip-tools -pytest==8.3.5 +pytest==9.0.2 # via # -r requirements/quality.txt # pytest-cov -pytest-cov==6.1.1 +pytest-cov==7.0.0 # via -r requirements/quality.txt +python-discovery==1.1.0 + # via + # -r requirements/ci.txt + # virtualenv python-slugify==8.0.4 # via # -r requirements/quality.txt # code-annotations -pyyaml==6.0.2 +pyyaml==6.0.3 # via # -r requirements/quality.txt # code-annotations @@ -232,10 +243,9 @@ readme-renderer==44.0 # via # -r requirements/quality.txt # twine -requests==2.32.3 +requests==2.32.5 # via # -r requirements/quality.txt - # id # requests-toolbelt # twine requests-toolbelt==1.0.0 @@ -246,19 +256,23 @@ rfc3986==2.0.0 # via # -r requirements/quality.txt # twine -rich==14.0.0 +rich==14.3.3 # via # -r requirements/quality.txt # twine +secretstorage==3.5.0 + # via + # -r requirements/quality.txt + # keyring six==1.17.0 # via # -r requirements/quality.txt # edx-lint -snowballstemmer==2.2.0 +snowballstemmer==3.0.1 # via # -r requirements/quality.txt # pydocstyle -stevedore==5.4.1 +stevedore==5.7.0 # via # -r requirements/quality.txt # code-annotations @@ -266,32 +280,32 @@ text-unidecode==1.3 # via # -r requirements/quality.txt # python-slugify -tomlkit==0.13.2 +tomli-w==1.2.0 + # via + # -r requirements/ci.txt + # tox +tomlkit==0.14.0 # via # -r requirements/quality.txt # pylint -tox==4.25.0 +tox==4.48.1 # via -r requirements/ci.txt -twine==6.1.0 +twine==6.2.0 # via -r requirements/quality.txt -urllib3==2.2.3 +urllib3==2.6.3 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt + # id # requests # twine -virtualenv==20.31.1 +virtualenv==21.1.0 # via # -r requirements/ci.txt # tox -wheel==0.45.1 +wheel==0.46.3 # via # -r requirements/pip-tools.txt # pip-tools -zipp==3.21.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/doc.txt b/requirements/doc.txt index 03d3467..f047ef9 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 @@ -8,25 +8,27 @@ accessible-pygments==0.0.5 # via pydata-sphinx-theme alabaster==1.0.0 # via sphinx -babel==2.17.0 +babel==2.18.0 # via # pydata-sphinx-theme # sphinx -backports-tarfile==1.2.0 - # via jaraco-context -beautifulsoup4==4.13.4 +beautifulsoup4==4.14.3 # via pydata-sphinx-theme -build==1.2.2.post1 +build==1.4.0 # via -r requirements/doc.in -certifi==2025.4.26 +certifi==2026.2.25 # via requests -charset-normalizer==3.4.2 +cffi==2.0.0 + # via cryptography +charset-normalizer==3.4.5 # via requests -coverage[toml]==7.8.0 +coverage[toml]==7.13.4 # via # -r requirements/test.txt # pytest-cov -doc8==1.1.2 +cryptography==46.0.5 + # via secretstorage +doc8==2.0.0 # via -r requirements/doc.in docutils==0.21.2 # via @@ -35,41 +37,43 @@ docutils==0.21.2 # readme-renderer # restructuredtext-lint # sphinx -id==1.5.0 +id==1.6.1 # via twine -idna==3.10 +idna==3.11 # via requests -imagesize==1.4.1 +imagesize==2.0.0 # via sphinx -importlib-metadata==8.7.0 - # via keyring -iniconfig==2.1.0 +iniconfig==2.3.0 # via # -r requirements/test.txt # pytest jaraco-classes==3.4.0 # via keyring -jaraco-context==6.0.1 +jaraco-context==6.1.0 # via keyring -jaraco-functools==4.1.0 +jaraco-functools==4.4.0 # via keyring +jeepney==0.9.0 + # via + # keyring + # secretstorage jinja2==3.1.6 # via sphinx -keyring==25.6.0 +keyring==25.7.0 # via twine -markdown-it-py==3.0.0 +markdown-it-py==4.0.0 # via rich -markupsafe==3.0.2 +markupsafe==3.0.3 # via jinja2 mdurl==0.1.2 # via markdown-it-py -more-itertools==10.7.0 +more-itertools==10.8.0 # via # jaraco-classes # jaraco-functools -nh3==0.2.21 +nh3==0.3.3 # via readme-renderer -packaging==25.0 +packaging==26.0 # via # -r requirements/test.txt # build @@ -77,53 +81,57 @@ packaging==25.0 # pytest # sphinx # twine -pbr==6.1.1 - # via stevedore -pluggy==1.5.0 +pluggy==1.6.0 # via # -r requirements/test.txt # pytest + # pytest-cov +pycparser==3.0 + # via cffi pydata-sphinx-theme==0.15.4 # via sphinx-book-theme -pygments==2.19.1 +pygments==2.19.2 # via + # -r requirements/test.txt # accessible-pygments # doc8 # pydata-sphinx-theme + # pytest # readme-renderer # rich # sphinx pyproject-hooks==1.2.0 # via build -pytest==8.3.5 +pytest==9.0.2 # via # -r requirements/test.txt # pytest-cov -pytest-cov==6.1.1 +pytest-cov==7.0.0 # via -r requirements/test.txt readme-renderer==44.0 # via twine -requests==2.32.3 +requests==2.32.5 # via - # id # requests-toolbelt # sphinx # twine requests-toolbelt==1.0.0 # via twine -restructuredtext-lint==1.4.0 +restructuredtext-lint==2.0.2 # via doc8 rfc3986==2.0.0 # via twine -rich==14.0.0 +rich==14.3.3 # via twine -roman-numerals-py==3.1.0 +roman-numerals==4.1.0 # via sphinx -snowballstemmer==2.2.0 +secretstorage==3.5.0 + # via keyring +snowballstemmer==3.0.1 # via sphinx -soupsieve==2.7 +soupsieve==2.8.3 # via beautifulsoup4 -sphinx==8.2.3 +sphinx==9.1.0 # via # -r requirements/doc.in # pydata-sphinx-theme @@ -142,21 +150,16 @@ sphinxcontrib-qthelp==2.0.0 # via sphinx sphinxcontrib-serializinghtml==2.0.0 # via sphinx -stevedore==5.4.1 +stevedore==5.7.0 # via doc8 -twine==6.1.0 +twine==6.2.0 # via -r requirements/doc.in -typing-extensions==4.13.2 +typing-extensions==4.15.0 # via # beautifulsoup4 # pydata-sphinx-theme -urllib3==2.2.3 +urllib3==2.6.3 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # id # requests # twine -zipp==3.21.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 1dd71b5..d89516b 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.2.2.post1 +build==1.4.0 # via pip-tools -click==8.1.8 +click==8.3.1 # via pip-tools -packaging==25.0 - # via build -pip-tools==7.4.1 +packaging==26.0 + # 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.46.3 # 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 a124796..084d708 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,16 +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 # -wheel==0.45.1 +packaging==26.0 + # via wheel +wheel==0.46.3 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==24.2 - # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # -r requirements/pip.in -setuptools==80.3.1 +pip==26.0.1 + # via -r requirements/pip.in +setuptools==82.0.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index b0b820c..72d78a1 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,98 +1,105 @@ # -# 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 # -astroid==3.3.9 +astroid==4.0.4 # via # pylint # pylint-celery -backports-tarfile==1.2.0 - # via jaraco-context -certifi==2025.4.26 +certifi==2026.2.25 # via requests -charset-normalizer==3.4.2 +cffi==2.0.0 + # via cryptography +charset-normalizer==3.4.5 # via requests -click==8.1.8 +click==8.3.1 # via # click-log # code-annotations # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==2.3.0 +code-annotations==2.3.2 # via edx-lint -coverage[toml]==7.8.0 +coverage[toml]==7.13.4 # via # -r requirements/test.txt # pytest-cov -dill==0.4.0 +cryptography==46.0.5 + # via secretstorage +dill==0.4.1 # via pylint -docutils==0.21.2 +docutils==0.22.4 # via readme-renderer edx-lint==5.6.0 # via -r requirements/quality.in -id==1.5.0 +id==1.6.1 # via twine -idna==3.10 +idna==3.11 # via requests -importlib-metadata==8.7.0 - # via keyring -iniconfig==2.1.0 +iniconfig==2.3.0 # via # -r requirements/test.txt # pytest -isort==6.0.1 +isort==8.0.1 # via # -r requirements/quality.in # pylint jaraco-classes==3.4.0 # via keyring -jaraco-context==6.0.1 +jaraco-context==6.1.0 # via keyring -jaraco-functools==4.1.0 +jaraco-functools==4.4.0 # via keyring +jeepney==0.9.0 + # via + # keyring + # secretstorage jinja2==3.1.6 # via code-annotations -keyring==25.6.0 +keyring==25.7.0 # via twine -markdown-it-py==3.0.0 +markdown-it-py==4.0.0 # via rich -markupsafe==3.0.2 +markupsafe==3.0.3 # via jinja2 mccabe==0.7.0 # via pylint mdurl==0.1.2 # via markdown-it-py -more-itertools==10.7.0 +more-itertools==10.8.0 # via # jaraco-classes # jaraco-functools -nh3==0.2.21 +nh3==0.3.3 # via readme-renderer -packaging==25.0 +packaging==26.0 # via # -r requirements/test.txt # pytest # twine -pbr==6.1.1 - # via stevedore -platformdirs==4.3.7 +platformdirs==4.9.4 # via pylint -pluggy==1.5.0 +pluggy==1.6.0 # via # -r requirements/test.txt # pytest -pycodestyle==2.13.0 + # pytest-cov +pycodestyle==2.14.0 # via -r requirements/quality.in +pycparser==3.0 + # via cffi pydocstyle==6.3.0 # via -r requirements/quality.in -pygments==2.19.1 +pygments==2.19.2 # via + # -r requirements/test.txt + # pytest # readme-renderer # rich -pylint==3.3.7 +pylint==4.0.5 # via # -r requirements/quality.in # edx-lint @@ -101,54 +108,50 @@ pylint==3.3.7 # 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.8.2 +pylint-plugin-utils==0.9.0 # via # pylint-celery # pylint-django -pytest==8.3.5 +pytest==9.0.2 # via # -r requirements/test.txt # pytest-cov -pytest-cov==6.1.1 +pytest-cov==7.0.0 # via -r requirements/test.txt python-slugify==8.0.4 # via code-annotations -pyyaml==6.0.2 +pyyaml==6.0.3 # via code-annotations readme-renderer==44.0 # via twine -requests==2.32.3 +requests==2.32.5 # via - # id # requests-toolbelt # twine requests-toolbelt==1.0.0 # via twine rfc3986==2.0.0 # via twine -rich==14.0.0 +rich==14.3.3 # via twine +secretstorage==3.5.0 + # via keyring six==1.17.0 # via edx-lint -snowballstemmer==2.2.0 +snowballstemmer==3.0.1 # via pydocstyle -stevedore==5.4.1 +stevedore==5.7.0 # via code-annotations text-unidecode==1.3 # via python-slugify -tomlkit==0.13.2 +tomlkit==0.14.0 # via pylint -twine==6.1.0 +twine==6.2.0 # via -r requirements/quality.in -urllib3==2.2.3 +urllib3==2.6.3 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # id # requests # twine -zipp==3.21.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 bcd9284..78c6605 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,20 +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 # -coverage[toml]==7.8.0 +coverage[toml]==7.13.4 # via pytest-cov -iniconfig==2.1.0 +iniconfig==2.3.0 # via pytest -packaging==25.0 +packaging==26.0 # via pytest -pluggy==1.5.0 +pluggy==1.6.0 + # via + # pytest + # pytest-cov +pygments==2.19.2 # via pytest -pytest==8.3.5 +pytest==9.0.2 # via # -r requirements/test.in # pytest-cov -pytest-cov==6.1.1 +pytest-cov==7.0.0 # via -r requirements/test.in diff --git a/setup.py b/setup.py index e92e11a..965e882 100755 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ from setuptools import setup -VERSION = '2.0.0' +VERSION = '3.0.0' def load_requirements(*requirements_paths): @@ -63,7 +63,7 @@ def is_requirement(line): ], install_requires=load_requirements('requirements/base.in'), include_package_data=True, - python_requires=">=3.11", + python_requires=">=3.12", license="AGPL 3.0", zip_safe=False, keywords='Python edx', @@ -73,7 +73,6 @@ def is_requirement(line): 'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)', 'Natural Language :: English', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', ], ) diff --git a/tox.ini b/tox.ini index b220667..e46c9f6 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py311,py312,quality +envlist = py312,quality [testenv] allowlist_externals =