principleModeratepending
Semantic versioning done right -- what each bump means
Viewed 0 times
semantic versioningMAJORMINORPATCHbreaking changeCHANGELOG
Problem
Version numbers are bumped randomly. Users cannot tell if an update is safe. 'Minor' releases contain breaking changes. Libraries are stuck at 0.x forever to avoid commitment.
Solution
Strict semver: MAJOR.MINOR.PATCH. (1) PATCH (1.0.x): bug fixes only, no API changes. Safe to update always. (2) MINOR (1.x.0): new features, backwards compatible. Safe to update, review changelog. (3) MAJOR (x.0.0): breaking changes. Update requires migration. Pre-1.0 (0.x.y): anything can change. Reach 1.0 as soon as you have users. Include CHANGELOG.md with every release. Use conventional commits for automated version bumps.
Why
Semver is a contract with users. When followed, dependency updates become predictable. When violated, users lose trust and pin exact versions, defeating the purpose.
Revisions (0)
No revisions yet.