diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4d55506ea2..a98424ebd6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,7 +38,7 @@ jobs: # https://github.com/actions/setup-python uses: actions/setup-python@v3 with: - python-version: 3.8 + python-version: 3.9 cache: 'pip' cache-dependency-path: requirements/dev.txt - name: Upgrade pip and setuptools diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 904f82b563..b982239229 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.8', '3.12'] + python-version: ['3.9', '3.12'] steps: - uses: actions/checkout@v3 - name: Set up Python diff --git a/changelog.d/20241111_163102_dawoud.sheraz_remove_py38_references.md b/changelog.d/20241111_163102_dawoud.sheraz_remove_py38_references.md new file mode 100644 index 0000000000..aeead7e20c --- /dev/null +++ b/changelog.d/20241111_163102_dawoud.sheraz_remove_py38_references.md @@ -0,0 +1 @@ +- 💥 [Deprecation] Drop support for python 3.8 and set Python 3.9 as the minimum supported python version. (by @DawoudSheraz) diff --git a/requirements/base.txt b/requirements/base.txt index c70b6d067e..f748abba40 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,36 +1,38 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile requirements/base.in # appdirs==1.4.4 # via -r requirements/base.in -cachetools==5.3.2 +cachetools==5.5.0 # via google-auth -certifi==2024.7.4 +certifi==2024.8.30 # via # kubernetes # requests -charset-normalizer==3.3.1 +charset-normalizer==3.4.0 # via requests click==8.1.7 # via -r requirements/base.in -google-auth==2.23.3 +durationpy==0.9 # via kubernetes -idna==3.7 +google-auth==2.35.0 + # via kubernetes +idna==3.10 # via requests -importlib-metadata==7.0.1 +importlib-metadata==8.5.0 # via -r requirements/base.in -importlib-resources==6.1.1 +importlib-resources==6.4.5 # via -r requirements/base.in jinja2==3.1.4 # via -r requirements/base.in -kubernetes==28.1.0 +kubernetes==31.0.0 # via -r requirements/base.in -markupsafe==2.1.3 +markupsafe==3.0.2 # via jinja2 -mypy==1.6.1 +mypy==1.13.0 # via -r requirements/base.in mypy-extensions==1.0.0 # via mypy @@ -40,17 +42,17 @@ oauthlib==3.2.2 # requests-oauthlib packaging==24.1 # via -r requirements/base.in -pyasn1==0.5.0 +pyasn1==0.6.1 # via # pyasn1-modules # rsa -pyasn1-modules==0.3.0 +pyasn1-modules==0.4.1 # via google-auth -pycryptodome==3.20.0 +pycryptodome==3.21.0 # via -r requirements/base.in -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via kubernetes -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/base.in # kubernetes @@ -58,7 +60,7 @@ requests==2.32.3 # via # kubernetes # requests-oauthlib -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via kubernetes rsa==4.9 # via google-auth @@ -66,19 +68,19 @@ six==1.16.0 # via # kubernetes # python-dateutil -tomli==2.0.1 +tomli==2.0.2 # via mypy -typing-extensions==4.8.0 +typing-extensions==4.12.2 # via # -r requirements/base.in # mypy -urllib3==1.26.19 +urllib3==2.2.3 # via # kubernetes # requests -websocket-client==1.6.4 +websocket-client==1.8.0 # via kubernetes -zipp==3.19.2 +zipp==3.20.2 # via # importlib-metadata # importlib-resources diff --git a/requirements/dev.txt b/requirements/dev.txt index bfa87b9179..205b2710f0 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,33 +1,35 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile requirements/dev.in # altgraph==0.17.4 - # via pyinstaller + # via + # macholib + # pyinstaller appdirs==1.4.4 # via -r requirements/base.txt -astroid==3.0.1 +astroid==3.3.5 # via pylint -attrs==23.1.0 +attrs==24.2.0 # via scriv -black==24.4.2 +backports-tarfile==1.2.0 + # via jaraco-context +black==24.10.0 # via -r requirements/dev.in -build==1.0.3 +build==1.2.2.post1 # via pip-tools -cachetools==5.3.2 +cachetools==5.5.0 # via # -r requirements/base.txt # google-auth -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/base.txt # kubernetes # requests -cffi==1.16.0 - # via cryptography -charset-normalizer==3.3.1 +charset-normalizer==3.4.0 # via # -r requirements/base.txt # requests @@ -40,56 +42,59 @@ click==8.1.7 # scriv click-log==0.4.0 # via scriv -coverage==7.3.2 +coverage==7.6.4 # via -r requirements/dev.in -cryptography==43.0.1 - # via secretstorage -dill==0.3.7 +dill==0.3.9 # via pylint docutils==0.18.1 # via # -r requirements/dev.in # readme-renderer -google-auth==2.23.3 +durationpy==0.9 + # via + # -r requirements/base.txt + # kubernetes +google-auth==2.35.0 # via # -r requirements/base.txt # kubernetes -idna==3.7 +idna==3.10 # via # -r requirements/base.txt # requests -importlib-metadata==7.0.1 +importlib-metadata==8.5.0 # via # -r requirements/base.txt # build # keyring # pyinstaller + # pyinstaller-hooks-contrib # twine -importlib-resources==6.1.1 - # via - # -r requirements/base.txt - # keyring -isort==5.12.0 +importlib-resources==6.4.5 + # via -r requirements/base.txt +isort==5.13.2 # via pylint -jaraco-classes==3.3.0 +jaraco-classes==3.4.0 + # via keyring +jaraco-context==6.0.1 + # via keyring +jaraco-functools==4.1.0 # via keyring -jeepney==0.8.0 - # via - # keyring - # secretstorage jinja2==3.1.4 # via # -r requirements/base.txt # scriv -keyring==24.2.0 +keyring==25.5.0 # via twine -kubernetes==28.1.0 +kubernetes==31.0.0 # via -r requirements/base.txt +macholib==1.16.3 + # via pyinstaller markdown-it-py==3.0.0 # via # rich # scriv -markupsafe==2.1.3 +markupsafe==3.0.2 # via # -r requirements/base.txt # jinja2 @@ -97,16 +102,18 @@ mccabe==0.7.0 # via pylint mdurl==0.1.2 # via markdown-it-py -more-itertools==10.1.0 - # via jaraco-classes -mypy==1.6.1 +more-itertools==10.5.0 + # via + # jaraco-classes + # jaraco-functools +mypy==1.13.0 # via -r requirements/base.txt mypy-extensions==1.0.0 # via # -r requirements/base.txt # black # mypy -nh3==0.2.14 +nh3==0.2.18 # via readme-renderer oauthlib==3.2.2 # via @@ -119,50 +126,51 @@ packaging==24.1 # black # build # pyinstaller -pathspec==0.11.2 + # pyinstaller-hooks-contrib +pathspec==0.12.1 # via black -pip-tools==7.3.0 +pip-tools==7.4.1 # via -r requirements/dev.in -pkginfo==1.9.6 +pkginfo==1.10.0 # via twine -platformdirs==3.11.0 +platformdirs==4.3.6 # via # black # pylint -pyasn1==0.5.0 +pyasn1==0.6.1 # via # -r requirements/base.txt # pyasn1-modules # rsa -pyasn1-modules==0.3.0 +pyasn1-modules==0.4.1 # via # -r requirements/base.txt # google-auth -pycparser==2.21 - # via cffi -pycryptodome==3.20.0 +pycryptodome==3.21.0 # via -r requirements/base.txt -pygments==2.16.1 +pygments==2.18.0 # via # readme-renderer # rich -pyinstaller==6.1.0 +pyinstaller==6.11.0 # via -r requirements/dev.in -pyinstaller-hooks-contrib==2023.10 +pyinstaller-hooks-contrib==2024.9 # via pyinstaller -pylint==3.0.2 +pylint==3.3.1 # via -r requirements/dev.in -pyproject-hooks==1.0.0 - # via build -python-dateutil==2.8.2 +pyproject-hooks==1.2.0 + # via + # build + # pip-tools +python-dateutil==2.9.0.post0 # via # -r requirements/base.txt # kubernetes -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/base.txt # kubernetes -readme-renderer==42.0 +readme-renderer==43.0 # via twine requests==2.32.3 # via @@ -172,7 +180,7 @@ requests==2.32.3 # requests-toolbelt # scriv # twine -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via # -r requirements/base.txt # kubernetes @@ -180,22 +188,20 @@ requests-toolbelt==1.0.0 # via twine rfc3986==2.0.0 # via twine -rich==13.6.0 +rich==13.9.3 # via twine rsa==4.9 # via # -r requirements/base.txt # google-auth -scriv==1.5.0 +scriv==1.5.1 # via -r requirements/dev.in -secretstorage==3.3.3 - # via keyring six==1.16.0 # via # -r requirements/base.txt # kubernetes # python-dateutil -tomli==2.0.1 +tomli==2.0.2 # via # -r requirements/base.txt # black @@ -203,18 +209,17 @@ tomli==2.0.1 # mypy # pip-tools # pylint - # pyproject-hooks -tomlkit==0.12.1 +tomlkit==0.13.2 # via pylint -twine==4.0.2 +twine==5.1.1 # via -r requirements/dev.in -types-docutils==0.20.0.3 +types-docutils==0.21.0.20241005 # via -r requirements/dev.in -types-pyyaml==6.0.12.12 +types-pyyaml==6.0.12.20240917 # via -r requirements/dev.in -types-setuptools==68.2.0.0 +types-setuptools==75.2.0.20241025 # via -r requirements/dev.in -typing-extensions==4.8.0 +typing-extensions==4.12.2 # via # -r requirements/base.txt # astroid @@ -222,19 +227,19 @@ typing-extensions==4.8.0 # mypy # pylint # rich -urllib3==1.26.19 +urllib3==2.2.3 # via # -r requirements/base.txt # kubernetes # requests # twine -websocket-client==1.6.4 +websocket-client==1.8.0 # via # -r requirements/base.txt # kubernetes -wheel==0.41.2 +wheel==0.44.0 # via pip-tools -zipp==3.19.2 +zipp==3.20.2 # via # -r requirements/base.txt # importlib-metadata diff --git a/requirements/docs.in b/requirements/docs.in index 1732d9b76f..79c02e20e3 100644 --- a/requirements/docs.in +++ b/requirements/docs.in @@ -1,6 +1,4 @@ -r base.txt -# Python 3.8 support was dropped in 7.2.0 -# https://github.com/sphinx-doc/sphinx/pull/11511 -sphinx<7.2.0 +sphinx sphinx-rtd-theme sphinx-click diff --git a/requirements/docs.txt b/requirements/docs.txt index 6f1282338e..055c683a98 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,25 +1,25 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile requirements/docs.in # -alabaster==0.7.13 +alabaster==0.7.16 # via sphinx appdirs==1.4.4 # via -r requirements/base.txt -babel==2.13.1 +babel==2.16.0 # via sphinx -cachetools==5.3.2 +cachetools==5.5.0 # via # -r requirements/base.txt # google-auth -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/base.txt # kubernetes # requests -charset-normalizer==3.3.1 +charset-normalizer==3.4.0 # via # -r requirements/base.txt # requests @@ -27,38 +27,42 @@ click==8.1.7 # via # -r requirements/base.txt # sphinx-click -docutils==0.18.1 +docutils==0.21.2 # via # sphinx # sphinx-click # sphinx-rtd-theme -google-auth==2.23.3 +durationpy==0.9 # via # -r requirements/base.txt # kubernetes -idna==3.7 +google-auth==2.35.0 + # via + # -r requirements/base.txt + # kubernetes +idna==3.10 # via # -r requirements/base.txt # requests imagesize==1.4.1 # via sphinx -importlib-metadata==7.0.1 +importlib-metadata==8.5.0 # via # -r requirements/base.txt # sphinx -importlib-resources==6.1.1 +importlib-resources==6.4.5 # via -r requirements/base.txt jinja2==3.1.4 # via # -r requirements/base.txt # sphinx -kubernetes==28.1.0 +kubernetes==31.0.0 # via -r requirements/base.txt -markupsafe==2.1.3 +markupsafe==3.0.2 # via # -r requirements/base.txt # jinja2 -mypy==1.6.1 +mypy==1.13.0 # via -r requirements/base.txt mypy-extensions==1.0.0 # via @@ -73,26 +77,24 @@ packaging==24.1 # via # -r requirements/base.txt # sphinx -pyasn1==0.5.0 +pyasn1==0.6.1 # via # -r requirements/base.txt # pyasn1-modules # rsa -pyasn1-modules==0.3.0 +pyasn1-modules==0.4.1 # via # -r requirements/base.txt # google-auth -pycryptodome==3.20.0 +pycryptodome==3.21.0 # via -r requirements/base.txt -pygments==2.16.1 +pygments==2.18.0 # via sphinx -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -r requirements/base.txt # kubernetes -pytz==2023.3.post1 - # via babel -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r requirements/base.txt # kubernetes @@ -102,7 +104,7 @@ requests==2.32.3 # kubernetes # requests-oauthlib # sphinx -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via # -r requirements/base.txt # kubernetes @@ -117,48 +119,49 @@ six==1.16.0 # python-dateutil snowballstemmer==2.2.0 # via sphinx -sphinx==7.1.2 +sphinx==7.4.7 # via # -r requirements/docs.in # sphinx-click # sphinx-rtd-theme # sphinxcontrib-jquery -sphinx-click==5.0.1 +sphinx-click==6.0.0 # via -r requirements/docs.in -sphinx-rtd-theme==1.3.0 +sphinx-rtd-theme==3.0.1 # via -r requirements/docs.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-jquery==4.1 # via sphinx-rtd-theme 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 -tomli==2.0.1 +tomli==2.0.2 # via # -r requirements/base.txt # mypy -typing-extensions==4.8.0 + # sphinx +typing-extensions==4.12.2 # via # -r requirements/base.txt # mypy -urllib3==1.26.19 +urllib3==2.2.3 # via # -r requirements/base.txt # kubernetes # requests -websocket-client==1.6.4 +websocket-client==1.8.0 # via # -r requirements/base.txt # kubernetes -zipp==3.19.2 +zipp==3.20.2 # via # -r requirements/base.txt # importlib-metadata diff --git a/setup.py b/setup.py index f9da35466a..50a182bf59 100644 --- a/setup.py +++ b/setup.py @@ -56,7 +56,7 @@ def is_requirement(line: str) -> bool: long_description_content_type="text/x-rst", packages=find_packages(exclude=["tests*"]), include_package_data=True, - python_requires=">=3.8", + python_requires=">=3.9", install_requires=load_requirements("base.in"), extras_require={ "dev": load_requirements("dev.txt"), @@ -69,7 +69,6 @@ def is_requirement(line: str) -> bool: "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: OS Independent", "Programming Language :: Python", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11",