Skip to content

Commit f808859

Browse files
authored
Deprecate Python 3.8 support (#9441)
1 parent 8c67cd2 commit f808859

File tree

10 files changed

+25
-23
lines changed

10 files changed

+25
-23
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"type": "feature",
3+
"category": "Python",
4+
"description": "End of support for Python 3.8"
5+
}

.github/workflows/run-dep-tests.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
15+
python-version: ["3.9", "3.10", "3.11", "3.12"]
1616
os: [ubuntu-latest, macOS-latest, windows-latest]
1717

1818
steps:

.github/workflows/run-tests.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
15+
python-version: ["3.9", "3.10", "3.11", "3.12"]
1616
os: [ubuntu-latest, macOS-latest, windows-latest]
1717

1818
steps:

README.rst

+1-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ Requirements
2626

2727
The aws-cli package works on Python versions:
2828

29-
- 3.8.x and greater
3029
- 3.9.x and greater
3130
- 3.10.x and greater
3231
- 3.11.x and greater
@@ -35,7 +34,7 @@ The aws-cli package works on Python versions:
3534
Notices
3635
~~~~~~~
3736

38-
On 2025-04-22, support for Python 3.8 will end for the AWS CLI. This follows the
37+
On 2025-04-22, support for Python 3.8 ended for the AWS CLI. This follows the
3938
Python Software Foundation `end of support <https://peps.python.org/pep-0569/#lifespan>`__
4039
for the runtime which occurred on 2024-10-07.
4140
For more information, see this `blog post <https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/>`__.

UPGRADE_PY3.md

+11-10
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ v1. You can upgrade to the AWS CLI v2 to avoid these deprecations in the future.
1515
----
1616
## Timeline
1717

18-
Going forward, customers using the CLI v1 should transition to using Python 3, with Python 3.8 becoming
18+
Going forward, customers using the CLI v1 should transition to using Python 3, with Python 3.9 becoming
1919
the minimum by the end of the transition. The deprecation dates for the affected versions of Python are:
2020

2121
|Python version|Deprecation date|
@@ -24,6 +24,7 @@ the minimum by the end of the transition. The deprecation dates for the affected
2424
| Python 3.4 and 3.5| 2/1/2021|
2525
| Python 3.6| 5/30/2022|
2626
| Python 3.7| 12/13/2023|
27+
| Python 3.8| 4/22/2025|
2728

2829
## Impact on the AWS CLI
2930

@@ -49,7 +50,7 @@ $ aws --version
4950
aws-cli/1.18.191 Python/2.7.18 Darwin/19.6.0 botocore/1.19.31
5051
```
5152

52-
If the second portion of the version string, starting with **Python/** isn’t Python/3.8.x
53+
If the second portion of the version string, starting with **Python/** isn’t Python/3.9.x
5354
or higher, you should review the options below.
5455

5556
### Installing CLI with Python 3
@@ -62,20 +63,20 @@ Otherwise, upgrading Python versions isn’t difficult.
6263

6364
1. To begin, uninstall your existing copy of the AWS CLI. You can find instructions in the
6465
[CLI v1 installation guide](https://docs.aws.amazon.com/cli/latest/userguide/install-linux.html).
65-
2. Now we’ll install Python 3.8 or later. You can get Python from
66+
2. Now we’ll install Python 3.9 or later. You can get Python from
6667
[Python.org](https://www.python.org/downloads) or using your local package manager.
67-
In this example, we’ll use a recent version, Python 3.8.7, to ensure the longest support window.
68+
In this example, we’ll use a recent version, Python 3.9.22, to ensure the longest support window.
6869
3. Next, depending on your installation method, the new Python installation should be available at
6970
one of these locations. Use these commands to verify:
7071
```bash
7172
$ python --version
72-
Python 3.8.7
73+
Python 3.9.22
7374

7475
$ python3 --version
75-
Python 3.8.7
76+
Python 3.9.22
7677

77-
$ python3.8 --version
78-
Python 3.8.7
78+
$ python3.9 --version
79+
Python 3.9.22
7980
```
8081
5. Here, we're using the **python** command from above to make sure we're installing with the right
8182
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
8990
7. If you wish, you may verify that the newly installed copy of the AWS CLI tool, **aws**, is
9091
using the correct version of Python. The **aws --version** command reports the **aws** tool's
9192
version number, followed by the version of Python it's running under, then the operating system
92-
version and the version of botocore. As long as the Python version is at least 3.8,
93+
version and the version of botocore. As long as the Python version is at least 3.9,
9394
you're ready to go:
9495
```bash
9596
$ aws --version
96-
aws-cli/1.18.191 Python/3.8.7 Darwin/19.6.0 botocore/1.19.31
97+
aws-cli/1.18.191 Python/3.9.22 Darwin/19.6.0 botocore/1.19.31
9798
```
9899

99100
## If you're unable to upgrade to Python 3

requirements-dev-lock.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# This file is autogenerated by pip-compile with Python 3.8
2+
# This file is autogenerated by pip-compile with Python 3.9
33
# by the following command:
44
#
55
# pip-compile --allow-unsafe --generate-hashes --output-file=requirements-dev-lock.txt requirements-dev.txt

requirements-docs.txt

-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
Jinja2<3.1.0
22
docutils>=0.18.1,<=0.19
33
Sphinx==6.2
4-
# Sphinx 6.2.0 requires alabaster>=0.7,<0.8
5-
# Using <0.7.14 since alabaster 0.7.14+ dropped Python 3.8 support
6-
alabaster>0.7,<0.7.14
74
-e .

scripts/install

+3-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ UNSUPPORTED_PYTHON = (
2828
(3,5),
2929
(3,6),
3030
(3,7),
31+
(3,8),
3132
)
3233
INSTALL_ARGS = (
3334
'--no-binary :all: --no-build-isolation --no-cache-dir --no-index '
@@ -208,7 +209,7 @@ def main():
208209
if py_version in UNSUPPORTED_PYTHON:
209210
unsupported_python_msg = (
210211
"Unsupported Python version detected: Python {}.{}\n"
211-
"To continue using this installer you must use Python 3.8 "
212+
"To continue using this installer you must use Python 3.9 "
212213
"or later.\n"
213214
"For more information see the following blog post: "
214215
"https://aws.amazon.com/blogs/developer/announcing-end-"
@@ -224,7 +225,7 @@ def main():
224225
"Deprecated Python version detected: Python {}.{}\n"
225226
"Starting {}, the AWS CLI will no longer support "
226227
"this version of Python. To continue receiving service updates, "
227-
"bug fixes, and security updates please upgrade to Python 3.8 or "
228+
"bug fixes, and security updates please upgrade to Python 3.9 or "
228229
"later. More information can be found here: {}"
229230
).format(
230231
py_version[0], py_version[1], params['date'], params['blog_link']

setup.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def find_version(*file_paths):
4848
install_requires=install_requires,
4949
extras_require={},
5050
license="Apache License 2.0",
51-
python_requires=">= 3.8",
51+
python_requires=">= 3.9",
5252
classifiers=[
5353
'Development Status :: 5 - Production/Stable',
5454
'Intended Audience :: Developers',
@@ -58,7 +58,6 @@ def find_version(*file_paths):
5858
'Programming Language :: Python',
5959
'Programming Language :: Python :: 3',
6060
'Programming Language :: Python :: 3 :: Only',
61-
'Programming Language :: Python :: 3.8',
6261
'Programming Language :: Python :: 3.9',
6362
'Programming Language :: Python :: 3.10',
6463
'Programming Language :: Python :: 3.11',

tox.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tox]
2-
envlist = py38,py39,py310,py311,py312
2+
envlist = py39,py310,py311,py312
33

44
skipsdist = True
55

0 commit comments

Comments
 (0)