219 lines
5.3 KiB
Markdown
219 lines
5.3 KiB
Markdown
# Common Version Bump Scenarios
|
|
|
|
Real-world examples of version bumps with decision rationale.
|
|
|
|
## Scenario 1: Bug Fix After Testing
|
|
|
|
**User request:**
|
|
> "Fixed the memory leak in the search function"
|
|
|
|
**Analysis:**
|
|
- What changed: Bug fix
|
|
- Breaking changes: No
|
|
- New features: No
|
|
- **Decision: PATCH**
|
|
|
|
**Workflow:**
|
|
```
|
|
Current: 4.2.8
|
|
New: 4.2.9 (PATCH)
|
|
|
|
Steps:
|
|
1. Update all three files to 4.2.9
|
|
2. npm run build
|
|
3. git commit -m "Release v4.2.9: Fixed memory leak in search"
|
|
4. git tag v4.2.9 -m "Release v4.2.9: Fixed memory leak in search"
|
|
5. git push && git push --tags
|
|
6. gh release create v4.2.9 --title "v4.2.9" --notes "Fixed memory leak in search function"
|
|
```
|
|
|
|
## Scenario 2: New Feature Added
|
|
|
|
**User request:**
|
|
> "Added web search MCP integration"
|
|
|
|
**Analysis:**
|
|
- What changed: New feature (MCP integration)
|
|
- Breaking changes: No
|
|
- Backward compatible: Yes
|
|
- **Decision: MINOR**
|
|
|
|
**Workflow:**
|
|
```
|
|
Current: 4.2.8
|
|
New: 4.3.0 (MINOR - reset patch to 0)
|
|
|
|
Steps:
|
|
1. Update all three files to 4.3.0
|
|
2. npm run build
|
|
3. git commit -m "Release v4.3.0: Added web search MCP integration"
|
|
4. git tag v4.3.0 -m "Release v4.3.0: Added web search MCP integration"
|
|
5. git push && git push --tags
|
|
6. gh release create v4.3.0 --title "v4.3.0" --generate-notes
|
|
```
|
|
|
|
## Scenario 3: Database Schema Redesign
|
|
|
|
**User request:**
|
|
> "Rewrote storage layer, old data needs migration"
|
|
|
|
**Analysis:**
|
|
- What changed: Storage layer rewrite
|
|
- Breaking changes: Yes (requires migration)
|
|
- Backward compatible: No
|
|
- **Decision: MAJOR**
|
|
|
|
**Workflow:**
|
|
```
|
|
Current: 4.2.8
|
|
New: 5.0.0 (MAJOR - reset minor and patch to 0)
|
|
|
|
Steps:
|
|
1. Update all three files to 5.0.0
|
|
2. npm run build
|
|
3. git commit -m "Release v5.0.0: Storage layer redesign with migration required"
|
|
4. git tag v5.0.0 -m "Release v5.0.0: Storage layer redesign"
|
|
5. git push && git push --tags
|
|
6. gh release create v5.0.0 --title "v5.0.0" --notes "⚠️ Breaking change: Storage layer redesigned. Migration required."
|
|
```
|
|
|
|
## Scenario 4: Multiple Small Bug Fixes
|
|
|
|
**User request:**
|
|
> "Fixed three bugs: observer crash, viewer pagination, and date formatting"
|
|
|
|
**Analysis:**
|
|
- What changed: Multiple bug fixes
|
|
- Breaking changes: No
|
|
- New features: No
|
|
- **Decision: PATCH** (one patch covers all fixes)
|
|
|
|
**Workflow:**
|
|
```
|
|
Current: 4.2.8
|
|
New: 4.2.9 (PATCH)
|
|
|
|
Steps:
|
|
1. Update all three files to 4.2.9
|
|
2. npm run build
|
|
3. git commit -m "Release v4.2.9: Multiple bug fixes
|
|
|
|
- Fixed observer crash on empty content
|
|
- Fixed viewer pagination edge case
|
|
- Fixed date formatting in timeline"
|
|
4. git tag v4.2.9 -m "Release v4.2.9: Multiple bug fixes"
|
|
5. git push && git push --tags
|
|
6. gh release create v4.2.9 --title "v4.2.9" --generate-notes
|
|
```
|
|
|
|
## Scenario 5: Feature + Bug Fix
|
|
|
|
**User request:**
|
|
> "Added dark mode support and fixed the viewer crash bug"
|
|
|
|
**Analysis:**
|
|
- What changed: New feature + bug fix
|
|
- Breaking changes: No
|
|
- **Decision: MINOR** (feature trumps bug fix)
|
|
|
|
**Workflow:**
|
|
```
|
|
Current: 5.1.0
|
|
New: 5.2.0 (MINOR)
|
|
|
|
Steps:
|
|
1. Update all three files to 5.2.0
|
|
2. npm run build
|
|
3. git commit -m "Release v5.2.0: Dark mode support + bug fixes
|
|
|
|
Features:
|
|
- Added dark mode toggle to viewer UI
|
|
|
|
Bug fixes:
|
|
- Fixed viewer crash on empty database"
|
|
4. git tag v5.2.0 -m "Release v5.2.0: Dark mode support"
|
|
5. git push && git push --tags
|
|
6. gh release create v5.2.0 --title "v5.2.0" --generate-notes
|
|
```
|
|
|
|
## Scenario 6: Documentation Only
|
|
|
|
**User request:**
|
|
> "Updated README with new installation instructions"
|
|
|
|
**Analysis:**
|
|
- What changed: Documentation only
|
|
- Breaking changes: No
|
|
- Code changes: No
|
|
- **Decision: PATCH** (or skip version bump if no code changes)
|
|
|
|
**Workflow:**
|
|
```
|
|
Option 1: PATCH (if you want to tag doc improvements)
|
|
Current: 4.2.8
|
|
New: 4.2.9
|
|
|
|
Option 2: No version bump (documentation-only changes don't require versioning)
|
|
Just commit without bumping version
|
|
```
|
|
|
|
**Recommendation:** Skip version bump for documentation-only changes unless it's a significant documentation overhaul.
|
|
|
|
## Scenario 7: Configuration Change
|
|
|
|
**User request:**
|
|
> "Changed default observation count from 50 to 30"
|
|
|
|
**Analysis:**
|
|
- What changed: Default configuration
|
|
- Breaking changes: Yes (behavior changes)
|
|
- Users might notice different context size
|
|
- **Decision: MINOR or MAJOR** (ask user)
|
|
|
|
**Workflow:**
|
|
```
|
|
Ask user:
|
|
"This changes default behavior (context size). Users will see different results.
|
|
Is this:
|
|
- MINOR (acceptable behavior change): 4.2.8 → 4.3.0
|
|
- MAJOR (breaking change): 4.2.8 → 5.0.0
|
|
|
|
Which should I use?"
|
|
```
|
|
|
|
## Scenario 8: Dependency Update
|
|
|
|
**User request:**
|
|
> "Updated Claude SDK from 1.2.0 to 1.3.0"
|
|
|
|
**Analysis:**
|
|
- What changed: Dependency version
|
|
- Breaking changes: Depends on SDK changes
|
|
- **Decision: Ask user or check SDK changelog**
|
|
|
|
**Workflow:**
|
|
```
|
|
1. Check SDK changelog for breaking changes
|
|
2. If SDK has breaking changes → MAJOR
|
|
3. If SDK adds features → MINOR
|
|
4. If SDK only fixes bugs → PATCH
|
|
|
|
Typical: PATCH (unless SDK breaks compatibility)
|
|
```
|
|
|
|
## Decision Tree
|
|
|
|
```
|
|
Is there a breaking change?
|
|
├─ Yes → MAJOR (X.0.0)
|
|
└─ No
|
|
├─ Is there a new feature?
|
|
│ ├─ Yes → MINOR (x.Y.0)
|
|
│ └─ No
|
|
│ ├─ Is there a bug fix?
|
|
│ │ ├─ Yes → PATCH (x.y.Z)
|
|
│ │ └─ No → Don't bump version (docs only, etc.)
|
|
│ └─ Configuration change? → Ask user (MINOR or MAJOR)
|
|
└─ Multiple changes? → Use highest level (MAJOR > MINOR > PATCH)
|
|
```
|