# Releasing sm121 ## Versioning - Use semver in `Cargo.toml`: `0.x.y` while the CLI is still pre-1.0. - Bump `minor` for features/behaviour changes, `patch` for fixes. - `sm121 --version` and clap read the `Cargo.toml` version directly. - The add-on image version is separate: it lives in `sm121/config.yaml` and has its own `sm121/CHANGELOG.md` section per release. ## Release steps 1. Update `Cargo.toml` `version`. 2. Add a `## ` section to `CHANGELOG.md` (newest first), describing what an operator notices — not only internals. 3. Run the gates: `make check` (fmt → clippy → test → ≤500 lines). 4. Build and install the CLI: `cargo install --path . --force`. 5. Commit, then tag and push: ```sh git tag -a v0.2.0 -m "sm121 0.2.0" git push origin v0.2.0 ``` 6. Verify `sm121 --version` and, for the add-on, rebuild/re-run the CI image with `SM121_VERSION=`; add a matching add-on changelog section. ## Rule Do not leave the CLI at `0.1.0` after feature work. A release is defined by the version in `Cargo.toml`, the changelog entry, and the git tag.