<div dir="auto"><div><div class="gmail_quote"><div dir="ltr">On Sat, 22 Sep. 2018, 2:29 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 12:14 PM, Matt Caswell <<a href="mailto:matt@openssl.org" target="_blank" rel="noreferrer">matt@openssl.org</a>> wrote:<br>
> <br>
> I support Richard's proposal with an epoch of 1.<br>
> Grudgingly I would accept an epoch in the 3-8 range.<br>
> I would oppose an epoch of 2.<br>
<br>
I can live with that, though it might mean that a minority of<br>
applications will interpret (based on obsolete nibble extraction)<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">It isn't obsolete nibble extraction - that is the documented way to get the major version. In the header file and in the API docs. This is changing things as we document the format of that number currently and some code does use that.</div><div dir="auto"><br></div><div dir="auto">What Richard proposes is a breaking change conceptually and it doesn't need to be one.</div><div dir="auto"><br></div><div dir="auto">We can get to semantic versioning and also not break existing documented usage.</div><div dir="auto"><br></div><div dir="auto">But what we will be doing is following a versioning scheme that states precisely what it means for API changes.</div><div dir="auto"><br></div><div dir="auto">It says nothing specifically about ABI changes unless you take the view that ABI == API when reading the document too.</div><div dir="auto"><br></div><div dir="auto">If that is the case then our current practice of allowing ABI breakage with minor release changes (the middle number we document as the minor release number) has to change.</div><div dir="auto"><br></div><div dir="auto">And anyone depending on checking the minor version number for ABI compatibility will break.</div><div dir="auto"><br></div><div dir="auto">Tim. </div></div>