What is Semantic Versioning (SemVer)?

Git & SDLC SDLC Basic 1–2 Yrs2–3 Yrs Conceptual 1 min read

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.y means “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.