What problem does it solve?
Releasing the czsc library is error-prone because it is a Rust + Python hybrid package (PyO3 + maturin) that must publish synchronized versions to both crates.io and PyPI, and past releases suffered repeated re-releases due to skipped pre-flight checks. This Skill enforces a disciplined, checklist-driven release workflow with mandatory human authorization before irreversible actions like pushing tags.
Core Features & Use Cases
- SemVer version recommendation: Reads the workspace Cargo.toml version and CHANGELOG [Unreleased] section to recommend the next rc or stable version, then asks the user to confirm.
- Full pre-flight validation: Runs cargo fmt/clippy/test, maturin develop, stub generation drift checks, pytest (including slow tests), and ruff before any version bump.
- CHANGELOG and version bump automation: Updates Cargo.toml workspace and dependency versions, converts [Unreleased] into a dated release section, and commits the bump.
- Gated irreversible actions: Stops for explicit user authorization before git tag, push to master, and tag pushes that trigger PyPI/crates.io CI publishing, plus CI monitoring and a re-release playbook for failures.
- Use Case: When you say "prepare czsc 1.0.0-rc.8 release", the Skill verifies the working tree, runs all checks, bumps versions, files the CHANGELOG, and pauses for your approval before pushing the tag that triggers PyPI upload.
Quick Start
Ask the assistant to release czsc by saying "bump czsc to the next rc version and prepare the release", then confirm each gated step as prompted.