# Release Template

Use this template when manually creating releases or reviewing automated release PRs.

## CHANGELOG.md Entry Template

```markdown
## [X.Y.Z] - YYYY-MM-DD

### Added
- New feature or capability descriptions
- New domains, tools, or commands

### Changed  
- Changes to existing functionality
- API modifications (non-breaking)
- Performance improvements

### Deprecated
- Features marked for removal
- Include timeline and migration path

### Removed
- Features removed in this version
- Breaking changes

### Fixed
- Bug fixes with brief description
- Issue references (#123)

### Security
- Security vulnerability fixes
- Security improvements
```

## RELEASE_NOTES.md Entry Template

```markdown
## Version X.Y.Z - Release Name 🚀

**Release Date**: Month DD, YYYY

### 🌟 Highlights

Brief summary of the most important changes in this release.

### ✨ What's New

#### Major Feature Name
Description of the feature and why users should care.

```bash
# Example usage
tau2 new-command --example
```

#### Another Feature
More feature descriptions.

### 🔧 Improvements

- Improvement 1: Brief description
- Improvement 2: Brief description  
- Performance: Specific performance gains

### 🐛 Bug Fixes

- Fixed issue with X causing Y
- Resolved problem where Z would fail
- Improved error messages for better debugging

### ⚠️ Breaking Changes

**Important**: This section is only needed for major version bumps.

#### Change 1
- **What changed**: Description of the change
- **Migration**: How to update your code
- **Example**: Before/after code examples

### 📈 Metrics & Performance

- Benchmark improvements
- Performance gains
- Resource usage optimizations

### 🔄 For Developers

- API changes
- New development tools
- Updated dependencies

### 📚 Documentation

- New guides or tutorials
- Updated installation instructions
- API documentation improvements

### 🙏 Acknowledgments

Thanks to contributors, testers, and community members.

---

*Ready to upgrade? Check out the [upgrade guide](UPGRADE.md) for detailed instructions.*
```

## Pre-Release Checklist

### Before Creating Release

- [ ] All tests passing
- [ ] Documentation updated
- [ ] Version number updated in `pyproject.toml`
- [ ] CHANGELOG.md updated with new entry
- [ ] RELEASE_NOTES.md updated with user-friendly summary
- [ ] Breaking changes documented with migration guide
- [ ] Performance benchmarks run (if applicable)
- [ ] Security review completed (if applicable)

### Release Creation

- [ ] Tag created with correct version
- [ ] GitHub release created with release notes
- [ ] PyPI package published (if automated)
- [ ] Documentation site updated
- [ ] Announcement drafted for social media/blog

### Post-Release

- [ ] Monitor for immediate issues
- [ ] Respond to user feedback
- [ ] Update any dependent projects
- [ ] Plan next release cycle

## Quick Commands

```bash
# Check current version
grep version pyproject.toml

# Create release branch
git checkout -b release/v1.1.0

# Update changelog (manual)
# Edit CHANGELOG.md and RELEASE_NOTES.md

# Commit release changes
git add .
git commit -m "chore: prepare release v1.1.0"

# Create and push tag
git tag -a v1.1.0 -m "Release version 1.1.0"
git push origin v1.1.0

# Create GitHub release
gh release create v1.1.0 --title "τ-bench v1.1.0" --notes-file RELEASE_NOTES.md
```
