diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5f6f300..01e18ab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,8 +14,8 @@ jobs: strategy: matrix: os: [ubuntu-20.04] - python-version: ['3.8'] - toxenv: [quality, django32, django42] + python-version: ['3.8', '3.12'] + toxenv: [quality, django42] steps: - uses: actions/checkout@v2 diff --git a/Makefile b/Makefile index b2d6db3..99de643 100644 --- a/Makefile +++ b/Makefile @@ -39,14 +39,14 @@ upgrade: ## update the requirements/*.txt files with the latest packages satisfy pip install -qr requirements/pip-tools.txt # Make sure to compile files after any other files they include! pip-compile --upgrade --allow-unsafe --rebuild -o requirements/pip.txt requirements/pip.in - pip-compile --upgrade -o requirements/pip-tools.txt requirements/pip-tools.in + pip-compile --upgrade --allow-unsafe -o requirements/pip-tools.txt requirements/pip-tools.in pip install -qr requirements/pip.txt pip install -qr requirements/pip-tools.txt - pip-compile --upgrade -o requirements/base.txt requirements/base.in - pip-compile --upgrade -o requirements/test.txt requirements/test.in - pip-compile --upgrade -o requirements/quality.txt requirements/quality.in - pip-compile --upgrade -o requirements/ci.txt requirements/ci.in - pip-compile --upgrade -o requirements/dev.txt requirements/dev.in + pip-compile --upgrade --allow-unsafe -o requirements/base.txt requirements/base.in + pip-compile --upgrade --allow-unsafe -o requirements/test.txt requirements/test.in + pip-compile --upgrade --allow-unsafe -o requirements/quality.txt requirements/quality.in + pip-compile --upgrade --allow-unsafe -o requirements/ci.txt requirements/ci.in + pip-compile --upgrade --allow-unsafe -o requirements/dev.txt requirements/dev.in # Let tox control the Django version for tests sed '/^[dD]jango==/d' requirements/test.txt > requirements/test.tmp mv requirements/test.tmp requirements/test.txt diff --git a/milestones/__init__.py b/milestones/__init__.py index 3473f3a..fec1e1a 100644 --- a/milestones/__init__.py +++ b/milestones/__init__.py @@ -3,4 +3,4 @@ """ -__version__ = '0.5.0' +__version__ = '0.6.0' diff --git a/requirements/base.in b/requirements/base.in index c3f45b6..544d92c 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -5,3 +5,5 @@ Django # Web application framework django-model-utils # Provides TimeStampedModel abstract base class edx-opaque-keys>=0.2.1 # Create and introspect course and xblock identities six # Utilities for supporting Python 2 & 3 in the same codebase +setuptools +backports.zoneinfo; python_version<'3.9' diff --git a/requirements/base.txt b/requirements/base.txt index bec3682..48dced1 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,28 +6,34 @@ # asgiref==3.7.2 # via django -django==3.2.22 +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -r requirements/base.in + # django +django==4.2.11 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in # django-model-utils -django-model-utils==4.3.1 +django-model-utils==4.4.0 # via -r requirements/base.in edx-opaque-keys==2.5.1 # via -r requirements/base.in -pbr==5.11.1 +pbr==6.0.0 # via stevedore pymongo==3.13.0 # via edx-opaque-keys -pytz==2023.3.post1 - # via django six==1.16.0 # via -r requirements/base.in sqlparse==0.4.4 # via django -stevedore==5.1.0 +stevedore==5.2.0 # via edx-opaque-keys -typing-extensions==4.8.0 +typing-extensions==4.10.0 # via # asgiref # edx-opaque-keys + +# The following packages are considered to be unsafe in a requirements file: +setuptools==69.1.1 + # via -r requirements/base.in diff --git a/requirements/ci.txt b/requirements/ci.txt index 267f554..88a39ff 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,27 +4,35 @@ # # make upgrade # -distlib==0.3.7 +cachetools==5.3.3 + # via tox +chardet==5.2.0 + # via tox +colorama==0.4.6 + # via tox +distlib==0.3.8 # via virtualenv -filelock==3.12.4 +filelock==3.13.1 # via # tox # virtualenv packaging==23.2 + # via + # pyproject-api + # tox +platformdirs==4.2.0 + # via + # tox + # virtualenv +pluggy==1.4.0 # via tox -platformdirs==3.11.0 - # via virtualenv -pluggy==1.3.0 - # via tox -py==1.11.0 - # via tox -six==1.16.0 +pyproject-api==1.6.1 # via tox tomli==2.0.1 - # via tox -tox==3.28.0 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # -r requirements/ci.in -virtualenv==20.24.5 + # pyproject-api + # tox +tox==4.13.0 + # via -r requirements/ci.in +virtualenv==20.25.1 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index dd64150..8a66a1d 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -8,15 +8,27 @@ asgiref==3.7.2 # via # -r requirements/quality.txt # django -astroid==3.0.1 +astroid==3.1.0 # via # -r requirements/quality.txt # pylint # pylint-celery -build==1.0.3 +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -r requirements/quality.txt + # django +build==1.1.1 # via # -r requirements/pip-tools.txt # pip-tools +cachetools==5.3.3 + # via + # -r requirements/ci.txt + # tox +chardet==5.2.0 + # via + # -r requirements/ci.txt + # tox click==8.1.7 # via # -r requirements/pip-tools.txt @@ -29,44 +41,47 @@ click-log==0.4.0 # via # -r requirements/quality.txt # edx-lint -code-annotations==1.5.0 +code-annotations==1.6.0 # via # -r requirements/quality.txt # edx-lint -coverage[toml]==7.3.2 +colorama==0.4.6 + # via + # -r requirements/ci.txt + # tox +coverage[toml]==7.4.3 # via # -r requirements/quality.txt - # coverage # pytest-cov -dill==0.3.7 +dill==0.3.8 # via # -r requirements/quality.txt # pylint -distlib==0.3.7 +distlib==0.3.8 # via # -r requirements/ci.txt # virtualenv -django==3.2.22 +django==4.2.11 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt # django-model-utils -django-model-utils==4.3.1 +django-model-utils==4.4.0 # via -r requirements/quality.txt -edx-lint==5.3.4 +edx-lint==5.3.6 # via -r requirements/quality.txt edx-opaque-keys==2.5.1 # via -r requirements/quality.txt -exceptiongroup==1.1.3 +exceptiongroup==1.2.0 # via # -r requirements/quality.txt # pytest -filelock==3.12.4 +filelock==3.13.1 # via # -r requirements/ci.txt # tox # virtualenv -importlib-metadata==6.8.0 +importlib-metadata==7.0.1 # via # -r requirements/pip-tools.txt # build @@ -74,15 +89,15 @@ iniconfig==2.0.0 # via # -r requirements/quality.txt # pytest -isort==5.12.0 +isort==5.13.2 # via # -r requirements/quality.txt # pylint -jinja2==3.1.2 +jinja2==3.1.3 # via # -r requirements/quality.txt # code-annotations -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/quality.txt # jinja2 @@ -96,35 +111,33 @@ packaging==23.2 # -r requirements/pip-tools.txt # -r requirements/quality.txt # build + # pyproject-api # pytest # tox -pbr==5.11.1 +pbr==6.0.0 # via # -r requirements/quality.txt # stevedore -pip-tools==7.3.0 +pip-tools==7.4.0 # via -r requirements/pip-tools.txt -platformdirs==3.11.0 +platformdirs==4.2.0 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint + # tox # virtualenv -pluggy==1.3.0 +pluggy==1.4.0 # via # -r requirements/ci.txt # -r requirements/quality.txt # pytest # tox -py==1.11.0 - # via - # -r requirements/ci.txt - # tox pycodestyle==2.11.1 # via -r requirements/quality.txt pydocstyle==6.3.0 # via -r requirements/quality.txt -pylint==3.0.2 +pylint==3.1.0 # via # -r requirements/quality.txt # edx-lint @@ -135,7 +148,7 @@ pylint-celery==0.3 # via # -r requirements/quality.txt # edx-lint -pylint-django==2.5.4 +pylint-django==2.5.5 # via # -r requirements/quality.txt # edx-lint @@ -148,37 +161,36 @@ pymongo==3.13.0 # via # -r requirements/quality.txt # edx-opaque-keys +pyproject-api==1.6.1 + # via + # -r requirements/ci.txt + # tox pyproject-hooks==1.0.0 # via # -r requirements/pip-tools.txt # build -pytest==7.4.2 + # pip-tools +pytest==8.1.0 # via # -r requirements/quality.txt # pytest-cov # pytest-django pytest-cov==4.1.0 # via -r requirements/quality.txt -pytest-django==4.5.2 +pytest-django==4.8.0 # via -r requirements/quality.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via # -r requirements/quality.txt # code-annotations -pytz==2023.3.post1 - # via - # -r requirements/quality.txt - # django pyyaml==6.0.1 # via # -r requirements/quality.txt # code-annotations six==1.16.0 # via - # -r requirements/ci.txt # -r requirements/quality.txt # edx-lint - # tox snowballstemmer==2.2.0 # via # -r requirements/quality.txt @@ -187,7 +199,7 @@ sqlparse==0.4.4 # via # -r requirements/quality.txt # django -stevedore==5.1.0 +stevedore==5.2.0 # via # -r requirements/quality.txt # code-annotations @@ -205,29 +217,28 @@ tomli==2.0.1 # coverage # pip-tools # pylint + # pyproject-api # pyproject-hooks # pytest # tox -tomlkit==0.12.1 +tomlkit==0.12.4 # via # -r requirements/quality.txt # pylint -tox==3.28.0 - # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # -r requirements/ci.txt -typing-extensions==4.8.0 +tox==4.13.0 + # via -r requirements/ci.txt +typing-extensions==4.10.0 # via # -r requirements/quality.txt # asgiref # astroid # edx-opaque-keys # pylint -virtualenv==20.24.5 +virtualenv==20.25.1 # via # -r requirements/ci.txt # tox -wheel==0.41.2 +wheel==0.42.0 # via # -r requirements/pip-tools.txt # pip-tools @@ -237,5 +248,12 @@ zipp==3.17.0 # importlib-metadata # The following packages are considered to be unsafe in a requirements file: -# pip -# setuptools +pip==24.0 + # via + # -r requirements/pip-tools.txt + # pip-tools +setuptools==69.1.1 + # via + # -r requirements/pip-tools.txt + # -r requirements/quality.txt + # pip-tools diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 50d35f2..11fddc8 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,28 +4,32 @@ # # make upgrade # -build==1.0.3 +build==1.1.1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==6.8.0 +importlib-metadata==7.0.1 # via build packaging==23.2 # via build -pip-tools==7.3.0 +pip-tools==7.4.0 # via -r requirements/pip-tools.in pyproject-hooks==1.0.0 - # via build + # via + # build + # pip-tools tomli==2.0.1 # via # build # pip-tools # pyproject-hooks -wheel==0.41.2 +wheel==0.42.0 # via pip-tools zipp==3.17.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: -# pip -# setuptools +pip==24.0 + # via pip-tools +setuptools==69.1.1 + # via pip-tools diff --git a/requirements/pip.txt b/requirements/pip.txt index 0c788d6..6665603 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.41.2 +wheel==0.42.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==23.3.1 +pip==24.0 # via -r requirements/pip.in -setuptools==68.2.2 +setuptools==69.1.1 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 2d66aac..e675616 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -8,10 +8,14 @@ asgiref==3.7.2 # via # -r requirements/test.txt # django -astroid==3.0.1 +astroid==3.1.0 # via # pylint # pylint-celery +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -r requirements/test.txt + # django click==8.1.7 # via # -r requirements/test.txt @@ -20,29 +24,28 @@ click==8.1.7 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.5.0 +code-annotations==1.6.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.3.2 +coverage[toml]==7.4.3 # via # -r requirements/test.txt - # coverage # pytest-cov -dill==0.3.7 +dill==0.3.8 # via pylint -django==3.2.22 +django==4.2.11 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # django-model-utils -django-model-utils==4.3.1 +django-model-utils==4.4.0 # via -r requirements/test.txt -edx-lint==5.3.4 +edx-lint==5.3.6 # via -r requirements/quality.in edx-opaque-keys==2.5.1 # via -r requirements/test.txt -exceptiongroup==1.1.3 +exceptiongroup==1.2.0 # via # -r requirements/test.txt # pytest @@ -50,15 +53,15 @@ iniconfig==2.0.0 # via # -r requirements/test.txt # pytest -isort==5.12.0 +isort==5.13.2 # via # -r requirements/quality.in # pylint -jinja2==3.1.2 +jinja2==3.1.3 # via # -r requirements/test.txt # code-annotations -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/test.txt # jinja2 @@ -68,13 +71,13 @@ packaging==23.2 # via # -r requirements/test.txt # pytest -pbr==5.11.1 +pbr==6.0.0 # via # -r requirements/test.txt # stevedore -platformdirs==3.11.0 +platformdirs==4.2.0 # via pylint -pluggy==1.3.0 +pluggy==1.4.0 # via # -r requirements/test.txt # pytest @@ -82,7 +85,7 @@ pycodestyle==2.11.1 # via -r requirements/quality.in pydocstyle==6.3.0 # via -r requirements/quality.in -pylint==3.0.2 +pylint==3.1.0 # via # edx-lint # pylint-celery @@ -90,7 +93,7 @@ pylint==3.0.2 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.5.4 +pylint-django==2.5.5 # via edx-lint pylint-plugin-utils==0.8.2 # via @@ -100,23 +103,19 @@ pymongo==3.13.0 # via # -r requirements/test.txt # edx-opaque-keys -pytest==7.4.2 +pytest==8.1.0 # via # -r requirements/test.txt # pytest-cov # pytest-django pytest-cov==4.1.0 # via -r requirements/test.txt -pytest-django==4.5.2 +pytest-django==4.8.0 # via -r requirements/test.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via # -r requirements/test.txt # code-annotations -pytz==2023.3.post1 - # via - # -r requirements/test.txt - # django pyyaml==6.0.1 # via # -r requirements/test.txt @@ -131,7 +130,7 @@ sqlparse==0.4.4 # via # -r requirements/test.txt # django -stevedore==5.1.0 +stevedore==5.2.0 # via # -r requirements/test.txt # code-annotations @@ -146,12 +145,16 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.12.1 +tomlkit==0.12.4 # via pylint -typing-extensions==4.8.0 +typing-extensions==4.10.0 # via # -r requirements/test.txt # asgiref # astroid # edx-opaque-keys # pylint + +# The following packages are considered to be unsafe in a requirements file: +setuptools==69.1.1 + # via -r requirements/test.txt diff --git a/requirements/test.txt b/requirements/test.txt index cf9b9cc..3495b4d 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -8,11 +8,15 @@ asgiref==3.7.2 # via # -r requirements/base.txt # django +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -r requirements/base.txt + # django click==8.1.7 # via code-annotations -code-annotations==1.5.0 +code-annotations==1.6.0 # via -r requirements/test.in -coverage[toml]==7.3.2 +coverage[toml]==7.4.3 # via # -r requirements/test.in # pytest-cov @@ -20,45 +24,41 @@ coverage[toml]==7.3.2 # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt # django-model-utils -django-model-utils==4.3.1 +django-model-utils==4.4.0 # via -r requirements/base.txt edx-opaque-keys==2.5.1 # via -r requirements/base.txt -exceptiongroup==1.1.3 +exceptiongroup==1.2.0 # via pytest iniconfig==2.0.0 # via pytest -jinja2==3.1.2 +jinja2==3.1.3 # via code-annotations -markupsafe==2.1.3 +markupsafe==2.1.5 # via jinja2 packaging==23.2 # via pytest -pbr==5.11.1 +pbr==6.0.0 # via # -r requirements/base.txt # stevedore -pluggy==1.3.0 +pluggy==1.4.0 # via pytest pymongo==3.13.0 # via # -r requirements/base.txt # edx-opaque-keys -pytest==7.4.2 +pytest==8.1.0 # via # -r requirements/test.in # pytest-cov # pytest-django pytest-cov==4.1.0 # via -r requirements/test.in -pytest-django==4.5.2 +pytest-django==4.8.0 # via -r requirements/test.in -python-slugify==8.0.1 +python-slugify==8.0.4 # via code-annotations -pytz==2023.3.post1 - # via - # -r requirements/base.txt - # django pyyaml==6.0.1 # via code-annotations six==1.16.0 @@ -67,7 +67,7 @@ sqlparse==0.4.4 # via # -r requirements/base.txt # django -stevedore==5.1.0 +stevedore==5.2.0 # via # -r requirements/base.txt # code-annotations @@ -78,8 +78,12 @@ tomli==2.0.1 # via # coverage # pytest -typing-extensions==4.8.0 +typing-extensions==4.10.0 # via # -r requirements/base.txt # asgiref # edx-opaque-keys + +# The following packages are considered to be unsafe in a requirements file: +setuptools==69.1.1 + # via -r requirements/base.txt diff --git a/setup.py b/setup.py index 30c2743..7623980 100644 --- a/setup.py +++ b/setup.py @@ -76,8 +76,8 @@ def is_requirement(line): 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.12', 'Framework :: Django', - 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.2', ], packages=find_packages(exclude=["tests"]), diff --git a/tox.ini b/tox.ini index c9bf0a3..17dc6f7 100644 --- a/tox.ini +++ b/tox.ini @@ -1,12 +1,11 @@ [tox] -envlist = py38-django{32, 42} +envlist = py{38, 312}-django{42} [testenv] setenv = DJANGO_SETTINGS_MODULE = settings PYTHONPATH = {toxinidir} deps = - django32: Django>=3.2,<4.0 django42: Django>=4.2,<4.3 -r{toxinidir}/requirements/test.txt commands = @@ -31,4 +30,3 @@ deps = -r{toxinidir}/requirements/test.txt commands = code_annotations django_find_annotations --config_file .pii_annotations.yml --lint --report --coverage -