Release Process
This page documents the release process for nmrs and nmrs-gui.
Versioning
nmrs follows Semantic Versioning:
- Major (X.0.0) — breaking API changes
- Minor (0.X.0) — new features, backward-compatible
- Patch (0.0.X) — bug fixes, backward-compatible
The library (nmrs) and GUI (nmrs-gui) are versioned independently.
Current Versions
| Crate | Version |
|---|---|
nmrs | 2.2.0 |
nmrs-gui | 1.1.0 |
Changelogs
Each crate maintains its own changelog:
nmrs/CHANGELOG.md— Core librarynmrs-gui/CHANGELOG.md— GUI application
Release Checklist
- Update version in
Cargo.toml - Update the changelog
- Run
cargo test - Run
cargo clippy - Run
cargo fmt --check - Build documentation (
mdbook buildindocs/) - Create a git tag:
git tag v2.2.0 - Push the tag:
git push origin v2.2.0 - Publish to crates.io:
cargo publish -p nmrs
Distribution Channels
API Stability
- All public types are
#[non_exhaustive]— new fields/variants can be added in minor releases - Existing API signatures are preserved across minor releases
- Deprecated items are documented and kept for at least one minor release
Next Steps
- Contributing – how to contribute
- Changelog – full version history