diff --git a/.azure-pipelines/breaking-change-tests.yml b/.azure-pipelines/breaking-change-tests.yml index e143d39e5bc..893140f6f64 100644 --- a/.azure-pipelines/breaking-change-tests.yml +++ b/.azure-pipelines/breaking-change-tests.yml @@ -21,9 +21,9 @@ jobs: fetchDepth: 0 fetchTags: true - task: UsePythonVersion@0 - displayName: 'Use Python 3.12' + displayName: 'Use Python 3.13' inputs: - versionSpec: 3.12 + versionSpec: 3.13 - template: ${{ variables.Pipeline.Workspace }}/.azure-pipelines/templates/azdev_setup.yml - bash: | set -ev diff --git a/azure-pipelines-full-tests.yml b/azure-pipelines-full-tests.yml index 0fe5e7a79a7..506c5c10ff9 100644 --- a/azure-pipelines-full-tests.yml +++ b/azure-pipelines-full-tests.yml @@ -16,8 +16,8 @@ variables: - template: ${{ variables.Pipeline.Workspace }}/.azure-pipelines/templates/variables.yml jobs: -- job: AutomationFullTestPython39ProfileLatest - displayName: Automation Full Test Python39 Profile Latest +- job: AutomationFullTestPython312ProfileLatest + displayName: Automation Full Test Python312 Profile Latest timeoutInMinutes: 9999 strategy: maxParallel: 8 @@ -43,15 +43,15 @@ jobs: steps: - template: .azure-pipelines/templates/automation_test.yml parameters: - pythonVersion: '3.9' + pythonVersion: '3.12' profile: 'latest' instance_cnt: '8' instance_idx: '$(Instance_idx)' fullTest: true jobName: 'FullTest' -- job: AutomationFullTestPython312ProfileLatest - displayName: Automation Full Test Python312 Profile Latest +- job: AutomationFullTestPython313ProfileLatest + displayName: Automation Full Test Python313 Profile Latest timeoutInMinutes: 9999 strategy: maxParallel: 8 @@ -77,7 +77,7 @@ jobs: steps: - template: .azure-pipelines/templates/automation_test.yml parameters: - pythonVersion: '3.12' + pythonVersion: '3.13' profile: 'latest' instance_cnt: '8' instance_idx: '$(Instance_idx)' diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c60beecacd1..cbe42025048 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -131,9 +131,9 @@ jobs: steps: - task: UsePythonVersion@0 - displayName: 'Use Python 3.12' + displayName: 'Use Python 3.13' inputs: - versionSpec: 3.12 + versionSpec: 3.13 - bash: ./scripts/ci/dependency_check.sh displayName: 'Verify src/azure-cli/requirements.py3.Linux.txt' @@ -146,9 +146,9 @@ jobs: steps: - task: UsePythonVersion@0 - displayName: 'Use Python 3.12' + displayName: 'Use Python 3.13' inputs: - versionSpec: 3.12 + versionSpec: 3.13 - bash: ./scripts/ci/dependency_check.sh displayName: 'Verify src/azure-cli/requirements.py3.Darwin.txt' @@ -161,9 +161,9 @@ jobs: steps: - task: UsePythonVersion@0 - displayName: 'Use Python 3.12' + displayName: 'Use Python 3.13' inputs: - versionSpec: 3.12 + versionSpec: 3.13 - task: BatchScript@1 inputs: @@ -178,9 +178,9 @@ jobs: name: ${{ variables.ubuntu_pool }} steps: - task: UsePythonVersion@0 - displayName: 'Use Python 3.12' + displayName: 'Use Python 3.13' inputs: - versionSpec: 3.12 + versionSpec: 3.13 - template: .azure-pipelines/templates/azdev_setup.yml - bash: | set -ev @@ -433,9 +433,9 @@ jobs: name: ${{ variables.ubuntu_pool }} steps: - task: UsePythonVersion@0 - displayName: 'Use Python 3.12' + displayName: 'Use Python 3.13' inputs: - versionSpec: 3.12 + versionSpec: 3.13 - task: PipAuthenticate@1 condition: startsWith(variables['Build.SourceBranch'], 'refs/heads/release') @@ -468,10 +468,10 @@ jobs: displayName: Test Python Wheels strategy: matrix: - Python39: - python.version: '3.9' Python312: python.version: '3.12' + Python313: + python.version: '3.13' dependsOn: BuildPythonWheel condition: succeeded() pool: @@ -508,10 +508,10 @@ jobs: name: ${{ variables.ubuntu_pool }} strategy: matrix: - Python39: - python.version: '3.9' Python312: python.version: '3.12' + Python313: + python.version: '3.13' steps: - template: .azure-pipelines/templates/automation_test.yml parameters: @@ -525,10 +525,10 @@ jobs: name: ${{ variables.ubuntu_pool }} strategy: matrix: - Python39: - python.version: '3.9' Python312: python.version: '3.12' + Python313: + python.version: '3.13' steps: - template: .azure-pipelines/templates/automation_test.yml parameters: @@ -545,10 +545,10 @@ jobs: name: ${{ variables.ubuntu_pool }} strategy: matrix: - Python39: - python.version: '3.9' Python312: python.version: '3.12' + Python313: + python.version: '3.13' steps: - task: UsePythonVersion@0 displayName: 'Use Python $(python.version)' @@ -568,8 +568,8 @@ jobs: name: ${{ variables.ubuntu_pool }} strategy: matrix: - Python312: - python.version: '3.12' + Python313: + python.version: '3.13' steps: - task: UsePythonVersion@0 displayName: 'Use Python $(python.version)' @@ -1039,9 +1039,9 @@ jobs: name: ${{ variables.ubuntu_multi_core_pool }} steps: - task: UsePythonVersion@0 - displayName: 'Use Python 3.12' + displayName: 'Use Python 3.13' inputs: - versionSpec: 3.12 + versionSpec: 3.13 - template: .azure-pipelines/templates/azdev_setup.yml - bash: | set -ev @@ -1055,9 +1055,9 @@ jobs: name: ${{ variables.ubuntu_pool }} steps: - task: UsePythonVersion@0 - displayName: 'Use Python 3.12' + displayName: 'Use Python 3.13' inputs: - versionSpec: 3.12 + versionSpec: 3.13 - template: .azure-pipelines/templates/azdev_setup.yml - bash: | set -ev @@ -1070,10 +1070,10 @@ jobs: displayName: "PerformanceCheck" strategy: matrix: - Python39: - python.version: '3.9' Python312: python.version: '3.12' + Python313: + python.version: '3.13' pool: name: ${{ variables.ubuntu_pool }} steps: @@ -1101,9 +1101,9 @@ jobs: name: ${{ variables.ubuntu_multi_core_pool }} steps: - task: UsePythonVersion@0 - displayName: 'Use Python 3.12' + displayName: 'Use Python 3.13' inputs: - versionSpec: 3.12 + versionSpec: 3.13 - template: .azure-pipelines/templates/azdev_setup.yml - bash: | set -ev @@ -1124,9 +1124,9 @@ jobs: name: ${{ variables.ubuntu_pool }} steps: - task: UsePythonVersion@0 - displayName: 'Use Python 3.12' + displayName: 'Use Python 3.13' inputs: - versionSpec: 3.12 + versionSpec: 3.13 - template: .azure-pipelines/templates/azdev_setup.yml - bash: | set -ev diff --git a/doc/command_guidelines.md b/doc/command_guidelines.md index a25b1e0d1a6..90f10a2d8b5 100644 --- a/doc/command_guidelines.md +++ b/doc/command_guidelines.md @@ -426,7 +426,7 @@ Follow the [Error Handling Guidelines](https://github.com/Azure/azure-cli/blob/d ## Coding Practices -- All code must support Python 3.9 ~ 3.12 +- All code must support Python 3.9 ~ 3.13 - PRs to Azure/azure-cli and Azure/azure-cli-extensions must pass CI - Code must pass style checks with pylint and pep8 - (*) All commands should have tests diff --git a/doc/extensions/authoring.md b/doc/extensions/authoring.md index d84b3ff80b1..e9994f6d3a4 100644 --- a/doc/extensions/authoring.md +++ b/doc/extensions/authoring.md @@ -130,7 +130,7 @@ See [Extension Metadata](metadata.md) for more information. ### Test your extension on Python 3 -- The Azure CLI supports Python 3.9 ~ 3.12 so verify that your extension does the same. +- The Azure CLI supports Python 3.9 ~ 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`. diff --git a/doc/install_linux_prerequisites.md b/doc/install_linux_prerequisites.md index 642e35d9633..73e7722f751 100644 --- a/doc/install_linux_prerequisites.md +++ b/doc/install_linux_prerequisites.md @@ -6,11 +6,11 @@ Some native Linux packages are required when installing the CLI with: - Interactive installation script - `pip` -Current supported Python versions are Python 3.9 ~ 3.12. +Current supported Python versions are Python 3.9 ~ 3.13. The commands to run to install the dependencies for some common distributions are listed below. -### Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, Ubuntu 24.04 LTS, Debian 11, Debian 12 +### Ubuntu 22.04 LTS, Ubuntu 24.04 LTS, Debian 11, Debian 12 ``` sudo apt-get update && sudo apt-get install -y libssl-dev libffi-dev python-dev build-essential ``` diff --git a/scripts/ci/test_extensions.sh b/scripts/ci/test_extensions.sh index 285cf206a40..0a52c6a59b4 100755 --- a/scripts/ci/test_extensions.sh +++ b/scripts/ci/test_extensions.sh @@ -25,7 +25,8 @@ exit_code=0 # Disable alias temporarily: https://github.com/Azure/azure-cli/pull/27717 # hybridaks is going to be deprecated: https://github.com/Azure/azure-cli/pull/29838 # db-up is going to be deprecated: https://github.com/Azure/azure-cli/pull/29887 -ignore_list='azure-cli-ml fzf arcappliance arcdata connectedk8s k8s-extension alias hybridaks db-up' +# serviceconnector-passwordless's dependency is not compatible with 3.13 https://github.com/Azure/azure-cli/pull/31895 +ignore_list='azure-cli-ml fzf arcappliance arcdata connectedk8s k8s-extension alias hybridaks db-up serviceconnector-passwordless' # Does not exit if az extension add fails until all extensions have been tested set +e @@ -61,7 +62,7 @@ az self-test --debug if [ $? != 0 ] then exit_code=1 - echo "Failed to verify:" $ext + echo "Failed to verify" fi exit $exit_code diff --git a/scripts/regression_test/regression_test.yml b/scripts/regression_test/regression_test.yml index 12ec1426895..9f6cdef4277 100644 --- a/scripts/regression_test/regression_test.yml +++ b/scripts/regression_test/regression_test.yml @@ -20,8 +20,8 @@ jobs: steps: - task: UsePythonVersion@0 inputs: - versionSpec: '3.12' - displayName: "Use Python 3.12" + versionSpec: '3.13' + displayName: "Use Python 3.13" - task: AzureCLI@2 displayName: 'update version' inputs: @@ -89,8 +89,8 @@ jobs: steps: - task: UsePythonVersion@0 inputs: - versionSpec: '3.12' - displayName: "Use Python 3.12" + versionSpec: '3.13' + displayName: "Use Python 3.13" - task: AzureCLI@2 displayName: 'Checkout Target Branch' inputs: diff --git a/src/azure-cli-core/setup.py b/src/azure-cli-core/setup.py index 62cbe1b8307..939b5fc6b5b 100644 --- a/src/azure-cli-core/setup.py +++ b/src/azure-cli-core/setup.py @@ -39,6 +39,7 @@ 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', 'License :: OSI Approved :: MIT License', ] diff --git a/src/azure-cli-telemetry/setup.py b/src/azure-cli-telemetry/setup.py index 26a3c9c746b..aa7e66c9106 100755 --- a/src/azure-cli-telemetry/setup.py +++ b/src/azure-cli-telemetry/setup.py @@ -20,6 +20,7 @@ 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', 'License :: OSI Approved :: MIT License', ] diff --git a/src/azure-cli-testsdk/setup.py b/src/azure-cli-testsdk/setup.py index 331300aaac6..e9b8c361494 100644 --- a/src/azure-cli-testsdk/setup.py +++ b/src/azure-cli-testsdk/setup.py @@ -19,6 +19,7 @@ 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', 'License :: OSI Approved :: MIT License', ] diff --git a/src/azure-cli/setup.py b/src/azure-cli/setup.py index 5750d039aeb..58c95a93440 100644 --- a/src/azure-cli/setup.py +++ b/src/azure-cli/setup.py @@ -46,6 +46,7 @@ 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', 'License :: OSI Approved :: MIT License', ]