-
Notifications
You must be signed in to change notification settings - Fork 364
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
3.0.1 introduces build-breaking API changes, needs a proper version number #419
Comments
What are the breaking changes? I had no problem going from 3.0.0 to 3.0.1, but there were a few big ones from 2.x -> 3.x. |
Not sure about other methods/properties, but in this commit, this method in 3.0.0:
was renamed to:
API renames/removals should be indicated by a point update (in semver land). I have to stick with 3.0.0 for now, while I figure out how to get the same behavior. |
Ah, I wasn't using that feature. It was removed in 3.0.1 because it wasn't safe.. you probably want to migrate. |
Thank you for your honesty @rayray. You're right. This project should follow semver, and should NOT "introduce breaking changes in a x.y.1 update". We'll try our best not to do this again.
Yup, I forgot that too. I've now updated the changelog with information on the new version. Regarding the breaking API changes: It was discovered that registering extensions with your own custom YDBConnection was unsafe, and could lead to deadlock. Upon analysis, it was determined that there was no safe way to fix the API, as it was simply broken. If you're using that API, I wouldn't be surprised if you've experienced occasional deadlock when launching the app. In fact, if you're like me, you probably blamed it on Xcode and simply clicked the Run button again...
The motivation for the original API was performance concerns regarding extension registration. In particular, if you were registering a YDBView (for the first time, or after updating its version), then it could thrash if your database is big enough. For example, the YDBView is trying to sort 100,000 items, using a cache of only 250 objects. The solution was to increase the If you have a different reason for using the old API, please let me know. (There's a good chance you're not the only person doing this. So I'd like to address these issues before I get more bug reports...) That being said, I do recommend you upgrade to v3.0.1. Not only because of the deadlock issue, but also because of the checkpointing improvements it includes. (Mentioned in changelog.) |
If this project is following semver, then a patch update should not remove or change existing APIs.
If the intent was to introduce breaking changes in a x.y.1 update, then why have an x.y.z version at all???
Not only that, the changes are pretty significant. Might be worth bumping to 4.x.y if the underlying cause is that important.
And finally, none of these significant changes are outlined in the CHANGELOG.
The text was updated successfully, but these errors were encountered: