
Sebastian Fischer
Hello,
I wonder whether (and how) I should increase the version number of a library when the API does not change but the implementation gets more efficient.
If the API remains the same (and the behaviour of the functions does as well), then according to the PVP the minimum required is to bump a.b.c.D.
Should I bump a.b.C or even a.B to signal that it's worth using the new version or should I bump only a.b.c.D such that packages that depend on a.b get installed with the new version automatically?
I think this is the best approach overall, as the effects will be noticed by users immediately (rather than waiting for maintainers to notice there's a new version and be bothered to check if they can make their library use that new version: for example, HXT is using a version of tagsoup that is two major versions out of date). Making a big hue and cry about it on the mailing lists, planet.haskell.org, etc. might help draw attention to the nice new shiny performance with the added bonus of code using that library not having to change.
Hence, I guess I should make a major version bump. Is it bad habit to make a major version bump if the API does not change?
It depends on how many people use your library; if the number is small enough and manageable enough then you can try to get into contact with maintainers that use your library and make sure they expand the constraints on your package such that the new version is available to be used. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com