Azure / Azure/openapi-diff

False positivizes and undetailed errors for RequiredStatusChange

未关闭
#288 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
C#
星标
290
派生
50
平均合并
5 天 13 小时
30 天内合并 PR
5

描述

I'm working on https://github.com/Azure/azure-rest-api-specs-pr/pull/15631 and there are some `required` differences reported between the old API version and the generated from TypeSpec version regarding `properties`. The errors are not very accurate. They should say what required values changes. Many look to be false positives.

``` nushell
~/ms/azure-rest-api-specs-pr> open breaking-changes.json | where code == RequiredStatusChange | select message old.path | to md
```

|message|old_path||
|-|-|-|
|The 'required' status changed from the old version('False') to the new version('True').|definitions.PrivateCloudList.properties|New list has `"required": ["value"]`|
|The 'required' status changed from the old version('True') to the new version('False').|definitions.PrivateCloud.properties|Neither has required.|
|The 'required' status changed from the old version('True') to the new version('False').|definitions.ManagementCluster.properties|Neither has required.|
|The 'required' status changed from the old version('False') to the new version('True').|definitions.PrivateCloudIdentity.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.ClusterList.properties||
|The 'required' status changed from the old version('True') to the new version('False').|definitions.Cluster.properties|Neither has required.|
|The 'required' status changed from the old version('False') to the new version('True').|definitions.DatastoreList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.HcxEnterpriseSiteList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.ExpressRouteAuthorizationList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.GlobalReachConnectionList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.WorkloadNetworkList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.WorkloadNetworkSegmentsList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.WorkloadNetworkDhcpList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.WorkloadNetworkGatewayList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.WorkloadNetworkPortMirroringList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.WorkloadNetworkVMGroupsList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.WorkloadNetworkVirtualMachinesList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.WorkloadNetworkDnsServicesList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.WorkloadNetworkDnsZonesList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.WorkloadNetworkPublicIPsList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.CloudLinkList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.AddonList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.VirtualMachinesList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.PlacementPoliciesList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.ScriptPackagesList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.ScriptCmdletsList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.ScriptExecutionsList.properties||
|The 'required' status changed from the old version('False') to the new version('True').|definitions.TrackedResource.properties||

贡献指南

打开贡献指南

调研方向

Start by reproducing the RequiredStatusChange entries shown in breaking-changes.json through the openapi-diff command-line tool, then trace the comparison logic that produces those messages. Done means the reported required-value changes are accurate and the listed false positives no longer appear.

由索引模型根据 Issue 内容生成。

评估

技术栈
csharp, openapi
领域
cli, tooling
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
30/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。