# 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)