Release Process¶
azlin uses semantic versioning and automated CI/CD for releases.
Versioning¶
azlin follows Semantic Versioning:
- Patch (2.6.x): Bug fixes, documentation updates
- Minor (2.x.0): New features, backward-compatible changes
- Major (x.0.0): Breaking changes
Version is maintained in both pyproject.toml and rust/Cargo.toml.
Release Workflow¶
- Version bump: Update version in
pyproject.tomlandrust/Cargo.toml - Update CHANGELOG.md: Move items from
[Unreleased]to the new version section - Create PR: Submit version bump PR for review
- Merge to main: After approval, merge triggers the release workflow
- CI builds binaries: GitHub Actions builds for Linux (x86_64, aarch64), macOS (x86_64, aarch64), and Windows
- GitHub Release: Binaries are uploaded to a new GitHub Release with release notes
- Docs deploy: Documentation site is rebuilt and deployed to GitHub Pages
Binary Distribution¶
Pre-built binaries are published for:
| Platform | Architecture | Artifact |
|---|---|---|
| Linux | x86_64 | azlin-linux-x86_64.tar.gz |
| Linux | aarch64 | azlin-linux-aarch64.tar.gz |
| macOS | x86_64 | azlin-macos-x86_64.tar.gz |
| macOS | aarch64 | azlin-macos-aarch64.tar.gz |
| Windows | x86_64 | azlin-windows-x86_64.zip |
Users can update via azlin self-update which downloads the latest binary from GitHub Releases.
Self-Update¶
The azlin self-update command:
- Queries the GitHub Releases API for the latest version
- Compares with the current binary version
- Downloads the appropriate binary for the current platform
- Replaces the running binary
Documentation Deployment¶
Documentation is deployed automatically when changes are pushed to docs-site/ or mkdocs.yml on the main branch. The workflow:
- Installs MkDocs Material and plugins
- Generates command documentation from CLI help text
- Builds the static site with
mkdocs build - Deploys to GitHub Pages
Development Builds¶
To build locally: