Skip to content

Commit f8de30c

Browse files
feat: Add comprehensive changelog and automated release management system (#58)
* chore: prepare release v0.2.0 - Web-based leaderboard system now live at tau-bench.com - Interactive submission management and model comparison - Mobile-responsive design with trajectory visualization - Enhanced deployment pipeline and asset management * docs: update VERSIONING.md to reflect automated release setup - Updated to match actual Release Please v4 workflow - Clarified automated vs manual release processes - Fixed release cadence based on project history - Added current GitHub Actions configuration - Updated development version to 0.2.1-dev after v0.2.0 release * feat: add automated release workflow and comprehensive documentation - Add Release Please v4 workflow for automated changelog generation - Include release templates and checklists for manual releases - Add comprehensive automation guide with conventional commit examples - Setup complete release management infrastructure * feat: highlight live leaderboard in README - Add prominent leaderboard badge in header section - Add 'What's New' section featuring v0.2.0 leaderboard launch - Include direct links to tau-bench.com for easy access - Highlight key features: interactive rankings, mobile support, trajectory analysis
1 parent db6ce6a commit f8de30c

File tree

8 files changed

+1139
-1
lines changed

8 files changed

+1139
-1
lines changed

.github/workflows/release.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# GitHub Actions workflow for automated releases
2+
# This workflow uses Release Please to automate changelog generation and releases
3+
4+
name: Release
5+
6+
on:
7+
push:
8+
branches:
9+
- main
10+
11+
permissions:
12+
contents: write
13+
pull-requests: write
14+
15+
jobs:
16+
release-please:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: google-github-actions/release-please-action@v4
20+
id: release
21+
with:
22+
# The default release type for Python projects
23+
release-type: python
24+
# Package name (should match your package name)
25+
package-name: tau2
26+
# Path to version file (pyproject.toml for Python)
27+
version-file: pyproject.toml
28+
# Include changelog in release notes
29+
include-v-in-tag: true
30+
# Custom changelog types for better categorization
31+
changelog-types: |
32+
[
33+
{"type":"feat","section":"Added","hidden":false},
34+
{"type":"fix","section":"Fixed","hidden":false},
35+
{"type":"perf","section":"Performance","hidden":false},
36+
{"type":"revert","section":"Reverted","hidden":false},
37+
{"type":"docs","section":"Documentation","hidden":false},
38+
{"type":"style","section":"Styling","hidden":true},
39+
{"type":"chore","section":"Maintenance","hidden":true},
40+
{"type":"refactor","section":"Refactoring","hidden":true},
41+
{"type":"test","section":"Testing","hidden":true},
42+
{"type":"build","section":"Build","hidden":true},
43+
{"type":"ci","section":"CI/CD","hidden":true}
44+
]
45+
46+
# Optional: Build and publish to PyPI when a release is created
47+
- uses: actions/checkout@v4
48+
if: ${{ steps.release.outputs.release_created }}
49+
50+
- name: Set up Python
51+
if: ${{ steps.release.outputs.release_created }}
52+
uses: actions/setup-python@v4
53+
with:
54+
python-version: '3.10'
55+
56+
- name: Install build tools
57+
if: ${{ steps.release.outputs.release_created }}
58+
run: |
59+
python -m pip install --upgrade pip
60+
pip install build twine
61+
62+
- name: Build package
63+
if: ${{ steps.release.outputs.release_created }}
64+
run: python -m build
65+
66+
# Uncomment to publish to PyPI
67+
# - name: Publish to PyPI
68+
# if: ${{ steps.release.outputs.release_created }}
69+
# env:
70+
# TWINE_USERNAME: __token__
71+
# TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
72+
# run: twine upload dist/*

.release-template.md

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
# Release Template
2+
3+
Use this template when manually creating releases or reviewing automated release PRs.
4+
5+
## CHANGELOG.md Entry Template
6+
7+
```markdown
8+
## [X.Y.Z] - YYYY-MM-DD
9+
10+
### Added
11+
- New feature or capability descriptions
12+
- New domains, tools, or commands
13+
14+
### Changed
15+
- Changes to existing functionality
16+
- API modifications (non-breaking)
17+
- Performance improvements
18+
19+
### Deprecated
20+
- Features marked for removal
21+
- Include timeline and migration path
22+
23+
### Removed
24+
- Features removed in this version
25+
- Breaking changes
26+
27+
### Fixed
28+
- Bug fixes with brief description
29+
- Issue references (#123)
30+
31+
### Security
32+
- Security vulnerability fixes
33+
- Security improvements
34+
```
35+
36+
## RELEASE_NOTES.md Entry Template
37+
38+
```markdown
39+
## Version X.Y.Z - Release Name 🚀
40+
41+
**Release Date**: Month DD, YYYY
42+
43+
### 🌟 Highlights
44+
45+
Brief summary of the most important changes in this release.
46+
47+
### ✨ What's New
48+
49+
#### Major Feature Name
50+
Description of the feature and why users should care.
51+
52+
```bash
53+
# Example usage
54+
tau2 new-command --example
55+
```
56+
57+
#### Another Feature
58+
More feature descriptions.
59+
60+
### 🔧 Improvements
61+
62+
- Improvement 1: Brief description
63+
- Improvement 2: Brief description
64+
- Performance: Specific performance gains
65+
66+
### 🐛 Bug Fixes
67+
68+
- Fixed issue with X causing Y
69+
- Resolved problem where Z would fail
70+
- Improved error messages for better debugging
71+
72+
### ⚠️ Breaking Changes
73+
74+
**Important**: This section is only needed for major version bumps.
75+
76+
#### Change 1
77+
- **What changed**: Description of the change
78+
- **Migration**: How to update your code
79+
- **Example**: Before/after code examples
80+
81+
### 📈 Metrics & Performance
82+
83+
- Benchmark improvements
84+
- Performance gains
85+
- Resource usage optimizations
86+
87+
### 🔄 For Developers
88+
89+
- API changes
90+
- New development tools
91+
- Updated dependencies
92+
93+
### 📚 Documentation
94+
95+
- New guides or tutorials
96+
- Updated installation instructions
97+
- API documentation improvements
98+
99+
### 🙏 Acknowledgments
100+
101+
Thanks to contributors, testers, and community members.
102+
103+
---
104+
105+
*Ready to upgrade? Check out the [upgrade guide](UPGRADE.md) for detailed instructions.*
106+
```
107+
108+
## Pre-Release Checklist
109+
110+
### Before Creating Release
111+
112+
- [ ] All tests passing
113+
- [ ] Documentation updated
114+
- [ ] Version number updated in `pyproject.toml`
115+
- [ ] CHANGELOG.md updated with new entry
116+
- [ ] RELEASE_NOTES.md updated with user-friendly summary
117+
- [ ] Breaking changes documented with migration guide
118+
- [ ] Performance benchmarks run (if applicable)
119+
- [ ] Security review completed (if applicable)
120+
121+
### Release Creation
122+
123+
- [ ] Tag created with correct version
124+
- [ ] GitHub release created with release notes
125+
- [ ] PyPI package published (if automated)
126+
- [ ] Documentation site updated
127+
- [ ] Announcement drafted for social media/blog
128+
129+
### Post-Release
130+
131+
- [ ] Monitor for immediate issues
132+
- [ ] Respond to user feedback
133+
- [ ] Update any dependent projects
134+
- [ ] Plan next release cycle
135+
136+
## Quick Commands
137+
138+
```bash
139+
# Check current version
140+
grep version pyproject.toml
141+
142+
# Create release branch
143+
git checkout -b release/v1.1.0
144+
145+
# Update changelog (manual)
146+
# Edit CHANGELOG.md and RELEASE_NOTES.md
147+
148+
# Commit release changes
149+
git add .
150+
git commit -m "chore: prepare release v1.1.0"
151+
152+
# Create and push tag
153+
git tag -a v1.1.0 -m "Release version 1.1.0"
154+
git push origin v1.1.0
155+
156+
# Create GitHub release
157+
gh release create v1.1.0 --title "τ²-bench v1.1.0" --notes-file RELEASE_NOTES.md
158+
```

0 commit comments

Comments
 (0)