diff --git a/.changes/next-release/feature-Python-31902.json b/.changes/next-release/feature-Python-31902.json
new file mode 100644
index 0000000000..e96191396c
--- /dev/null
+++ b/.changes/next-release/feature-Python-31902.json
@@ -0,0 +1,5 @@
+{
+ "type": "feature",
+ "category": "Python",
+ "description": "Drop support for Python 2.7"
+}
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
index c8a4ba4d36..37da8af655 100644
--- a/.github/workflows/run-tests.yml
+++ b/.github/workflows/run-tests.yml
@@ -13,7 +13,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- python-version: [2.7, 3.6, 3.7, 3.8]
+ python-version: [3.6, 3.7, 3.8]
os: [ubuntu-latest, macOS-latest, windows-latest ]
steps:
diff --git a/README.rst b/README.rst
index 19de7e033b..ba67619328 100644
--- a/README.rst
+++ b/README.rst
@@ -10,7 +10,7 @@ of services like Amazon S3 and Amazon EC2. You can find the latest, most
up to date, documentation at our `doc site`_, including a list of
services that are supported.
-On 01/15/2021 deprecation for Python 2.7 was announced and support will be dropped
+On 01/15/2021 deprecation for Python 2.7 was announced and support was dropped
on 07/15/2021. To avoid disruption, customers using Boto3 on Python 2.7 may
need to upgrade their version of Python or pin the version of Boto3. For
more information, see this `blog post `__.
diff --git a/boto3/compat.py b/boto3/compat.py
index 5a599bc4d1..e5430e2d24 100644
--- a/boto3/compat.py
+++ b/boto3/compat.py
@@ -64,6 +64,10 @@ def filter_python_deprecation_warnings():
def _warn_deprecated_python():
+ """Python 2.7 is deprecated so this code will no longer run.
+
+ Use this template for future deprecation campaigns as needed.
+ """
py_27_params = {
'date': 'July 15, 2021',
'blog_link': 'https://aws.amazon.com/blogs/developer/announcing-end-'
diff --git a/docs/source/guide/migrationpy3.rst b/docs/source/guide/migrationpy3.rst
index 67c480677a..27d761e620 100644
--- a/docs/source/guide/migrationpy3.rst
+++ b/docs/source/guide/migrationpy3.rst
@@ -14,7 +14,8 @@ module) and Boto3 (which implements the API functionality and higher-level featu
Timeline
--------
Going forward, all projects using Boto3 need to transition to Python 3.6 or later. Boto3 and
-Botocore support for Python 3.4 and 3.5 has already ended, and support for Python 2.7 will end effective July 15, 2021.
+Botocore ended support for Python 3.4 and 3.5 on Feb 21, 2021, and support for Python 2.7
+ended July 15, 2021.
Updating your project to use Python 3
-------------------------------------
diff --git a/docs/source/guide/quickstart.rst b/docs/source/guide/quickstart.rst
index 57f9edb7d2..d470a6b4e7 100644
--- a/docs/source/guide/quickstart.rst
+++ b/docs/source/guide/quickstart.rst
@@ -24,10 +24,11 @@ To use Boto3, you first need to install it and its dependencies.
Install or update Python
~~~~~~~~~~~~~~~~~~~~~~~~
-Before installing Boto3, install Python 3.6 or later; support for Python 2.7 and Python 3.5 and
-earlier is deprecated. After the deprecation date listed for each Python version, new releases of
-Boto3 will not include support for that version of Python. For details, including the deprecation
-schedule and how to update your project to use Python 3.6, see :ref:`guide_migration_py3`.
+Before installing Boto3, install Python 3.6 or later; support for Python 3.5 and
+earlier is deprecated. After the deprecation date listed for each Python
+version, new releases of Boto3 will not include support for that version of
+Python. For details, including the deprecation schedule and how to update your
+project to use Python 3.6, see :ref:`guide_migration_py3`.
For information about how to get the latest version of Python, see the official `Python
documentation `_.
diff --git a/setup.cfg b/setup.cfg
index 3a902365e5..2181397689 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,5 @@
[bdist_wheel]
-universal = 1
+universal = 0
[metadata]
requires_dist =
diff --git a/setup.py b/setup.py
index c24158d5ce..fa2f157327 100644
--- a/setup.py
+++ b/setup.py
@@ -43,15 +43,13 @@ def get_version():
include_package_data=True,
install_requires=requires,
license="Apache License 2.0",
- python_requires=">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*",
+ python_requires=">= 3.6",
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'Natural Language :: English',
'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python',
- 'Programming Language :: Python :: 2',
- 'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
diff --git a/tox.ini b/tox.ini
index a12872b6f5..78c5c85099 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-envlist = py27,py36,py37,py38
+envlist = py36,py37,py38
# Comment to build sdist and install into virtualenv
# This is helpful to test installation but takes extra time