# Release Process

1. Update `Cargo.toml` and `CHANGELOG.md` for the release version.
2. Run the local verification matrix:

   ```bash
   cargo fmt --check
   cargo test --all-targets --locked
   cargo test --doc --locked
   cargo clippy --all-targets --all-features --locked -- -D warnings
   cargo build --release --locked
   ```

3. Ensure the repository has a GitHub Actions secret named `CARGO_REGISTRY_TOKEN`
   with a crates.io API token that can publish `mtag-cli`.

4. Package-check the crate:

   ```bash
   cargo package --locked
   ```

5. Commit the release changes.
6. Push `main` to trigger the publish workflow:

   ```bash
   git push origin main
   ```

7. Create and push a matching tag after the crate is published:

   ```bash
   git tag v0.2.0
   git push origin v0.2.0
   ```
