-
Notifications
You must be signed in to change notification settings - Fork 82
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
mgmt+tsp, brownfield for vmware/avs #2803
Comments
REST API breaks
Need confirmation from service whether this is intended. |
API breaks
This is hard to keep non-breaking change in SDK.
|
SDK models
Mostly addressable in "client.tsp" Important: |
SDK operation groups
WIP on whether we need to modify the (alternative is write all the APIs explicitly in client.tsp, which likely be hard to maintain) |
This comment was marked as outdated.
This comment was marked as outdated.
I thought it was the RP name. Yes, you can change it to align with the guidance. |
We do not actually want the operation API in our spec or SDKs. I've never understood why it is required. Anyhow, in TypeSpec we are using the standard typespec-azure-core definition. |
This was unintentional. It should be changed back to |
This was an approved breaking change. |
The properties are spread in. This is how it is done in TypeSpec. model ManagementCluster {
...CommonClusterProperties;
}
model ClusterProperties {
...CommonClusterProperties;
} I'm not sure of another way to do it in TypeSpec. For example, this does not work here: Not having the inheritance modeled is breaking, but seams acceptable. |
I did a lot of work to make the |
Java SDK would be generated directly from TypeSpec (and hence won't use the openapi lib or any decorator within). -- any SDK emitter that is ready to generate from TypeSpec would generate SDK from TypeSpec The PS: we are making corrections to operation name (the part after |
But, unfortunately, it is already in Swagger for a very long time, and lots of SDK have been shipped with that. We will discuss the break within SDK devs first, see if we accept it, or try to keep backward-compatible. Do you mind, if we modify the operation to make it same as your older Swagger, if we decide to keep backward-compatible? |
PR to change back to int64 Azure/azure-rest-api-specs#29351 |
We are using the standard Azure.ResourceManager.Operations. We never wanted the API in our SDKs. We do not want to maintain a non-standard version of it. |
Hi @weidongxu-microsoft , an engineer working on the Azure CLI noticed that "ManagementCluster": {
"type": "object",
"description": "The properties of a management cluster",
"required": [
"clusterSize"
], |
As mentioned in the discription of this issue, the BreakingChanges CI is broken when your merge that migration PR. It really not able to report anything useful. (tooling team already got notified and fixing/fixed the problem) This part of Swagger is pretty tricky. You can see that the I've looked at existing .NET code (2021-06-01? form the last commit), appears not a required as well. (it is |
And we are still in the progress of trying to get all the potential breaks. Here is another one, please let us know if we want to revert this |
Yes, also unintentional and should be changed back. |
You are right. Same with JavaScript here, it is |
PR to fix Azure/azure-rest-api-specs#29395 |
I was told by Go that there was multiple places in PATCH, that previously request body is e.g. WorkloadNetworkSegment (same model as in PUT) being changed to WorkloadNetworkSegmentUpdate This would cause some breaks to Go (and probably other languages as well). Please let us know if this is intended. If yes, any reason? |
@weidongxu-microsoft , the following two properties need to be renamed back to current name in
|
In TypeSpec, it can be renamed in client.tsp For Swagger, it may had to be done via directive. |
This can be handled by using a customized |
There is certain change to "x-ms-mutability", e.g. properties in Addon changed to "read", "create" -- meaning this proxy resource cannot be updated The Is it intended? |
It is not intended. |
I approved that draft. That looks like a good way to restore name compatibility. |
We do wish that the generated SDKs use the standard identity types. We support system identity now, but will support user managed identity in the future. |
No, not intended. |
The unreleased typespec-azure-resource-manager appears have removed this We probably just wait for the new lib to be released. |
PR to move it back Azure/azure-rest-api-specs#29392 |
Therefore, I think service should be able to evolve from Though for SDK, we probably would continue do this rename, so that user would see a same class/model (with new property |
The TypeSpec fix was merged two days ago. You can see it fixes our spec. |
All Swagger related PR should have been merged. Allen upgraded spec repo to 0.57 as well (it includes the Swagger change via typespec-azure-resource-manager). Swagger should be completed. Remain issue to TypeSpec (on SDK emitter) is the operation group that is still in discussion https://gist.github.com/weidongxu-microsoft/fa420c35cf0611a62a8d155771dd3425 |
vmware/avs already GAed with Swagger
service moved to TypeSpec on 2023-09-01
Azure/azure-rest-api-specs#28023
(at the time of the PR, the breaking changes CI having problem and not picking up the breaks)
service should name the folder as suffix ".Management", see https://github.com/Azure/azure-rest-api-specs/blob/main/documentation/typespec-structure-guidelines.md#service-folder-structure
One remaining issue on typespec-azure
WIP
The text was updated successfully, but these errors were encountered: