5.0.0? - such precision in versioning for a library or framework seems both too quick and too precise at the same time.
So the major version changes whenever they make a backwards-incompatible change.
However, I clicked in their upgrade calculator (linked from the post) and at a glance it appears the incompatible changes are fairly minor.
So much semver adoption seems to be based entirely on wishful thinking.
Step 1: hey, perfect drop-in compatibility would be so cool
Step 2: we can do it, with semver!
Step 3: we use semver! Yay us!
Step 4: oh, turns out adopting semver did not make perfect drop in compatibility any easier
Step 5: don't ever touch that zero between major and bugfixIt's explicit terms do, whether or not that's the intent. Backward incompatible is a bright line.
OTOH, I think that exact bright line is the central purpose of SemVer.
Only as bright as the line between public API and private implementation details that are allowed and expected to change between semver minors. This is not always very clear.