Install
openclaw skills install semver-helperSemantic Versioning 2.0.0 reference guide. Quick decision trees and examples for choosing MAJOR, MINOR, or PATCH version bumps.
openclaw skills install semver-helperQuick reference for Semantic Versioning 2.0.0 decisions.
Given version MAJOR.MINOR.PATCH, increment:
| Level | Bump When | Reset Lower? |
|---|---|---|
| MAJOR (X.0.0) | Breaking changes (incompatible API changes) | Yes, MINOR and PATCH → 0 |
| MINOR (0.X.0) | New features (backwards compatible) | Yes, PATCH → 0 |
| PATCH (0.0.X) | Bug fixes (backwards compatible) | No |
Did you change anything users depend on?
├─ No (internal only) → PATCH
└─ Yes
└─ Did you remove/change existing behavior?
├─ Yes → MAJOR
└─ No (only added new stuff)
└─ Is the new stuff visible to users?
├─ Yes → MINOR
└─ No → PATCH
Examples:
removeUser() → deleteUser() rename{id: 1} to {data: {id: 1}}Examples:
createUser() alongside existing user functions--format json flag to CLIExamples:
| Changes | Version Bump |
|---|---|
fix: null pointer | 1.2.3 → 1.2.4 |
feat: add auth | 1.2.3 → 1.3.0 |
breaking: remove old API | 1.2.3 → 2.0.0 |
fix: bug + feat: new thing | 1.2.3 → 1.3.0 (MINOR wins) |
fix: bug + breaking: remove API | 1.2.3 → 2.0.0 (MAJOR wins) |
Use suffixes for testing before stable:
2.0.0-alpha.1 — Very early, unstable2.0.0-beta.2 — Feature complete, testing2.0.0-rc.1 — Release candidate, final testingPre-releases sort before their stable version:
1.0.0-alpha < 1.0.0-beta < 1.0.0-rc < 1.0.0
| Situation | Bump | Why |
|---|---|---|
| Fix a bug that was introduced this version | PATCH | Still a fix |
| Deprecate a feature (but keep it working) | MINOR | New "deprecated" state is info |
| Change undocumented/internal behavior | PATCH | Users shouldn't depend on it |
| Security fix that requires API change | MAJOR | Breaking for security |
| Rewriting internals, same behavior | PATCH | Invisible to users |
| Adding tests/docs only | PATCH | No code change |
❌ Don't bump MAJOR for big new features (unless breaking)
❌ Don't bump MINOR for bug fixes
❌ Don't bump PATCH for new functionality
❌ Don't keep old numbers when bumping: 1.2.3 → 2.2.3 is wrong
Users' code breaks? → MAJOR
Users get new toys? → MINOR
Users get fixes? → PATCH