I haven't checked, but I wouldn't be surprised if more Python versions contained breaking changes than not.
Aside from the `async` keyword (experience with which seems like it may have driven the design of "soft keywords" for `match` etc.), what do you have in mind that's a language feature as opposed to a standard library deprecation or removal?
Yes, the bytecode changes with every minor version, but that's part of their attempts to improve performance, not a hindrance.
In C, dotnet, Rust or even Javascript, stdlib breakages are basically the same as language breakages. Python is an outlier for this.
The standard library is maintained and delivered by the CPython-team itself, but at the end of the day it's just a better maintained 3rd-party-collection you have to trust over your own code, and it's not much different in that regard than any other 3rd-party python-code on pip.
> In C, dotnet, Rust or even Javascript, stdlib breakages are basically the same as language breakages. Python is an outlier for this.
That might be because C and Javascript have no serious standard-lib. For python it's more comparable to the builtins, what they deliver out of the box.