Azure / openapi-diff

Command line tool to detect breaking changes between two openapi specifications
MIT License
256 stars 36 forks source link

False positivizes and undetailed errors for RequiredStatusChange #288

Open cataggar opened 9 months ago

cataggar commented 9 months ago

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.

~/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