fix: declare ssh extension 2.0.9 minCliCoreVersion 2.71.0 and bump version#10107
fix: declare ssh extension 2.0.9 minCliCoreVersion 2.71.0 and bump version#10107mvanhorn wants to merge 1 commit into
Conversation
ssh 2.0.9 migrated its compute (VM) code to AAZ-based commands, which import azure.cli.command_modules.vm.operations.vm.VMShow, only present in azure-cli core >= 2.71.0. The extension metadata still declared minCliCoreVersion 2.45.0, so the compatibility resolver offered the 2.0.9 build to older cores where `az ssh vm` crashes with ModuleNotFoundError. Raise azext.minCliCoreVersion to 2.71.0 and ship it under a new version (2.0.10) so `az extension list-versions` re-evaluates compatibility and installs the last compatible build (2.0.8) on cores older than 2.71.0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXwvFKU1BuKiw1hKwr8fwC
|
Validation for Breaking Change Starting...
Thanks for your contribution! |
|
Hi @mvanhorn, |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Thank you for your contribution @mvanhorn! We will review the pull request and get back to you soon. |
There was a problem hiding this comment.
Pull request overview
This PR updates the ssh extension’s declared minimum compatible Azure CLI core version to prevent users on older pinned azure-cli cores from installing an incompatible ssh extension build (per issue #10061). It also bumps the extension version and records the change in release history so compatibility can be re-evaluated by the extension resolver.
Changes:
- Raise
azext.minCliCoreVersionfrom2.45.0to2.71.0in extension metadata. - Bump extension version from
2.0.9to2.0.10. - Add a
2.0.10entry toHISTORY.mddocumenting the compatibility change.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| src/ssh/azext_ssh/azext_metadata.json | Raises minimum Azure CLI core version to 2.71.0 to avoid installing incompatible builds on older cores. |
| src/ssh/setup.py | Bumps extension package version to 2.0.10 to ensure compatibility metadata is re-evaluated. |
| src/ssh/HISTORY.md | Documents the 2.0.10 release and the min core version change. |
|
ssh |
|
don't merge this without first fixing the warning message please -- #9937 |
|
Good flag, and there's no file overlap: #9937 removes the stale <2.0.4 breaking-change registrations in _breaking_change.py, while this PR only touches azext_metadata.json (minCliCoreVersion), setup.py, and HISTORY.md for the version bump. They're independent, but I agree it's cleaner to land the warning cleanup so the bumped 2.0.10 doesn't ship the outdated May-2025 <2.0.4 warnings. I'm happy to sequence behind #9937, or to fold the _breaking_change.py cleanup into this bump and ship it as one version, whichever the ssh reviewers prefer on ordering. |
Fixes #10061
The
sshextension 2.0.9 migrated its compute (VM) code from the Azure SDK to AAZ-based commands (#9778), which importazure.cli.command_modules.vm.operations.vm.VMShow. That module path only exists in azure-cli core >= 2.71.0. Howeversrc/ssh/azext_ssh/azext_metadata.jsonstill declaredazext.minCliCoreVersionas2.45.0, so the extension compatibility resolver kept offering the 2.0.9 build to users on pinned azure-cli cores older than 2.71.0. On those coresaz ssh vmcrashes withModuleNotFoundError: No module named 'azure.cli.command_modules.vm.operations'.This change raises
azext.minCliCoreVersionto2.71.0so the resolver stops offering the AAZ-based build to incompatible cores and instead installs the last compatible version (2.0.8) there. The metadata must ship under a new version foraz extension list-versionsto re-evaluate compatibility, sosetup.pyVERSIONis bumped to2.0.10with a matchingHISTORY.mdentry. This is the maintainer-stated expected behavior in the issue; there is no runtime code change, only the extension's declared minimum core version.Related command
az ssh vmGeneral Guidelines
azdev style <YOUR_EXT>locally? (pip install azdevrequired)python scripts/ci/test_index.py -qlocally? (pip install azdevrequired)For new extensions:
About Extension Publish
This PR only updates the version information in
setup.pyand the historical information inHISTORY.md;src/index.jsonis left unchanged for the publish pipeline to update automatically after merge.