What Is Semantic Versioning (SemVer)?
Semantic Versioning is a version numbering convention in the format MAJOR.MINOR.PATCH, where each segment signals a specific kind of change to consumers of a...
Published October 8, 2026
Semantic Versioning is a version numbering convention in the format MAJOR.MINOR.PATCH, where each segment signals a specific kind of change to consumers of a package.
Why it exists
- Without a shared convention, developers can't tell from a version number alone whether an update is safe to take or might break their code
- SemVer solves this by defining exactly what incrementing each segment means
How to apply it
- Increment MAJOR for breaking changes, MINOR for backward-compatible new features, and PATCH for backward-compatible bug fixes
- Package managers like npm use SemVer ranges (like ^1.2.0) to automatically allow safe updates while blocking breaking ones
FAQ
What does the caret (^) mean in a package.json version?
^1.2.0 allows any version up to (but not including) 2.0.0 — meaning any MINOR or PATCH update is accepted automatically, since those are expected to be backward-compatible under SemVer.