Semantic Versioning #
The recommended way to number your versions.
Format: MAJOR.MINOR.PATCH #
Example: 1.2.3
- 1 = Major version
- 2 = Minor version
- 3 = Patch version
When to Increment Each #
| Change Type | Version Change | Example |
|---|---|---|
| Breaking changes | MAJOR | 1.0.0 -> 2.0.0 |
| New features (backward compatible) | MINOR | 1.0.0 -> 1.1.0 |
| Bug fixes | PATCH | 1.0.0 -> 1.0.1 |
Examples #
MAJOR (1.0.0 -> 2.0.0) #
- Breaking changes (things that used to work might break)
- Major new features
- Redesigns
- API changes that aren’t backward compatible
MINOR (1.0.0 -> 1.1.0) #
- New features
- Improvements
- Backward compatible
PATCH (1.0.0 -> 1.0.1) #
- Bug fixes
- Security patches
- No new features
Why This Matters #
Customers can look at version number and know:
| Version | Customer Thinks |
|---|---|
| 2.0.0 | “Major update, test before updating production” |
| 1.5.0 | “New features, probably safe” |
| 1.4.3 | “Bug fix, safe to update immediately” |
Related Topics #
- [Creating a New Version](#)
- [Writing Good Changelogs](#)
- [Version Best Practices](#)
