# Release Checklist: v0.5.0
**Date**: 2025-12-11
**Feature**: Zerobus Writer Disabled Mode
## Pre-Release Checks ✅
### Code Quality
- ✅ **Rust Formatting**: `cargo fmt --check` - All files formatted
- ✅ **Rust Linting**: `cargo clippy -- -D warnings` - No warnings
- ✅ **Python Formatting**: `black --check` - All files formatted
- ✅ **Python Linting**: `ruff check` - All issues fixed
### Tests
- ✅ **Unit Tests**: All passing (5 config tests)
- ✅ **Integration Tests**: All passing (10 tests including network verification)
- ✅ **Python Tests**: All passing (4 tests)
- ✅ **Test Coverage**: Verified for all modified files
### Documentation
- ✅ **CHANGELOG.md**: Updated with v0.5.0 release notes
- ✅ **README.md**: Updated with writer disabled mode documentation
- ✅ **Quickstart Guide**: Validated examples
- ✅ **API Documentation**: Rustdoc comments complete
### GitHub Actions CI/CD
- ✅ **Format & Lint Job**: Checks Rust and Python formatting/linting
- ✅ **Build Job**: Builds with and without Python features
- ✅ **Test Jobs**: Runs tests on Ubuntu, macOS, Windows
- ✅ **Python Tests**: Runs pytest with Python bindings
- ✅ **Release Job**: Creates tag and GitHub release on merge to main/master
### Release Automation
- ✅ **Version**: Updated to 0.5.0 in Cargo.toml
- ✅ **Tag Creation**: Automated on merge to main/master
- ✅ **GitHub Release**: Automated with CHANGELOG reference
## GitHub Workflow Verification
### Format & Lint Job (`format-lint`)
- ✅ Checks Rust formatting: `cargo fmt --check --all`
- ✅ Checks Python formatting: `black --check tests/python/`
- ✅ Runs Rust clippy: `cargo clippy --all-targets --features observability -- -D warnings`
- ✅ Runs Python linting: `ruff check tests/python/`
- ✅ Runs clippy with Python feature (optional)
### Build Job (`build`)
- ✅ Depends on `format-lint` job
- ✅ Builds Rust without Python features
- ✅ Builds Rust with Python features (optional)
### Test Jobs
- ✅ `test-rust-ubuntu`: Runs Rust tests on Ubuntu
- ✅ `test-rust-other`: Runs Rust tests on macOS and Windows
- ✅ `test-python`: Runs Python tests (depends on build and test-rust-ubuntu)
### Release Job (`release`)
- ✅ Runs only on push to main/master
- ✅ Depends on all test jobs passing
- ✅ Gets version from Cargo.toml
- ✅ Checks if tag already exists
- ✅ Creates Git tag: `v{version}`
- ✅ Creates GitHub Release with CHANGELOG reference
## Release Process
1. ✅ All code changes complete
2. ✅ All tests passing
3. ✅ All formatting/linting checks passing
4. ✅ Documentation updated
5. ✅ Version updated in Cargo.toml (0.5.0)
6. ✅ CHANGELOG.md updated with release notes
7. ⏳ **Next**: Create PR and merge to main/master
8. ⏳ **Automated**: GitHub Actions will create tag and release
## Post-Release
After merge to main/master:
- GitHub Actions will automatically:
1. Run all CI checks
2. Create Git tag `v0.5.0`
3. Create GitHub Release with release notes
4. Reference CHANGELOG.md in release body
## Notes
- Release tagging is automated via GitHub Actions
- Tag format: `v{version}` (e.g., `v0.5.0`)
- Release is created only if tag doesn't already exist
- All CI checks must pass before release is created