Skip to content

{Extension} Report experimental status in extension listings#33483

Closed
rohan-patnaik wants to merge 1 commit into
Azure:devfrom
rohan-patnaik:fix-extension-experimental-status
Closed

{Extension} Report experimental status in extension listings#33483
rohan-patnaik wants to merge 1 commit into
Azure:devfrom
rohan-patnaik:fix-extension-experimental-status

Conversation

@rohan-patnaik

@rohan-patnaik rohan-patnaik commented Jun 2, 2026

Copy link
Copy Markdown

Fixes #32871

Summary

This updates extension listing output so the experimental field reflects azext.isExperimental metadata instead of always returning false.

Why

az extension list-available and az extension list-versions already expose an experimental field, but both paths hard-coded it to false. Extensions such as cli-translator can therefore be marked experimental in metadata and documentation while the CLI reports them as non-experimental.

Changes

  • Add is_experimental_from_extension_meta beside the existing preview metadata helper.
  • Use it in list_available_extensions and list_versions.
  • Update extension tests so explicit azext.isExperimental metadata is preserved in command output.

Validation

  • .venv/bin/python -m pytest src/azure-cli-core/azure/cli/core/extension/tests/latest/test_extension_commands.py::TestExtensionCommands::test_list_available_extensions_no_show_details src/azure-cli-core/azure/cli/core/extension/tests/latest/test_extension_commands.py::TestExtensionCommands::test_list_versions_preserves_experimental_status -q
  • .venv/bin/python -m pytest src/azure-cli-core/azure/cli/core/tests/test_extension.py::TestExtensions::test_list_available_extensions_preview_details -q
  • git diff --check

@azure-client-tools-bot-prd

azure-client-tools-bot-prd Bot commented Jun 2, 2026

Copy link
Copy Markdown
️✔️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
️✔️postgresql
️✔️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

azure-client-tools-bot-prd Bot commented Jun 2, 2026

Copy link
Copy Markdown
️✔️AzureCLI-BreakingChangeTest
️✔️Non Breaking Changes

@microsoft-github-policy-service microsoft-github-policy-service Bot added the customer-reported Issues that are reported by GitHub users external to the Azure organization. label Jun 2, 2026
@microsoft-github-policy-service

Copy link
Copy Markdown
Contributor

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

This PR updates extension listing/versioning output to correctly surface an extension’s experimental status from index metadata, and adjusts/extends tests accordingly.

Changes:

  • Add is_experimental_from_extension_meta() helper to read experimental status from extension metadata.
  • Populate experimental in list_available_extensions() and list_versions() using the new helper instead of hardcoding False.
  • Update existing test expectations and add a new test to validate experimental status across versions.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
src/azure-cli-core/azure/cli/core/tests/test_extension.py Updates an assertion to expect experimental extensions to be reported as experimental.
src/azure-cli-core/azure/cli/core/extension/tests/latest/test_extension_commands.py Imports list_versions and adds a test to ensure experimental status is preserved per-version.
src/azure-cli-core/azure/cli/core/extension/operations.py Uses metadata-driven experimental detection for list outputs.
src/azure-cli-core/azure/cli/core/extension/init.py Introduces is_experimental_from_extension_meta() helper.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@yonzhan

yonzhan commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator

Extension

@necusjz

necusjz commented Jun 3, 2026

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

@necusjz

necusjz commented Jun 3, 2026

Copy link
Copy Markdown
Member

@rohan-patnaik thanks for your contribution! but we intend to depreacate "experimental", keep "stable" and "preview" only.

@rohan-patnaik

Copy link
Copy Markdown
Author

@necusjz Thanks for clarifying. If experimental is being deprecated in favor of stable / preview, should I close this PR and should #32871 be updated or closed too? If there’s a preferred change to align with that direction, I’m happy to adjust.

@necusjz

necusjz commented Jun 3, 2026

Copy link
Copy Markdown
Member

@necusjz Thanks for clarifying. If experimental is being deprecated in favor of stable / preview, should I close this PR and should #32871 be updated or closed too? If there’s a preferred change to align with that direction, I’m happy to adjust.

go for it. thx.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

act-platform-engineering-squad Auto-Assign Auto assign by bot customer-reported Issues that are reported by GitHub users external to the Azure organization. Installation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

All available extensions denoted as non-experimental

5 participants