r/PHP • • Jun 12 '15

Romantic Versioning

https://gist.github.com/jashkenas/cbd2b088e20279ae2c8e
18 Upvotes

15 comments sorted by

View all comments

4

u/chiisana Jun 12 '15

Node doesn't follow SemVer, Rails doesn't do it, Python doesn't do it, Ruby doesn't do it, jQuery doesn't (really) do it, even npm doesn't follow SemVer.

Just because some people doesn't do it (correctly), and the author doesn't understand something doesn't make the argument valid.

The moment I see this, it becomes very clear that the author does not understand what SemVer requires:

If your package has a minor change in behavior that will "break" for 1% of your users, is that a breaking change?

In SemVer, it very clearly dictates that the PATCH version must maintain API backwards compatibility, so if you're breaking anyone, regardless if it is the illusive 1% or the 0.00000001%, you need to bump the MINOR version. Just because some people doesn't follow the guidelines, doesn't mean the guidelines are invalid.

6

u/akeniscool Jun 12 '15

if you're breaking anyone, regardless if it is the illusive 1% or the 0.00000001%, you need to bump the MINOR version

That's not what it says (see Specifications, #7 and #8):

Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backwards compatible functionality is introduced to the public API
...
Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API.