Skip to content

Commit

Permalink
[7.0.0] Bump minimum botocore requirements
Browse files Browse the repository at this point in the history
  • Loading branch information
tremble committed Sep 25, 2023
1 parent dbb569c commit 9eb3a15
Show file tree
Hide file tree
Showing 8 changed files with 49 additions and 19 deletions.
30 changes: 22 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,33 @@ Use amazon.aws 4.x.y if you are using Ansible 2.9 or Ansible Core 2.10.

This collection depends on the AWS SDK for Python (Boto3 and Botocore). Due to the
[AWS SDK Python Support Policy](https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/)
this collection requires Python 3.6 or greater.

Amazon have also announced the end of support for
[Python less than 3.7](https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/).
As such support for Python less than 3.7 by this collection has been deprecated and will be removed in release 7.0.0.
Additionally, support for Python less than 3.8 is expected to be removed in a release after 2024-12-01 based on currently
available schedules.
this collection requires Python 3.7 or greater.

Amazon have also announced the planned end of support for
[Python less than 3.8](https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/).
As such support for Python less than 3.8 will be removed in a release after 2024-12-01.

<!---
### End of Support by Python Versions:
| Python Version | AWS SDK | Collection |
| -------------- | -------- | ---------- |
| 2.7 | July 2021 | Release 2.0.0 (September 2021) |
| 3.4 | February 2021 | Release 1.0.0 (June 2020) |
| 3.5 | February 2021 | Release 2.0.0 (September 2021) |
| 3.6 | May 2022 | Release 7.0.0 (November 2023) |
| 3.7 | December 2023 | *After December 2024* |
| 3.8 | April 2025 | *After April 2026* |
| 3.9 | April 2026 | *After April 2027* |
| 3.10 | April 2027 | *After April 2028* |
| 3.11 | April 2028 | *After April 2029* |
--->

## AWS SDK version compatibility

Starting with the 2.0.0 releases of amazon.aws and community.aws, it is generally the collection's policy to support the versions of `botocore` and `boto3` that were released 12 months prior to the most recent major collection release, following semantic versioning (for example, 2.0.0, 3.0.0).

Version 6.0.0 of this collection supports `boto3 >= 1.22.0` and `botocore >= 1.25.0`
Version 7.0.0 of this collection supports `boto3 >= 1.26.0` and `botocore >= 1.29.0`

All support for the original AWS SDK `boto` was removed in release 4.0.0.

Expand Down
6 changes: 6 additions & 0 deletions changelogs/fragments/botocore.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
breaking_changes:
- The amazon.aws collection has dropped support for ``botocore<1.29.0`` and
``boto3<1.26.0``. Most modules will continue to work with older versions of the AWS SDK, however
compatability with older versions of the SDK is not guaranteed and will not be tested. When using
older versions of the SDK a warning will be emitted by Ansible
(https://github.com/ansible-collections/amazon.aws/pull/1763).
10 changes: 10 additions & 0 deletions changelogs/fragments/python37.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
breaking_changes:
- amazon.aws collection - due to the AWS SDKs announcing the end of support
for Python less than 3.7 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/)
support for Python less than 3.7 by this collection wss been deprecated in release 6.0.0 and removed in release 7.0.0.
(https://github.com/ansible-collections/amazon.aws/pull/1763).

# We've already announced the deprecation for <3.8 (with 6.0.0), dropping support for <3.9 on ours side will happen
# after April 2026. This is about 2 years + 5 months away assuming a November 7.0.0 release, we could announce
# the deprecation now, but assuming we release 8.0.0 in about 6 months a just short of 2 year
# deprecation feels fine given it's predictable.
4 changes: 2 additions & 2 deletions plugins/module_utils/botocore.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@
from .retries import AWSRetry
from .common import get_collection_info

MINIMUM_BOTOCORE_VERSION = "1.25.0"
MINIMUM_BOTO3_VERSION = "1.22.0"
MINIMUM_BOTOCORE_VERSION = "1.29.0"
MINIMUM_BOTO3_VERSION = "1.26.0"


def _get_user_agent_string():
Expand Down
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
# - tests/unit/constraints.txt
# - tests/integration/constraints.txt
# - tests/integration/targets/setup_botocore_pip
botocore>=1.25.0
boto3>=1.22.0
botocore>=1.29.0
boto3>=1.26.0
2 changes: 1 addition & 1 deletion tests/config.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
modules:
python_requires: '>=3.6'
python_requires: '>=3.7'
6 changes: 3 additions & 3 deletions tests/integration/constraints.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Specifically run tests against the oldest versions that we support
boto3==1.22.0
botocore==1.25.0
botocore==1.29.0
boto3==1.26.0

# AWS CLI has `botocore==` dependencies, provide the one that matches botocore
# to avoid needing to download over a years worth of awscli wheels.
awscli==1.23.0
awscli==1.27.0

# AWS CLI depends on PyYAML <5.5,>=3.10; the latest PyYAML release in that range, 5.4.1, fails to install.
# Use a version in that range that is known to work (https://github.com/yaml/pyyaml/issues/736)
Expand Down
6 changes: 3 additions & 3 deletions tests/unit/constraints.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Specifically run tests against the oldest versions that we support
boto3==1.22.0
botocore==1.25.0
botocore==1.29.0
boto3==1.26.0

# AWS CLI has `botocore==` dependencies, provide the one that matches botocore
# to avoid needing to download over a years worth of awscli wheels.
awscli==1.23.0
awscli==1.27.0

0 comments on commit 9eb3a15

Please sign in to comment.