Description
Why is this needed?
AWS Lambda runtime will fully deprecate Python 3.7 on February 8th. This means, 3.7 functions will be unable to be updated.
Additionally, AWS SDK for Python (Boto3 and Botocore), AWS Command Line Interface (AWS CLI), and AWS CDK no longer offers support for Python 3.7 as well. The same happens with typing extensions, a library used extensively throughout this project that dropped support for Python3.7 in version 4.7.1.
We need to measure the impact of this and make the decision to remove support for Python 3.7. Keep the Python3.7 support directly impacts our supply chain in terms of preventing us from receiving new features and potential security bug fixes.
Minor or major release?
We started writing the roadmap for Powertools V3, however, we are still many steps away from having a roadmap to define new features/codebase for v3, write the RFC for V3, listen to the community, and refactor/rewrite everything necessary. So, will we deprecate Python 3.7 in a v2 minor release or wait until Powertools v3?
Is this a breaking change?
While I agree that this changes behavior and may prevent someone from receiving new Powertools updates, I think the impact is minimal for anyone using Managed Runtime Python 3.7. They will not be able to update their Python 3.7 functions from Feb/8, so those who need to update their functions will be forced to update Python to 3.8 and will not be affected by this.
Running Powertools on Lambda with OCI, and other containers platforms in general
These customers may be impacted by being blocked from receiving new Powertools updates if they use Python 3.7.
I don't think they will have problems building the containers in general, because package management tools like pip, poetry, anaconda and others will pin Powertools dependency on the latest version supported by Python 3.7.
Other runtimes
Powertools for AWS Lambda (TypeScript) dropped support for nodejs14.x along with the deprecation of Lambda nodejs14.x.
I may be missing something in my points and I would like to hear your considerations before we move forward with this decision.
Update 11/01
- DOCS: Add a banner to our documentation stating that we are dropping support for Python 3.7 #3617
- Maintenance: Drop Python 3.7 support in our pipelines, pyproject.toml and clean up the code #3637
Which area does this relate to?
Other
Solution
Drop support for Python 3.7
Acknowledgment
- This request meets Powertools for AWS Lambda (Python) Tenets
- Should this be considered in other Powertools for AWS Lambda languages? i.e. Java, TypeScript, and .NET
Metadata
Metadata
Assignees
Type
Projects
Status