Semver doesn't mean major.minor.patch, it means fails.features.bugs
I find this framing to be too inward looking. SemVer isn't for me as the library developer, it's for users of my library. What it really means in that context for most users/customers outside of toy projects is:<p>EXPENSIVE-HIGH-RISK-UPGRADE. MEDIUM-RISK.LOW-RISK<p>There is a carrot-side to this but that usually only matters in specific cases for a subset of users.<p>EDIT: one small practical addition: If you are fixing a big that requires very large changes to how things work at a more fundamental level, I'd at least think twice about shipping that in a patch. While it technically fits the definition of SemVer, it might violate implicit expectations of users who are using your library in production. The change really needs to carry its weight.