-
Notifications
You must be signed in to change notification settings - Fork 43
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
Guard semantic versioning for major changes using binary compat checks in .fsproj #194
Comments
I see a similar thing happened with I'm maintaining someone else code here, which had:
Here I just replaced the I can always just rollback and go with an older version, but I prefer not to. |
Thanks @abelbraaksma for the points, and time taken. I see no ranting. I appreciate that you shared your thoughts. To make a long story short: There's a gap to that has to be bridged; between what is realistic for me as maintainer, and the understandable and legitim points brought up here (and other points).
Regarding Apart from that, I (currently) don't see any big changes coming up, and I regard the library and it's API as "quire stable" :) Thank you, and again, I appreciate your thouhgs very much. |
Hi @SchlenkR, thanks for the insights and pointers! About "keeping two eyes on it", quite recently, a new build task was added for .NET projects which allows you to check for binary incompatibilities of any .NET library against a baseline version in NuGet.
From what I read there, it is a very small change to your |
PS: I believe this can be closed with |
deserializeJsonWithTAsync
and toJsonTAsync
etc
Reopening the issue with changed title. Thanks @abelbraaksma for the info. That seems to be worth having a look at and eventually implement it.
|
I couldn't find this documented, not in a release-notes, and not in the PR where it happened (#167). Several functions were updated with extra arguments (namely:
cancellationToken
) that cause existing code to break at compile time (in my source code in 100+ places, it's a non-trivial effort to fix):I understand the need to update public functions, but introducing backwards compatibility should be done with the biggest restraints, and prevented if at all possible. My suggestion would be to link to an update page where the changes are highlighted, or first have a version that marks functions as obsolete (
ObsoleteAttribute
), which you can use to explain users what to use instead, going forward.I know, it is OSS and I shouldn't be too fuzzy about all of this, we're all volunteers out here :). In fact, I'm currently in a similar situation with F#'s TaskSeq (see: fsprojects/FSharp.Control.TaskSeq#179, fsprojects/FSharp.Control.TaskSeq#167 and fsprojects/FSharp.Control.TaskSeq#188). Meaning, I need to support cancellation tokens but ideally without introducing backward compat issues.
Rants aside, I really appreciate this library, it has made our lives a lot easier!!! ❤️
The text was updated successfully, but these errors were encountered: