name: manual-rust-release description: Use when releasing sparse-ir-rs through the manual GitHub Actions workflow that publishes crates first and pushes the release tag only after publish succeeds
Manual Rust Release
Overview
This repository uses a manual GitHub Actions workflow for the Rust release gate. The workflow publishes sparse-ir first, waits until that version is visible on crates.io, publishes sparse-ir-capi, and only then pushes vX.Y.Z.
Preconditions
- The version bump PR is merged.
Cargo.tomlandpython/pyproject.tomlalready contain the intended version.python3 check_version.pypasses.CRATES_IO_TOKENis configured as a GitHub Actions secret.- The target version is not already published and the tag does not already exist.
Start The Workflow
gh workflow run manual-release.yml \
-f release_ref=main \
-f expected_version=0.8.1 \
-f confirm_publish=true
Use a different release_ref only when releasing from a specific branch or commit.
Watch The Run
RUN_ID=$(gh run list --workflow manual-release.yml --limit 1 --json databaseId --jq '.[0].databaseId')
gh run watch "$RUN_ID"
Expected Outcome
- The workflow publishes
sparse-ir. - It waits until
sparse-irat that exact version is visible on crates.io. - It publishes
sparse-ir-capi. - It pushes
vX.Y.Ztoorigin. - Julia and BinaryBuilder follow-up work happens later.