Some thoughts about Mercurial bookmarks

Augie Fackler raf at durin42.com
Wed May 13 01:13:25 UTC 2015


> On May 12, 2015, at 19:15, Jensen, Aaron <ajensen at webmd.net> wrote:
> 
> Speaking of backwards compatibility, I'd again like to encourage Mercurial to adopt [Semantic Versioning](http://semver.org/):
> 
>> Given a version number MAJOR.MINOR.PATCH, increment the:
>> 
>> 1. MAJOR version when you make incompatible API changes,
>> 2. MINOR version when you add functionality in a backwards-compatible manner, and
>> 3. PATCH version when you make backwards-compatible bug fixes.
> 
> As someone who manages software upgrades, it is really nice to know, without reading release notes, how safe a new version of software is to upgrade by comparing the version I'm at with the version I want to upgrade to.

So here's the deal with hg's versioning:

1) We never break backwards compatibility.
2) There is no number 2.

Okay, that's a little bit of a lie. But basically barring something being a bug, behavior never changes, and behavioral changes ONLY happen in the name of fixing _actively harmful_ behavior (that is, a "bug"). We've done this few enough times I think I can count it on the fingers on one hand.

Basically, you should ALWAYS be able to upgrade hg and it should cause zero breakage. If it breaks you, that's a bug you should be filing at http://bz.selenic.com.

So semantic versioning would be basically pointless for us. :)


More information about the Mercurial mailing list