Auto Version Bump: - Automatically bumps version when PRs are merged to main - Detects version bump type from commit message: - feat: → minor bump (v0.1.0 → v0.2.0) - fix: → patch bump (v0.1.0 → v0.1.1) - feat!: → major bump (v0.1.0 → v1.0.0) - [alpha] → alpha bump (v0.1.0-alpha.1 → v0.1.0-alpha.2) - [beta] → beta bump - [rc] → rc bump - default → minor bump (if no type specified) Automatic Actions: - Updates VERSION file - Updates package.json version - Updates CHANGELOG.md with commit message - Creates git tag (e.g., v0.2.0) - Pushes changes back to main - Adds [skip ci] to prevent infinite loop Documentation: - Added VERSION_BUMP_GUIDE.md with examples - Clear commit message format guidelines - Manual override instructions Benefits: - No manual version bumping needed - Consistent versioning across the project - Automatic changelog updates - Git tags for every release - Follows semantic versioning conventions
84 lines
2.1 KiB
Markdown
84 lines
2.1 KiB
Markdown
# Version Bump Guide
|
|
|
|
This workflow automatically bumps versions when PRs are merged to main.
|
|
|
|
## How It Works
|
|
|
|
When you merge a PR to main, the version is automatically bumped based on your commit message:
|
|
|
|
### Commit Message Format
|
|
|
|
Use conventional commits to control version bumping:
|
|
|
|
| Commit Message | Version Bump | Example |
|
|
|----------------|--------------|---------|
|
|
| `feat: add feature` | **Minor** | v0.1.0 → v0.2.0 |
|
|
| `feat!: breaking change` | **Major** | v0.1.0 → v1.0.0 |
|
|
| `fix: bug fix` | **Patch** | v0.1.0 → v0.1.1 |
|
|
| `[alpha] message` | **Alpha** | v0.1.0-alpha.1 → v0.1.0-alpha.2 |
|
|
| `[beta] message` | **Beta** | v0.1.0-beta.1 → v0.1.0-beta.2 |
|
|
| `[rc] message` | **RC** | v0.1.0-rc.1 → v0.1.0-rc.2 |
|
|
| Any other message | **Minor** (default) | v0.1.0 → v0.2.0 |
|
|
|
|
### Examples
|
|
|
|
```bash
|
|
# Feature (minor bump)
|
|
git commit -m "feat: add new agent capability"
|
|
# Result: v0.1.0 → v0.2.0
|
|
|
|
# Bug fix (patch bump)
|
|
git commit -m "fix: correct context loading"
|
|
# Result: v0.1.0 → v0.1.1
|
|
|
|
# Breaking change (major bump)
|
|
git commit -m "feat!: redesign agent API"
|
|
# Result: v0.1.0 → v1.0.0
|
|
|
|
# Alpha release
|
|
git commit -m "[alpha] improve prompt"
|
|
# Result: v0.1.0-alpha.1 → v0.1.0-alpha.2
|
|
|
|
# Default (minor bump)
|
|
git commit -m "improve documentation"
|
|
# Result: v0.1.0 → v0.2.0
|
|
```
|
|
|
|
## What Happens Automatically
|
|
|
|
1. ✅ Tests run (smoke tests for both agents)
|
|
2. ✅ Version is bumped based on commit message
|
|
3. ✅ CHANGELOG.md is updated with changes
|
|
4. ✅ Git tag is created (e.g., v0.2.0)
|
|
5. ✅ Changes are pushed back to main
|
|
6. ✅ GitHub release can be created (optional)
|
|
|
|
## Manual Override
|
|
|
|
If you want to bump version manually:
|
|
|
|
```bash
|
|
# Bump specific version type
|
|
npm run version:bump alpha
|
|
npm run version:bump beta
|
|
npm run version:bump rc
|
|
npm run version:bump patch
|
|
npm run version:bump minor
|
|
npm run version:bump major
|
|
|
|
# Commit and push
|
|
git add VERSION package.json CHANGELOG.md
|
|
git commit -m "chore: bump version to vX.Y.Z"
|
|
git tag vX.Y.Z
|
|
git push origin main --tags
|
|
```
|
|
|
|
## Skipping Auto-Bump
|
|
|
|
Add `[skip ci]` to your commit message:
|
|
|
|
```bash
|
|
git commit -m "docs: update README [skip ci]"
|
|
```
|
|
|
|
This will skip both tests and version bumping.
|