-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
Data Factory: repeated Breaking Changes to an API version from 2018 #28380
Comments
cc @mikekistler and @JeffreyRichter for awareness. |
@tombuildsstuff re this:
We recently switched to a model where the approval labels provide general reason in them why given approval happened: |
Another breaking change: #28538 Note the PR Description: |
Mike & I are talking to the Data Factory team about all these breaks to see how we can improve the customer experience. |
Another breaking change here: #28294 - with no details as to the need for this breaking change in the PR description/thread (despite being asked to provide that in a comment): But apparently this has been approved by the ARM Breaking Changes team? This is exposed as a hard field rename: Which shows for us here: |
👋
There’s currently two versions of the Data Factory API:
2017-09-01-preview
- a Preview API that hasn’t received any notably changes in several years2018-06-01
- a Stable API that regularly receives new features and breaking changes.Now firstly, I enjoyed 2018 as much as anyone else, but it was also 6 years ago at this point.. frankly I find it surprising that a service that’s still in active development is still making changes, let alone breaking changes to a six year old API version on a regular basis.
Per the ARM Specification and Breaking Change processes - breaking changes are supposed to be introduced in a new API version, but perusing the Git history for this API version, regularly make it into this existing API Version, here’s a selection from the past year:
string
->objects
DataFactory: fix headers schema issue #28210ServicePrincipalCredentialResource
- in addition to ManagedIdentityCredentialResource) - but crucially this doesn’t work since both models use the same Discriminator Value - Swagger changes for adding SPN, UAMI and SAMI credentials #28122SalesforceV2SourceReadBehaviour
Improve Salesforce V2 properties #27412object
->list
Fix headers and schema definition #27180pwd
is removed: https://github.com/Azure/azure-rest-api-specs/pull/26965/files#diff-61ee9b50b0c4813e20b82ed9cd1cae9ce5fcabe739eec9aa61293957bc9b9c93L5312 - this could be because the field isn’t valid, but there’s no context in the PR so how can consumers know the reasoning for this?mongoDbAtlasDriverVersion
todriverVersion
change MongoDbAtlasDriver name #24709string
toobject
[Hub Generated] Publish private branch 'datafactory/binluwang/synctrack2' #23684boolean
toobject
[Hub Generated] Publish private branch 'datafactory/liudan7/AdlsSwaggerSupportExpression' #23396This happens so regularly that in order to populate this list, I haven’t even clicked onto the second page of Git history!
Each of these breaking changes has been approved, meaning that it must have gone through the breaking change process - yet in the PR description there’s no explanation of the reasoning for the change.
In addition to that the Data Factory API is documented using custom
format
values, for example:As mentioned above, fields get accidentally removed which is missed at review time despite the PR containing 10 lines of changes - and then in a follow up PR to reintroduce these a complaint is raised about the type and discarded.
This PR updates a model so that it’s no longer marked as a Discriminated Type (and all implementations) and then later reintroduces them because it turns out people were using these types.
I can’t speak to each of these Swagger PRs because unfortunately they don’t contain the full context - but my point here is that for a Stable API version from 2018 there sure are a lot of changes, particularly Breaking Changes happening.
Questions
I understand the unique nature of this API is adding new Entity Types etc, so I understand adding (and potentially deprecating) Discriminator Values. However, at the same time, I can’t help but notice that the Data Factory API seems to regularly get breaking changes approved.
Whilst some older API versions do get a free pass with regards to fixing linting issues and similar, I suspect that because there hasn’t been another API version in so long that the Data Factory API is intentionally running below the radar here.
As such:
format
values? There’s a perfectly goodtype
field in the Swagger/OpenAPI specification for this purpose, and outputting booleans as object is.. unique.x-ms-discriminator-value
value.Thanks!
The text was updated successfully, but these errors were encountered: