commit 78ac043538b76d86e7772a363b0b43e3f6894c73 from: mtmn date: Thu May 7 08:20:35 2026 UTC fix: use git-cliff for releases commit - 683c655f8651b2507c53e78b9b6a9a38c97284f6 commit + 78ac043538b76d86e7772a363b0b43e3f6894c73 blob - dea15fd48da875489377b25cabbd2bc881bc30e7 blob + 9e41e886d2a1d833aef38d059da707256f01e9d9 --- hack/release +++ hack/release @@ -1,24 +1,31 @@ #!/usr/bin/env bash set -euo pipefail -require() { command -v "$1" &>/dev/null || { - echo "error: $1 not found" - exit 1 -}; } +require() { + command -v "$1" &>/dev/null || { + echo "error: $1 not found" + exit 1 + } +} require git require git-cliff -require cargo -require cargo-release # --- pre-flight --- +if [ "$(git rev-parse --abbrev-ref HEAD)" != "master" ]; then + echo "error: not on master branch" + exit 1 +fi + if [ -n "$(git status --porcelain)" ]; then echo "error: working tree is dirty" exit 1 fi -next=$(git-cliff --bumped-version 2>/dev/null | sed 's/^v//') +# --- version calculation --- +next=$(git-cliff --bumped-version | sed 's/^v//') + if git tag | grep -qx "v$next"; then echo "no releasable commits since v$next" exit 0 @@ -26,13 +33,15 @@ fi echo "releasing -> v$next" -# --- release --- - -cargo release "$next" --execute - # --- changelog --- git-cliff --tag "v$next" --output CHANGELOG.md git add CHANGELOG.md -git commit --amend --no-edit -git push --force +git commit -m "chore: update CHANGELOG for v$next" + +# --- tag and push --- + +git tag "v$next" +git push origin master --tags + +echo "released v$next successfully"