Skip to content

Conversation

@TimLovellSmith
Copy link
Member

@TimLovellSmith TimLovellSmith commented Apr 20, 2021

(This PR is a redo of #13937 )

This is to document the latest REST API version for redis cache.

Changelog

Please ensure to add changelog with this PR by answering the following questions.

  1. What's the purpose of the update?
    • new service onboarding
    • new API version
    • update existing version for new feature
    • update existing version to fix swagger quality issue in s360
    • Other, please clarify
  2. When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
    Answer: [Already deployed.]
  3. When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
    Answer: [When new api-version is approved.]
  4. If it's an update to existing version, please select SDKs of specific language and CLIs that require refresh after swagger is published.
    • SDK of .NET (need service team to ensure code readiness)
    • SDK of Python
    • SDK of Java
    • SDK of Js
    • SDK of Go
    • PowerShell
    • CLI
    • Terraform
    • No, no need to refresh for updates in this PR
    • No, its a new version, not an update to an existing version

Contribution checklist:

If any further question about AME onboarding or validation tools, please view the FAQ.

ARM API Review Checklist

  • Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

    • Adding new API(s): [No]
    • Adding a new API version [Yes]
    • Ensure to copy the existing version into new directory structure for first commit (including refactoring) and then push new changes including version updates in separate commits. This is required to review the changes efficiently.
    • Adding a new service [No]
  • Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

-[x] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them. [Blocked, per Ray saying we need review]

Breaking Change Review Checklist

If there are following updates in the PR, ensure to request an approval from Breaking Change Review Board as defined in the Breaking Change Policy.

  • Removing API(s) in stable version
  • Removing properties in stable version
  • Removing API version(s) in stable version
  • Updating API in stable or public preview version with Breaking Change Validation errors
  • Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

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.

Please follow the link to find more details on PR review process.

@openapi-workflow-bot
Copy link

Hi, @TimLovellSmith 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. [email protected]

    @openapi-workflow-bot
    Copy link

    [Call for Action] To better understand Azure service dev/test scenario, and support Azure service developer better on Swagger and REST API related tests in early phase, please help to fill in with this survey https://aka.ms/SurveyForEarlyPhase. It will take 5 to 10 minutes. If you already complete survey, please neglect this comment. Thanks.

    @openapi-workflow-bot openapi-workflow-bot bot added the WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required label Apr 20, 2021
    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Apr 20, 2021

    Swagger Validation Report

    ️️✔️BreakingChange succeeded [Detail] [Expand]
    There are no breaking changes.
    ️⚠️LintDiff: 0 Warnings warning [Detail]
    The following errors/warnings exist before current PR submission:

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

    Rule Message
    R3021 - PathResourceTypeNameCamelCase Resource type naming must follow camel case. Path: '/subscriptions/{subscriptionId}/providers/Microsoft.Cache/CheckNameAvailability'
    Location: Microsoft.Cache/stable/2020-12-01/redis.json#L68
    R4009 - RequiredReadOnlySystemData The response of operation:'Redis_Get' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/stable/2020-12-01/redis.json#L345
    R4009 - RequiredReadOnlySystemData The response of operation:'FirewallRules_Get' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/stable/2020-12-01/redis.json#L899
    R4009 - RequiredReadOnlySystemData The response of operation:'PatchSchedules_Get' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/stable/2020-12-01/redis.json#L1208
    R4009 - RequiredReadOnlySystemData The response of operation:'LinkedServer_Get' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/stable/2020-12-01/redis.json#L1399
    R4009 - RequiredReadOnlySystemData The response of operation:'PrivateEndpointConnections_Get' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/stable/2020-12-01/redis.json#L1562
    R4009 - RequiredReadOnlySystemData The response of operation:'Redis_Create' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/stable/2020-12-01/redis.json#L172
    R4009 - RequiredReadOnlySystemData The response of operation:'FirewallRules_CreateOrUpdate' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/stable/2020-12-01/redis.json#L828
    R4009 - RequiredReadOnlySystemData The response of operation:'PatchSchedules_CreateOrUpdate' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/stable/2020-12-01/redis.json#L1067
    R4009 - RequiredReadOnlySystemData The response of operation:'LinkedServer_Create' is defined without 'systemData'. Consider adding the systemData to the response.
    Location: Microsoft.Cache/stable/2020-12-01/redis.json#L1273
    ️️✔️Avocado succeeded [Detail] [Expand]
    Validation passes for Avocado.
    ️️✔️ModelValidation succeeded [Detail] [Expand]
    Validation passes for ModelValidation.
    ️️✔️SemanticValidation succeeded [Detail] [Expand]
    Validation passes for SemanticValidation.
    ️❌Cross Version BreakingChange (Base on preview version): 18 Errors, 1 Warnings failed [Detail]

    Only 10 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}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/Redis/{name}/listUpgradeNotifications' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L103: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.Cache/Redis/{name}' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L155: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.Cache/Redis' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L354:5
    1005 - RemovedPath The new version is missing a path that was found in the old version. Was path '/subscriptions/{subscriptionId}/providers/Microsoft.Cache/Redis' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L394: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.Cache/Redis/{name}/listKeys' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L427: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.Cache/Redis/{name}/regenerateKey' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L471: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.Cache/Redis/{name}/forceReboot' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L524: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.Cache/Redis/{name}/import' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L577: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.Cache/Redis/{name}/export' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L634: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.Cache/Redis/{cacheName}/firewallRules' removed or restructured?
    Old: Microsoft.Cache/preview/2019-07-01/redis.json#L691:5
    ️❌Cross Version BreakingChange (Base on stable version): 1 Errors, 2 Warnings failed [Detail]
    Rule Message
    1029 - ReadonlyPropertyChanged The read only property has changed from 'true' to 'false'.
    New: Microsoft.Cache/stable/2020-12-01/redis.json#L1830:9
    Old: Microsoft.Cache/stable/2020-06-01/redis.json#L1922:9
    ⚠️ 1032 - DifferentAllOf The new version has a different 'allOf' property than the previous one.
    New: Microsoft.Cache/stable/2020-12-01/redis.json#L866:13
    Old: Microsoft.Cache/stable/2020-06-01/redis.json#L863:13
    ⚠️ 1032 - DifferentAllOf The new version has a different 'allOf' property than the previous one.
    New: Microsoft.Cache/stable/2020-12-01/redis.json#L2098:5
    Old: Microsoft.Cache/stable/2020-06-01/redis.json#L2153:5
    ️️✔️CredScan succeeded [Detail] [Expand]
    There is no credential detected.
    ️️✔️[Staging] SDK Track2 Validation succeeded [Detail]
    The following errors/warnings are introduced by current PR:

    |:speech_balloon: AutorestCore/Exception|"readme":"redis/resource-manager/readme.md",
    "tag":"package-2020-06",
    "details":"> Installing AutoRest extension '@microsoft.azure/openapi-validator' (1.8.0)"|
    |:speech_balloon: AutorestCore/Exception|"readme":"redis/resource-manager/readme.md",
    "tag":"package-2020-06",
    "details":"> Installed AutoRest extension '@microsoft.azure/openapi-validator' (1.8.0->1.8.0)"|
    |:speech_balloon: AutorestCore/Exception|"readme":"redis/resource-manager/readme.md",
    "tag":"package-2020-12",
    "details":"> Loading AutoRest extension '@microsoft.azure/openapi-validator' (1.8.0->1.8.0)"|
    |:speech_balloon: AutorestCore/Exception|"readme":"redis/resource-manager/readme.md",
    "tag":"package-2020-12",
    "details":"> Loading AutoRest extension '@autorest/modelerfour' (4.15.456->4.15.456)"|


    The following errors/warnings exist before current PR submission:

    Rule Message
    PreCheck/DuplicateSchema "readme":"redis/resource-manager/readme.md",
    "tag":"package-2020-06",
    "details":"Duplicate Schema named Resource -- properties.id.description: undefined => "Fully qualified resource ID for the resource. Ex - /subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/resourceProviderNamespace/resourceType/resourceName",
    properties.name.description: undefined => "The name of the resource",
    properties.type.description: undefined => "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"",
    title: undefined => "Resource" ; This error can be temporarily avoided by using the 'modelerfour.lenient-model-deduplication' setting. NOTE: This setting will be removed in a future version of @autorest/modelerfour; schemas should be updated to fix this issue sooner than that."
    AutorestCore/Exception "readme":"redis/resource-manager/readme.md",
    "tag":"package-2020-06",
    "details":"Error: Plugin prechecker reported failure."
    💬 AutorestCore/Exception "readme":"redis/resource-manager/readme.md",
    "tag":"package-2020-06",
    "details":"> Loading AutoRest extension '@autorest/modelerfour' (4.15.456->4.15.456)"
    💬 AutorestCore/Exception "readme":"redis/resource-manager/readme.md",
    "tag":"package-2019-07-preview",
    "details":"> Loading AutoRest extension '@microsoft.azure/openapi-validator' (1.8.0->1.8.0)"
    💬 AutorestCore/Exception "readme":"redis/resource-manager/readme.md",
    "tag":"package-2019-07-preview",
    "details":"> Loading AutoRest extension '@autorest/modelerfour' (4.15.456->4.15.456)"
    💬 AutorestCore/Exception "readme":"redis/resource-manager/readme.md",
    "tag":"package-2018-03",
    "details":"> Loading AutoRest extension '@microsoft.azure/openapi-validator' (1.8.0->1.8.0)"
    💬 AutorestCore/Exception "readme":"redis/resource-manager/readme.md",
    "tag":"package-2018-03",
    "details":"> Loading AutoRest extension '@autorest/modelerfour' (4.15.456->4.15.456)"
    💬 AutorestCore/Exception "readme":"redis/resource-manager/readme.md",
    "tag":"package-2017-10",
    "details":"> Loading AutoRest extension '@microsoft.azure/openapi-validator' (1.8.0->1.8.0)"
    💬 AutorestCore/Exception "readme":"redis/resource-manager/readme.md",
    "tag":"package-2017-10",
    "details":"> Loading AutoRest extension '@autorest/modelerfour' (4.15.456->4.15.456)"
    💬 AutorestCore/Exception "readme":"redis/resource-manager/readme.md",
    "tag":"package-2017-02",
    "details":"> Loading AutoRest extension '@microsoft.azure/openapi-validator' (1.8.0->1.8.0)"
    ️️✔️[Staging] PrettierCheck succeeded [Detail] [Expand]
    Validation passes for PrettierCheck.
    ️️✔️[Staging] SpellCheck succeeded [Detail] [Expand]
    Validation passes for SpellCheck.
    Posted by Swagger Pipeline | How to fix these errors?

    @openapi-workflow-bot
    Copy link

    Hi, @TimLovellSmith your PR are labelled with WaitForARMFeedback. A notification email will be sent out shortly afterwards to notify ARM review board([email protected]). cc @

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Apr 20, 2021

    Swagger Generation Artifacts

    ️️✔️ azure-sdk-for-js succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs]Release - Generate from fc32868. SDK Automation 14.0.0
      warn	Skip initScript due to not configured
      command	autorest --version=V2 --typescript --license-header=MICROSOFT_MIT_NO_VERSION [email protected]/[email protected] --typescript-sdks-folder=/home/vsts/work/1/s/azure-sdk-for-js/azure-sdk-for-js ../../azure-rest-api-specs/specification/redis/resource-manager/readme.md
    • ️✔️@azure/arm-rediscache [View full logs]  [Release SDK Changes]
      cmderr	[npmPack] loaded rollup.config.js with warnings
      cmderr	[npmPack] (!) Unused external imports
      cmderr	[npmPack] default imported from external module 'rollup' but never used
      cmderr	[npmPack] ./esm/redisManagementClient.js → ./dist/arm-rediscache.js...
      cmderr	[npmPack] created ./dist/arm-rediscache.js in 362ms
    ️⚠️ azure-sdk-for-python warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from fc32868. 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] ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
      cmderr	[automation_init.sh] azure-mgmt-core 1.2.2 requires azure-core<2.0.0,>=1.9.0, but you have azure-core 1.6.0 which is incompatible.
      cmderr	[automation_init.sh] ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
      cmderr	[automation_init.sh] azure-mgmt-core 1.2.2 requires azure-core<2.0.0,>=1.9.0, but you have azure-core 1.6.0 which is incompatible.
      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
    • ️✔️azure-mgmt-redis [View full logs]  [Release SDK Changes] Breaking Change Detected
      info	[Changelog] **Features**
      info	[Changelog]
      info	[Changelog]   - Model RedisCreateParameters has a new parameter replicas_per_primary
      info	[Changelog]   - Model RedisCreateParameters has a new parameter redis_version
      info	[Changelog]   - Model RedisCreateParameters has a new parameter public_network_access
      info	[Changelog]   - Model RedisUpdateParameters has a new parameter replicas_per_primary
      info	[Changelog]   - Model RedisUpdateParameters has a new parameter redis_version
      info	[Changelog]   - Model RedisUpdateParameters has a new parameter public_network_access
      info	[Changelog]   - Model RedisInstanceDetails has a new parameter is_primary
      info	[Changelog]   - Model RedisFirewallRuleCreateParameters has a new parameter name
      info	[Changelog]   - Model RedisFirewallRuleCreateParameters has a new parameter type
      info	[Changelog]   - Model RedisFirewallRuleCreateParameters has a new parameter id
      info	[Changelog]   - Model RedisResource has a new parameter replicas_per_primary
      info	[Changelog]   - Model RedisResource has a new parameter private_endpoint_connections
      info	[Changelog]   - Model RedisResource has a new parameter public_network_access
      info	[Changelog]   - Added operation RedisOperations.list_by_subscription
      info	[Changelog]   - Added operation FirewallRulesOperations.list
      info	[Changelog]   - Added operation group PrivateEndpointConnectionsOperations
      info	[Changelog]   - Added operation group PrivateLinkResourcesOperations
      info	[Changelog]
      info	[Changelog] **Breaking changes**
      info	[Changelog]
      info	[Changelog]   - Removed operation RedisOperations.list
      info	[Changelog]   - Removed operation FirewallRulesOperations.list_by_redis_resource
    ️⚠️ azure-sdk-for-java warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from fc32868. SDK Automation 14.0.0
      command	./eng/mgmt/automation/init.sh ../azure-sdk-for-java_tmp/initInput.json ../azure-sdk-for-java_tmp/initOutput.json
      command	./eng/mgmt/automation/generate.py ../azure-sdk-for-java_tmp/generateInput.json ../azure-sdk-for-java_tmp/generateOutput.json
      cmderr	[generate.py] 2021-05-11 02:33:51 INFO [VERSION][Not Found] cannot find version for "com.azure.resourcemanager:azure-resourcemanager-redis-generated"
      cmderr	[generate.py] 2021-05-11 02:33:51 INFO [VERSION][Not Found] cannot find stable version, current version "1.0.0-beta.1"
      cmderr	[generate.py] 2021-05-11 02:33:51 INFO autorest --version=3.1.3 --use=@autorest/[email protected] --java.azure-libraries-for-java-folder=/home/vsts/work/1/s/azure-sdk-for-java --java.output-folder=/home/vsts/work/1/s/azure-sdk-for-java/sdk/redis/azure-resourcemanager-redis-generated --java.namespace=com.azure.resourcemanager.redis.generated   --java --pipeline.modelerfour.additional-checks=false --pipeline.modelerfour.lenient-model-deduplication=true --azure-arm --verbose --sdk-integration --fluent=lite --java.fluent=lite --java.license-header=MICROSOFT_MIT_SMALL ../azure-rest-api-specs/specification/redis/resource-manager/readme.md
      cmderr	[generate.py] 2021-05-11 02:34:26 INFO [CI][Success] Write to ci.yml
      cmderr	[generate.py] 2021-05-11 02:34:26 INFO [POM][Process] dealing with pom.xml
      cmderr	[generate.py] 2021-05-11 02:34:26 INFO [POM][Skip] pom already has module azure-resourcemanager-redis-generated
      cmderr	[generate.py] 2021-05-11 02:34:26 INFO [POM][Success] Write to pom.xml
      cmderr	[generate.py] 2021-05-11 02:34:26 INFO [POM][Process] dealing with root pom
      cmderr	[generate.py] 2021-05-11 02:34:26 INFO [POM][Success] Write to root pom
    • ️✔️azure-resourcemanager-redis-generated [View full logs]  [Release SDK Changes]
      cmderr	[Inst] 2021-05-11 02:37:54 DEBUG Got artifact_id: azure-resourcemanager-redis-generated
      cmderr	[Inst] 2021-05-11 02:37:54 DEBUG Got artifact: pom.xml
      cmderr	[Inst] 2021-05-11 02:37:54 DEBUG Got artifact: azure-resourcemanager-redis-generated-1.0.0-beta.1-sources.jar
      cmderr	[Inst] 2021-05-11 02:37:54 DEBUG Got artifact: azure-resourcemanager-redis-generated-1.0.0-beta.1-javadoc.jar
      cmderr	[Inst] 2021-05-11 02:37:54 DEBUG Got artifact: azure-resourcemanager-redis-generated-1.0.0-beta.1.jar
      cmderr	[Inst] 2021-05-11 02:37:54 DEBUG Match jar package: azure-resourcemanager-redis-generated-1.0.0-beta.1.jar
      cmderr	[Inst] 2021-05-11 02:37:54 DEBUG output: {"full": "```sh\ncurl -L \"https://portal.azure-devex-tools.com/api/sdk-dl-pub?p=Azure/14023/azure-sdk-for-java/azure-resourcemanager-redis-generated/azure-resourcemanager-redis-generated-1.0.0-beta.1.jar\" -o azure-resourcemanager-redis-generated-1.0.0-beta.1.jar\nmvn install:install-file -DgroupId=com.azure.resourcemanager -DartifactId=azure-resourcemanager-redis-generated -Dversion=1.0.0-beta.0 -Dfile=azure-resourcemanager-redis-generated-1.0.0-beta.1.jar -Dpackaging=jar -DgeneratePom=true
      ```"}
    ️️✔️ azure-sdk-for-net succeeded [Detail] [Expand]
    ️️✔️ azure-resource-manager-schemas succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs]Release - Generate from fc32868. Schema Automation 14.0.0
      command	.sdkauto/initScript.sh ../azure-resource-manager-schemas_tmp/initInput.json ../azure-resource-manager-schemas_tmp/initOutput.json
      warn	File azure-resource-manager-schemas_tmp/initOutput.json not found to read
      command	.sdkauto/generateScript.sh ../azure-resource-manager-schemas_tmp/generateInput.json ../azure-resource-manager-schemas_tmp/generateOutput.json
    ️️✔️ azure-sdk-for-go succeeded [Detail] [Expand]
    ️️✔️[Staging] ApiDocPreview succeeded [Detail] [Expand]
     Please click here to preview with your @microsoft account. 
    Posted by Swagger Pipeline | How to fix these errors?

    @openapi-workflow-bot
    Copy link

    Hi, @TimLovellSmith your PR are labelled with WaitForARMFeedback. A notification email will be sent out shortly afterwards to notify ARM review board([email protected]). cc @zhenglaizhang

    @openapi-workflow-bot
    Copy link

    Hi @TimLovellSmith, Your PR has some issues. Please fix the CI sequentially by following the order of Avocado, semantic validation, model validation, breaking change, lintDiff.

    TaskHow to fixPrioritySupport (Microsoft alias)
    AvocadoFix-AvocadoHighruowan
    Semantic validationFix-SemanticValidation-ErrorHighraychen, jianyxi
    Model validationFix-ModelValidation-ErrorHighraychen,jianyxi
    LintDiffFix-LintDiffhighjianyxi, ruoxuan
    If you need further help, please feedback via swagger feedback."

    @TimLovellSmith
    Copy link
    Member Author

    @raych1 Resolved the conflicts by rebase.

    @raych1
    Copy link
    Member

    raych1 commented May 8, 2021

    @raych1 Resolved the conflicts by rebase.

    @TimLovellSmith , there's breaking change compare to previous stable version. It needs to get breaking change review board approval.

    @openapi-workflow-bot
    Copy link

    Hi @TimLovellSmith, 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.

    @TimLovellSmith
    Copy link
    Member Author

    TimLovellSmith commented May 8, 2021

    @raych1
    As mentioned earlier, but expanding detail:

    All the remaining cross-version breaking change errors flagged by CI are intentional, or they are motivated by linter warnings.

    • We added 'int32' format on an integer array where there was none, to fix a linter warning. Is the default type when not specified in OpenAPI spec defined? Is it defined as int32? If not, I'm happy to revert that and suppress the warning as its probably the safer option, but please clarify for me. It would be great if you could further enhance the guidance for warning 1023 here
    • We made redisVersion a read-write property, so that customers can create caches with redisVersion=6 instead of the default of 4. This is an *intentional* cross-version change so that we can *enable new functionality*. Because it was already modeled as a string, and customers have to opt-in to using the new version we don't think this is a risky change that will break people.
    • Last set of errors is because we refactored to use common-types 'Operation' type definitions, which are more strict about marking properties read-only than before. This results in a lot of breaking changes warnings about lines 2568-L2598, but the assumption I have is that these are *desirable* changes because those properties were never intended to be user-writable, and it seems better to refactor to use common types. They were always read-only properties as far as REST-API usage goes because they are used only to retrieve the operation metadata from the server. We can revert this and suppress linter warnings telling us to do this if it would negatively impact customers.
    • I believe the DifferentAllOf warnings are similarly caused by refactoring to use TrackedResource and ProxyResource from common-types, and I think that is non-breaking REST API wise, plus desirable for factoring / API consistency. We can revert this and suppress linter warnings telling us to do this, if it would negatively impact customers.
    ❌ 1023 - TypeFormatChanged The new version has a different format than the previous one.New: Microsoft.Cache/stable/2020-12-01/redis.json#L2262:11Old: Microsoft.Cache/stable/2020-06-01/redis.json#L2317:11
    ❌ 1029 - ReadonlyPropertyChanged The read only property has changed from 'true' to 'false'.New: Microsoft.Cache/stable/2020-12-01/redis.json#L1830:9Old: Microsoft.Cache/stable/2020-06-01/redis.json#L1922:9
    -- --
    ❌ 1029 - ReadonlyPropertyChanged The read only property has changed from 'false' to 'true'.New: common-types/resource-management/v2/types.json#L343:9Old: Microsoft.Cache/stable/2020-06-01/redis.json#L2568:9
    ❌ 1029 - ReadonlyPropertyChanged The read only property has changed from 'false' to 'true'.New: common-types/resource-management/v2/types.json#L356:13Old: Microsoft.Cache/stable/2020-06-01/redis.json#L2575:13
    ❌ 1029 - ReadonlyPropertyChanged The read only property has changed from 'false' to 'true'.New: common-types/resource-management/v2/types.json#L366:13Old: Microsoft.Cache/stable/2020-06-01/redis.json#L2579:13
    ❌ 1029 - ReadonlyPropertyChanged The read only property has changed from 'false' to 'true'.New: common-types/resource-management/v2/types.json#L361:13Old: Microsoft.Cache/stable/2020-06-01/redis.json#L2583:13
    ❌ 1029 - ReadonlyPropertyChanged The read only property has changed from 'false' to 'true'.New: common-types/resource-management/v2/types.json#L371:13Old: Microsoft.Cache/stable/2020-06-01/redis.json#L2587:13
    ❌ 1029 - ReadonlyPropertyChanged The read only property has changed from 'false' to 'true'.New: common-types/resource-management/v2/types.json#L409:9Old: Microsoft.Cache/stable/2020-06-01/redis.json#L2598:9
    ⚠️ 1032 - DifferentAllOf The new version has a different 'allOf' property than the previous one.New: Microsoft.Cache/stable/2020-12-01/redis.json#L866:13Old: Microsoft.Cache/stable/2020-06-01/redis.json#L863:13
    ⚠️ 1032 - DifferentAllOf The new version has a different 'allOf' property than the previous one.New: Microsoft.Cache/stable/2020-12-01/redis.json#L2098:5Old: Microsoft.Cache/stable/2020-06-01/redis.json#L2153:5

    …ce from common-types. Since otherwise we get "Duplicate Schema named Resource -- properties.id.description: undefined => "Fully qualified resource ID for the resource. Ex - /subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/resourceProviderNamespace/resourceType/resourceName",
    
    properties.name.description: undefined => "The name of the resource","
    @TimLovellSmith
    Copy link
    Member Author

    TimLovellSmith commented May 8, 2021

    @raych1 To simplify the scope of discussion, I've pushed new commits that minimize the breaking change errors to just redisVersion. I consider this to be a false positive.

    More specifically, it is not a breaking change, because neither making formerly read-only string properties writeable, nor adding new string values to a string property are breaking changes. They don't break the REST API, they won't break SDKs, and its unlikely to break most app logic, since most apps wouldn't have had a need to inspect the value of the specific redisVersion string they receive, since it never previously varied. Even if it does broke app logic, it was a break the app developer could have predicted just by considering the semantics of the field. Its a version string! New versions are a thing that happen.

    In any case, in our API, we do need a way to model different redis versions 4 and 6, so that customers can opt-in to creating caches on redisVersion 6. And the logical way to do that is... to let them specify the redis version. It would be weird to be doing it any other way when we have a redisVersion property defined here already.

    ❌ 1029 - ReadonlyPropertyChanged The read only property has changed from 'true' to 'false'.New: Microsoft.Cache/stable/2020-12-01/redis.json#L1830:9Old: Microsoft.Cache/stable/2020-06-01/redis.json#L1922:9
    ⚠️ 1032 - DifferentAllOf The new version has a different 'allOf' property than the previous one.New: Microsoft.Cache/stable/2020-12-01/redis.json#L866:13Old: Microsoft.Cache/stable/2020-06-01/redis.json#L863:13
    ⚠️ 1032 - DifferentAllOf The new version has a different 'allOf' property than the previous one.New: Microsoft.Cache/stable/2020-12-01/redis.json#L2098:5Old: Microsoft.Cache/stable/2020-06-01/redis.json#L2153:5

    @msyyc
    Copy link
    Member

    msyyc commented May 10, 2021

    For python, the breaking change is ok. Please ignore it.

    @jianyexi jianyexi added the Approved-BreakingChange DO NOT USE! OBSOLETE label. See https://github.com/Azure/azure-sdk-tools/issues/6374 label May 10, 2021
    @jianyexi
    Copy link
    Contributor

    approved breaking change as it's false alarm

    @raych1 raych1 merged commit fc32868 into master May 11, 2021
    This was referenced May 11, 2021
    @JackTn JackTn deleted the dev-redis-2020-12-010-rebase branch August 17, 2021 06:06
    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 ARMSignedOff <valid label in PR review process>add this label when ARM approve updates after review

    Projects

    None yet

    Development

    Successfully merging this pull request may close these issues.

    10 participants