Definition of a breaking change #3793
-
|
Most API vendors follow something akin to Postel's law, but careful what you send and liberal in what you accept and as a result don't consider adding new attributes to a payload response a "breaking change". However, something like changing the data type they would. But, OAS also supports format. So you can have a integer type and a format of int32 and int64. Wondering if you change the type is this considered a breaking change? Can see any standard for this? Would welcome thoughts. |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 3 replies
-
|
I'm not aware of a standard that goes into that level of detail, but generally if something worked before and then doesn't work, that's a breaking change. So if a tool respects those This is a little more complex because tools are not required to recognize all Does that answer your question? Please let me know if I misinterpreted it! |
Beta Was this translation helpful? Give feedback.
-
|
@handrews thanks. The closest I found was from the openapi diff tool. https://github.com/Tufin/oasdiff/blob/main/BREAKING-CHANGES-EXAMPLES.md This is fairly extensive. It details lots of breaking changes, non breaking change and then "info - level" changes. Format changes are considered info-level. |
Beta Was this translation helpful? Give feedback.
-
|
I am reminded of an old xkcd: every change is breaking And, related, Hyrum's law |
Beta Was this translation helpful? Give feedback.
-
|
@dublintech It's not clear to me what the OAS can or should do here. Defining the meaning of "breaking change" for all APIs would be a dramatic extension of our scope into a different sort of standard. Currently, we describe APIs, but are as neutral as possible regarding how those APIs are designed. We intentionally want to be able to describe APIs that existed before someone tried to write an OpenAPI Description for them, and those APIs often grew in an ad-hoc manner. I am inclined to declare this out-of-scope for this project, but would like @OAI/tsc to weigh in. |
Beta Was this translation helpful? Give feedback.

I definitely agree, Breaking change definition is something that is opiniated , and depends on what you are doing
you might distinguish especially for OAS ,at least 3 models : "on the wire breaking change" , sdk generation breaking change , and may be functionnal breaking change ,
notice that one of the pilar of OAS is JSON schema where you have as well no formal breaking change definition I found only this one !
" A braking change occurs when JSON instance that was valid under the old schema becomes invalid under the new schema. "
it could be a starting point but a bit even this simple definition is challenging , for instance is removing a non mandatory query parameter is a breaking chan…