Skip to content

Conversation

@bebound
Copy link
Contributor

@bebound bebound commented Nov 5, 2025

Description

Drop Python 3.9 as it reaches EOL on 2025-10-31: https://devguide.python.org/versions/

Related PR:

@azure-client-tools-bot-prd
Copy link

azure-client-tools-bot-prd bot commented Nov 5, 2025

️✔️AzureCLI-FullTest
️✔️acr
️✔️latest
️✔️3.12
️✔️3.13
️✔️acs
️✔️latest
️✔️3.12
️✔️3.13
️✔️advisor
️✔️latest
️✔️3.12
️✔️3.13
️✔️ams
️✔️latest
️✔️3.12
️✔️3.13
️✔️apim
️✔️latest
️✔️3.12
️✔️3.13
️✔️appconfig
️✔️latest
️✔️3.12
️✔️3.13
️✔️appservice
️✔️latest
️✔️3.12
️✔️3.13
️✔️aro
️✔️latest
️✔️3.12
️✔️3.13
️✔️backup
️✔️latest
️✔️3.12
️✔️3.13
️✔️batch
️✔️latest
️✔️3.12
️✔️3.13
️✔️batchai
️✔️latest
️✔️3.12
️✔️3.13
️✔️billing
️✔️latest
️✔️3.12
️✔️3.13
️✔️botservice
️✔️latest
️✔️3.12
️✔️3.13
️✔️cdn
️✔️latest
️✔️3.12
️✔️3.13
️✔️cloud
️✔️latest
️✔️3.12
️✔️3.13
️✔️cognitiveservices
️✔️latest
️✔️3.12
️✔️3.13
️✔️compute_recommender
️✔️latest
️✔️3.12
️✔️3.13
️✔️computefleet
️✔️latest
️✔️3.12
️✔️3.13
️✔️config
️✔️latest
️✔️3.12
️✔️3.13
️✔️configure
️✔️latest
️✔️3.12
️✔️3.13
️✔️consumption
️✔️latest
️✔️3.12
️✔️3.13
️✔️container
️✔️latest
️✔️3.12
️✔️3.13
️✔️containerapp
️✔️latest
️✔️3.12
️✔️3.13
️✔️core
️✔️latest
️✔️3.12
️✔️3.13
️✔️cosmosdb
️✔️latest
️✔️3.12
️✔️3.13
️✔️databoxedge
️✔️latest
️✔️3.12
️✔️3.13
️✔️dls
️✔️latest
️✔️3.12
️✔️3.13
️✔️dms
️✔️latest
️✔️3.12
️✔️3.13
️✔️eventgrid
️✔️latest
️✔️3.12
️✔️3.13
️✔️eventhubs
️✔️latest
️✔️3.12
️✔️3.13
️✔️feedback
️✔️latest
️✔️3.12
️✔️3.13
️✔️find
️✔️latest
️✔️3.12
️✔️3.13
️✔️hdinsight
️✔️latest
️✔️3.12
️✔️3.13
️✔️identity
️✔️latest
️✔️3.12
️✔️3.13
️✔️iot
️✔️latest
️✔️3.12
️✔️3.13
️✔️keyvault
️✔️latest
️✔️3.12
️✔️3.13
️✔️lab
️✔️latest
️✔️3.12
️✔️3.13
️✔️managedservices
️✔️latest
️✔️3.12
️✔️3.13
️✔️maps
️✔️latest
️✔️3.12
️✔️3.13
️✔️marketplaceordering
️✔️latest
️✔️3.12
️✔️3.13
️✔️monitor
️✔️latest
️✔️3.12
️✔️3.13
️✔️mysql
️✔️latest
️✔️3.12
️✔️3.13
️✔️netappfiles
️✔️latest
️✔️3.12
️✔️3.13
️✔️network
️✔️latest
️✔️3.12
️✔️3.13
️✔️policyinsights
️✔️latest
️✔️3.12
️✔️3.13
️✔️privatedns
️✔️latest
️✔️3.12
️✔️3.13
️✔️profile
️✔️latest
️✔️3.12
️✔️3.13
️✔️rdbms
️✔️latest
️✔️3.12
️✔️3.13
️✔️redis
️✔️latest
️✔️3.12
️✔️3.13
️✔️relay
️✔️latest
️✔️3.12
️✔️3.13
️✔️resource
️✔️latest
️✔️3.12
️✔️3.13
️✔️role
️✔️latest
️✔️3.12
️✔️3.13
️✔️search
️✔️latest
️✔️3.12
️✔️3.13
️✔️security
️✔️latest
️✔️3.12
️✔️3.13
️✔️servicebus
️✔️latest
️✔️3.12
️✔️3.13
️✔️serviceconnector
️✔️latest
️✔️3.12
️✔️3.13
️✔️servicefabric
️✔️latest
️✔️3.12
️✔️3.13
️✔️signalr
️✔️latest
️✔️3.12
️✔️3.13
️✔️sql
️✔️latest
️✔️3.12
️✔️3.13
️✔️sqlvm
️✔️latest
️✔️3.12
️✔️3.13
️✔️storage
️✔️latest
️✔️3.12
️✔️3.13
️✔️synapse
️✔️latest
️✔️3.12
️✔️3.13
️✔️telemetry
️✔️latest
️✔️3.12
️✔️3.13
️✔️util
️✔️latest
️✔️3.12
️✔️3.13
️✔️vm
️✔️latest
️✔️3.12
️✔️3.13

@azure-client-tools-bot-prd
Copy link

Hi @bebound,
Since the current milestone time is less than 7 days, this pr may not catch up with this release.

@azure-client-tools-bot-prd
Copy link

azure-client-tools-bot-prd bot commented Nov 5, 2025

️✔️AzureCLI-BreakingChangeTest
️✔️Non Breaking Changes

@yonzhan
Copy link
Collaborator

yonzhan commented Nov 5, 2025

Thank you for your contribution! We will review the pull request and get back to you soon.

@github-actions
Copy link

github-actions bot commented Nov 5, 2025

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).
After that please run the following commands to enable git hooks:

pip install azdev --upgrade
azdev setup -c <your azure-cli repo path> -r <your azure-cli-extensions repo path>

@bebound bebound changed the title [Packaging] Drop Python 3.9 support [Packaging] Drop Python 3.9 support Nov 5, 2025
@bebound bebound marked this pull request as ready for review November 5, 2025 03:28
Copilot AI review requested due to automatic review settings November 5, 2025 03:28
Copy link
Contributor

Copilot AI left a 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.
Copy link

Copilot AI Nov 5, 2025

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.

Suggested change
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.

Copilot uses AI. Check for mistakes.
- 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`.
Copy link

Copilot AI Nov 5, 2025

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.

Suggested change
- e.g. `python3.13 -m venv env313`.
- e.g. `python3.10 -m venv env310` and `python3.13 -m venv env313`.

Copilot uses AI. Check for mistakes.

### 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.
Copy link
Member

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?

Copy link
Contributor Author

@bebound bebound Nov 10, 2025

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

@bebound bebound merged commit 37b2289 into Azure:dev Nov 10, 2025
61 of 62 checks passed
@bebound bebound deleted the drop-3.9 branch November 10, 2025 06:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Auto-Assign Auto assign by bot Packaging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants