-
Notifications
You must be signed in to change notification settings - Fork 325
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
Semantic versioning and behavioral changes #830
Comments
@fvanham-coveo I agree with your basic position but wish to point out that the recent changes are an effort to bring the functionality into compliance with the JSON Schema Specification as demonstrated by successfully passing the JSON Schema Test Suite. This implies that all non-compliant behaviors are actually bugs whether obvious or not. However, there are a few items that have taken a few tries to get right. Two examples are behaviors related to regular expressions (e.g., The question now becomes one of allowing clients to continue accepting possibly malformed content in an effort to minimize churn or alert them to the fact that their content is actually flawed. I think there are clients that fall on each side of this question. It seems that you prefer the former over the latter. I am really interested in understanding how recent changes have caused you issues.
|
For the first two changes, we had tests which validated that specific content did not pass validation. So widening validation affected the tests only. For the latter we had a small production issue, we use the java engine. I appreciate you moving to full compatibility with JSON Schema Spec, and we're on board with that 👍 It would be nice if big-step changes in that direction (even if they're arguably improvements) are tagged as minor version increases rather than patches though, it causes a little less churn for integrators. |
Hi folks, first of all, great work on this project! I have a few comments on changes over the last few months which are causing undue pain on integrators. Most of us update to the latest patch version whenever it's available using e.g. renovate. However, recently patch versions have significantly changed the external behavior of the validator. Here is a small non-exhaustive sample:
matches
tofind
.If you change the internals of the validator, that directly influences the json which downstream processes will have to deal with. We have testing in place to prevent downstream systems suddenly being confronted with unexpected input, but had to adapt these tests multiple times over recent patch versions.
Ultimately, the output of this project is a set of messages that determine whether a json input is valid or not. I think any significant change in that output (insofar they're not obviously a bug fix) warrants a minor version increase rather than a patch. Happy to entertain a discussion!
The text was updated successfully, but these errors were encountered: