Closed ladonnaq closed 5 months ago
Do we allow the user to change the API Spec type? If we do, it could change the release plan type (based on tasks suggested below). @maririos - I don't think we should allow users to change API Spec type, SDK to be released type, and release plan type. If any of these values need to change, they would need to create a new release plan. What do you think?
Agree
I have API Spec PRs that include changes to multiple API versions. Is this a scenario that we need to support?
No. Neither Spec review board (arm or data) allow this. Our tooling will also get confused. People need to make individual PRs for indivitual API versions
Do we allow the user to change the API Spec type? If we do, it could change the release plan type (based on tasks suggested below). @maririos - I don't think we should allow users to change API Spec type, SDK to be released type, and release plan type. If any of these values need to change, they would need to create a new release plan. What do you think?
Agree
I have API Spec PRs that include changes to multiple API versions. Is this a scenario that we need to support?
No. Neither Spec review board (arm or data) allow this. Our tooling will also get confused. People need to make individual PRs for indivitual API versions
Thanks, then we do not worry about this scenario. :-)
@ladonnaq currently the release planner type is tied to the API spec type. So here are clarifying questions:
Private preview release plans do include SDK releases. Update the "Create a release plan" feature to ask user the "API Spec Type" with options of "preview" or "stable".
Nothing to do here. There are no SDKs and the user already selected the API spec type as private
GA release plan should only be for stable SDKs. Modify the "Create a release plan" feature to only allow stable SDKs for GA release plans.
I disagree. There are scenarios where the API spec is GA but the SDK is beta version. and this should be allowed. For GA release plans, we don't need to make any changes
Add a new field that request user to provide the API version.
That will need to happen in a separate work item as the work there is way more involved
@ladonnaq currently the release planner type is tied to the API spec type. So here are clarifying questions:
Private preview release plans do include SDK releases. Update the "Create a release plan" feature to ask user the "API Spec Type" with options of "preview" or "stable".
Nothing to do here. There are no SDKs and the user already selected the API spec type as private
GA release plan should only be for stable SDKs. Modify the "Create a release plan" feature to only allow stable SDKs for GA release plans.
I disagree. There are scenarios where the API spec is GA but the SDK is beta version. and this should be allowed. For GA release plans, we don't need to make any changes
Add a new field that request user to provide the API version.
That will need to happen in a separate work item as the work there is way more involved
Private Preview- I agree with your comment. GA - The scenario you mentioned is covered in the Public Preview release plan. - " scenarios where the API spec is GA (stable) but the SDK is beta version". The GA release plan should only target Stable SDKs. Our APEX requirements align Public Preview with Beta SDKs and GA with Stable SDKs. However, if this approach does not make sense for non-APEX, then we can go with what you recommend. Let me know if you want to discuss. API Version - I agree and will create a new issue.
@ladonnaq : you can test this now in DEV instance. I also made a video. What do you think?
https://github.com/Azure/azure-sdk-tools/assets/9868623/ce9ffe03-0e12-49d4-b29f-bad85b0293cb
Thanks, love the video! I will test tomorrow.
@maririos - I have confirmed in PPE that Public Preview release plans only allow Beta SDKs. I have also confirmed that GA release plans allow Beta and Stable. As I mentioned earlier, I disagree with this design because from an APEX perspective GA aligns to stable APIs and stable SDKs. Stable SDKs can be used to generate Beta SDKs using the Public Preview release plan because Public Preview aligns with Beta SDKs. I think it makes more sense to align the release plans to the SDK type (beta or stable). I will reach out to our stakeholders to discuss and provide update in the GitHub issue.
FYI - There is also another approach we could take, which I believe is needed based on feedback from service partners working on non-APEX release scenarios. The release plan terms we use now (Private Preview, Public Preview, and GA) are because the MVP Release Planner scope was APEX release scenarios. We added support for non-APEX, which was not on our MVP roadmap, to assist in accelerating TypeSpec adoption. We could move away from using these terms to identify release plan types since they are APEX centric terms. Instead, the release plan types could be: API Spec (no SDKs released), Beta SDKs, Stable SDKs. Then we could allow user to confirm release plan is for APEX and identify the lifecycle, which is needed so that the S360/CLC attestation can be automated. We would be able to identify all release scenarios that relate to API Spec, Beta SDKs, Stable SDKs during the creation of the release plans and then next semester customize based on the release scenario.
We could move away from using these terms to identify release plan types since they are APEX centric terms. Instead, the release plan types could be: API Spec (no SDKs released), Beta SDKs, Stable SDKs
Oh I love this actually!! Could you create a separate issue and we look into the implications of this?
As for the requirements of this issue, this has been complited
Requirement: The SDK codegen teams (Management and Data) need to know if the API Specs is preview vs stable and the API version that will be covered in the SDK version. There is no straight forward to obtain this information programmatically. In the near term, we can ask the user to provide this information.
Questions: