Release Process
Volley follows semantic versioning (SemVer) with a staged release process.
Version Format
All crates in the workspace share a single version defined in the root
Cargo.toml under [workspace.package]. Versions use 3-segment semver
with optional pre-release identifiers:
X.Y.Z-alpha.N— Alpha: feature-complete for the release scope. API may change. Not for production.X.Y.Z-beta.N— Beta: API frozen. Bug fixes only. Community testing encouraged.X.Y.Z— Stable: production-ready. Semver guarantees apply.
How to Release
- Bump the version in
Cargo.toml[workspace.package]section. - Update
CHANGELOG.md: move items from[Unreleased]to a new version section with today’s date. - Create a PR and merge to
main. - The
auto-tag.ymlworkflow detects the version change and creates a git tag (v{VERSION}). - The tag triggers
release.yml, which creates a GitHub Release with an auto-generated changelog.
Releases with -alpha, -beta, or -rc in the version are automatically marked as pre-releases.
Progression
1.0.0-alpha.1 → 1.0.0-alpha.2 → ... → 1.0.0-beta.1 → 1.0.0-beta.2 → ... → 1.0.0
- Alpha → Alpha: bump the alpha number for each iteration.
- Alpha → Beta: when the API is frozen and only bug fixes remain.
- Beta → Stable: when all known issues are resolved and testing is complete.
Installing
Install the CLI from source:
cargo install --git https://github.com/volley-streams/volley volley-cli --tag v1.0.0-alpha.1
Or from a local checkout:
cargo install --path volley-cli
Crate Publishing
Cargo crate publishing to crates.io is not yet automated. This is planned for a future release.