From 159a53dd84ba875ff0162167b6ef5c6b578478ae Mon Sep 17 00:00:00 2001 From: Usama Sadiq Date: Wed, 6 Mar 2024 15:00:57 +0500 Subject: [PATCH] fix: install backports-zoneinfo only for python<3.9 --- Makefile | 12 ++++++------ requirements/base.in | 1 + requirements/ci.txt | 6 ++++-- requirements/constraints.txt | 4 ++++ requirements/dev.in | 4 +++- requirements/dev.txt | 23 +++++++++++++++++------ requirements/doc.in | 3 +++ requirements/doc.txt | 15 +++++++++++++-- requirements/pip-tools.txt | 6 ++++-- requirements/quality.in | 1 + requirements/quality.txt | 4 ++++ requirements/test.in | 1 + requirements/test.txt | 11 +++++++++-- tox.ini | 8 ++++---- 14 files changed, 74 insertions(+), 25 deletions(-) diff --git a/Makefile b/Makefile index 1738f422..472c1184 100644 --- a/Makefile +++ b/Makefile @@ -44,14 +44,14 @@ upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade upgrade: ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in pip install -qr requirements/pip-tools.txt pip-compile --allow-unsafe --rebuild --upgrade -o requirements/pip.txt requirements/pip.in - pip-compile --upgrade -o requirements/pip-tools.txt requirements/pip-tools.in + pip-compile --allow-unsafe --upgrade -o requirements/pip-tools.txt requirements/pip-tools.in pip install -qr requirements/pip.txt pip install -qr requirements/pip-tools.txt - pip-compile --rebuild --upgrade -o requirements/dev.txt requirements/base.in requirements/dev.in requirements/quality.in - pip-compile --rebuild --upgrade -o requirements/doc.txt requirements/base.in requirements/doc.in - pip-compile --rebuild --upgrade -o requirements/quality.txt requirements/quality.in - pip-compile --rebuild --upgrade -o requirements/test.txt requirements/base.in requirements/test.in - pip-compile --rebuild --upgrade -o requirements/ci.txt requirements/ci.in + pip-compile --allow-unsafe --rebuild --upgrade -o requirements/dev.txt requirements/base.in requirements/dev.in requirements/quality.in + pip-compile --allow-unsafe --rebuild --upgrade -o requirements/doc.txt requirements/base.in requirements/doc.in + pip-compile --allow-unsafe --rebuild --upgrade -o requirements/quality.txt requirements/quality.in + pip-compile --allow-unsafe --rebuild --upgrade -o requirements/test.txt requirements/base.in requirements/test.in + pip-compile --allow-unsafe --rebuild --upgrade -o requirements/ci.txt requirements/ci.in # Let tox control the Django version for tests sed '/^django==/d' requirements/test.txt > requirements/test.tmp mv requirements/test.tmp requirements/test.txt diff --git a/requirements/base.in b/requirements/base.in index e15b53b9..5d8c05cc 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -7,3 +7,4 @@ attrs>=17.2.0 # Attributes without boilerplate sailthru-client==2.2.3 six stevedore>=1.10.0 +setuptools diff --git a/requirements/ci.txt b/requirements/ci.txt index 127e7293..97015512 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -32,7 +32,9 @@ tomli==2.0.1 # via # pyproject-api # tox -tox==4.14.0 - # via -r requirements/ci.in +tox==4.13.0 + # via + # -c requirements/constraints.txt + # -r requirements/ci.in virtualenv==20.25.1 # via tox diff --git a/requirements/constraints.txt b/requirements/constraints.txt index d91704bb..e9040274 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -10,3 +10,7 @@ # Common constraints for edx repos -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + +backports.zoneinfo==0.2.1; python_version<'3.9' + +tox==4.13.0 diff --git a/requirements/dev.in b/requirements/dev.in index 80a3970d..7bec8e25 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -8,4 +8,6 @@ edx-i18n-tools # For i18n_tool dummy pip-tools # Requirements file management tox # virtualenv management for tests twine # Utility for PyPI package uploads -wheel # For generation of wheels for PyPI \ No newline at end of file +wheel # For generation of wheels for PyPI +backports.zoneinfo; python_version<'3.9' # Needed for Python 3.12 compatibility +setuptools diff --git a/requirements/dev.txt b/requirements/dev.txt index 1064e255..3c11d015 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -12,8 +12,12 @@ astroid==3.1.0 # pylint-celery attrs==23.2.0 # via -r requirements/base.in -backports-zoneinfo==0.2.1 - # via django +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/dev.in + # -r requirements/quality.in + # django build==1.1.1 # via pip-tools cachetools==5.3.3 @@ -199,8 +203,10 @@ tomli==2.0.1 # tox tomlkit==0.12.4 # via pylint -tox==4.14.0 - # via -r requirements/dev.in +tox==4.13.0 + # via + # -c requirements/constraints.txt + # -r requirements/dev.in twine==5.0.0 # via -r requirements/dev.in typing-extensions==4.10.0 @@ -225,5 +231,10 @@ zipp==3.17.0 # importlib-resources # 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 + # -r requirements/base.in + # -r requirements/dev.in + # pip-tools diff --git a/requirements/doc.in b/requirements/doc.in index e26b75f0..44b2b9f3 100644 --- a/requirements/doc.in +++ b/requirements/doc.in @@ -7,3 +7,6 @@ sphinx-book-theme # Common theme for all Open edX projects readme_renderer # Validates README.rst for usage on PyPI Sphinx # Documentation builder twine +backports.zoneinfo; python_version<'3.9' # Needed for Python 3.12 compatibility +setuptools +wheel diff --git a/requirements/doc.txt b/requirements/doc.txt index e820d73f..c3d8c509 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -16,8 +16,11 @@ babel==2.14.0 # via # pydata-sphinx-theme # sphinx -backports-zoneinfo==0.2.1 - # via django +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/doc.in + # django beautifulsoup4==4.12.3 # via pydata-sphinx-theme certifi==2024.2.2 @@ -154,7 +157,15 @@ urllib3==2.2.1 # via # requests # twine +wheel==0.42.0 + # via -r requirements/doc.in zipp==3.17.0 # via # importlib-metadata # importlib-resources + +# The following packages are considered to be unsafe in a requirements file: +setuptools==69.1.1 + # via + # -r requirements/base.in + # -r requirements/doc.in diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 8528adba..11fddc87 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -29,5 +29,7 @@ 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/quality.in b/requirements/quality.in index d375c7b9..58465891 100644 --- a/requirements/quality.in +++ b/requirements/quality.in @@ -6,3 +6,4 @@ edx-lint # edX pylint rules and plugins isort # to standardize order of imports pycodestyle # PEP 8 compliance validation pydocstyle # PEP 257 compliance validation +backports.zoneinfo; python_version<'3.9' # Needed for Python 3.12 compatibility diff --git a/requirements/quality.txt b/requirements/quality.txt index bd1b0a6b..30921d25 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -8,6 +8,10 @@ astroid==3.1.0 # via # pylint # pylint-celery +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/quality.in click==8.1.7 # via # click-log diff --git a/requirements/test.in b/requirements/test.in index fca06233..51678531 100644 --- a/requirements/test.in +++ b/requirements/test.in @@ -10,3 +10,4 @@ mock pudb # For easier test debugging hypothesis[pytz] # For property-based testing hypothesis-pytest +backports.zoneinfo; python_version<'3.9' # Needed for Python 3.12 compatibility diff --git a/requirements/test.txt b/requirements/test.txt index 2048f19c..de1bc068 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -10,8 +10,11 @@ attrs==23.2.0 # via # -r requirements/base.in # hypothesis -backports-zoneinfo==0.2.1 - # via django +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # -r requirements/test.in + # django certifi==2024.2.2 # via requests charset-normalizer==3.3.2 @@ -109,3 +112,7 @@ wcwidth==0.2.13 # via urwid zipp==3.17.0 # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +setuptools==69.1.1 + # via -r requirements/base.in diff --git a/tox.ini b/tox.ini index cc4bbbfc..fd92126d 100644 --- a/tox.ini +++ b/tox.ini @@ -4,9 +4,7 @@ envlist = py{38, 312}-django{42}, quality [testenv] deps = django42: Django>=4.2,<4.3 - quality: Django>=4.2,<4.3 -r{toxinidir}/requirements/test.txt - -r{toxinidir}/requirements/quality.txt commands = python -Wd -m pytest {posargs} @@ -31,7 +29,10 @@ commands = setenv = DJANGO_SETTINGS_MODULE=test_settings PYTHONPATH = {toxinidir}/:{toxinidir}/edx_ace -basepython = python3.8 +deps = + quality: Django>=4.2,<4.3 + -r{toxinidir}/requirements/test.txt + -r{toxinidir}/requirements/quality.txt allowlist_externals = make rm @@ -43,4 +44,3 @@ commands = pycodestyle edx_ace isort --check-only --diff edx_ace manage.py setup.py test_settings.py make selfcheck -