Cut Release

Cut a release atomically — bump version, date the CHANGELOG section, commit, tag. Invoke with /cut-release X.Y.Z.

thomasrohde 17c05a8 1.1 KB Updated

File contents

Version to release: $ARGUMENTS.

Preflight:

  1. git status --porcelain — must be empty. If not, stop and tell the user.
  2. python -c "import mdvw; print(mdvw.__version__)" — must end in .devN. If not, stop and tell the user to run --post-release first or amend manually.
  3. Confirm ## [Unreleased] in CHANGELOG.md has real notes (not just the placeholder comment). If it looks empty, ask the user to confirm before proceeding.

Then run the /verify skill — don't cut a release on a failing tree.

If all green, run:

python scripts/release.py $ARGUMENTS

Report the resulting commit SHA and tag. Then print the push command verbatim for the user to run:

git push origin main v$ARGUMENTS

Do not push automatically. The tag push triggers release.yml which publishes to PyPI — that's a decision for the user.

After they've pushed (and the release has landed), suggest:

python scripts/release.py --post-release <next>.dev0

to reopen the dev cycle.

thomasrohde/mdvw/tree/main/.agents/skills/cut-release commit 17c05a8f52

Frequently asked questions

npx skillmds@latest add thomasrohde/cut-release