[Python-Dev] [python-committers] FINAL WEEK FOR 3.7.0 CHANGES! (original) (raw)

Richard Damon Richard at Damon-Family.org
Fri May 18 09:55:33 EDT 2018


On 5/18/18 9:20 AM, Ivan Pozdeev via Python-Dev wrote:

Since Python uses semantic versioning (https://semver.org), the criterion for "what's new-worthy" changes is simple: they are public interface changes (which include visible changes to documented behavior). (I maintain that changes to behavior that is not documented -- incl. issue30399 -- are not public interface changes, and whoever relies on them does that on their own risk.) Python does NOT use semantic versioning as features are allowed to be obsoleted and removed without a major version number change. Also the addition of a new keyword which breaks old code would not be allowed with semantic versioning. The basic rules of semantic versioning is that ANY program that uses documented features of version a.b.c will work on any version a.d.e where (d > b) or (d = b and e > c).

If python did use semantic versioning then there would be no need to keep updates to older minor versions, once 3.7.0 was out, there would be no need for keeping the 3.6.x, 3.5.x, 3.4.x branch etc, as any program that was written for those older version would just work with the newer version. The need for those is proof that python does not use semantic versioning.

If you wanted to map python version to a semantic versioning concept, the first two numbers of the version would correspond to what semantic versioning call the 'major revision' which is what is allowed to break backwards compatibility with API, with the first digit being major changes and the second minor but not fully backwards compatible changes.

-- Richard Damon



More information about the Python-Dev mailing list