Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changes/next-release/feature-Python-58002.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "feature",
"category": "Python",
"description": "End of support for Python 3.8"
}
2 changes: 1 addition & 1 deletion .github/workflows/run-dep-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
3 changes: 1 addition & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 <https://peps.python.org/pep-0569/#lifespan>`__
for the runtime which occurred on 2024-10-07.
For more information, see this `blog post <https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/>`__.
Expand Down
21 changes: 11 additions & 10 deletions UPGRADE_PY3.md
Original file line number Diff line number Diff line change
Expand Up @@ -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|
Expand All @@ -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

Expand All @@ -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
Expand All @@ -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.
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion requirements-dev-lock.txt
Original file line number Diff line number Diff line change
@@ -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
Expand Down
3 changes: 0 additions & 3 deletions requirements-docs.txt
Original file line number Diff line number Diff line change
@@ -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 .
5 changes: 3 additions & 2 deletions scripts/install
Original file line number Diff line number Diff line change
Expand Up @@ -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 '
Expand Down Expand Up @@ -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-"
Expand All @@ -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']
Expand Down
3 changes: 1 addition & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand All @@ -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',
Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tox]
envlist = py38,py39,py310,py311,py312
envlist = py39,py310,py311,py312

skipsdist = True

Expand Down