-
Notifications
You must be signed in to change notification settings - Fork 25
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
Clarify bumping policy for bug fixes #49
Comments
Alex is not a library. PVP doesnt' apply directly. It's up to interpretation. EDIT: In case of EDIT: We had similar discussion with |
You are right that the PVP makes no mention of "changes to existing functions", only datatypes or classes. My gut tells me that Alex did the right thing here by bumping the minor version for this change instead of the major version. Perhaps we ought to change point 3 of the PVP, related to non-visible changes? |
See #30 It's hard to formally specify which changes to function behaviors are breaking and which are not (see discussion about bug fixes in say npm ecosystem). Most (all?) criteria PVP lists affect the compile time, e.g. if you remove a data constructor, some programs may not compile anymore. Changing the behavior of the function OTOH doesn't affect compilation (in Haskell). The Cabal issue broke running result of a test, not compiling the test. It's same as error message changes discussed in #30. I repeat, it's hard to formally objectively specify which changes in behavior are breaking and which aren't. Either extremes are valid, and everything in between. |
I always understood PVP as a policy that versions changes resulting in a compilation break. It's even written in the PVP description:
So, according to this policy, a package like In any case, when in doubt, always bump the major version. It's safer. |
This question comes from:
In this situation, position information generated by Alex < 3.2.7 had a bug that was fixed in 3.2.7.
However,
cabal
had workarounds for the bug which broke after the bug was fixed.The current PVP does not talk about behavioral changes of a definition, only about changing its type.
I would have thought a bugfix is a patch release (fourth digit bump).
From the current example (workaround breaking) one could also argue for a major version bump for bug fixes that change the output of a function (rather than just making it more defined).
What is your take on this?
The PVP should be extended to mention bug fixes in the appropriate place.
The text was updated successfully, but these errors were encountered: