jackin-project/jackin-dev

jackin-release

Use only when the user explicitly requests this skill.

Voir la source
Document Skill original

Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.

jackin-release

Cut a release. The only irreversible skill in the suite — cargo release --execute bumps the version, rewrites the changelog header, tags, and pushes. Hard-gated on one explicit operator "yes"; nothing releases on assumption.

Orchestrates jackin-release-check (the gates) and jackin-release-notes (the changelog), then recommends a version from the changelog shape and cuts.

When to use

  • The operator asks to cut / ship / release a version.

When NOT to use

  • Just checking readiness → jackin-release-check.
  • Just updating the changelog → jackin-release-notes.

Prerequisites

cargo-release installed; gh authenticated; release.toml with pre-release-replacements for CHANGELOG.md; CHANGELOG.md with the <!-- next-header --> marker; .github/workflows/ci.yml.

Process

  1. Gates. Run jackin-release-check. A red gate stops — show the report and name what to fix. Warns surface; ask whether to continue.

Done when every gate is green, or the operator accepted the warns.

  1. Changelog. Run jackin-release-notes. Present the [Unreleased] section; let the operator re-classify or reword.

Done when the operator approves the changelog.

  1. Recommend a version. Read the approved [Unreleased] buckets: any Removed or "breaking" entry → major; any Addedminor; only Fixed / Changed / Security / Deprecatedpatch. Read the current version (grep '^version' Cargo.toml), compute the next, present the recommendation, wait.

Done when the operator confirms the bump level.

  1. Commit the changelog. If CHANGELOG.md has uncommitted edits, git add CHANGELOG.md && git commit -m "docs: update changelog for vX.Y.Z".
  1. Final confirm. Show the summary — version, bump level, changelog shape, and the exact cargo release <level> --execute about to run (it bumps Cargo.toml, renames [Unreleased] to [X.Y.Z] - <date> via release.toml, tags, and pushes). Do not run it without an explicit "yes."

Done when the operator says "yes."

  1. Cut. cargo release <level> --execute. On failure, show the error and stop.
  1. Verify. git tag -l "vX.Y.Z" and git ls-remote --tags origin "refs/tags/vX.Y.Z". Point the operator at the release workflow that now builds the artifacts.

Error recovery

  • Before cargo release: safe to fix and re-run — this skill re-validates everything.
  • During cargo release: check what committed or tagged. Tag created but unpushed → git push origin vX.Y.Z. Version commit without tag → reset and retry.
  • After: the release is done; a CI failure is a workflow issue, not a rollback.

Common mistakes

  • Running cargo release without the explicit "yes" — the one hard gate.
  • Letting a red readiness gate through to the cut.
  • Hand-editing the [X.Y.Z] version heading — cargo-release rewrites it via release.toml pre-release-replacements; double-editing corrupts the release commit.
du même dépôt

Autres Skills

Tous les Skills