← ClaudeAtlas

release-rust-crates-iolisted

Release a Rust crate to crates.io with mandatory preflight checks, user-confirmed version bump and git tag (following repo tag conventions), GitHub release, and post-publish verification from crates.io. Use when the user asks to release or publish a Rust crate, ship a version to crates.io, cut a crate release, tag and publish a Rust library, or run a crates.io release workflow.
glslang/windbg-mcp · ★ 12 · AI & Automation · score 74
Install: claude install-skill glslang/windbg-mcp
# Release Rust Crate to crates.io End-to-end release: confirm version → mandatory preflight checks → user-confirmed tag → `cargo publish` → GitHub tag/release → smoke test against the published crate on crates.io. **Every step and every check is mandatory.** Do not skip, defer, or proceed on failure. Stop and ask the user only when a gate fails or a decision is required. ## 0. Detect repo and crate From the repo root (or the path the user gave): ```bash git rev-parse --show-toplevel cargo metadata --no-deps --format-version 1 ``` Determine: - **Package name** and **current version** from the target crate's `Cargo.toml` (`[package].name`, `[package].version`). - **Workspace?** If multiple publishable crates, list them and confirm which to release (or release in dependency order — dependencies before dependents). - **Default branch** (`main` / `master`). If `[package].publish = false`, stop — crate is not publishable. If the working tree has uncommitted changes, ask whether to commit them first or stash. Do not tag or publish on a dirty tree unless the user explicitly approves. ## 1. Confirm release version (required — do not proceed without approval) Before any checks or version edits, present the release target and **wait for explicit confirmation**. Gather context: ```bash # Current version (workspace: add -p <crate>) cargo pkgid 2>/dev/null | sed 's/.*#//' || grep '^version' Cargo.toml # Latest published on crates.io (may 404 for first release) curl -s "https: