Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "Adding a new stable API-version 2023-05-01" #23647

Merged
merged 1 commit into from
Apr 20, 2023

Conversation

Shashank1306s
Copy link
Contributor

@Shashank1306s Shashank1306s commented Apr 20, 2023

Reverts #23541

Reasons to revert back the API-version 2023-05-01

  1. The swagger PR was checked in, but the API version is not present in ARM manifest.
  2. There has been a chronological disorder in the API-version check-in as we have merged 2023-05-01 but 2023-04-01-preview is still in review phase.

@openapi-workflow-bot
Copy link

Hi, @Shashank1306s Thanks for your PR. I am workflow bot for review process. Here are some small tips.

  • Please ensure to do self-check against checklists in first PR comment.
  • PR assignee is the person auto-assigned and responsible for your current PR reviewing and merging.
  • For specs comparison cross API versions, Use API Specs Comparison Report Generator
  • If there is CI failure(s), to fix CI error(s) is mandatory for PR merging; or you need to provide justification in PR comment for explanation. How to fix?

  • Any feedback about review process or workflow bot, pls contact swagger and tools team. vscswagger@microsoft.com

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Apr 20, 2023

    Swagger Validation Report

    ️❌BreakingChange: 142 Errors, 0 Warnings failed [Detail]
    compared swaggers (via Oad v0.10.4)] new version base version
    dataprotection.json 2023-05-01(d52cceb) 2023-05-01(main)

    Only 30 items are listed, please refer to log for more details.

    Rule Message
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/providers/Microsoft.DataProtection/backupVaults' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L21:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/providers/Microsoft.DataProtection/locations/{location}/operationResults/{operationId}' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L63:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/providers/Microsoft.DataProtection/locations/{location}/operationStatus/{operationId}' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L133:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/operationStatus/{operationId}' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L184:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/operationStatus/{operationId}' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L235:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L283:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L328:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/operationResults/{operationId}' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L544:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/locations/{location}/checkNameAvailability' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L612:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/providers/Microsoft.DataProtection/locations/{location}/checkFeatureSupport' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L670:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/providers/Microsoft.DataProtection/operations' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L724:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L761:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies/{backupPolicyName}' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L809:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L969:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1017:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/backup' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1205:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/validateForBackup' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1281:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/operationResults/{operationId}' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1354:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/recoveryPoints' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1411:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/recoveryPoints/{recoveryPointId}' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1477:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/rehydrate' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1531:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/restore' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1604:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/resumeBackups' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1686:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/resumeProtection' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1750:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/stopProtection' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1814:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/suspendBackups' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1878:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/sync' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L1942:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/validateRestore' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L2015:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupJobs' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L2091:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/findRestorableTimeRanges' removed or restructured?
    Old: Microsoft.DataProtection/stable/2023-05-01/dataprotection.json#L2139:5
    ️️✔️Breaking Change(Cross-Version) succeeded [Detail] [Expand]
    There are no breaking changes.
    ️️✔️CredScan succeeded [Detail] [Expand]
    There is no credential detected.
    ️️✔️LintDiff succeeded [Detail] [Expand]
    Validation passes for LintDiff.
    compared tags (via openapi-validator v2.0.0) new version base version
    default default(d52cceb) default(main)
    ️️✔️Avocado succeeded [Detail] [Expand]
    Validation passes for Avocado.
    ️️✔️ApiReadinessCheck succeeded [Detail] [Expand]
    ️️✔️~[Staging] ServiceAPIReadinessTest succeeded [Detail] [Expand]
    Validation passes for ServiceAPIReadinessTest.
    ️️✔️SwaggerAPIView succeeded [Detail] [Expand]
    ️️✔️CadlAPIView succeeded [Detail] [Expand]
    ️️✔️TypeSpecAPIView succeeded [Detail] [Expand]
    ️️✔️ModelValidation succeeded [Detail] [Expand]
    Validation passes for ModelValidation.
    ️️✔️SemanticValidation succeeded [Detail] [Expand]
    Validation passes for SemanticValidation.
    ️️✔️PoliCheck succeeded [Detail] [Expand]
    Validation passed for PoliCheck.
    ️️✔️PrettierCheck succeeded [Detail] [Expand]
    Validation passes for PrettierCheck.
    ️️✔️SpellCheck succeeded [Detail] [Expand]
    Validation passes for SpellCheck.
    ️️✔️Lint(RPaaS) succeeded [Detail] [Expand]
    Validation passes for Lint(RPaaS).
    ️️✔️CadlValidation succeeded [Detail] [Expand]
    Validation passes for CadlValidation.
    ️️✔️TypeSpec Validation succeeded [Detail] [Expand]
    Validation passes for TypeSpec Validation.
    ️️✔️PR Summary succeeded [Detail] [Expand]
    Validation passes for Summary.
    Posted by Swagger Pipeline | How to fix these errors?

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Apr 20, 2023

    Swagger Generation Artifacts

    ️️✔️ApiDocPreview succeeded [Detail] [Expand]
    ️️✔️SDK Breaking Change Tracking succeeded [Detail] [Expand]

    Breaking Changes Tracking




    ️️✔️ azure-sdk-for-net-track2 succeeded [Detail] [Expand]
    ️⚠️ azure-sdk-for-python-track2 warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from 0a1ccfe. SDK Automation 14.0.0
      command	sh scripts/automation_init.sh ../azure-sdk-for-python_tmp/initInput.json ../azure-sdk-for-python_tmp/initOutput.json
      cmderr	[automation_init.sh] WARNING: Skipping azure-nspkg as it is not installed.
      command	sh scripts/automation_generate.sh ../azure-sdk-for-python_tmp/generateInput.json ../azure-sdk-for-python_tmp/generateOutput.json
      cmderr	[automation_generate.sh] npm notice
      cmderr	[automation_generate.sh] npm notice New minor version of npm available! 9.5.0 -> 9.6.5
      cmderr	[automation_generate.sh] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.6.5>
      cmderr	[automation_generate.sh] npm notice Run `npm install -g npm@9.6.5` to update!
      cmderr	[automation_generate.sh] npm notice
    • ️✔️track2_azure-mgmt-dataprotection [View full logs]  [Release SDK Changes]
      info	[Changelog] ### Features Added
      info	[Changelog]
      info	[Changelog]   - Added operation group DppResourceGuardProxyOperations
    ️⚠️ azure-sdk-for-java warning [Detail]
    ️️✔️ azure-sdk-for-go succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs]Release - Generate from 0a1ccfe. SDK Automation 14.0.0
      command	sh ./eng/scripts/automation_init.sh ../../../../../azure-sdk-for-go_tmp/initInput.json ../../../../../azure-sdk-for-go_tmp/initOutput.json
      command	generator automation-v2 ../../../../../azure-sdk-for-go_tmp/generateInput.json ../../../../../azure-sdk-for-go_tmp/generateOutput.json
    • ️✔️sdk/resourcemanager/dataprotection/armdataprotection [View full logs]  [Release SDK Changes]
      info	[Changelog] ### Features Added
      info	[Changelog]
      info	[Changelog] - New function `*ClientFactory.NewDppResourceGuardProxyClient() *DppResourceGuardProxyClient`
      info	[Changelog] - New function `NewDppResourceGuardProxyClient(string, azcore.TokenCredential, *arm.ClientOptions) (*DppResourceGuardProxyClient, error)`
      info	[Changelog] - New function `*DppResourceGuardProxyClient.CreateOrUpdate(context.Context, string, string, string, ResourceGuardProxyBaseResource, *DppResourceGuardProxyClientCreateOrUpdateOptions) (DppResourceGuardProxyClientCreateOrUpdateResponse, error)`
      info	[Changelog] - New function `*DppResourceGuardProxyClient.Delete(context.Context, string, string, string, *DppResourceGuardProxyClientDeleteOptions) (DppResourceGuardProxyClientDeleteResponse, error)`
      info	[Changelog] - New function `*DppResourceGuardProxyClient.Get(context.Context, string, string, string, *DppResourceGuardProxyClientGetOptions) (DppResourceGuardProxyClientGetResponse, error)`
      info	[Changelog] - New function `*DppResourceGuardProxyClient.NewListPager(string, string, *DppResourceGuardProxyClientListOptions) *runtime.Pager[DppResourceGuardProxyClientListResponse]`
      info	[Changelog] - New function `*DppResourceGuardProxyClient.UnlockDelete(context.Context, string, string, string, UnlockDeleteRequest, *DppResourceGuardProxyClientUnlockDeleteOptions) (DppResourceGuardProxyClientUnlockDeleteResponse, error)`
      info	[Changelog] - New struct `ResourceGuardOperationDetail`
      info	[Changelog] - New struct `ResourceGuardProxyBase`
      info	[Changelog] - New struct `ResourceGuardProxyBaseResource`
      info	[Changelog] - New struct `ResourceGuardProxyBaseResourceList`
      info	[Changelog] - New struct `UnlockDeleteRequest`
      info	[Changelog] - New struct `UnlockDeleteResponse`
      info	[Changelog]
      info	[Changelog] Total 0 breaking change(s), 19 additive change(s).
    ️️✔️ azure-sdk-for-js succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs]Release - Generate from 0a1ccfe. SDK Automation 14.0.0
      command	sh .scripts/automation_init.sh ../azure-sdk-for-js_tmp/initInput.json ../azure-sdk-for-js_tmp/initOutput.json
      warn	File azure-sdk-for-js_tmp/initOutput.json not found to read
      command	sh .scripts/automation_generate.sh ../azure-sdk-for-js_tmp/generateInput.json ../azure-sdk-for-js_tmp/generateOutput.json
    • ️✔️@azure/arm-dataprotection [View full logs]  [Release SDK Changes]
      info	[Changelog] **Features**
      info	[Changelog]
      info	[Changelog]   - Added operation group DppResourceGuardProxy
      info	[Changelog]   - Added Interface DppResourceGuardProxyCreateOrUpdateOptionalParams
      info	[Changelog]   - Added Interface DppResourceGuardProxyDeleteOptionalParams
      info	[Changelog]   - Added Interface DppResourceGuardProxyGetOptionalParams
      info	[Changelog]   - Added Interface DppResourceGuardProxyListNextOptionalParams
      info	[Changelog]   - Added Interface DppResourceGuardProxyListOptionalParams
      info	[Changelog]   - Added Interface DppResourceGuardProxyUnlockDeleteOptionalParams
      info	[Changelog]   - Added Interface ResourceGuardOperationDetail
      info	[Changelog]   - Added Interface ResourceGuardProxyBase
      info	[Changelog]   - Added Interface ResourceGuardProxyBaseResource
      info	[Changelog]   - Added Interface ResourceGuardProxyBaseResourceList
      info	[Changelog]   - Added Interface UnlockDeleteRequest
      info	[Changelog]   - Added Interface UnlockDeleteResponse
      info	[Changelog]   - Added Type Alias DppResourceGuardProxyCreateOrUpdateResponse
      info	[Changelog]   - Added Type Alias DppResourceGuardProxyGetResponse
      info	[Changelog]   - Added Type Alias DppResourceGuardProxyListNextResponse
      info	[Changelog]   - Added Type Alias DppResourceGuardProxyListResponse
      info	[Changelog]   - Added Type Alias DppResourceGuardProxyUnlockDeleteResponse
    ️❌ azure-powershell failed [Detail]
    • Failed [Logs]Release - Generate from 0a1ccfe. SDK Automation 14.0.0
      command	sh ./tools/SwaggerCI/init.sh ../azure-powershell_tmp/initInput.json ../azure-powershell_tmp/initOutput.json
      command	pwsh ./tools/SwaggerCI/psci.ps1 ../azure-powershell_tmp/generateInput.json ../azure-powershell_tmp/generateOutput.json
    • Az.dataprotection.DefaultTag [View full logs]  [Release SDK Changes]
    Posted by Swagger Pipeline | How to fix these errors?

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Apr 20, 2023

    Generated ApiView

    Language Package Name ApiView Link
    Go sdk/resourcemanager/dataprotection/armdataprotection https://apiview.dev/Assemblies/Review/f7c50b49811444f98823099bd2dbae95
    Java azure-resourcemanager-dataprotection https://apiview.dev/Assemblies/Review/3197f9558d544f1babe33b672880b8b0
    .Net Azure.ResourceManager.DataProtectionBackup https://apiview.dev/Assemblies/Review/43dffabfcdbf40f5b0e46b987785012f
    JavaScript @azure/arm-dataprotection https://apiview.dev/Assemblies/Review/2b30ada863a346aba9ca988c7c98b5b8

    @openapi-workflow-bot
    Copy link

    Hi @Shashank1306s, one or multiple breaking change(s) is detected in your PR. Please check out the breaking change(s), and provide business justification in the PR comment and @ PR assignee why you must have these change(s), and how external customer impact can be mitigated. Please ensure to follow breaking change policy to request breaking change review and approval before proceeding swagger PR review.
    Action: To initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
    If you want to know the production traffic statistic, please see ARM Traffic statistic.
    If you think it is false positive breaking change, please provide the reasons in the PR comment, report to Swagger Tooling Team via https://aka.ms/swaggerfeedback.
    Note: To avoid breaking change, you can refer to Shift Left Solution for detecting breaking change in early phase at your service code repository.

    @tombuildsstuff
    Copy link
    Contributor

    @live1206 @Shashank1306s why was this Stable API Version removed?

    This API Version's already shipped into downstream tooling (for example this API Version has shipped into hashicorp/go-azure-sdk) - so unfortunately reverting this has broken our CI pipeline: https://github.com/hashicorp/pandora/actions/runs/4762723313/jobs/8465283635?pr=2412#step:4:683

    My understanding is that once a Stable API Version is merged into this repository it then needs to go through the standard 3 year deprecation cycle - so could you elaborate on why this API Version's been removed suddenly, since there's no reasoning listed in this PR? cc @mikekistler

    Thanks!

    @live1206
    Copy link
    Member

    live1206 commented Apr 24, 2023

    @live1206 @Shashank1306s why was this Stable API Version removed?

    This API Version's already shipped into downstream tooling (for example this API Version has shipped into hashicorp/go-azure-sdk) - so unfortunately reverting this has broken our CI pipeline: https://github.com/hashicorp/pandora/actions/runs/4762723313/jobs/8465283635?pr=2412#step:4:683

    My understanding is that once a Stable API Version is merged into this repository it then needs to go through the standard 3 year deprecation cycle - so could you elaborate on why this API Version's been removed suddenly, since there's no reasoning listed in this PR? cc @mikekistler

    Thanks!

    @tombuildsstuff AFAIK, we haven't released any SDK for this swagger version, so the stable API version is not available to the users yet. It should be safe to revert the swagger change, please let me know if I am wrong about this.

    Listing the reasons from @Shashank1306s in mail thread:
    1. The swagger PR was checked in, but the API version is not present in ARM manifest yet.
    2. There has been a chronological disorder in the API-version check-in as we have merged 2023-05-01 but 2023-04-01-preview is still in review phase.

    @tombuildsstuff
    Copy link
    Contributor

    @live1206 FWIW we parse the API Definition files directly (since we don't consume the AutoRest Tags as we intentionally don't want to support Composite API Versions) - so support for this API Version has already shipped on our side (see https://pkg.go.dev/github.com/hashicorp/go-azure-sdk@v0.20230420.1163422/resource-manager/dataprotection/2023-05-01).

    From our side, once a Stable API Version has been merged into this repository - we consider this ready to consume by our tooling - so whilst I can understand removing a Preview API version (which IIRC should go through a ~3 month deprecation period) - removing a Stable API Version should go through the standard 3 year deprecation period AFAIK?

    For the moment we can remove support for this API version on our side (since it sounds like this isn't fully deployed on the ARM side?), which is being tracked in hashicorp/pandora#2419.

    However it would be helpful for consumers of the API Definitions to have context for these removals, rather than an empty PR description without any context (which has meant we've had to spend time investigating why, rather than just working around this), particularly since this has had the breaking-changes-approved label added?

    suxi-ms pushed a commit that referenced this pull request Apr 24, 2023
    @mikekistler
    Copy link
    Member

    I agree with @tombuildsstuff that stable versions committed to the public main branch should not be pulled back or changed in any non-breaking manner without going through breaking change review.

    If the service was not yet available to users then it should not have merged to main in the first place.

    @live1206
    Copy link
    Member

    live1206 commented Apr 25, 2023

    I agree with @tombuildsstuff that stable versions committed to the public main branch should not be pulled back or changed in any non-breaking manner without going through breaking change review.

    If the service was not yet available to users then it should not have merged to main in the first place.

    Thanks @mikekistler for the clarification, I will not pull back any change without breaking change review anymore and will share this with the other team members.
    @mikekistler May I ask what we should do with this scenario?
    It could happen that a not ready PR was accidentally merged into public main, shall we go through the standard 3 year deprecation cycle as @tombuildsstuff mentioned above? Thanks!

    JoshLove-msft pushed a commit to JoshLove-msft/azure-rest-api-specs that referenced this pull request Apr 25, 2023
    @live1206
    Copy link
    Member

    live1206 commented Apr 26, 2023

    @live1206 FWIW we parse the API Definition files directly (since we don't consume the AutoRest Tags as we intentionally don't want to support Composite API Versions) - so support for this API Version has already shipped on our side (see https://pkg.go.dev/github.com/hashicorp/go-azure-sdk@v0.20230420.1163422/resource-manager/dataprotection/2023-05-01).

    From our side, once a Stable API Version has been merged into this repository - we consider this ready to consume by our tooling - so whilst I can understand removing a Preview API version (which IIRC should go through a ~3 month deprecation period) - removing a Stable API Version should go through the standard 3 year deprecation period AFAIK?

    For the moment we can remove support for this API version on our side (since it sounds like this isn't fully deployed on the ARM side?), which is being tracked in hashicorp/pandora#2419.

    However it would be helpful for consumers of the API Definitions to have context for these removals, rather than an empty PR description without any context (which has meant we've had to spend time investigating why, rather than just working around this), particularly since this has had the breaking-changes-approved label added?

    @tombuildsstuff
    image
    The PR was merged 1 day before the reverting, so I wrongly assumed there was no down-stream dependencies. I guess dataprotect team were not aware of this, either. Otherwise, the reverting would not be raised in the first place.
    Which RPs does your product depend on? If anything like this happen again, we could give you a heads-up beforehand.

    @mikekistler Is there a way to know the down-stream dependencies of the public swagger? I think breaking change review board would need to evaluate the dependencies as well during the breaking change review for this case.

    @tombuildsstuff
    Copy link
    Contributor

    @live1206 at this point we're importing the majority of Services (see https://github.com/hashicorp/go-azure-sdk/tree/main/resource-manager) - we get a daily Swagger update via Dependabot, at which point all new API Versions for any existing Services that we're importing, will get imported - in the future the same will be true for new Services too - meaning that we'll be consuming any new API versions within ~24 hours (depending on the time of merge etc).

    Honestly the biggest issue here for us isn't that this got pulled (although that's unfortunate, bugs [such as merging this early] happen from time-to-time). The issue for us is that this PR contained no information about why this was being reverted (if the PR description stated that "this API version isn't yet available/deployed/etc" we'd know how to react pretty quickly, but with a blank PR description we need to spend time digging in to understand what's happened.

    It looks like in this case the PR description now contains this information (so thanks @Shashank1306s for adding that) - so I'd like to call that out as a good example here of the type of information needed, which would have meant that we didn't need to dig into this:

    Screenshot 2023-04-26 at 16 19 20

    @live1206
    Copy link
    Member

    @tombuildsstuff
    Thank you for sharing the information, it's good to know about the 24-hour syncing from your side.
    And I will make sure to get the comments added to PR if conversation happens in mail thread or Teams chat in the future.

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    Approved-BreakingChange DO NOT USE! OBSOLETE label. See https://github.com/Azure/azure-sdk-tools/issues/6374 BreakingChangeReviewRequired <valid label in PR review process>add this label when breaking change review is required resource-manager
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    5 participants