-
Notifications
You must be signed in to change notification settings - Fork 3.3k
[Packaging] Drop Python 3.9 support #32381
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
️✔️AzureCLI-FullTest
|
|
Hi @bebound, |
️✔️AzureCLI-BreakingChangeTest
|
|
Thank you for your contribution! We will review the pull request and get back to you soon. |
|
The git hooks are available for azure-cli and azure-cli-extensions repos. They could help you run required checks before creating the PR. Please sync the latest code with latest dev branch (for azure-cli) or main branch (for azure-cli-extensions). pip install azdev --upgrade
azdev setup -c <your azure-cli repo path> -r <your azure-cli-extensions repo path>
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR drops support for Python 3.9, raising the minimum required version to Python 3.10. This is a breaking change that updates package metadata, build scripts, and documentation accordingly.
Key changes:
- Updated minimum Python version from 3.9 to 3.10 in setup.py files
- Removed Python 3.9 classifiers from all package metadata
- Updated documentation to reflect the new Python version requirements
Reviewed Changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/azure-cli/setup.py | Updated python_requires to >=3.10.0 and removed Python 3.9 classifier |
| src/azure-cli-core/setup.py | Updated python_requires to >=3.10.0 and removed Python 3.9 classifier |
| src/azure-cli-testsdk/setup.py | Removed Python 3.9 classifier |
| src/azure-cli-telemetry/setup.py | Removed Python 3.9 classifier |
| scripts/ci/build.sh | Removed Python 3.9 classifier from build script |
| doc/install_linux_prerequisites.md | Updated supported versions from 3.9-3.13 to 3.10-3.13 and changed RHEL/CentOS instructions from python39 to python312 |
| doc/extensions/authoring.md | Updated supported versions and example command from Python 3.9 to 3.13 |
| doc/debug/debug_in_vs_code.md | Updated minimum required Python version from 3.9+ to 3.10+ |
| doc/command_guidelines.md | Updated coding practices to require Python 3.10-3.13 support |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| ### RHEL 8, CentOS Stream 8, RHEL 9, CentOS Stream 9 | ||
| Install the latest Python 3.9 available in the software repo. | ||
| Install the latest Python 3.12 available in the software repo. |
Copilot
AI
Nov 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment suggests installing 'the latest Python 3.12' but the actual minimum version is 3.10 and maximum supported is 3.13. This should either say 'Install Python 3.12 or later' or 'Install Python 3.10 or later (3.12 recommended)' to be consistent with the supported version range stated earlier in the document.
| Install the latest Python 3.12 available in the software repo. | |
| Install Python 3.10 or later (3.12 recommended) available in the software repo. |
| - The Azure CLI supports Python 3.10 ~ 3.13 so verify that your extension does the same. | ||
| - You can create virtual environments for different versions and run your extension in them. | ||
| - e.g. `python3.9 -m venv env38` and `python3.10 -m venv env310`. | ||
| - e.g. `python3.13 -m venv env313`. |
Copilot
AI
Nov 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The example shows only Python 3.13, but it would be more helpful to show multiple versions (e.g., both 3.10 and 3.13) to better illustrate testing across the supported version range, especially since the previous line mentions verifying support for all versions from 3.10 to 3.13.
| - e.g. `python3.13 -m venv env313`. | |
| - e.g. `python3.10 -m venv env310` and `python3.13 -m venv env313`. |
|
|
||
| ### RHEL 8, CentOS Stream 8, RHEL 9, CentOS Stream 9 | ||
| Install the latest Python 3.9 available in the software repo. | ||
| Install the latest Python 3.12 available in the software repo. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is Python 3.13 not available yet?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3.13 is not in the default repo yet. 3.12 is the latest version in RHEL.
Ref: https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle
Description
Drop Python 3.9 as it reaches EOL on 2025-10-31: https://devguide.python.org/versions/
Related PR: