From 1426761f801a3d1fffcad6fcf5fa84da43d80294 Mon Sep 17 00:00:00 2001 From: Muhammad Tayyab Tahir Qureshi Date: Fri, 2 May 2025 12:38:45 +0500 Subject: [PATCH 1/2] chore: Add support for python 3.11 and 3.12 - drop support for python versions older than 3.11 - bump version - upgrade requirements --- CHANGELOG.rst | 6 ++ repo_tools_data_schema/__init__.py | 2 +- requirements/base.txt | 8 +- requirements/ci.txt | 24 +++--- requirements/common_constraints.txt | 12 ++- requirements/dev.txt | 112 ++++++++++------------------ requirements/doc.txt | 106 ++++++++++++-------------- requirements/pip-tools.txt | 21 ++---- requirements/pip.txt | 12 +-- requirements/quality.txt | 74 +++++++----------- requirements/test.txt | 32 +++----- setup.py | 6 +- 12 files changed, 172 insertions(+), 243 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 8f0c278..6f5f7b4 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -10,6 +10,12 @@ Change Log This project adheres to Semantic Versioning (https://semver.org/). +2025-05-02 +~~~~~~~~~~ + +* Dropped support for Python versions older than 3.11 +* Added support for Python 3.11 and 3.12. + 2023-08-09 ~~~~~~~~~~ diff --git a/repo_tools_data_schema/__init__.py b/repo_tools_data_schema/__init__.py index 54cb240..6e0d5ba 100644 --- a/repo_tools_data_schema/__init__.py +++ b/repo_tools_data_schema/__init__.py @@ -2,6 +2,6 @@ Schema for repo-tools-data. """ -__version__ = '1.1' +__version__ = '1.2' from .repo_tools_data_schema import validate_orgs, validate_salesforce_export diff --git a/requirements/base.txt b/requirements/base.txt index 61cfa61..01c7caf 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,12 +1,10 @@ # -# 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 # -contextlib2==21.6.0 - # via schema -pyyaml==6.0.1 +pyyaml==6.0.2 # via -r requirements/base.in -schema==0.7.5 +schema==0.7.7 # via -r requirements/base.in diff --git a/requirements/ci.txt b/requirements/ci.txt index efd0814..c751932 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,38 +1,34 @@ # -# 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.2 +cachetools==5.5.2 # via tox chardet==5.2.0 # via tox colorama==0.4.6 # via tox -distlib==0.3.7 +distlib==0.3.9 # via virtualenv -filelock==3.13.1 +filelock==3.18.0 # via # tox # virtualenv -packaging==23.2 +packaging==25.0 # via # pyproject-api # tox -platformdirs==4.1.0 +platformdirs==4.3.7 # via # tox # virtualenv -pluggy==1.3.0 +pluggy==1.5.0 # via tox -pyproject-api==1.6.1 +pyproject-api==1.9.0 # via tox -tomli==2.0.1 - # via - # pyproject-api - # tox -tox==4.11.4 +tox==4.25.0 # via -r requirements/ci.in -virtualenv==20.25.0 +virtualenv==20.30.0 # via tox diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt index 15aafb2..1511019 100644 --- a/requirements/common_constraints.txt +++ b/requirements/common_constraints.txt @@ -11,13 +11,21 @@ # Note: Changes to this file will automatically be used by other repos, referencing # this file from Github directly. It does not require packaging in edx-lint. - # using LTS django version -Django<4.0 +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 + +# Cause: https://github.com/openedx/edx-lint/issues/458 +# This can be unpinned once https://github.com/openedx/edx-lint/issues/459 has been resolved. +pip<24.3 + +# Cause: https://github.com/openedx/edx-lint/issues/475 +# This can be unpinned once https://github.com/openedx/edx-lint/issues/476 has been resolved. +urllib3<2.3.0 diff --git a/requirements/dev.txt b/requirements/dev.txt index 740c4f0..37df36c 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,19 +1,19 @@ # -# 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.0.1 +astroid==3.3.9 # via # -r requirements/quality.txt # pylint # pylint-celery -build==1.0.3 +build==1.2.2.post1 # via # -r requirements/pip-tools.txt # pip-tools -cachetools==5.3.2 +cachetools==5.5.2 # via # -r requirements/ci.txt # tox @@ -22,7 +22,7 @@ chardet==5.2.0 # -r requirements/ci.txt # diff-cover # tox -click==8.1.7 +click==8.1.8 # via # -r requirements/pip-tools.txt # -r requirements/quality.txt @@ -34,7 +34,7 @@ click-log==0.4.0 # via # -r requirements/quality.txt # edx-lint -code-annotations==1.5.0 +code-annotations==2.3.0 # via # -r requirements/quality.txt # edx-lint @@ -42,54 +42,41 @@ colorama==0.4.6 # via # -r requirements/ci.txt # tox -contextlib2==21.6.0 +coverage[toml]==7.8.0 # via # -r requirements/quality.txt - # schema -coverage[toml]==7.3.2 - # via - # -r requirements/quality.txt - # coverage # pytest-cov -diff-cover==8.0.1 +diff-cover==9.2.4 # via -r requirements/dev.in -dill==0.3.7 +dill==0.4.0 # via # -r requirements/quality.txt # pylint -distlib==0.3.7 +distlib==0.3.9 # via # -r requirements/ci.txt # virtualenv -edx-lint==5.3.6 +edx-lint==5.6.0 # via -r requirements/quality.txt -exceptiongroup==1.2.0 - # via - # -r requirements/quality.txt - # pytest -filelock==3.13.1 +filelock==3.18.0 # via # -r requirements/ci.txt # tox # virtualenv -importlib-metadata==7.0.0 - # via - # -r requirements/pip-tools.txt - # build -iniconfig==2.0.0 +iniconfig==2.1.0 # via # -r requirements/quality.txt # pytest -isort==5.12.0 +isort==6.0.1 # via # -r requirements/quality.txt # pylint -jinja2==3.1.2 +jinja2==3.1.6 # via # -r requirements/quality.txt # code-annotations # diff-cover -markupsafe==2.1.3 +markupsafe==3.0.2 # via # -r requirements/quality.txt # jinja2 @@ -97,7 +84,7 @@ mccabe==0.7.0 # via # -r requirements/quality.txt # pylint -packaging==23.2 +packaging==25.0 # via # -r requirements/ci.txt # -r requirements/pip-tools.txt @@ -106,31 +93,31 @@ packaging==23.2 # pyproject-api # pytest # tox -pbr==6.0.0 +pbr==6.1.1 # via # -r requirements/quality.txt # stevedore -pip-tools==7.3.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.txt -platformdirs==4.1.0 +platformdirs==4.3.7 # via # -r requirements/ci.txt # -r requirements/quality.txt # pylint # tox # virtualenv -pluggy==1.3.0 +pluggy==1.5.0 # via # -r requirements/ci.txt # -r requirements/quality.txt # diff-cover # pytest # tox -pycodestyle==2.11.1 +pycodestyle==2.13.0 # via -r requirements/quality.txt -pygments==2.17.2 +pygments==2.19.1 # via diff-cover -pylint==3.0.2 +pylint==3.3.6 # via # -r requirements/quality.txt # edx-lint @@ -141,7 +128,7 @@ pylint-celery==0.3 # via # -r requirements/quality.txt # edx-lint -pylint-django==2.5.5 +pylint-django==2.6.1 # via # -r requirements/quality.txt # edx-lint @@ -150,35 +137,36 @@ pylint-plugin-utils==0.8.2 # -r requirements/quality.txt # pylint-celery # pylint-django -pyproject-api==1.6.1 +pyproject-api==1.9.0 # via # -r requirements/ci.txt # tox -pyproject-hooks==1.0.0 +pyproject-hooks==1.2.0 # via # -r requirements/pip-tools.txt # build -pytest==7.4.3 + # pip-tools +pytest==8.3.5 # via # -r requirements/quality.txt # pytest-cov -pytest-cov==4.1.0 +pytest-cov==6.1.1 # via -r requirements/quality.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via # -r requirements/quality.txt # code-annotations -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/quality.txt # code-annotations -schema==0.7.5 +schema==0.7.7 # via -r requirements/quality.txt -six==1.16.0 +six==1.17.0 # via # -r requirements/quality.txt # edx-lint -stevedore==5.1.0 +stevedore==5.4.1 # via # -r requirements/quality.txt # code-annotations @@ -186,42 +174,20 @@ text-unidecode==1.3 # via # -r requirements/quality.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/ci.txt - # -r requirements/pip-tools.txt - # -r requirements/quality.txt - # build - # coverage - # pip-tools - # pylint - # pyproject-api - # pyproject-hooks - # pytest - # tox -tomlkit==0.12.3 +tomlkit==0.13.2 # via # -r requirements/quality.txt # pylint -tox==4.11.4 +tox==4.25.0 # via -r requirements/ci.txt -typing-extensions==4.8.0 - # via - # -r requirements/quality.txt - # astroid - # pylint -virtualenv==20.25.0 +virtualenv==20.30.0 # via # -r requirements/ci.txt # tox -wheel==0.42.0 +wheel==0.45.1 # via # -r requirements/pip-tools.txt # pip-tools -zipp==3.17.0 - # via - # -r requirements/pip-tools.txt - # importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/doc.txt b/requirements/doc.txt index 1a3c1d6..66cb56c 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -1,134 +1,122 @@ # -# 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 -babel==2.13.1 +babel==2.17.0 # via # pydata-sphinx-theme # sphinx -beautifulsoup4==4.12.2 +beautifulsoup4==4.13.4 # via pydata-sphinx-theme -certifi==2023.11.17 +certifi==2025.4.26 # via requests -charset-normalizer==3.3.2 +charset-normalizer==3.4.1 # via requests -contextlib2==21.6.0 +coverage[toml]==7.8.0 # via # -r requirements/test.txt - # schema -coverage[toml]==7.3.2 - # via - # -r requirements/test.txt - # coverage # pytest-cov -doc8==1.1.1 +doc8==1.1.2 # via -r requirements/doc.in -docutils==0.19 +docutils==0.21.2 # via # doc8 # pydata-sphinx-theme # readme-renderer # restructuredtext-lint # sphinx -exceptiongroup==1.2.0 - # via - # -r requirements/test.txt - # pytest -idna==3.6 +idna==3.10 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==7.0.0 - # via sphinx -iniconfig==2.0.0 +iniconfig==2.1.0 # via # -r requirements/test.txt # pytest -jinja2==3.1.2 +jinja2==3.1.6 # via sphinx -markupsafe==2.1.3 +markupsafe==3.0.2 # via jinja2 -nh3==0.2.15 +nh3==0.2.21 # via readme-renderer -packaging==23.2 +packaging==25.0 # via # -r requirements/test.txt # pydata-sphinx-theme # pytest # sphinx -pbr==6.0.0 +pbr==6.1.1 # via stevedore -pluggy==1.3.0 +pluggy==1.5.0 # via # -r requirements/test.txt # pytest -pydata-sphinx-theme==0.14.4 +pydata-sphinx-theme==0.15.4 # via sphinx-book-theme -pygments==2.17.2 +pygments==2.19.1 # via # accessible-pygments # doc8 # pydata-sphinx-theme # readme-renderer # sphinx -pytest==7.4.3 +pytest==8.3.5 # via # -r requirements/test.txt # pytest-cov -pytest-cov==4.1.0 +pytest-cov==6.1.1 # via -r requirements/test.txt -pytz==2023.3.post1 - # via babel -pyyaml==6.0.1 +pyyaml==6.0.2 # via -r requirements/test.txt -readme-renderer==42.0 +readme-renderer==44.0 # via -r requirements/doc.in -requests==2.31.0 +requests==2.32.3 # via sphinx restructuredtext-lint==1.4.0 # via doc8 -schema==0.7.5 +roman-numerals-py==3.1.0 + # via sphinx +schema==0.7.7 # via -r requirements/test.txt snowballstemmer==2.2.0 # via sphinx -soupsieve==2.5 +soupsieve==2.7 # via beautifulsoup4 -sphinx==6.2.1 +sphinx==8.2.3 # via # -r requirements/doc.in # pydata-sphinx-theme # sphinx-book-theme -sphinx-book-theme==1.0.1 +sphinx-book-theme==1.1.4 # 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.1.0 +stevedore==5.4.1 # via doc8 -tomli==2.0.1 +typing-extensions==4.13.2 # via - # -r requirements/test.txt - # coverage - # doc8 - # pytest -typing-extensions==4.8.0 - # via pydata-sphinx-theme -urllib3==2.1.0 - # via requests -zipp==3.17.0 - # via importlib-metadata + # beautifulsoup4 + # pydata-sphinx-theme +urllib3==2.2.3 + # via + # -c requirements/common_constraints.txt + # requests + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 93a9cee..1dd71b5 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,30 +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 # -build==1.0.3 +build==1.2.2.post1 # via pip-tools -click==8.1.7 +click==8.1.8 # via pip-tools -importlib-metadata==7.0.0 +packaging==25.0 # via build -packaging==23.2 - # via build -pip-tools==7.3.0 +pip-tools==7.4.1 # via -r requirements/pip-tools.in -pyproject-hooks==1.0.0 - # via build -tomli==2.0.1 +pyproject-hooks==1.2.0 # via # build # pip-tools - # pyproject-hooks -wheel==0.42.0 +wheel==0.45.1 # via pip-tools -zipp==3.17.0 - # 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 14cb99c..f4ad6fd 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,14 +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 # -wheel==0.42.0 +wheel==0.45.1 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==23.3.1 - # via -r requirements/pip.in -setuptools==69.0.2 +pip==24.2 + # via + # -c requirements/common_constraints.txt + # -r requirements/pip.in +setuptools==80.1.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index a1ff522..a7bcf5f 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,68 +1,59 @@ # -# 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.0.1 +astroid==3.3.9 # via # pylint # pylint-celery -click==8.1.7 +click==8.1.8 # via # click-log # code-annotations # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.5.0 +code-annotations==2.3.0 # via edx-lint -contextlib2==21.6.0 +coverage[toml]==7.8.0 # via # -r requirements/test.txt - # schema -coverage[toml]==7.3.2 - # via - # -r requirements/test.txt - # coverage # pytest-cov -dill==0.3.7 +dill==0.4.0 # via pylint -edx-lint==5.3.6 +edx-lint==5.6.0 # via -r requirements/quality.in -exceptiongroup==1.2.0 - # via - # -r requirements/test.txt - # pytest -iniconfig==2.0.0 +iniconfig==2.1.0 # via # -r requirements/test.txt # pytest -isort==5.12.0 +isort==6.0.1 # via # -r requirements/quality.in # pylint -jinja2==3.1.2 +jinja2==3.1.6 # via code-annotations -markupsafe==2.1.3 +markupsafe==3.0.2 # via jinja2 mccabe==0.7.0 # via pylint -packaging==23.2 +packaging==25.0 # via # -r requirements/test.txt # pytest -pbr==6.0.0 +pbr==6.1.1 # via stevedore -platformdirs==4.1.0 +platformdirs==4.3.7 # via pylint -pluggy==1.3.0 +pluggy==1.5.0 # via # -r requirements/test.txt # pytest -pycodestyle==2.11.1 +pycodestyle==2.13.0 # via -r requirements/quality.in -pylint==3.0.2 +pylint==3.3.6 # via # edx-lint # pylint-celery @@ -70,41 +61,34 @@ pylint==3.0.2 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.5.5 +pylint-django==2.6.1 # via edx-lint pylint-plugin-utils==0.8.2 # via # pylint-celery # pylint-django -pytest==7.4.3 +pytest==8.3.5 # via # -r requirements/test.txt # pytest-cov -pytest-cov==4.1.0 +pytest-cov==6.1.1 # via -r requirements/test.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via code-annotations -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations -schema==0.7.5 +schema==0.7.7 # via -r requirements/test.txt -six==1.16.0 +six==1.17.0 # via edx-lint -stevedore==5.1.0 +stevedore==5.4.1 # via code-annotations text-unidecode==1.3 # via python-slugify -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # pylint - # pytest -tomlkit==0.12.3 +tomlkit==0.13.2 # via pylint -typing-extensions==4.8.0 - # via - # astroid - # pylint + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/test.txt b/requirements/test.txt index 05a3bd2..dafa964 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,34 +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 # -contextlib2==21.6.0 - # via - # -r requirements/base.txt - # schema -coverage[toml]==7.3.2 - # via - # coverage - # pytest-cov -exceptiongroup==1.2.0 - # via pytest -iniconfig==2.0.0 +coverage[toml]==7.8.0 + # via pytest-cov +iniconfig==2.1.0 # via pytest -packaging==23.2 +packaging==25.0 # via pytest -pluggy==1.3.0 +pluggy==1.5.0 # via pytest -pytest==7.4.3 +pytest==8.3.5 # via pytest-cov -pytest-cov==4.1.0 +pytest-cov==6.1.1 # via -r requirements/test.in -pyyaml==6.0.1 +pyyaml==6.0.2 # via -r requirements/base.txt -schema==0.7.5 +schema==0.7.7 # via -r requirements/base.txt -tomli==2.0.1 - # via - # coverage - # pytest diff --git a/setup.py b/setup.py index 8c52fb6..3d8e884 100755 --- a/setup.py +++ b/setup.py @@ -119,7 +119,7 @@ def is_requirement(line): ], include_package_data=True, install_requires=load_requirements('requirements/base.in'), - python_requires=">=3.5", + python_requires=">=3.11", license="Apache Software License 2.0", zip_safe=False, keywords='Python edx', @@ -129,7 +129,7 @@ def is_requirement(line): 'License :: OSI Approved :: Apache Software License', 'Natural Language :: English', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', ], ) From 6aef93a09650dc406d45bf39d7795bc1b193f780 Mon Sep 17 00:00:00 2001 From: Muhammad Tayyab Tahir Qureshi Date: Wed, 14 May 2025 11:46:40 +0500 Subject: [PATCH 2/2] chore: bump major version --- repo_tools_data_schema/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repo_tools_data_schema/__init__.py b/repo_tools_data_schema/__init__.py index 6e0d5ba..4f842ba 100644 --- a/repo_tools_data_schema/__init__.py +++ b/repo_tools_data_schema/__init__.py @@ -2,6 +2,6 @@ Schema for repo-tools-data. """ -__version__ = '1.2' +__version__ = '2.0' from .repo_tools_data_schema import validate_orgs, validate_salesforce_export