On Fri, Sep 21, 2018 at 7:58 PM Richard Levitte <levi...@openssl.org> wrote:
> Our FAQ says that such changes *may* be part of a major > release (we don't guarantee that breaking changes won't happen), while > semantic versioning says that major releases *do* incur backward > incompatible API changes. > I think you are misreading the semantic versioning usage - it states when things MUST happen. It does not state that you MUST NOT change a version if the trigger event has not occurred. Semantic versioning also requires you to explicitly declare what your public API is in a "precise and comprehensive" manner. What do you consider the public API of OpenSSL? That is pretty much a prerequisite for actually adopting semantic versioning. I also think the concept of reinterpreting the current major version number into an epoch as you propose is not something that we should be doing. We have defined the first digit as our major version number - and changing that in my view at least would be going completely against the principles of semantic versioning. The version itself is meant to be purely X.Y.Z[-PRERELEASE] or X.Y.Z[+BUILDMETA] and your suggested encoding is not that at all. What you have is EPOCH.X.Y.Z.FIX.STATUS - where EPOCH and STATUS are not concepts contained within semantic versioning. Basically adopting semantic versioning actually requires something different to what has been proposed in my view. I would suggest it means our current version encoding in an integer of MNNFFPPS becomes simply MNNFF000 and the information for PP and S is moved elsewhere as semantic versioning defines those concepts differently (as noted above). Part of our challenge is ensuring we don't cause unnecessary breakage for users: Vendors change the text string to add additional indicators for their variations. Otherwise developers use the current integer version for feature testing - and it needs to remain compatible enough. I haven't seen any code actually testing the S field within the version or doing anything specific with the PP version - other than reporting it to the user. Tim.
_______________________________________________ openssl-project mailing list email@example.com https://mta.openssl.org/mailman/listinfo/openssl-project