What is Semantic Versioning (SemVer)?
Quick Answer
SemVer is MAJOR.MINOR.PATCH. Bump MAJOR for a breaking change, MINOR for a backward-compatible feature, PATCH for a backward-compatible bug fix. Pre-release tags (1.2.0-beta.1) and build metadata (+build.42) can be appended.
SemVer is the major-dot-minor-dot-patch scheme, and each number has a meaning for the people consuming your package. You bump patch for a bug fix that doesn't change the API, minor for a new feature that's backward compatible, and major for anything that would break existing callers. So a consumer seeing a minor bump knows they can upgrade safely. Anything below 1.0 is explicitly “no promises.” It also pairs nicely with Conventional Commits so a release pipeline can pick the right bump automatically.
- It's a promise to consumers of your library/API about what an upgrade will do to them.
0.x.ymeans “anything can change” — no stability guarantee until 1.0.0.- Conventional Commits map cleanly to SemVer bumps for automated releases (
fix:→ patch,feat:→ minor,feat!:/BREAKING CHANGE→ major). - APIs often prefer date-based or a simple integer version in the URL instead.