Files
BMAD-METHOD/docs/versioning-and-releases.md
Brian Madison c5fe28e76b style: apply prettier and yaml formatting
Auto-formatting applied by prettier and yaml-format tools.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-15 14:20:19 -05:00

2.2 KiB

How to Release a New Version

The easiest way to release new versions is through automatic semantic releases. Just commit with the right message format and push - everything else happens automatically!

Commit Message Format

Use these prefixes to control what type of release happens:

fix: resolve CLI argument parsing bug      # → patch release (4.1.0 → 4.1.1)
feat: add new agent orchestration mode     # → minor release (4.1.0 → 4.2.0)
feat!: redesign CLI interface              # → major release (4.1.0 → 5.0.0)
```text

### What Happens Automatically

When you push commits with `fix:` or `feat:`, GitHub Actions will:

1. ✅ Analyze your commit messages
2. ✅ Bump version in `package.json`
3. ✅ Generate changelog
4. ✅ Create git tag
5. ✅ **Publish to NPM automatically**
6. ✅ Create GitHub release with notes

### Your Simple Workflow

```bash
# Make your changes
git add .
git commit -m "feat: add team collaboration mode"
git push

# That's it! Release happens automatically 🎉
# Users can now run: npx bmad-method (and get the new version)

Commits That DON'T Trigger Releases

These commit types won't create releases (use them for maintenance):

chore: update dependencies     # No release
docs: fix typo in readme      # No release
style: format code            # No release
test: add unit tests          # No release
```text

### Test Your Setup

```bash
npm run release:test    # Safe to run locally - tests the config

Manual Release Methods (Exceptions Only)

⚠️ Only use these methods if you need to bypass the automatic system

Quick Manual Version Bump

npm run version:patch   # 4.1.0 → 4.1.1 (bug fixes)
npm run version:minor   # 4.1.0 → 4.2.0 (new features)
npm run version:major   # 4.1.0 → 5.0.0 (breaking changes)

# Then manually publish:
npm publish
git push && git push --tags

Manual GitHub Actions Trigger

You can also trigger releases manually through GitHub Actions workflow dispatch if needed.


Summary

For 99% of releases: Just use fix: or feat: commit messages and push. Everything else is automatic!

Manual methods: Only needed for special cases or if you want to bypass the automated system.