diff --git a/.changes/next-release/feature-Python-58002.json b/.changes/next-release/feature-Python-58002.json new file mode 100644 index 000000000000..21bb425bbb14 --- /dev/null +++ b/.changes/next-release/feature-Python-58002.json @@ -0,0 +1,5 @@ +{ + "type": "feature", + "category": "Python", + "description": "End of support for Python 3.8" +} diff --git a/.github/workflows/run-dep-tests.yml b/.github/workflows/run-dep-tests.yml index 3ef275a63fe9..4c9945164bff 100644 --- a/.github/workflows/run-dep-tests.yml +++ b/.github/workflows/run-dep-tests.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["3.9", "3.10", "3.11", "3.12"] os: [ubuntu-latest, macOS-latest, windows-latest] steps: diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index de97def56012..c1cb09625f27 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["3.9", "3.10", "3.11", "3.12"] os: [ubuntu-latest, macOS-latest, windows-latest] steps: diff --git a/README.rst b/README.rst index 7daa93606f72..a04fa727474a 100644 --- a/README.rst +++ b/README.rst @@ -26,7 +26,6 @@ Requirements The aws-cli package works on Python versions: -- 3.8.x and greater - 3.9.x and greater - 3.10.x and greater - 3.11.x and greater @@ -35,7 +34,7 @@ The aws-cli package works on Python versions: Notices ~~~~~~~ -On 2025-04-22, support for Python 3.8 will end for the AWS CLI. This follows the +On 2025-04-22, support for Python 3.8 ended for the AWS CLI. This follows the Python Software Foundation `end of support `__ for the runtime which occurred on 2024-10-07. For more information, see this `blog post `__. diff --git a/UPGRADE_PY3.md b/UPGRADE_PY3.md index a2ed2f39bc3f..e92ee61dd23e 100644 --- a/UPGRADE_PY3.md +++ b/UPGRADE_PY3.md @@ -15,7 +15,7 @@ v1. You can upgrade to the AWS CLI v2 to avoid these deprecations in the future. ---- ## Timeline -Going forward, customers using the CLI v1 should transition to using Python 3, with Python 3.8 becoming +Going forward, customers using the CLI v1 should transition to using Python 3, with Python 3.9 becoming the minimum by the end of the transition. The deprecation dates for the affected versions of Python are: |Python version|Deprecation date| @@ -24,6 +24,7 @@ the minimum by the end of the transition. The deprecation dates for the affected | Python 3.4 and 3.5| 2/1/2021| | Python 3.6| 5/30/2022| | Python 3.7| 12/13/2023| +| Python 3.8| 4/22/2025| ## Impact on the AWS CLI @@ -49,7 +50,7 @@ $ aws --version aws-cli/1.18.191 Python/2.7.18 Darwin/19.6.0 botocore/1.19.31 ``` -If the second portion of the version string, starting with **Python/** isn’t Python/3.8.x +If the second portion of the version string, starting with **Python/** isn’t Python/3.9.x or higher, you should review the options below. ### Installing CLI with Python 3 @@ -62,20 +63,20 @@ Otherwise, upgrading Python versions isn’t difficult. 1. To begin, uninstall your existing copy of the AWS CLI. You can find instructions in the [CLI v1 installation guide](https://docs.aws.amazon.com/cli/latest/userguide/install-linux.html). -2. Now we’ll install Python 3.8 or later. You can get Python from +2. Now we’ll install Python 3.9 or later. You can get Python from [Python.org](https://www.python.org/downloads) or using your local package manager. -In this example, we’ll use a recent version, Python 3.8.7, to ensure the longest support window. +In this example, we’ll use a recent version, Python 3.9.22, to ensure the longest support window. 3. Next, depending on your installation method, the new Python installation should be available at one of these locations. Use these commands to verify: ```bash $ python --version - Python 3.8.7 + Python 3.9.22 $ python3 --version - Python 3.8.7 + Python 3.9.22 - $ python3.8 --version - Python 3.8.7 + $ python3.9 --version + Python 3.9.22 ``` 5. Here, we're using the **python** command from above to make sure we're installing with the right version. Use whichever alias provided the desired Python version. @@ -89,11 +90,11 @@ $ python awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws 7. If you wish, you may verify that the newly installed copy of the AWS CLI tool, **aws**, is using the correct version of Python. The **aws --version** command reports the **aws** tool's version number, followed by the version of Python it's running under, then the operating system -version and the version of botocore. As long as the Python version is at least 3.8, +version and the version of botocore. As long as the Python version is at least 3.9, you're ready to go: ```bash $ aws --version - aws-cli/1.18.191 Python/3.8.7 Darwin/19.6.0 botocore/1.19.31 + aws-cli/1.18.191 Python/3.9.22 Darwin/19.6.0 botocore/1.19.31 ``` ## If you're unable to upgrade to Python 3 diff --git a/requirements-dev-lock.txt b/requirements-dev-lock.txt index a08692febdd9..0462fc9ee3d5 100644 --- a/requirements-dev-lock.txt +++ b/requirements-dev-lock.txt @@ -1,5 +1,5 @@ # -# 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 --allow-unsafe --generate-hashes --output-file=requirements-dev-lock.txt requirements-dev.txt diff --git a/requirements-docs.txt b/requirements-docs.txt index daa46281e1de..29a5368e3317 100644 --- a/requirements-docs.txt +++ b/requirements-docs.txt @@ -1,7 +1,4 @@ Jinja2<3.1.0 docutils>=0.18.1,<=0.19 Sphinx==6.2 -# Sphinx 6.2.0 requires alabaster>=0.7,<0.8 -# Using <0.7.14 since alabaster 0.7.14+ dropped Python 3.8 support -alabaster>0.7,<0.7.14 -e . diff --git a/scripts/install b/scripts/install index 9d4de2b13bcb..cac852f01f64 100755 --- a/scripts/install +++ b/scripts/install @@ -28,6 +28,7 @@ UNSUPPORTED_PYTHON = ( (3,5), (3,6), (3,7), + (3,8), ) INSTALL_ARGS = ( '--no-binary :all: --no-build-isolation --no-cache-dir --no-index ' @@ -208,7 +209,7 @@ def main(): if py_version in UNSUPPORTED_PYTHON: unsupported_python_msg = ( "Unsupported Python version detected: Python {}.{}\n" - "To continue using this installer you must use Python 3.8 " + "To continue using this installer you must use Python 3.9 " "or later.\n" "For more information see the following blog post: " "https://aws.amazon.com/blogs/developer/announcing-end-" @@ -224,7 +225,7 @@ def main(): "Deprecated Python version detected: Python {}.{}\n" "Starting {}, the AWS CLI will no longer support " "this version of Python. To continue receiving service updates, " - "bug fixes, and security updates please upgrade to Python 3.8 or " + "bug fixes, and security updates please upgrade to Python 3.9 or " "later. More information can be found here: {}" ).format( py_version[0], py_version[1], params['date'], params['blog_link'] diff --git a/setup.py b/setup.py index d58507503aa1..c8a33ceaf688 100644 --- a/setup.py +++ b/setup.py @@ -48,7 +48,7 @@ def find_version(*file_paths): install_requires=install_requires, extras_require={}, license="Apache License 2.0", - python_requires=">= 3.8", + python_requires=">= 3.9", classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', @@ -58,7 +58,6 @@ def find_version(*file_paths): 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3 :: Only', - 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', diff --git a/tox.ini b/tox.ini index 9014a42fe64d..419e1a360d1f 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38,py39,py310,py311,py312 +envlist = py39,py310,py311,py312 skipsdist = True