name: semantic-version-suggestion description: Use when deciding the next sparse-ir-rs release version or checking whether a change set should be patch, minor, or major under Semantic Versioning
Semantic Version Suggestion
Overview
Pick the next version from evidence, not intuition. Use the workspace version, crates.io state, the latest release tag, and the actual diff since that tag.
Checklist
- Read the current workspace version from
Cargo.toml. - Check crates.io for published versions of
sparse-irandsparse-ir-capi. - Find the latest
vX.Y.Zgit tag and diff from that tag toHEAD. - Classify the change set:
- Patch: bug fixes, internal refactors, thread-safety fixes, tests, docs, CI-only changes.
- Minor: backward-compatible API or C-API additions, new features, new optional behavior.
- Major: breaking Rust API, C ABI, serialized format, feature removal, raised minimum requirements that break users.
- Suggest the exact next version and name every file that must be bumped:
Cargo.tomlpython/pyproject.toml- later, after publish,
julia/build_tarballs.jl
Repository-Specific Rules
- If the workspace version is already published on crates.io and only patch-class changes were added afterward, suggest the next patch release.
- If the workspace version is unpublished but already matches the intended SemVer class, keep it.
- Do not bump Julia before crates.io publication.
Commands
curl -s https://crates.io/api/v1/crates/sparse-ir | jq '.crate.max_version'
curl -s https://crates.io/api/v1/crates/sparse-ir-capi | jq '.crate.max_version'
git tag --sort=-creatordate | head
git diff --stat <latest-tag>..HEAD
git diff <latest-tag>..HEAD -- sparse-ir/src sparse-ir-capi/src