diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 08c0918..65e2f6c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: os: [ubuntu-20.04] - python-version: ['3.8', '3.11'] + python-version: ['3.11'] toxenv: [quality, django42, check_keywords] steps: - uses: actions/checkout@v4 @@ -36,7 +36,7 @@ jobs: run: tox - name: Run Coverage - if: matrix.python-version == '3.8' && matrix.toxenv=='django42' + if: matrix.python-version == '3.11' && matrix.toxenv=='django42' uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml index a47eb5a..968584c 100644 --- a/.github/workflows/publish_pypi.yml +++ b/.github/workflows/publish_pypi.yml @@ -16,7 +16,7 @@ jobs: - name: setup python 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/.gitignore b/.gitignore index 240dcf3..c88d872 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,4 @@ tests/__init__.py # Development task artifacts default.db +venv diff --git a/requirements/ci.txt b/requirements/ci.txt index e8e8acc..071d724 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,12 +1,12 @@ # -# 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.5.0 # via tox -certifi==2024.2.2 +certifi==2024.7.4 # via requests chardet==5.2.0 # via tox @@ -16,37 +16,33 @@ codecov==2.1.13 # via -r requirements/ci.in colorama==0.4.6 # via tox -coverage==7.4.4 +coverage==7.6.1 # via codecov distlib==0.3.8 # via virtualenv -filelock==3.13.3 +filelock==3.15.4 # via # tox # virtualenv -idna==3.6 +idna==3.7 # via requests -packaging==24.0 +packaging==24.1 # via # pyproject-api # tox -platformdirs==4.2.0 +platformdirs==4.2.2 # via # tox # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via tox -pyproject-api==1.6.1 +pyproject-api==1.7.1 # via tox -requests==2.31.0 +requests==2.32.3 # via codecov -tomli==2.0.1 - # via - # pyproject-api - # tox -tox==4.14.2 +tox==4.18.0 # via -r requirements/ci.in -urllib3==2.2.1 +urllib3==2.2.2 # via requests -virtualenv==20.25.1 +virtualenv==20.26.3 # via tox diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt index e3bf8ea..31879f7 100644 --- a/requirements/common_constraints.txt +++ b/requirements/common_constraints.txt @@ -17,16 +17,15 @@ Django<5.0 # elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process. # elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html +# See https://github.com/openedx/edx-platform/issues/35126 for more info elasticsearch<7.14.0 # django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected django-simple-history==3.0.0 -# opentelemetry requires version 6.x at the moment: -# https://github.com/open-telemetry/opentelemetry-python/issues/3570 -# Normally this could be added as a constraint in edx-django-utils, where we're -# adding the opentelemetry dependency. However, when we compile pip-tools.txt, -# that uses version 7.x, and then there's no undoing that when compiling base.txt. -# So we need to pin it globally, for now. -# Ticket for unpinning: https://github.com/openedx/edx-lint/issues/407 -importlib-metadata<7 +# Cause: https://github.com/openedx/event-tracking/pull/290 +# event-tracking 2.4.1 upgrades to pymongo 4.4.0 which is not supported on edx-platform. +# We will pin event-tracking to do not break existing installations +# This can be unpinned once https://github.com/openedx/edx-platform/issues/34586 +# has been resolved and edx-platform is running with pymongo>=4.4.0 +event-tracking<2.4.1 diff --git a/requirements/dev.txt b/requirements/dev.txt index 0efbe8b..fe88354 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,24 +1,22 @@ # -# 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 # asgiref==3.8.1 # via django -astroid==3.1.0 +astroid==3.2.4 # via # pylint # pylint-celery -backports-zoneinfo==0.2.1 ; python_version < "3.9" - # via - # -c requirements/constraints.txt - # django +backports-tarfile==1.2.0 + # via jaraco-context build==1.2.1 # via -r requirements/quality.in -cachetools==5.3.3 +cachetools==5.5.0 # via tox -certifi==2024.2.2 +certifi==2024.7.4 # via requests chardet==5.2.0 # via @@ -33,60 +31,56 @@ click==8.1.7 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.7.0 +code-annotations==1.8.0 # via edx-lint colorama==0.4.6 # via tox -diff-cover==8.0.3 +diff-cover==9.1.1 # via -r requirements/dev.in dill==0.3.8 # via pylint distlib==0.3.8 # via virtualenv -django==4.2.11 +django==4.2.15 # via # -c requirements/common_constraints.txt # -r requirements/base.in # edx-i18n-tools -docutils==0.20.1 +docutils==0.21.2 # via readme-renderer -edx-i18n-tools==1.3.0 +edx-i18n-tools==1.6.2 # via -r requirements/dev.in -edx-lint==5.3.6 +edx-lint==5.3.7 # via # -r requirements/dev.in # -r requirements/quality.in -filelock==3.13.3 +filelock==3.15.4 # via # tox # virtualenv -idna==3.6 +idna==3.7 # via requests -importlib-metadata==6.11.0 +importlib-metadata==8.4.0 # via - # -c requirements/common_constraints.txt - # build # keyring # twine -importlib-resources==6.4.0 - # via keyring isort==5.13.2 # via # -r requirements/quality.in # pylint -jaraco-classes==3.3.1 +jaraco-classes==3.4.0 # via keyring -jaraco-context==4.3.0 +jaraco-context==6.0.1 # via keyring -jaraco-functools==4.0.0 +jaraco-functools==4.0.2 # via keyring -jinja2==3.1.3 +jinja2==3.1.4 # via # code-annotations # diff-cover -keyring==25.0.0 +keyring==25.3.0 # via twine -lxml==5.1.0 +lxml==5.3.0 # via edx-i18n-tools markdown-it-py==3.0.0 # via rich @@ -96,44 +90,44 @@ mccabe==0.7.0 # via pylint mdurl==0.1.2 # via markdown-it-py -more-itertools==10.2.0 +more-itertools==10.4.0 # via # jaraco-classes # jaraco-functools -nh3==0.2.17 +nh3==0.2.18 # via readme-renderer -packaging==24.0 +packaging==24.1 # via # build # pyproject-api # tox -path==16.10.0 +path==16.16.0 # via edx-i18n-tools pbr==6.0.0 # via stevedore pkginfo==1.10.0 # via twine -platformdirs==4.2.0 +platformdirs==4.2.2 # via # pylint # tox # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via # diff-cover # tox polib==1.2.0 # via edx-i18n-tools -pycodestyle==2.11.1 +pycodestyle==2.12.1 # via -r requirements/quality.in pydocstyle==6.3.0 # via -r requirements/quality.in -pygments==2.17.2 +pygments==2.18.0 # via # diff-cover # readme-renderer # rich -pylint==3.1.0 +pylint==3.2.6 # via # edx-lint # pylint-celery @@ -147,19 +141,19 @@ pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pyproject-api==1.6.1 +pyproject-api==1.7.1 # via tox -pyproject-hooks==1.0.0 +pyproject-hooks==1.1.0 # via build python-slugify==8.0.4 # via code-annotations -pyyaml==6.0.1 +pyyaml==6.0.2 # via # code-annotations # edx-i18n-tools -readme-renderer==43.0 +readme-renderer==44.0 # via twine -requests==2.31.0 +requests==2.32.3 # via # requests-toolbelt # twine @@ -173,42 +167,27 @@ six==1.16.0 # via edx-lint snowballstemmer==2.2.0 # via pydocstyle -sqlparse==0.4.4 +sqlparse==0.5.1 # via django -stevedore==5.2.0 +stevedore==5.3.0 # via code-annotations text-unidecode==1.3 # via python-slugify -tomli==2.0.1 - # via - # build - # pylint - # pyproject-api - # pyproject-hooks - # tox -tomlkit==0.12.4 +tomlkit==0.13.2 # via pylint -tox==4.14.2 +tox==4.18.0 # via -r requirements/dev.in -twine==5.0.0 +twine==5.1.1 # via # -r requirements/dev.in # -r requirements/quality.in -typing-extensions==4.10.0 - # via - # asgiref - # astroid - # pylint - # rich -urllib3==2.2.1 +urllib3==2.2.2 # via # requests # twine -virtualenv==20.25.1 +virtualenv==20.26.3 # via tox -wheel==0.43.0 +wheel==0.44.0 # via -r requirements/dev.in -zipp==3.18.1 - # via - # importlib-metadata - # importlib-resources +zipp==3.20.0 + # via importlib-metadata diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 6401f54..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,27 +8,16 @@ build==1.2.1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==6.11.0 - # via - # -c requirements/common_constraints.txt - # build -packaging==24.0 +packaging==24.1 # via build pip-tools==7.4.1 # via -r requirements/pip-tools.in -pyproject-hooks==1.0.0 - # via - # build - # pip-tools -tomli==2.0.1 +pyproject-hooks==1.1.0 # via # build # pip-tools - # pyproject-hooks -wheel==0.43.0 +wheel==0.44.0 # via pip-tools -zipp==3.18.1 - # 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 cf44902..f0fca18 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.0 +pip==24.2 # via -r requirements/pip.in -setuptools==69.2.0 +setuptools==73.0.1 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 8831895..2ac59a8 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,16 +1,18 @@ # -# 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.1.0 +astroid==3.2.4 # via # pylint # pylint-celery +backports-tarfile==1.2.0 + # via jaraco-context build==1.2.1 # via -r requirements/quality.in -certifi==2024.2.2 +certifi==2024.7.4 # via requests charset-normalizer==3.3.2 # via requests @@ -21,37 +23,33 @@ click==8.1.7 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.7.0 +code-annotations==1.8.0 # via edx-lint dill==0.3.8 # via pylint -docutils==0.20.1 +docutils==0.21.2 # via readme-renderer -edx-lint==5.3.6 +edx-lint==5.3.7 # via -r requirements/quality.in -idna==3.6 +idna==3.7 # via requests -importlib-metadata==6.11.0 +importlib-metadata==8.4.0 # via - # -c requirements/common_constraints.txt - # build # keyring # twine -importlib-resources==6.4.0 - # via keyring isort==5.13.2 # via # -r requirements/quality.in # pylint -jaraco-classes==3.3.1 +jaraco-classes==3.4.0 # via keyring -jaraco-context==4.3.0 +jaraco-context==6.0.1 # via keyring -jaraco-functools==4.0.0 +jaraco-functools==4.0.2 # via keyring -jinja2==3.1.3 +jinja2==3.1.4 # via code-annotations -keyring==25.0.0 +keyring==25.3.0 # via twine markdown-it-py==3.0.0 # via rich @@ -61,29 +59,29 @@ mccabe==0.7.0 # via pylint mdurl==0.1.2 # via markdown-it-py -more-itertools==10.2.0 +more-itertools==10.4.0 # via # jaraco-classes # jaraco-functools -nh3==0.2.17 +nh3==0.2.18 # via readme-renderer -packaging==24.0 +packaging==24.1 # via build pbr==6.0.0 # via stevedore pkginfo==1.10.0 # via twine -platformdirs==4.2.0 +platformdirs==4.2.2 # via pylint -pycodestyle==2.11.1 +pycodestyle==2.12.1 # via -r requirements/quality.in pydocstyle==6.3.0 # via -r requirements/quality.in -pygments==2.17.2 +pygments==2.18.0 # via # readme-renderer # rich -pylint==3.1.0 +pylint==3.2.6 # via # edx-lint # pylint-celery @@ -97,15 +95,15 @@ pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pyproject-hooks==1.0.0 +pyproject-hooks==1.1.0 # via build python-slugify==8.0.4 # via code-annotations -pyyaml==6.0.1 +pyyaml==6.0.2 # via code-annotations -readme-renderer==43.0 +readme-renderer==44.0 # via twine -requests==2.31.0 +requests==2.32.3 # via # requests-toolbelt # twine @@ -119,29 +117,17 @@ six==1.16.0 # via edx-lint snowballstemmer==2.2.0 # via pydocstyle -stevedore==5.2.0 +stevedore==5.3.0 # via code-annotations text-unidecode==1.3 # via python-slugify -tomli==2.0.1 - # via - # build - # pylint - # pyproject-hooks -tomlkit==0.12.4 +tomlkit==0.13.2 # via pylint -twine==5.0.0 +twine==5.1.1 # via -r requirements/quality.in -typing-extensions==4.10.0 - # via - # astroid - # pylint - # rich -urllib3==2.2.1 +urllib3==2.2.2 # via # requests # twine -zipp==3.18.1 - # via - # importlib-metadata - # importlib-resources +zipp==3.20.0 + # via importlib-metadata diff --git a/requirements/test.txt b/requirements/test.txt index b4005ab..7a0a744 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,34 +1,28 @@ # -# 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 # asgiref==3.8.1 # via django -backports-zoneinfo==0.2.1 ; python_version < "3.9" - # via - # -c requirements/constraints.txt - # django -coverage[toml]==7.4.4 +coverage[toml]==7.6.1 # via pytest-cov # via # -c requirements/common_constraints.txt # -r requirements/base.in # edx-django-release-util -edx-django-release-util==1.3.0 +edx-django-release-util==1.4.0 # via -r requirements/test.in -exceptiongroup==1.2.0 - # via pytest iniconfig==2.0.0 # via pytest -packaging==24.0 +packaging==24.1 # via pytest -pluggy==1.4.0 +pluggy==1.5.0 # via pytest py==1.11.0 # via pytest-catchlog -pytest==8.1.1 +pytest==8.3.2 # via # pytest-catchlog # pytest-cov @@ -39,15 +33,9 @@ pytest-cov==5.0.0 # via -r requirements/test.in pytest-django==4.8.0 # via -r requirements/test.in -pyyaml==6.0.1 +pyyaml==6.0.2 # via edx-django-release-util six==1.16.0 # via edx-django-release-util -sqlparse==0.4.4 +sqlparse==0.5.1 # via django -tomli==2.0.1 - # via - # coverage - # pytest -typing-extensions==4.10.0 - # via asgiref