[Enhancement] Follow up actions with priority for "Akamai Ticket: 2110050010002974"
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 3.5k
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 60
Description
**GA to Preview (preview or experimental) should not be allowed in Azure CLI**
- (P0) Remember it's a very bad customer experience to unilaterally change interfaces at any time, and break customer code especially without notice in advance.
- We should always keep backward compatibility at interface level.
- If we must break customers, let customers know in advance and they can have time to change their code accordingly.
- Avoid abuse of "experimental" flag and only use it at proper level if necessary.
- (P0) Stricter and more careful in code review
- GA to Preview (preview or experimental) is not allowed in CLI (avoid abuse of "experimental")
- Check if history notes clearly describe the [changes](https://github.com/Azure/azure-cli-extensions/blob/main/src/maintenance/HISTORY.rst#130) (bad example) especially the breaking changes. [Good example](https://github.com/Azure/azure-cli-extensions/blob/main/src/costmanagement/HISTORY.rst#021)
- Leverage breaking change functionality in codegen v2 (high priority?)
- Evaluate if we can add linter rule to detect such violation during PR stage.
- Experimental can be applied in extension level, command group level, command level, argument level.
- GA, preview and experimental: https://docs.microsoft.com/en-us/cli/azure/reference-types-and-status
- (P1) More timely to update https://docs.microsoft.com/en-us/cli/azure/azure-cli-extensions-list
- More timely (one week?) to merge PRs into main branch from extension (PR title: Update CLI extensions available doc) in https://github.com/MicrosoftDocs/azure-docs-cli/pull/3025
- Create PR from main to live and merge it more timely as well.
- CLI team or docs team (Delora)?
- (P2) New versioning strategy for extension:
- API preview---> CLI preview (a: experimental, b: preview)
- API GA---> CLI GA (can be preview if service team thinks it's necessary)
- CLI already supports [python versioning](https://github.com/Azure/azure-cli/blob/3d14ca21e648f4fc0124132a43156a85a50251cd/src/azure-cli-core/azure/cli/core/extension/_resolve.py#L79)
- Versioning should follow https://peps.python.org/pep-0440/
- pip install --pre: Include pre-release and development versions. By default, pip only finds stable versions.
- https://semver.org/
- Extension "ml" already use "a" for preview version:
{
"compatible": true,
"experimental": true,
"installed": false,
"name": "ml",
"preview": false,
"version": "2.0.1a4"
},
- (P2) Improve "az extension update": add a new argument "--allow-preview",
- default is just to update to latest stable version;
- if adding "--allow-preview", the extension will be upgraded to the latest version whether it's stable or preview.
- (P3) Improve internal development documentation.
- "experimental" can be applied to extension level, command group level, command level, argument level.
- One extension can use multiple API versions if necessary.
Contributor guide
Assessment
This issue has not been assessed yet.