people: ask their dependencies to follow semver, for fuck's sake already
also people: make a surprised pikachu face when the major version is incremented with every release

(i have been both, at times. this is about me. this is also about others who i've seen be a lot more militant about this issue)

the thing is, if you have a sufficiently complicated application it is not feasible to determine what is a "breaking change" or not. this complexity limit kicks in long before you get to a "browser" or a "JIT compiler" but it is definitely well applicable by that point

i think what people mean when they do both of those things are a mix of "please stop adding features entirely. only fix bugs" and "please only make changes i like, but not the changes i dislike" depending on maturity level. that's not really how open source software works though

@whitequark this is exactly why I am a bit of a CalVer zealot. abandon the illusion. only by freeing yourself from desire can you achieve enlightenment

@glyph i think that's pretty rude to your downstream code in the Python ecosystem in particular (you know, the one that doesn't let two different versions of a package coexist on the same system)

if i did this for Amaranth i'd have split the ecosystem into tribes based on which year they started using it more or less. that would fucking suck

@whitequark I don’t know if amaranth has any special requirements but we have been doing it for 15 years on twisted and no such bifurcation has occurred
@glyph amaranth routinely deprecates and removes broken features in a way that requires manual upgrades of significant amounts of hard-to-verify code
@whitequark how many major-version branches do you maintain simultaneously?
@glyph two (main and last release); if main ever breaks something that worked in the last release instead of emitting a diagnostic it's considered a critical bug
@glyph this still results in some stratification but considering that some other projects in this domain are quite literally frozen forever because the downstream consumers object to any changes i think this is a major win