From 6f416b20c3cbbb829e8fe76951e45e2b64a54bf2 Mon Sep 17 00:00:00 2001 From: Tjaart van der Walt Date: Mon, 7 May 2018 14:44:35 -0700 Subject: [PATCH 1/2] Fix greedy match of version number The original regex will greedily match the first digit of version numbers that have multiple digits. --- bin/git-release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/git-release b/bin/git-release index 18fda980a..ae47e9fc2 100755 --- a/bin/git-release +++ b/bin/git-release @@ -58,7 +58,7 @@ if test $# -gt 0; then latest_tag=$(git describe --tags "$(git rev-list --tags --max-count=1)") if [[ ! "$latest_tag" =~ \ - ^([^0-9]*)([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)\.([0-9]|[1-9][0-9]+)(.*) ]]; then + ^([^0-9]*)([1-9][0-9]+|[0-9])\.([1-9][0-9]+|[0-9])\.([1-9][0-9]+|[0-9])(.*) ]]; then echo "the latest tag doesn't match semver format requirement" 1>&2 exit 1 fi From 658f133691ab3399deb4a522c04d0e99686de849 Mon Sep 17 00:00:00 2001 From: Tjaart van der Walt Date: Mon, 7 May 2018 14:53:42 -0700 Subject: [PATCH 2/2] Major/Minor release should reset minor/patch versions to 0 There is a bug in the current version: ``` version=1.1.3 ./git-release --semver minor version=1.2.3 ``` The correct behavior should be: ``` version=1.1.3 ./git-release --semver minor version=1.2.0 ``` --- bin/git-release | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/git-release b/bin/git-release index ae47e9fc2..a2abb715a 100755 --- a/bin/git-release +++ b/bin/git-release @@ -75,8 +75,8 @@ if test $# -gt 0; then (( ++version )) case "$semver" in - major ) version="${BASH_REMATCH[1]}$version.${BASH_REMATCH[3]}.${BASH_REMATCH[4]}${BASH_REMATCH[5]}" ;; - minor ) version="${BASH_REMATCH[1]}${BASH_REMATCH[2]}.$version.${BASH_REMATCH[4]}${BASH_REMATCH[5]}" ;; + major ) version="${BASH_REMATCH[1]}$version.0.0${BASH_REMATCH[5]}" ;; + minor ) version="${BASH_REMATCH[1]}${BASH_REMATCH[2]}.$version.0${BASH_REMATCH[5]}" ;; patch ) version="${BASH_REMATCH[1]}${BASH_REMATCH[2]}.${BASH_REMATCH[3]}.$version${BASH_REMATCH[5]}" ;; esac fi