DeepBoner / docs /development /release-process.md
Claude
docs: Add comprehensive documentation structure
59ce7b1 unverified
# Release Process
> **Last Updated**: 2025-12-06
This document describes the release workflow for DeepBoner.
## Version Numbering
DeepBoner uses [Semantic Versioning](https://semver.org/):
```
MAJOR.MINOR.PATCH
1.0.0 - First stable release
0.2.0 - New features (backwards compatible)
0.1.1 - Bug fixes only
```
### Pre-release Versions
```
0.1.0-alpha.1 - Early development
0.1.0-beta.1 - Feature complete, testing
0.1.0-rc.1 - Release candidate
```
## Release Workflow
### 1. Prepare the Release
```bash
# Ensure you're on main and up to date
git checkout main
git pull origin main
# Run all checks
make check
```
### 2. Update Version
Edit `pyproject.toml`:
```toml
[project]
version = "0.2.0" # Update this
```
### 3. Update CHANGELOG
Add release notes to `CHANGELOG.md`:
```markdown
## [0.2.0] - 2025-12-15
### Added
- New feature X
### Fixed
- Bug in Y
### Changed
- Improved Z
```
### 4. Create Release Commit
```bash
git add pyproject.toml CHANGELOG.md
git commit -m "release: v0.2.0"
```
### 5. Tag the Release
```bash
git tag -a v0.2.0 -m "Release v0.2.0"
```
### 6. Push
```bash
git push origin main
git push origin v0.2.0
```
### 7. Create GitHub Release
1. Go to GitHub β†’ Releases β†’ New Release
2. Select the tag (v0.2.0)
3. Copy release notes from CHANGELOG
4. Publish release
### 8. Deploy to HuggingFace Spaces
```bash
# Push to HuggingFace
git push huggingface-upstream main
```
## Release Checklist
### Before Release
- [ ] All tests pass (`make check`)
- [ ] CHANGELOG updated
- [ ] Version bumped in pyproject.toml
- [ ] Documentation updated
- [ ] No outstanding critical bugs
- [ ] Security audit clean (`uv run pip-audit`)
### After Release
- [ ] GitHub release created
- [ ] HuggingFace Space updated
- [ ] Announce release (if significant)
## Hotfix Process
For urgent fixes on released versions:
```bash
# Create hotfix branch from tag
git checkout -b hotfix/0.1.1 v0.1.0
# Make fix
# ...
# Bump patch version
# Update CHANGELOG
# Commit and tag
git commit -m "fix: critical bug in X"
git tag -a v0.1.1 -m "Hotfix v0.1.1"
# Push
git push origin v0.1.1
# Merge back to main
git checkout main
git merge hotfix/0.1.1
git push origin main
```
## CI/CD Integration
Releases trigger GitHub Actions:
```yaml
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build and test
run: make check
```
## Rollback Procedure
If a release has critical issues:
```bash
# Revert to previous version in HuggingFace
git push huggingface-upstream v0.1.0:main --force
# Document in CHANGELOG
# Plan hotfix release
```
## Version Locations
Keep these in sync:
| File | Field |
|------|-------|
| `pyproject.toml` | `version = "X.Y.Z"` |
| `CHANGELOG.md` | `## [X.Y.Z] - YYYY-MM-DD` |
| Git tag | `vX.Y.Z` |
---
## Related Documentation
- [CHANGELOG](../../CHANGELOG.md)
- [Contributing Guide](../../CONTRIBUTING.md)
- [Deployment Guide](../deployment/docker.md)