nix: adjust release tool to new versioning scheme

Resolves #4166
This commit is contained in:
Wolfgang Walther
2025-10-10 18:19:33 -05:00
committed by Steve Chavez
parent 041d4f8ed2
commit 8e35d543bd
3 changed files with 21 additions and 28 deletions
+15 -22
View File
@@ -20,27 +20,24 @@ let
git diff --exit-code HEAD postgrest.cabal > /dev/null
trap "" ERR
# TODO: Support C+D bumps when implementing hackage releases
bump () {
current_version="$(grep -oP '^version:\s*\K.*' postgrest.cabal)"
# shellcheck disable=SC2034
IFS=. read -r major minor patch <<< "$current_version"
IFS=. read -r A B C D <<< "$current_version"
echo "Current version is $current_version"
case "$1" in
major)
new_version="$((major+1)).0.0"
new_docs_version="$((major+1)).0"
A)
new_version="$((A+1)).0"
new_docs_version="$((A+1))"
;;
minor)
new_version="$major.$((minor+1)).0"
new_docs_version="$major.$((minor+1))"
;;
patch)
new_version="$major.$minor.$((patch+1))"
new_docs_version="$major.$minor"
B)
new_version="$A.$((B+1))"
new_docs_version="$A"
;;
devel)
new_version="$major.$((minor+1))"
new_version="$((A+1))"
new_docs_version="devel"
;;
esac
@@ -55,13 +52,9 @@ let
today_date_for_changelog="$(date '+%Y-%m-%d')"
if [[ "$current_branch" == "main" ]]; then
if [[ "$_arg_major" == "on" ]]; then
bump major
else
bump minor
fi
bump A
else
bump patch
bump B
fi
echo "Updating CHANGELOG.md ..."
@@ -75,10 +68,10 @@ let
bump devel
# The order of operations is important here:
# - bump devel is run and $major is upated to the new version
# - the branch is created with the new major, but the commit before the devel bump
# - bump devel is run and $A is upated to the new version
# - the branch is created with the new A, but the commit before the devel bump
# - the devel bump is committed
git branch -f "v$major"
git branch "v$A"
echo "Committing (devel bump)..."
git commit -m "bump version to $new_version" > /dev/null
@@ -90,7 +83,7 @@ let
if [[ "$current_branch" == "main" ]]; then
push1="git push $remote $current_branch"
push2="git push $remote v$major --force"
push2="git push $remote v$A"
else
push1="git push $remote $current_branch"
push2=""