From 90adb75a1116e396b3927adcea890e683c2a577b Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Fri, 23 Feb 2024 07:37:34 -0500 Subject: [PATCH 1/4] feat: Adding python3.11 support. Dropped django3.2 support. --- .github/workflows/ci.yml | 7 +- Makefile | 9 ++- release_util/__init__.py | 2 +- requirements/base.txt | 22 +++--- requirements/common_constraints.txt | 0 requirements/constraints.txt | 6 +- requirements/pip.txt | 10 +-- requirements/pip_tools.txt | 29 +++++--- requirements/quality.txt | 107 +++++++++++++++------------- requirements/scripts.txt | 40 +++++------ requirements/test.txt | 91 ++++++++++++----------- setup.py | 2 +- tox.ini | 14 ++-- 13 files changed, 188 insertions(+), 151 deletions(-) create mode 100644 requirements/common_constraints.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1914492..70174ae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,8 +14,10 @@ jobs: strategy: matrix: os: [ubuntu-20.04] - python-version: ['3.8'] - toxenv: [quality, django32, django42] + python-version: + - '3.8' + - '3.11' + toxenv: [quality, django42] steps: - uses: actions/checkout@v2 @@ -34,4 +36,3 @@ jobs: env: TOXENV: ${{ matrix.toxenv }} run: tox - \ No newline at end of file diff --git a/Makefile b/Makefile index 4816c39..2496da6 100644 --- a/Makefile +++ b/Makefile @@ -15,17 +15,22 @@ clean: ## remove generated byte code, coverage reports, and build artifacts rm -fr dist/ rm -fr *.egg-info +COMMON_CONSTRAINTS_TXT=requirements/common_constraints.txt +.PHONY: $(COMMON_CONSTRAINTS_TXT) +$(COMMON_CONSTRAINTS_TXT): + wget -O "$(@)" https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt || touch "$(@)" + # Define PIP_COMPILE_OPTS=-v to get more information during make upgrade. PIP_COMPILE = pip-compile --rebuild --upgrade $(PIP_COMPILE_OPTS) upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade -upgrade: ## update the pip requirements files to use the latest releases satisfying our constraints +upgrade: $(COMMON_CONSTRAINTS_TXT) #update the pip requirements files to use the latest releases satisfying our constraints pip install -qr requirements/pip_tools.txt # Make sure to compile files after any other files they include! $(PIP_COMPILE) --allow-unsafe -o requirements/pip.txt requirements/pip.in $(PIP_COMPILE) -o requirements/pip_tools.txt requirements/pip_tools.in pip install -qr requirements/pip.txt - pip install -qr requirements/pip-tools.txt + pip install -qr requirements/pip_tools.txt $(PIP_COMPILE) -o requirements/base.txt requirements/base.in $(PIP_COMPILE) -o requirements/test.txt requirements/test.in $(PIP_COMPILE) -o requirements/scripts.txt requirements/scripts.in diff --git a/release_util/__init__.py b/release_util/__init__.py index 8b5115d..e2d3af4 100644 --- a/release_util/__init__.py +++ b/release_util/__init__.py @@ -2,4 +2,4 @@ a collection of Django management commands used for analyzing and manipulating migrations. """ -__version__ = '1.3.0' # pragma: no cover +__version__ = '1.4.0' # pragma: no cover diff --git a/requirements/base.txt b/requirements/base.txt index e45f7c9..a296ecf 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,20 +1,22 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via django -django==3.2.12 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # -r requirements/base.in -pytz==2021.3 - # via django -pyyaml==6.0 + # -c requirements/constraints.txt + # django +django==4.2.11 + # via -r requirements/base.in +pyyaml==6.0.1 # via -r requirements/base.in six==1.16.0 # via -r requirements/base.in -sqlparse==0.4.2 +sqlparse==0.4.4 # via django +typing-extensions==4.10.0 + # via asgiref diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt new file mode 100644 index 0000000..e69de29 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 8067326..0e99c1f 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -8,6 +8,8 @@ # pin when possible. Writing an issue against the offending project and # linking to it here is good. +# Common constraints for edx repos +-c common_constraints.txt -# This file contains all common constraints for edx-repos --c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt +# Temporary to Support the python 3.11 Upgrade +backports.zoneinfo;python_version<"3.9" # Newer versions have zoneinfo available in the standard library diff --git a/requirements/pip.txt b/requirements/pip.txt index ceb0147..cf44902 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,14 +1,14 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -wheel==0.36.2 +wheel==0.43.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==21.1.3 +pip==24.0 # via -r requirements/pip.in -setuptools==57.2.0 +setuptools==69.2.0 # via -r requirements/pip.in diff --git a/requirements/pip_tools.txt b/requirements/pip_tools.txt index 18c84c8..6659ecd 100644 --- a/requirements/pip_tools.txt +++ b/requirements/pip_tools.txt @@ -1,19 +1,32 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -click==8.0.3 +build==1.2.1 # via pip-tools -pep517==0.12.0 +click==8.1.7 # via pip-tools -pip-tools==6.4.0 +importlib-metadata==7.1.0 + # via build +packaging==24.0 + # via build +pip-tools==7.4.1 # via -r requirements/pip_tools.in -tomli==2.0.0 - # via pep517 -wheel==0.37.1 +pyproject-hooks==1.0.0 + # via + # build + # pip-tools +tomli==2.0.1 + # via + # build + # pip-tools + # pyproject-hooks +wheel==0.43.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/quality.txt b/requirements/quality.txt index 19c4f92..f6aae21 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,117 +1,126 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/test.txt # django -attrs==21.4.0 +backports-zoneinfo==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/test.txt - # pytest -coverage[toml]==6.3.1 + # django +cachetools==5.3.3 + # via + # -r requirements/test.txt + # tox +chardet==5.2.0 + # via + # -r requirements/test.txt + # tox +colorama==0.4.6 + # via + # -r requirements/test.txt + # tox +coverage[toml]==7.4.4 # via # -r requirements/test.txt # pytest-cov -ddt==1.4.4 +ddt==1.7.2 # via -r requirements/test.txt -distlib==0.3.4 +distlib==0.3.8 # via # -r requirements/test.txt # virtualenv -django==3.2.12 +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-waffle==2.3.0 + # django-waffle +django-waffle==4.1.0 # via -r requirements/test.txt -filelock==3.4.2 +exceptiongroup==1.2.0 + # via + # -r requirements/test.txt + # pytest +filelock==3.13.3 # via # -r requirements/test.txt # tox # virtualenv -iniconfig==1.1.1 +iniconfig==2.0.0 # via # -r requirements/test.txt # pytest -isort==5.10.1 +isort==5.13.2 # via -r requirements/quality.in -mock==4.0.3 +mock==5.1.0 # via -r requirements/test.txt -packaging==21.3 +packaging==24.0 # via # -r requirements/test.txt + # pyproject-api # pytest # tox -path==16.3.0 +path==16.10.0 # via # -r requirements/test.txt - # path.py -path.py==12.5.0 + # path-py +path-py==12.5.0 # via -r requirements/test.txt -platformdirs==2.4.1 - # via - # -r requirements/test.txt - # virtualenv -pluggy==1.0.0 +platformdirs==4.2.0 # via # -r requirements/test.txt - # pytest # tox -py==1.11.0 + # virtualenv +pluggy==1.4.0 # via # -r requirements/test.txt # pytest # tox -pycodestyle==2.8.0 +pycodestyle==2.11.1 # via -r requirements/quality.in -pydocstyle==6.1.1 +pydocstyle==6.3.0 # via -r requirements/quality.in -pyparsing==3.0.7 +pyproject-api==1.6.1 # via # -r requirements/test.txt - # packaging -pytest==6.2.5 + # tox +pytest==8.1.1 # via # -r requirements/test.txt # pytest-cov # pytest-django -pytest-cov==3.0.0 +pytest-cov==5.0.0 # via -r requirements/test.txt -pytest-django==4.5.2 +pytest-django==4.8.0 # via -r requirements/test.txt -pytz==2021.3 - # via - # -r requirements/test.txt - # django -pyyaml==6.0 +pyyaml==6.0.1 # via -r requirements/test.txt six==1.16.0 - # via - # -r requirements/test.txt - # tox - # virtualenv + # via -r requirements/test.txt snowballstemmer==2.2.0 # via pydocstyle -sqlparse==0.4.2 +sqlparse==0.4.4 # via # -r requirements/test.txt # django -toml==0.10.2 +tomli==2.0.1 # via # -r requirements/test.txt + # coverage + # pyproject-api # pytest # tox -tomli==2.0.0 +tox==4.14.2 + # via -r requirements/test.txt +typing-extensions==4.10.0 # via # -r requirements/test.txt - # coverage -tox==3.24.5 - # via -r requirements/test.txt -virtualenv==20.13.0 + # asgiref +virtualenv==20.25.1 # via # -r requirements/test.txt # tox diff --git a/requirements/scripts.txt b/requirements/scripts.txt index b569760..89b712d 100644 --- a/requirements/scripts.txt +++ b/requirements/scripts.txt @@ -1,38 +1,34 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -certifi==2021.10.8 +certifi==2024.2.2 # via requests -cffi==1.15.0 +cffi==1.16.0 # via cryptography -charset-normalizer==2.0.11 +charset-normalizer==3.3.2 # via requests -click==8.0.3 +click==8.1.7 # via -r requirements/scripts.in -cryptography==36.0.1 - # via jwcrypto -deprecated==1.2.13 - # via jwcrypto -github3.py==3.0.0 +cryptography==42.0.5 + # via pyjwt +github3-py==4.0.1 # via -r requirements/scripts.in -idna==3.3 +idna==3.6 # via requests -jwcrypto==1.0 - # via github3.py pycparser==2.21 # via cffi -python-dateutil==2.8.2 - # via github3.py -requests==2.27.1 - # via github3.py +pyjwt[crypto]==2.8.0 + # via github3-py +python-dateutil==2.9.0.post0 + # via github3-py +requests==2.31.0 + # via github3-py six==1.16.0 # via python-dateutil uritemplate==4.1.1 - # via github3.py -urllib3==1.26.8 + # via github3-py +urllib3==2.2.1 # via requests -wrapt==1.13.3 - # via deprecated diff --git a/requirements/test.txt b/requirements/test.txt index 9c2efaa..2a8cd47 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,84 +1,91 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -asgiref==3.7.2 +asgiref==3.8.1 # via # -r requirements/base.txt # django -attrs==21.4.0 - # via pytest -coverage[toml]==6.3.1 +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/base.txt + # django +cachetools==5.3.3 + # via tox +chardet==5.2.0 + # via tox +colorama==0.4.6 + # via tox +coverage[toml]==7.4.4 # via pytest-cov -ddt==1.4.4 +ddt==1.7.2 # via -r requirements/test.in -distlib==0.3.4 +distlib==0.3.8 # via virtualenv # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt -django-waffle==2.3.0 + # django-waffle +django-waffle==4.1.0 # via -r requirements/test.in -filelock==3.4.2 +exceptiongroup==1.2.0 + # via pytest +filelock==3.13.3 # via # tox # virtualenv -iniconfig==1.1.1 +iniconfig==2.0.0 # via pytest -mock==4.0.3 +mock==5.1.0 # via -r requirements/test.in -packaging==21.3 +packaging==24.0 # via + # pyproject-api # pytest # tox -path==16.3.0 - # via path.py -path.py==12.5.0 +path==16.10.0 + # via path-py +path-py==12.5.0 # via -r requirements/test.in -platformdirs==2.4.1 - # via virtualenv -pluggy==1.0.0 +platformdirs==4.2.0 # via - # pytest # tox -py==1.11.0 + # virtualenv +pluggy==1.4.0 # via # pytest # tox -pyparsing==3.0.7 - # via packaging -pytest==6.2.5 +pyproject-api==1.6.1 + # via tox +pytest==8.1.1 # via # pytest-cov # pytest-django -pytest-cov==3.0.0 +pytest-cov==5.0.0 # via -r requirements/test.in -pytest-django==4.5.2 +pytest-django==4.8.0 # via -r requirements/test.in -pytz==2021.3 - # via - # -r requirements/base.txt - # django -pyyaml==6.0 +pyyaml==6.0.1 # via -r requirements/base.txt six==1.16.0 - # via - # -r requirements/base.txt - # tox - # virtualenv -sqlparse==0.4.2 + # via -r requirements/base.txt +sqlparse==0.4.4 # via # -r requirements/base.txt # django -toml==0.10.2 +tomli==2.0.1 # via + # coverage + # pyproject-api # pytest # tox -tomli==2.0.0 - # via coverage -tox==3.24.5 +tox==4.14.2 # via -r requirements/test.in -virtualenv==20.13.0 +typing-extensions==4.10.0 + # via + # -r requirements/base.txt + # asgiref +virtualenv==20.25.1 # via tox diff --git a/setup.py b/setup.py index afb6c7f..d1b5ce8 100644 --- a/setup.py +++ b/setup.py @@ -74,8 +74,8 @@ def get_version(*file_paths): 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.11', 'Framework :: Django', - 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.2', ], ) diff --git a/tox.ini b/tox.ini index 1201fc0..2e16c63 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django{32, 42} +envlist = py{38, 311}-django{42} [pycodestyle] exclude = .git,.tox,migrations @@ -14,23 +14,25 @@ DJANGO_SETTINGS_MODULE = settings norecursedirs = .* docs requirements [testenv] -setenv = +setenv = PYTHONPATH = {toxinidir} deps = - django32: Django>=3.2,<4.0 + setuptools django42: Django>=4.2,<4.3 -rrequirements/test.txt -rrequirements/scripts.txt -commands = + +commands = pytest {posargs} [testenv:quality] -allowlist_externals = +allowlist_externals = make rm deps = + setuptools -r{toxinidir}/requirements/quality.txt -commands = +commands = pycodestyle release_util manage.py setup.py pydocstyle release_util manage.py setup.py isort --check-only --diff release_util manage.py setup.py settings.py From e17a5338955d5a1eb53d864ef3e4932da1f5b782 Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Mon, 1 Apr 2024 14:49:57 +0500 Subject: [PATCH 2/4] feat: Update ci.yml --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70174ae..a9c5ccd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,6 +17,7 @@ jobs: python-version: - '3.8' - '3.11' + - '3.12' toxenv: [quality, django42] steps: From 85d1208e7c0f5fdbadc4733d49d3fef96643e7ea Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Mon, 1 Apr 2024 14:50:18 +0500 Subject: [PATCH 3/4] feat: Update tox.ini --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 2e16c63..0697fd4 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{38, 311}-django{42} +envlist = py{38, 312, 311}-django{42} [pycodestyle] exclude = .git,.tox,migrations From 9af35da485a9b3e9d9f5deff2559c1899282b2ca Mon Sep 17 00:00:00 2001 From: Awais Qureshi Date: Mon, 1 Apr 2024 14:51:18 +0500 Subject: [PATCH 4/4] feat: Update setup.py --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index d1b5ce8..630b47b 100644 --- a/setup.py +++ b/setup.py @@ -75,6 +75,7 @@ def get_version(*file_paths): 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', 'Framework :: Django', 'Framework :: Django :: 4.2', ],