2.0 KiB
VoxVera Release Process
This document outlines the mandatory steps to perform before every release to ensure code quality, cross-language integrity, and professional distribution assets.
1. Pre-Flight Checks (Quality Assurance)
Before any release, the codebase must pass all internal quality checks.
Run Tests
Ensure all core CLI, E2E, and Integrity tests pass:
pytest tests/
Note: The test_integrity.py check is critical as it verifies that all 14+ language locales have synchronized keys.
Run Linting
Ensure the code adheres to style guidelines (no trailing whitespace, proper spacing, etc.):
# Using flake8 (excluding vendored dependencies)
flake8 voxvera/ --exclude=voxvera/vendor/
2. Generate Localized Assets
Documentation and site templates must be regenerated to reflect the latest locale strings and binary names.
# Regenerate docs/ folders for all languages
python3 -m voxvera.cli build-docs
# Synchronize site/ directory (QRs, HTML, and portable Zips)
python3 -m voxvera.cli build-site
3. Build Distribution Binaries
Standardized binaries and AppImages must be generated for the current platform.
Standard Binary
Generates an architecture-specific binary (e.g., voxvera-linux-x86_64) in voxvera/resources/bin/.
./scripts/build_binaries.sh
AppImage (Linux)
Wraps the standard binary into a self-contained AppImage.
./packaging/build_appimage.sh
4. Release Execution
- Version Bump: Update
__version__invoxvera/__init__.pyandversioninpyproject.toml. - Commit & Tag:
git add . git commit -m "chore: release vX.Y.Z" git tag -a vX.Y.Z -m "VoxVera vX.Y.Z" git push origin main --tags - GitHub Release:
Create a release and upload the assets from
voxvera/resources/bin/andsite/download/.gh release create vX.Y.Z voxvera/resources/bin/* site/download/*.zip --title "VoxVera vX.Y.Z" --notes "Release notes here..."