diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ff378fc..e8a8881 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,13 +14,13 @@ jobs: strategy: matrix: os: [ubuntu-20.04] - python-version: ['3.8', '3.11', '3.12'] + python-version: ['3.11', '3.12'] toxenv: [quality, docs, without-django, django42] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: setup python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 8b909b6..60e5a18 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -11,11 +11,11 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: setup python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: - python-version: 3.8 + python-version: 3.11 - name: Install pip run: pip install -r requirements/pip.txt diff --git a/.readthedocs.yaml b/.readthedocs.yaml index f0c1f86..3d3418c 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -9,7 +9,7 @@ version: 2 build: os: ubuntu-22.04 tools: - python: "3.8" + python: "3.11" # Build documentation in the docs/ directory with Sphinx sphinx: diff --git a/mypy.ini b/mypy.ini index 9fd34f7..8e3c0ad 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1,5 +1,5 @@ [mypy] -python_version = 3.8 +python_version = 3.11 follow_imports = normal ignore_missing_imports = True allow_untyped_globals = False diff --git a/requirements/base.txt b/requirements/base.txt index 1bfc153..012c553 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade diff --git a/requirements/ci.txt b/requirements/ci.txt index 3443df2..d8321f5 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,16 +1,16 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -cachetools==5.3.3 +cachetools==5.4.0 # via tox chardet==5.2.0 # via tox colorama==0.4.6 # via tox -coverage==7.6.0 +coverage==7.6.1 # via -r requirements/ci.in distlib==0.3.8 # via virtualenv @@ -30,11 +30,7 @@ pluggy==1.5.0 # via tox pyproject-api==1.7.1 # via tox -tomli==2.0.1 - # via - # pyproject-api - # tox -tox==4.16.0 +tox==4.17.1 # via -r requirements/ci.in virtualenv==20.26.3 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 91bf0b6..e0e7698 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,27 +1,27 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -accessible-pygments==0.0.4 +accessible-pygments==0.0.5 # via # -r requirements/doc.txt # pydata-sphinx-theme -alabaster==0.7.13 +alabaster==1.0.0 # via # -r requirements/doc.txt # sphinx -astroid==3.2.3 +astroid==3.2.4 # via # -r requirements/doc.txt # pylint # pylint-celery -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/doc.txt # hypothesis -babel==2.15.0 +babel==2.16.0 # via # -r requirements/doc.txt # pydata-sphinx-theme @@ -34,7 +34,7 @@ build==1.2.1 # via # -r requirements/pip-tools.txt # pip-tools -cachetools==5.3.3 +cachetools==5.4.0 # via # -r requirements/ci.txt # tox @@ -70,7 +70,7 @@ colorama==0.4.6 # via # -r requirements/ci.txt # tox -coverage[toml]==7.6.0 +coverage[toml]==7.6.1 # via # -r requirements/ci.txt # -r requirements/doc.txt @@ -89,19 +89,14 @@ dnspython==2.6.1 # via # -r requirements/doc.txt # pymongo -docutils==0.19 +docutils==0.21.2 # via # -r requirements/doc.txt # pydata-sphinx-theme # readme-renderer # sphinx -edx-lint==5.3.6 +edx-lint==5.3.7 # via -r requirements/doc.txt -exceptiongroup==1.2.1 - # via - # -r requirements/doc.txt - # hypothesis - # pytest execnet==2.1.1 # via # -r requirements/doc.txt @@ -111,7 +106,7 @@ filelock==3.15.4 # -r requirements/ci.txt # tox # virtualenv -hypothesis==6.106.0 +hypothesis==6.111.0 # via -r requirements/doc.txt idna==3.7 # via @@ -121,12 +116,6 @@ imagesize==1.4.1 # via # -r requirements/doc.txt # sphinx -importlib-metadata==8.0.0 - # via - # -r requirements/doc.txt - # -r requirements/pip-tools.txt - # build - # sphinx iniconfig==2.0.0 # via # -r requirements/doc.txt @@ -150,7 +139,7 @@ mccabe==0.7.0 # pylint mock==5.1.0 # via -r requirements/doc.txt -mypy==1.10.1 +mypy==1.11.1 # via -r requirements/doc.txt mypy-extensions==1.0.0 # via @@ -190,9 +179,9 @@ pluggy==1.5.0 # -r requirements/doc.txt # pytest # tox -pycodestyle==2.12.0 +pycodestyle==2.12.1 # via -r requirements/doc.txt -pydata-sphinx-theme==0.14.4 +pydata-sphinx-theme==0.15.4 # via # -r requirements/doc.txt # sphinx-book-theme @@ -203,7 +192,7 @@ pygments==2.18.0 # pydata-sphinx-theme # readme-renderer # sphinx -pylint==3.2.5 +pylint==3.2.6 # via # -r requirements/doc.txt # edx-lint @@ -234,7 +223,7 @@ pyproject-hooks==1.1.0 # -r requirements/pip-tools.txt # build # pip-tools -pytest==8.2.2 +pytest==8.3.2 # via # -r requirements/doc.txt # pytest-cov @@ -247,15 +236,11 @@ python-slugify==8.0.4 # via # -r requirements/doc.txt # code-annotations -pytz==2024.1 - # via - # -r requirements/doc.txt - # babel -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/doc.txt # code-annotations -readme-renderer==43.0 +readme-renderer==44.0 # via -r requirements/doc.txt requests==2.32.3 # via @@ -277,22 +262,22 @@ soupsieve==2.5 # via # -r requirements/doc.txt # beautifulsoup4 -sphinx==6.2.1 +sphinx==8.0.2 # via # -r requirements/doc.txt # pydata-sphinx-theme # sphinx-book-theme -sphinx-book-theme==1.0.1 +sphinx-book-theme==1.1.3 # via -r requirements/doc.txt -sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-applehelp==2.0.0 # via # -r requirements/doc.txt # sphinx -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==2.0.0 # via # -r requirements/doc.txt # sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.1.0 # via # -r requirements/doc.txt # sphinx @@ -300,11 +285,11 @@ sphinxcontrib-jsmath==1.0.1 # via # -r requirements/doc.txt # sphinx -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==2.0.0 # via # -r requirements/doc.txt # sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==2.0.0 # via # -r requirements/doc.txt # sphinx @@ -316,32 +301,17 @@ text-unidecode==1.3 # via # -r requirements/doc.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/ci.txt - # -r requirements/doc.txt - # -r requirements/pip-tools.txt - # build - # coverage - # mypy - # pip-tools - # pylint - # pyproject-api - # pytest - # tox tomlkit==0.13.0 # via # -r requirements/doc.txt # pylint -tox==4.16.0 +tox==4.17.1 # via -r requirements/ci.txt typing-extensions==4.12.2 # via # -r requirements/doc.txt - # astroid # mypy # pydata-sphinx-theme - # pylint urllib3==2.2.2 # via # -r requirements/doc.txt @@ -350,15 +320,10 @@ virtualenv==20.26.3 # via # -r requirements/ci.txt # tox -wheel==0.43.0 +wheel==0.44.0 # via # -r requirements/pip-tools.txt # pip-tools -zipp==3.19.2 - # via - # -r requirements/doc.txt - # -r requirements/pip-tools.txt - # importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/django-test.txt b/requirements/django-test.txt index b7f9c46..7388ffd 100644 --- a/requirements/django-test.txt +++ b/requirements/django-test.txt @@ -1,15 +1,15 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -astroid==3.2.3 +astroid==3.2.4 # via # -r requirements/test.txt # pylint # pylint-celery -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/test.txt # hypothesis @@ -27,7 +27,7 @@ code-annotations==1.8.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.6.0 +coverage[toml]==7.6.1 # via # -r requirements/test.txt # pytest-cov @@ -41,18 +41,13 @@ dnspython==2.6.1 # via # -r requirements/test.txt # pymongo -edx-lint==5.3.6 +edx-lint==5.3.7 # via -r requirements/test.txt -exceptiongroup==1.2.1 - # via - # -r requirements/test.txt - # hypothesis - # pytest execnet==2.1.1 # via # -r requirements/test.txt # pytest-xdist -hypothesis==6.106.0 +hypothesis==6.111.0 # via -r requirements/test.txt iniconfig==2.0.0 # via @@ -76,7 +71,7 @@ mccabe==0.7.0 # pylint mock==5.1.0 # via -r requirements/test.txt -mypy==1.10.1 +mypy==1.11.1 # via -r requirements/test.txt mypy-extensions==1.0.0 # via @@ -98,9 +93,9 @@ pluggy==1.5.0 # via # -r requirements/test.txt # pytest -pycodestyle==2.12.0 +pycodestyle==2.12.1 # via -r requirements/test.txt -pylint==3.2.5 +pylint==3.2.6 # via # -r requirements/test.txt # edx-lint @@ -122,7 +117,7 @@ pylint-plugin-utils==0.8.2 # pylint-django pymongo==4.8.0 # via -r requirements/test.txt -pytest==8.2.2 +pytest==8.3.2 # via # -r requirements/test.txt # pytest-cov @@ -138,7 +133,7 @@ python-slugify==8.0.4 # via # -r requirements/test.txt # code-annotations -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations @@ -158,13 +153,6 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # mypy - # pylint - # pytest tomlkit==0.13.0 # via # -r requirements/test.txt @@ -172,6 +160,4 @@ tomlkit==0.13.0 typing-extensions==4.12.2 # via # -r requirements/test.txt - # astroid # mypy - # pylint diff --git a/requirements/django.txt b/requirements/django.txt index c52b940..1f4abdb 100644 --- a/requirements/django.txt +++ b/requirements/django.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade diff --git a/requirements/doc.txt b/requirements/doc.txt index cb4a872..8e2bdc3 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -1,23 +1,23 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -accessible-pygments==0.0.4 +accessible-pygments==0.0.5 # via pydata-sphinx-theme -alabaster==0.7.13 +alabaster==1.0.0 # via sphinx -astroid==3.2.3 +astroid==3.2.4 # via # -r requirements/test.txt # pylint # pylint-celery -attrs==23.2.0 +attrs==24.2.0 # via # -r requirements/test.txt # hypothesis -babel==2.15.0 +babel==2.16.0 # via # pydata-sphinx-theme # sphinx @@ -41,7 +41,7 @@ code-annotations==1.8.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.6.0 +coverage[toml]==7.6.1 # via # -r requirements/test.txt # pytest-cov @@ -55,30 +55,23 @@ dnspython==2.6.1 # via # -r requirements/test.txt # pymongo -docutils==0.19 +docutils==0.21.2 # via # pydata-sphinx-theme # readme-renderer # sphinx -edx-lint==5.3.6 +edx-lint==5.3.7 # via -r requirements/test.txt -exceptiongroup==1.2.1 - # via - # -r requirements/test.txt - # hypothesis - # pytest execnet==2.1.1 # via # -r requirements/test.txt # pytest-xdist -hypothesis==6.106.0 +hypothesis==6.111.0 # via -r requirements/test.txt idna==3.7 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==8.0.0 - # via sphinx iniconfig==2.0.0 # via # -r requirements/test.txt @@ -102,7 +95,7 @@ mccabe==0.7.0 # pylint mock==5.1.0 # via -r requirements/test.txt -mypy==1.10.1 +mypy==1.11.1 # via -r requirements/test.txt mypy-extensions==1.0.0 # via @@ -128,9 +121,9 @@ pluggy==1.5.0 # via # -r requirements/test.txt # pytest -pycodestyle==2.12.0 +pycodestyle==2.12.1 # via -r requirements/test.txt -pydata-sphinx-theme==0.14.4 +pydata-sphinx-theme==0.15.4 # via sphinx-book-theme pygments==2.18.0 # via @@ -138,7 +131,7 @@ pygments==2.18.0 # pydata-sphinx-theme # readme-renderer # sphinx -pylint==3.2.5 +pylint==3.2.6 # via # -r requirements/test.txt # edx-lint @@ -160,7 +153,7 @@ pylint-plugin-utils==0.8.2 # pylint-django pymongo==4.8.0 # via -r requirements/test.txt -pytest==8.2.2 +pytest==8.3.2 # via # -r requirements/test.txt # pytest-cov @@ -173,13 +166,11 @@ python-slugify==8.0.4 # via # -r requirements/test.txt # code-annotations -pytz==2024.1 - # via babel -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations -readme-renderer==43.0 +readme-renderer==44.0 # via -r requirements/doc.in requests==2.32.3 # via sphinx @@ -195,24 +186,24 @@ sortedcontainers==2.4.0 # hypothesis soupsieve==2.5 # via beautifulsoup4 -sphinx==6.2.1 +sphinx==8.0.2 # via # -r requirements/doc.in # pydata-sphinx-theme # sphinx-book-theme -sphinx-book-theme==1.0.1 +sphinx-book-theme==1.1.3 # via -r requirements/doc.in -sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-applehelp==2.0.0 # via sphinx -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==2.0.0 # via sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==2.0.0 # via sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==2.0.0 # via sphinx stevedore==5.2.0 # via @@ -222,13 +213,6 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # mypy - # pylint - # pytest tomlkit==0.13.0 # via # -r requirements/test.txt @@ -236,11 +220,7 @@ tomlkit==0.13.0 typing-extensions==4.12.2 # via # -r requirements/test.txt - # astroid # mypy # pydata-sphinx-theme - # pylint urllib3==2.2.2 # via requests -zipp==3.19.2 - # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 6b0824f..fedf88d 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -8,8 +8,6 @@ build==1.2.1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==8.0.0 - # via build packaging==24.1 # via build pip-tools==7.4.1 @@ -18,14 +16,8 @@ pyproject-hooks==1.1.0 # via # build # pip-tools -tomli==2.0.1 - # via - # build - # pip-tools -wheel==0.43.0 +wheel==0.44.0 # via pip-tools -zipp==3.19.2 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/pip.txt b/requirements/pip.txt index e155dab..7a6ada8 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,14 +1,14 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -wheel==0.43.0 +wheel==0.44.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==24.1.2 +pip==24.2 # via -r requirements/pip.in -setuptools==70.3.0 +setuptools==72.1.0 # via -r requirements/pip.in diff --git a/requirements/test.txt b/requirements/test.txt index a3f35ca..adef629 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,14 +1,14 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -astroid==3.2.3 +astroid==3.2.4 # via # pylint # pylint-celery -attrs==23.2.0 +attrs==24.2.0 # via hypothesis click==8.1.7 # via @@ -19,7 +19,7 @@ click-log==0.4.0 # via edx-lint code-annotations==1.8.0 # via edx-lint -coverage[toml]==7.6.0 +coverage[toml]==7.6.1 # via # -r requirements/test.in # pytest-cov @@ -31,15 +31,11 @@ dnspython==2.6.1 # via # -r requirements/base.txt # pymongo -edx-lint==5.3.6 +edx-lint==5.3.7 # via -r requirements/test.in -exceptiongroup==1.2.1 - # via - # hypothesis - # pytest execnet==2.1.1 # via pytest-xdist -hypothesis==6.106.0 +hypothesis==6.111.0 # via -r requirements/test.in iniconfig==2.0.0 # via pytest @@ -53,7 +49,7 @@ mccabe==0.7.0 # via pylint mock==5.1.0 # via -r requirements/test.in -mypy==1.10.1 +mypy==1.11.1 # via -r requirements/test.in mypy-extensions==1.0.0 # via mypy @@ -67,9 +63,9 @@ platformdirs==4.2.2 # via pylint pluggy==1.5.0 # via pytest -pycodestyle==2.12.0 +pycodestyle==2.12.1 # via -r requirements/test.in -pylint==3.2.5 +pylint==3.2.6 # via # edx-lint # pylint-celery @@ -85,7 +81,7 @@ pylint-plugin-utils==0.8.2 # pylint-django pymongo==4.8.0 # via -r requirements/base.txt -pytest==8.2.2 +pytest==8.3.2 # via # -r requirements/test.in # pytest-cov @@ -96,7 +92,7 @@ pytest-xdist==3.6.1 # via -r requirements/test.in python-slugify==8.0.4 # via code-annotations -pyyaml==6.0.1 +pyyaml==6.0.2 # via code-annotations six==1.16.0 # via edx-lint @@ -108,17 +104,9 @@ stevedore==5.2.0 # code-annotations text-unidecode==1.3 # via python-slugify -tomli==2.0.1 - # via - # coverage - # mypy - # pylint - # pytest tomlkit==0.13.0 # via pylint typing-extensions==4.12.2 # via # -r requirements/base.txt - # astroid # mypy - # pylint diff --git a/setup.py b/setup.py index 5b6d173..6ba377e 100644 --- a/setup.py +++ b/setup.py @@ -108,7 +108,6 @@ def get_version(*file_paths): "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: OS Independent", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Framework :: Django", diff --git a/tox.ini b/tox.ini index c753907..80e8df1 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{38,311,312}-django{42},quality,without-django +envlist = py{311,312}-django{42},quality,without-django skip_missing_interpreters = True [testenv] @@ -9,25 +9,25 @@ deps = commands = pytest -v --disable-pytest-warnings --nomigrations {posargs} [testenv:without-django] -deps = +deps = -r{toxinidir}/requirements/test.txt commands = pytest --disable-pytest-warnings --ignore=opaque_keys/edx/django {posargs} [testenv:quality] -commands = +commands = pycodestyle --config=.pep8 opaque_keys mypy pylint --rcfile=pylintrc opaque_keys [testenv:docs] -deps = +deps = -r{toxinidir}/requirements/doc.txt -allowlist_externals = +allowlist_externals = make env -setenv = +setenv = SPHINXOPTS = -W -commands = +commands = make -e -C docs clean make -e -C docs html