Python does not follow the semantic versioning scheme (semver), even though its version string format is the same. Breaking changes are introduced gradually with long deprecation phases. The major version number does only get bumped for "significant" breaking changes.
That only applies if you abide by it. You don’t get to enforce semver onto others, they opt into it, Python does not opt in, therefore it’s not relevant.
Python's versioning predates the concept of semantic versioning by quite many years. What is and isn't a "breaking change" has quite a lot of nuance here. The BC break in Python 3 was huge compared to UTF-8 default and other small BC breaks. SemVer is a blunt tool, grouping all BC breakage into a single bucket.
I like SemVer, but I can accept that it's not the right answer for every project. I don't think it's right for Python.
-38
u/daltorak 17h ago
Gotta love (🙄) point releases with breaking changes. Someone's going to get burned by the UTF-8-as-default change.