From c2254a4f38c73ed5c2577667541973826af442c1 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Sat, 7 Mar 2026 18:08:09 -0500 Subject: [PATCH 1/3] chore: drop Python 3.11 support Remove Python 3.11 from CI matrix, tox envlist, setup.py classifiers, python_requires, and readthedocs/release workflow configuration. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/ci.yml | 4 ++-- .github/workflows/pypi-publish.yml | 2 +- .github/workflows/release.yml | 2 +- .readthedocs.yaml | 2 +- setup.py | 3 +-- tox.ini | 2 +- 6 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1ca6823f..22478479 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: ["django42", "django52", "quality", "docs"] steps: @@ -37,7 +37,7 @@ jobs: run: tox - name: Run coverage - if: matrix.python-version == '3.11' && matrix.toxenv == 'django42' + if: matrix.python-version == '3.12' && matrix.toxenv == 'django42' uses: codecov/codecov-action@v5 with: flags: unittests diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index df6379ea..38a4ef31 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -15,7 +15,7 @@ jobs: - name: setup python uses: actions/setup-python@v6 with: - python-version: 3.11 + python-version: 3.12 - name: Install pip run: pip install -r requirements/pip.txt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c92903fb..f128c3b1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,7 +25,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v6 with: - python-version: 3.11 + python-version: 3.12 - name: Install requirements run: pip install scriv bump-my-version diff --git a/.readthedocs.yaml b/.readthedocs.yaml index f0afda0a..b571a827 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,7 +8,7 @@ version: 2 build: os: "ubuntu-lts-latest" tools: - python: "3.11" + python: "3.12" # Build documentation in the docs/ directory with Sphinx sphinx: diff --git a/setup.py b/setup.py index ad9edc1e..328a04dc 100644 --- a/setup.py +++ b/setup.py @@ -147,7 +147,7 @@ def is_requirement(line): ], 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 openedx", @@ -160,7 +160,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 a7e73015..b368e26e 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{311, 312}-django{42,52}, quality, docs +envlist = py312-django{42,52}, quality, docs [doc8] ; D001 = Line too long From 4728f95e04d18dfa6e6f57fa30a0e019c2426a01 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Sat, 7 Mar 2026 18:15:58 -0500 Subject: [PATCH 2/3] chore: upgrade requirements for Python 3.12 Regenerate all pinned requirements files using Python 3.12. Co-Authored-By: Claude Sonnet 4.6 --- requirements/base.txt | 12 ++--- requirements/ci.txt | 22 ++++---- requirements/dev.txt | 108 ++++++++++++++++++------------------- requirements/doc.txt | 75 ++++++++++++-------------- requirements/pip-tools.txt | 14 ++--- requirements/pip.txt | 10 ++-- requirements/quality.txt | 68 +++++++++++------------ requirements/test.txt | 26 ++++----- 8 files changed, 164 insertions(+), 171 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 4e80931c..5eb06ee3 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,24 +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 # -asgiref==3.11.0 +asgiref==3.11.1 # via django -django==5.2.9 +django==5.2.12 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in dnspython==2.8.0 # via pymongo -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==3.1.0 # via -r requirements/base.in -pymongo==4.15.5 +pymongo==4.16.0 # via edx-opaque-keys sqlparse==0.5.5 # via django -stevedore==5.6.0 +stevedore==5.7.0 # via edx-opaque-keys typing-extensions==4.15.0 # via edx-opaque-keys diff --git a/requirements/ci.txt b/requirements/ci.txt index 4380dfc5..748a1aa5 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==6.2.4 - # via tox -chardet==5.2.0 +cachetools==7.0.3 # via tox colorama==0.4.6 # via tox distlib==0.4.0 # via virtualenv -filelock==3.20.2 +filelock==3.25.0 # via + # python-discovery # tox # virtualenv -packaging==25.0 +packaging==26.0 # via # pyproject-api # tox -platformdirs==4.5.1 +platformdirs==4.9.4 # via + # python-discovery # tox # virtualenv pluggy==1.6.0 # via tox pyproject-api==1.10.0 # via tox -tox==4.33.0 +python-discovery==1.1.1 + # via virtualenv +tomli-w==1.2.0 + # via tox +tox==4.49.0 # via -r requirements/ci.in -virtualenv==20.35.4 +virtualenv==21.1.0 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 4be865b5..93a6e993 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,33 +1,29 @@ # -# 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 # -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/quality.txt # django -astroid==4.0.3 +astroid==4.0.4 # via # -r requirements/quality.txt # pylint # pylint-celery attrs==25.4.0 # via scriv -backports-tarfile==1.2.0 - # via - # -r requirements/quality.txt - # jaraco-context -build==1.3.0 +build==1.4.0 # via # -r requirements/pip-tools.txt # pip-tools -cachetools==6.2.4 +cachetools==7.0.3 # via # -r requirements/ci.txt # tox -certifi==2026.1.4 +certifi==2026.2.25 # via # -r requirements/quality.txt # requests @@ -35,12 +31,9 @@ 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.0.1 + # via diff-cover +charset-normalizer==3.4.5 # via # -r requirements/quality.txt # requests @@ -58,7 +51,7 @@ click-log==0.4.0 # -r requirements/quality.txt # edx-lint # scriv -code-annotations==2.3.0 +code-annotations==2.3.2 # via # -r requirements/quality.txt # edx-lint @@ -66,19 +59,19 @@ colorama==0.4.6 # via # -r requirements/ci.txt # tox -coverage[toml]==7.13.1 +coverage[toml]==7.13.4 # via # -r requirements/quality.txt # pytest-cov -cryptography==46.0.3 +cryptography==46.0.5 # via # -r requirements/quality.txt # secretstorage ddt==1.7.2 # via -r requirements/quality.txt -diff-cover==10.1.0 +diff-cover==10.2.0 # via -r requirements/dev.in -dill==0.4.0 +dill==0.4.1 # via # -r requirements/quality.txt # pylint @@ -86,15 +79,15 @@ distlib==0.4.0 # via # -r requirements/ci.txt # virtualenv -django==5.2.9 +django==5.2.12 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt # django-stubs # django-stubs-ext -django-stubs==5.2.8 +django-stubs==5.2.9 # via -r requirements/quality.txt -django-stubs-ext==5.2.8 +django-stubs-ext==5.2.9 # via # -r requirements/quality.txt # django-stubs @@ -108,14 +101,15 @@ docutils==0.22.4 # readme-renderer edx-lint==5.6.0 # via -r requirements/quality.txt -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==3.1.0 # via -r requirements/quality.txt -filelock==3.20.2 +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 @@ -123,15 +117,11 @@ idna==3.11 # via # -r requirements/quality.txt # requests -importlib-metadata==8.7.1 - # via - # -r requirements/quality.txt - # keyring iniconfig==2.3.0 # via # -r requirements/quality.txt # pytest -isort==7.0.0 +isort==8.0.1 # via # -r requirements/quality.txt # pylint @@ -139,7 +129,7 @@ jaraco-classes==3.4.0 # via # -r requirements/quality.txt # keyring -jaraco-context==6.0.2 +jaraco-context==6.1.1 # via # -r requirements/quality.txt # keyring @@ -162,7 +152,7 @@ keyring==25.7.0 # via # -r requirements/quality.txt # twine -librt==0.7.7 +librt==0.8.1 # via # -r requirements/quality.txt # mypy @@ -194,11 +184,11 @@ mypy-extensions==1.1.0 # via # -r requirements/quality.txt # mypy -nh3==0.3.2 +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 @@ -208,17 +198,19 @@ packaging==25.0 # pytest # tox # twine -pathspec==0.12.1 + # wheel +pathspec==1.0.4 # via # -r requirements/quality.txt # mypy -pip-tools==7.5.2 +pip-tools==7.5.3 # via -r requirements/pip-tools.txt -platformdirs==4.5.1 +platformdirs==4.9.4 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint + # python-discovery # tox # virtualenv pluggy==1.6.0 @@ -231,7 +223,7 @@ pluggy==1.6.0 # tox pycodestyle==2.14.0 # via -r requirements/quality.txt -pycparser==2.23 +pycparser==3.0 # via # -r requirements/quality.txt # cffi @@ -242,7 +234,7 @@ pygments==2.19.2 # pytest # readme-renderer # rich -pylint==4.0.4 +pylint==4.0.5 # via # -r requirements/quality.txt # edx-lint @@ -262,7 +254,7 @@ pylint-plugin-utils==0.9.0 # -r requirements/quality.txt # pylint-celery # pylint-django -pymongo==4.15.5 +pymongo==4.16.0 # via # -r requirements/quality.txt # edx-opaque-keys @@ -282,8 +274,12 @@ pytest==9.0.2 # pytest-django pytest-cov==7.0.0 # via -r requirements/quality.txt -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/quality.txt +python-discovery==1.1.1 + # via + # -r requirements/ci.txt + # virtualenv python-slugify==8.0.4 # via # -r requirements/quality.txt @@ -299,7 +295,6 @@ readme-renderer==44.0 requests==2.32.5 # via # -r requirements/quality.txt - # id # requests-toolbelt # scriv # twine @@ -311,11 +306,11 @@ rfc3986==2.0.0 # via # -r requirements/quality.txt # twine -rich==14.2.0 +rich==14.3.3 # via # -r requirements/quality.txt # twine -ruff==0.14.10 +ruff==0.15.5 # via -r requirements/quality.txt scriv==1.8.0 # via -r requirements/dev.in @@ -331,7 +326,7 @@ sqlparse==0.5.5 # via # -r requirements/quality.txt # django -stevedore==5.6.0 +stevedore==5.7.0 # via # -r requirements/quality.txt # code-annotations @@ -340,11 +335,15 @@ 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.14.0 # via # -r requirements/quality.txt # pylint -tox==4.33.0 +tox==4.49.0 # via -r requirements/ci.txt twine==6.2.0 # via -r requirements/quality.txt @@ -359,23 +358,20 @@ typing-extensions==4.15.0 # django-stubs-ext # edx-opaque-keys # mypy -urllib3==2.6.2 +urllib3==2.6.3 # via # -r requirements/quality.txt + # id # requests # twine -virtualenv==20.35.4 +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.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/doc.txt b/requirements/doc.txt index 24eb9731..76cb2a50 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,56 +8,54 @@ accessible-pygments==0.0.5 # via pydata-sphinx-theme alabaster==1.0.0 # via sphinx -anyio==4.12.0 +anyio==4.12.1 # via # starlette # watchfiles -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/test.txt # django -babel==2.17.0 +babel==2.18.0 # via # pydata-sphinx-theme # sphinx -backports-tarfile==1.2.0 - # via jaraco-context beautifulsoup4==4.14.3 # via pydata-sphinx-theme -build==1.3.0 +build==1.4.0 # via -r requirements/doc.in -certifi==2026.1.4 +certifi==2026.2.25 # via requests cffi==2.0.0 # via cryptography -charset-normalizer==3.4.4 +charset-normalizer==3.4.5 # via requests click==8.3.1 # via # -r requirements/test.txt # code-annotations # uvicorn -code-annotations==2.3.0 +code-annotations==2.3.2 # via -r requirements/test.txt colorama==0.4.6 # via sphinx-autobuild -coverage[toml]==7.13.1 +coverage[toml]==7.13.4 # via # -r requirements/test.txt # pytest-cov -cryptography==46.0.3 +cryptography==46.0.5 # via secretstorage ddt==1.7.2 # via -r requirements/test.txt -django==5.2.9 +django==5.2.12 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # django-stubs # django-stubs-ext -django-stubs==5.2.8 +django-stubs==5.2.9 # via -r requirements/test.txt -django-stubs-ext==5.2.8 +django-stubs-ext==5.2.9 # via # -r requirements/test.txt # django-stubs @@ -74,27 +72,25 @@ docutils==0.21.2 # readme-renderer # restructuredtext-lint # sphinx -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==3.1.0 # via -r requirements/test.txt h11==0.16.0 # via uvicorn -id==1.5.0 +id==1.6.1 # via twine idna==3.11 # via # anyio # requests -imagesize==1.4.1 +imagesize==2.0.0 # via sphinx -importlib-metadata==8.7.1 - # via keyring iniconfig==2.3.0 # via # -r requirements/test.txt # pytest jaraco-classes==3.4.0 # via keyring -jaraco-context==6.0.2 +jaraco-context==6.1.1 # via keyring jaraco-functools==4.4.0 # via keyring @@ -107,9 +103,10 @@ jinja2==3.1.6 # -r requirements/test.txt # code-annotations # sphinx + # sphinxcontrib-mermaid keyring==25.7.0 # via twine -librt==0.7.7 +librt==0.8.1 # via # -r requirements/test.txt # mypy @@ -131,9 +128,9 @@ mypy-extensions==1.1.0 # via # -r requirements/test.txt # mypy -nh3==0.3.2 +nh3==0.3.3 # via readme-renderer -packaging==25.0 +packaging==26.0 # via # -r requirements/test.txt # build @@ -141,7 +138,7 @@ packaging==25.0 # pytest # sphinx # twine -pathspec==0.12.1 +pathspec==1.0.4 # via # -r requirements/test.txt # mypy @@ -150,7 +147,7 @@ pluggy==1.6.0 # -r requirements/test.txt # pytest # pytest-cov -pycparser==2.23 +pycparser==3.0 # via cffi pydata-sphinx-theme==0.15.4 # via sphinx-book-theme @@ -164,7 +161,7 @@ pygments==2.19.2 # readme-renderer # rich # sphinx -pymongo==4.15.5 +pymongo==4.16.0 # via # -r requirements/test.txt # edx-opaque-keys @@ -177,7 +174,7 @@ pytest==9.0.2 # pytest-django pytest-cov==7.0.0 # via -r requirements/test.txt -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/test.txt python-slugify==8.0.4 # via @@ -192,7 +189,6 @@ readme-renderer==44.0 # via twine requests==2.32.5 # via - # id # requests-toolbelt # sphinx # twine @@ -202,7 +198,7 @@ restructuredtext-lint==2.0.2 # via doc8 rfc3986==2.0.0 # via twine -rich==14.2.0 +rich==14.3.3 # via twine roman-numerals==4.1.0 # via sphinx @@ -210,9 +206,9 @@ secretstorage==3.5.0 # via keyring snowballstemmer==3.0.1 # via sphinx -soupsieve==2.8.1 +soupsieve==2.8.3 # via beautifulsoup4 -sphinx==9.0.4 +sphinx==9.1.0 # via # -r requirements/doc.in # pydata-sphinx-theme @@ -237,7 +233,7 @@ sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-mermaid==1.2.3 +sphinxcontrib-mermaid==2.0.1 # via -r requirements/doc.in sphinxcontrib-qthelp==2.0.0 # via sphinx @@ -247,9 +243,9 @@ sqlparse==0.5.5 # via # -r requirements/test.txt # django -starlette==0.50.0 +starlette==0.52.1 # via sphinx-autobuild -stevedore==5.6.0 +stevedore==5.7.0 # via # -r requirements/test.txt # code-annotations @@ -276,15 +272,14 @@ typing-extensions==4.15.0 # mypy # pydata-sphinx-theme # starlette -urllib3==2.6.2 +urllib3==2.6.3 # via + # id # requests # twine -uvicorn==0.40.0 +uvicorn==0.41.0 # via sphinx-autobuild watchfiles==1.1.1 # via sphinx-autobuild -websockets==15.0.1 +websockets==16.0 # via sphinx-autobuild -zipp==3.23.0 - # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 383d2a06..d89516b8 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.4.0 # via pip-tools click==8.3.1 # via pip-tools -packaging==25.0 - # via build -pip-tools==7.5.2 +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 929f3ee4..084d708e 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 # -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==25.3 +pip==26.0.1 # via -r requirements/pip.in -setuptools==80.9.0 +setuptools==82.0.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index ae1b7a4a..424d165b 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,24 +1,22 @@ # -# 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 # -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/test.txt # django -astroid==4.0.3 +astroid==4.0.4 # via # pylint # pylint-celery -backports-tarfile==1.2.0 - # via jaraco-context -certifi==2026.1.4 +certifi==2026.2.25 # via requests cffi==2.0.0 # via cryptography -charset-normalizer==3.4.4 +charset-normalizer==3.4.5 # via requests click==8.3.1 # via @@ -28,29 +26,29 @@ click==8.3.1 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==2.3.0 +code-annotations==2.3.2 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.13.1 +coverage[toml]==7.13.4 # via # -r requirements/test.txt # pytest-cov -cryptography==46.0.3 +cryptography==46.0.5 # via secretstorage ddt==1.7.2 # via -r requirements/test.txt -dill==0.4.0 +dill==0.4.1 # via pylint -django==5.2.9 +django==5.2.12 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # django-stubs # django-stubs-ext -django-stubs==5.2.8 +django-stubs==5.2.9 # via -r requirements/test.txt -django-stubs-ext==5.2.8 +django-stubs-ext==5.2.9 # via # -r requirements/test.txt # django-stubs @@ -62,25 +60,23 @@ docutils==0.22.4 # via readme-renderer edx-lint==5.6.0 # via -r requirements/quality.in -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==3.1.0 # via -r requirements/test.txt -id==1.5.0 +id==1.6.1 # via twine idna==3.11 # via requests -importlib-metadata==8.7.1 - # via keyring iniconfig==2.3.0 # via # -r requirements/test.txt # pytest -isort==7.0.0 +isort==8.0.1 # via # -r requirements/quality.in # pylint jaraco-classes==3.4.0 # via keyring -jaraco-context==6.0.2 +jaraco-context==6.1.1 # via keyring jaraco-functools==4.4.0 # via keyring @@ -94,7 +90,7 @@ jinja2==3.1.6 # code-annotations keyring==25.7.0 # via twine -librt==0.7.7 +librt==0.8.1 # via # -r requirements/test.txt # mypy @@ -120,18 +116,18 @@ mypy-extensions==1.1.0 # via # -r requirements/test.txt # mypy -nh3==0.3.2 +nh3==0.3.3 # via readme-renderer -packaging==25.0 +packaging==26.0 # via # -r requirements/test.txt # pytest # twine -pathspec==0.12.1 +pathspec==1.0.4 # via # -r requirements/test.txt # mypy -platformdirs==4.5.1 +platformdirs==4.9.4 # via pylint pluggy==1.6.0 # via @@ -140,7 +136,7 @@ pluggy==1.6.0 # pytest-cov pycodestyle==2.14.0 # via -r requirements/quality.in -pycparser==2.23 +pycparser==3.0 # via cffi pygments==2.19.2 # via @@ -148,7 +144,7 @@ pygments==2.19.2 # pytest # readme-renderer # rich -pylint==4.0.4 +pylint==4.0.5 # via # edx-lint # pylint-celery @@ -162,7 +158,7 @@ pylint-plugin-utils==0.9.0 # via # pylint-celery # pylint-django -pymongo==4.15.5 +pymongo==4.16.0 # via # -r requirements/test.txt # edx-opaque-keys @@ -173,7 +169,7 @@ pytest==9.0.2 # pytest-django pytest-cov==7.0.0 # via -r requirements/test.txt -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/test.txt python-slugify==8.0.4 # via @@ -187,16 +183,15 @@ readme-renderer==44.0 # via twine requests==2.32.5 # via - # id # requests-toolbelt # twine requests-toolbelt==1.0.0 # via twine rfc3986==2.0.0 # via twine -rich==14.2.0 +rich==14.3.3 # via twine -ruff==0.14.10 +ruff==0.15.5 # via -r requirements/quality.in secretstorage==3.5.0 # via keyring @@ -206,7 +201,7 @@ sqlparse==0.5.5 # via # -r requirements/test.txt # django -stevedore==5.6.0 +stevedore==5.7.0 # via # -r requirements/test.txt # code-annotations @@ -215,7 +210,7 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -tomlkit==0.13.3 +tomlkit==0.14.0 # via pylint twine==6.2.0 # via -r requirements/quality.in @@ -230,9 +225,8 @@ typing-extensions==4.15.0 # django-stubs-ext # edx-opaque-keys # mypy -urllib3==2.6.2 +urllib3==2.6.3 # via + # id # requests # twine -zipp==3.23.0 - # via importlib-metadata diff --git a/requirements/test.txt b/requirements/test.txt index d594e518..898708c2 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,18 +1,18 @@ # -# 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 # -asgiref==3.11.0 +asgiref==3.11.1 # via # -r requirements/base.txt # django click==8.3.1 # via code-annotations -code-annotations==2.3.0 +code-annotations==2.3.2 # via -r requirements/test.in -coverage[toml]==7.13.1 +coverage[toml]==7.13.4 # via pytest-cov ddt==1.7.2 # via -r requirements/test.in @@ -21,21 +21,21 @@ ddt==1.7.2 # -r requirements/base.txt # django-stubs # django-stubs-ext -django-stubs==5.2.8 +django-stubs==5.2.9 # via -r requirements/test.in -django-stubs-ext==5.2.8 +django-stubs-ext==5.2.9 # via django-stubs dnspython==2.8.0 # via # -r requirements/base.txt # pymongo -edx-opaque-keys[django]==3.0.0 +edx-opaque-keys[django]==3.1.0 # via -r requirements/base.txt iniconfig==2.3.0 # via pytest jinja2==3.1.6 # via code-annotations -librt==0.7.7 +librt==0.8.1 # via mypy markupsafe==3.0.3 # via jinja2 @@ -43,9 +43,9 @@ mypy==1.19.1 # via -r requirements/test.in mypy-extensions==1.1.0 # via mypy -packaging==25.0 +packaging==26.0 # via pytest -pathspec==0.12.1 +pathspec==1.0.4 # via mypy pluggy==1.6.0 # via @@ -53,7 +53,7 @@ pluggy==1.6.0 # pytest-cov pygments==2.19.2 # via pytest -pymongo==4.15.5 +pymongo==4.16.0 # via # -r requirements/base.txt # edx-opaque-keys @@ -63,7 +63,7 @@ pytest==9.0.2 # pytest-django pytest-cov==7.0.0 # via -r requirements/test.in -pytest-django==4.11.1 +pytest-django==4.12.0 # via -r requirements/test.in python-slugify==8.0.4 # via code-annotations @@ -73,7 +73,7 @@ sqlparse==0.5.5 # via # -r requirements/base.txt # django -stevedore==5.6.0 +stevedore==5.7.0 # via # -r requirements/base.txt # code-annotations From 052c12587c3d98aee99f4527b2e310438cc2940c Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Sat, 7 Mar 2026 18:16:11 -0500 Subject: [PATCH 3/3] chore: bump version to 3.0.0 Co-Authored-By: Claude Sonnet 4.6 --- openedx_filters/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx_filters/__init__.py b/openedx_filters/__init__.py index 76ae62d3..f4d719c1 100644 --- a/openedx_filters/__init__.py +++ b/openedx_filters/__init__.py @@ -3,4 +3,4 @@ """ from openedx_filters.filters import * -__version__ = "2.1.0" +__version__ = "3.0.0"