Commit Diff


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"