<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Sat, Sep 22, 2018 at 1:16 AM Viktor Dukhovni <<a href="mailto:openssl-users@dukhovni.org">openssl-users@dukhovni.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> On Sep 21, 2018, at 11:00 AM, Tim Hudson <<a href="mailto:tjh@cryptsoft.com" target="_blank">tjh@cryptsoft.com</a>> wrote:<br>
> <br>
> If you repeat that in semantic versioning concepts just using the labels for mapping you get:<br>
> - what is the major version number - the answer is clearly "1".<br>
> - what is the minor version number - the answer is clearly "0"<br>
> - what is the fix version number - there is no such thing<br>
> - what is the patch version number - the answer is clearly "2" (reusing the fix version)<br>
<br>
I'm afraid that's where you're simply wrong.  Ever since 1.0.0, OpenSSL<br>
has promised (and I think delivered) ABI stability for the *minor* version<br>
and feature stability (bug fixes only) for the patch letters.  Therefore,<br>
the semantic version number of "1.0.2a" is "1.0", its minor number is 2<br>
and its fix number is 1 ("a").<br></blockquote><div><br></div><div>No it isn't - as you note that isn't a valid mapping - 1.0 isn't a semantic version and there is no such thing as a fix number,</div><div>You get three concepts and then on top of that the pre-release and the build-metadata.</div><div><br></div><div>Semantic versioning is about the API not the ABI.</div><div><br></div><div>So we could redefine what we have been telling our user all along and combine our current major+minor in a new major version.</div><div>Making 1.0.2a be 10.2.0 in semantic version terms.</div><div><br></div><div>We cannot remove the current major version number - as that concept exists and we have used it all along. </div><div>We don't just get to tell our users for the last 20+ years what we called the major version (which was 0 for the first half and 1 for the second half) doesn't exist.</div><div><br></div><div>Tim.</div><div><br></div></div></div>