Azure / Azure/azure-powershell
Allow service teams to combine GA'ed features and previewed features in the same GA'ed Powershell Module without the need to use separate private PowerShell module
- Dominant language
- C#
- Stars
- 4.8k
- Forks
- 4.3k
- Avg merge
- 3d 14h
- Merged PRs (30d)
- 54
Description
## Description of the new feature
This request is officially from all Azure Messaging services team, including, Azure Event Grid, Eventhub, Service bus, and Relay teams. However, we are aware of other service teams who have the same problem and will benefit from the same request.
In a nutshell, we would like a mechanism that allows us to add support for both GA’ed and previewed features in the same PS module. In this context, we will still have a single API version to be used in the PS module, however that module will have -preview tag and will include both GA'ed and preview features. For example, Microsoft.Azure.Management.EventGrid nuget version 5.3.2-preview which corresponds to API version 2020-04-01-preview.
This mechanism show warn user that specific functionalities is still experimental or in preview and he/she should expect them to change in the future until they become GA. Hence, we would like relaxation for the breaking changes requirements for these preview features.
The reasons for this request are:
1. Due to high cost and duplication required for developing two different PS modules for preview and GA'ed features/APIs especially for new services with a lot of development of new features.
2. Due to discoverability constraint of the new module, and additional manual steps customers need to perform to use them
3. Lack of support of public documentation of the new preview modules.
Due to Reason 2 and 3, our customers are not benefiting from the preview modules and we observed very small downloads of our previewed PS modules.
## Proposed implementation details (optional)
We would like similar approach like CLI module where we can combine both features (GA’ed and previewed) in the same release and have a mechanism to differentiate the preview features and being able to change them freely as needed (namely, without going through the breaking changes constrainsts).
This is needed for the following levels:
1. Cmdlet level where the whole command is still in preview.
2. Parameter level, where a new parameter is added to an existing cmdlet
3. Enum value of an existing parameter
I understand we have some cmdlet attribute for the cmdlet level that shows a warning to the user that this is still experimental. We would like similar attribute to be used at the parameter and enum value level too.
Thanks
Contributor guide
Research direction
Start by reviewing the existing cmdlet-level experimental attribute and the PowerShell module versioning flow. Define how preview status and warnings should work for cmdlets, parameters, and enum values, while preserving GA functionality in one module. Done means the proposed mechanism covers all three levels and establishes how preview features may change without the usual breaking-change constraints.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- powershell
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100