From 222da55eef3e4cda78322c2c6397748efbd978a0 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Fri, 12 Jan 2024 12:04:56 +0100 Subject: [PATCH 1/8] unstableGitUpdater: Use stableVersion, update to new format, offer hardcoded 0 version --- pkgs/common-updater/unstable-updater.nix | 31 ++++++++++++++---------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix index 29b7fcf19679..fc23090e050b 100644 --- a/pkgs/common-updater/unstable-updater.nix +++ b/pkgs/common-updater/unstable-updater.nix @@ -10,8 +10,8 @@ # commit. { url ? null # The git url, if empty it will be set to src.gitRepoUrl , branch ? null -, stableVersion ? false # Use version format according to RFC 107 (i.e. LAST_TAG+date=YYYY-MM-DD) -, tagPrefix ? "" # strip this prefix from a tag name when using stable version +, hardcodeZeroVersion ? false # Use a made-up version "0" instead of latest tag. Use when there is no previous release, or the project's tagging system is incompatible with what we expect from versions +, tagPrefix ? "" # strip this prefix from a tag name , shallowClone ? true }: @@ -21,7 +21,7 @@ let url="" branch="" - use_stable_version="" + hardcode_zero_version="" tag_prefix="" shallow_clone="" @@ -35,8 +35,8 @@ let --branch=*) branch="''${flag#*=}" ;; - --use-stable-version) - use_stable_version=1 + --hardcode-zero-version) + hardcode_zero_version=1 ;; --tag-prefix=*) tag_prefix="''${flag#*=}" @@ -78,9 +78,8 @@ let pushd "$tmpdir" commit_date="$(${git}/bin/git show -s --pretty='format:%cs')" commit_sha="$(${git}/bin/git show -s --pretty='format:%H')" - if [[ -z "$use_stable_version" ]]; then - new_version="unstable-$commit_date" - else + last_tag="" + if [[ -z "$hardcode_zero_version" ]]; then depth=100 while (( $depth < 10000 )); do last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)" @@ -91,14 +90,20 @@ let depth=$(( $depth * 2 )) done if [[ -z "$last_tag" ]]; then - echo "Cound not found a tag within last 10000 commits" > /dev/stderr + echo "Cound not find a tag within last 10000 commits" > /dev/stderr exit 1 fi if [[ -n "$tag_prefix" ]]; then last_tag="''${last_tag#$tag_prefix}" fi - new_version="$last_tag+date=$commit_date" + if [[ ! "$last_tag" =~ ^[[:digit:]] ]]; then + echo "Last tag '$last_tag' (after removing prefix '$tag_prefix') does not start with a digit" > /dev/stderr + exit 1 + fi + else + last_tag="0" fi + new_version="$last_tag-unstable-$commit_date" popd # ${coreutils}/bin/rm -rf "$tmpdir" @@ -113,11 +118,11 @@ in [ updateScript "--url=${builtins.toString url}" + "--tag-prefix=${tagPrefix}" ] ++ lib.optionals (branch != null) [ "--branch=${branch}" -] ++ lib.optionals stableVersion [ - "--use-stable-version" - "--tag-prefix=${tagPrefix}" +] ++ lib.optionals hardcodeZeroVersion [ + "--hardcode-zero-version" ] ++ lib.optionals shallowClone [ "--shallow-clone" ] From 460374eb04229b5e5ed2bb4a9ddaf76cecef3717 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Fri, 12 Jan 2024 18:32:04 +0100 Subject: [PATCH 2/8] unstableGitUpdater: Support non-shallow clones in tag search --- pkgs/common-updater/unstable-updater.nix | 28 +++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix index fc23090e050b..2d63a250aa64 100644 --- a/pkgs/common-updater/unstable-updater.nix +++ b/pkgs/common-updater/unstable-updater.nix @@ -80,17 +80,25 @@ let commit_sha="$(${git}/bin/git show -s --pretty='format:%H')" last_tag="" if [[ -z "$hardcode_zero_version" ]]; then - depth=100 - while (( $depth < 10000 )); do - last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)" - if [[ -n "$last_tag" ]]; then - break - fi - ${git}/bin/git fetch --depth="$depth" --tags - depth=$(( $depth * 2 )) - done + if [[ "$shallow_clone" == "1" ]]; then + depth=100 + while (( $depth < 10000 )); do + last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)" + if [[ -n "$last_tag" ]]; then + break + fi + ${git}/bin/git fetch --depth="$depth" --tags + depth=$(( $depth * 2 )) + done + else + last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)" + fi if [[ -z "$last_tag" ]]; then - echo "Cound not find a tag within last 10000 commits" > /dev/stderr + if [[ "$shallow_clone" == "1" ]]; then + echo "Cound not find a tag within last 10000 commits" > /dev/stderr + else + echo "Cound not find a tag" > /dev/stderr + fi exit 1 fi if [[ -n "$tag_prefix" ]]; then From 3cd4a35e710230c2e19838a4f45c555280e66e14 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Wed, 7 Feb 2024 16:46:56 +0100 Subject: [PATCH 3/8] unstableGitUpdater: Try full history if failed to find any tags in shallow clone --- pkgs/common-updater/unstable-updater.nix | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix index 2d63a250aa64..91047e685531 100644 --- a/pkgs/common-updater/unstable-updater.nix +++ b/pkgs/common-updater/unstable-updater.nix @@ -90,19 +90,20 @@ let ${git}/bin/git fetch --depth="$depth" --tags depth=$(( $depth * 2 )) done + + if [[ -z "$last_tag" ]]; then + # To be extra sure, check if full history helps with finding a tag + git fetch --tags + last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)" + fi else - last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)" + last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)" fi if [[ -z "$last_tag" ]]; then - if [[ "$shallow_clone" == "1" ]]; then - echo "Cound not find a tag within last 10000 commits" > /dev/stderr - else - echo "Cound not find a tag" > /dev/stderr - fi - exit 1 + last_tag="0" fi if [[ -n "$tag_prefix" ]]; then - last_tag="''${last_tag#$tag_prefix}" + last_tag="''${last_tag#$tag_prefix}" fi if [[ ! "$last_tag" =~ ^[[:digit:]] ]]; then echo "Last tag '$last_tag' (after removing prefix '$tag_prefix') does not start with a digit" > /dev/stderr From c145f59d48e9e6c2fb55edc9321a74470d7d17c9 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Wed, 28 Feb 2024 10:19:51 +0100 Subject: [PATCH 4/8] unstableGitUpdater: Add option to run the tag through a converter program --- pkgs/common-updater/unstable-updater.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix index 91047e685531..696d8804c7a8 100644 --- a/pkgs/common-updater/unstable-updater.nix +++ b/pkgs/common-updater/unstable-updater.nix @@ -12,6 +12,7 @@ , branch ? null , hardcodeZeroVersion ? false # Use a made-up version "0" instead of latest tag. Use when there is no previous release, or the project's tagging system is incompatible with what we expect from versions , tagPrefix ? "" # strip this prefix from a tag name +, tagConverter ? null # A command to convert more complex tag formats. It receives the git tag via stdin and should convert it into x.y.z format to stdout , shallowClone ? true }: @@ -23,6 +24,7 @@ let branch="" hardcode_zero_version="" tag_prefix="" + tag_converter="" shallow_clone="" while (( $# > 0 )); do @@ -41,6 +43,9 @@ let --tag-prefix=*) tag_prefix="''${flag#*=}" ;; + --tag-converter=*) + tag_converter="''${flag#*=}" + ;; --shallow-clone) shallow_clone=1 ;; @@ -105,6 +110,9 @@ let if [[ -n "$tag_prefix" ]]; then last_tag="''${last_tag#$tag_prefix}" fi + if [[ -n "$tag_converter" ]]; then + last_tag="$(echo ''${last_tag#$tag_prefix} | ''${tag_converter})" + fi if [[ ! "$last_tag" =~ ^[[:digit:]] ]]; then echo "Last tag '$last_tag' (after removing prefix '$tag_prefix') does not start with a digit" > /dev/stderr exit 1 @@ -130,6 +138,8 @@ in "--tag-prefix=${tagPrefix}" ] ++ lib.optionals (branch != null) [ "--branch=${branch}" +] ++ lib.optionals (tagConverter != null) [ + "--tag-converter=${tagConverter}" ] ++ lib.optionals hardcodeZeroVersion [ "--hardcode-zero-version" ] ++ lib.optionals shallowClone [ From e30288bceda633fb3c3a16565b7e12944c8ec34c Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Wed, 28 Feb 2024 10:29:26 +0100 Subject: [PATCH 5/8] unstableGitUpdater: Add option to apply a pattern to found tags, to ignore non-matching tags --- pkgs/common-updater/unstable-updater.nix | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix index 696d8804c7a8..d1bd75344032 100644 --- a/pkgs/common-updater/unstable-updater.nix +++ b/pkgs/common-updater/unstable-updater.nix @@ -11,6 +11,7 @@ { url ? null # The git url, if empty it will be set to src.gitRepoUrl , branch ? null , hardcodeZeroVersion ? false # Use a made-up version "0" instead of latest tag. Use when there is no previous release, or the project's tagging system is incompatible with what we expect from versions +, tagFormat ? ".*" # A grep -Eo pattern that tags must match to be considered valid , tagPrefix ? "" # strip this prefix from a tag name , tagConverter ? null # A command to convert more complex tag formats. It receives the git tag via stdin and should convert it into x.y.z format to stdout , shallowClone ? true @@ -23,6 +24,7 @@ let url="" branch="" hardcode_zero_version="" + tag_format="" tag_prefix="" tag_converter="" shallow_clone="" @@ -40,6 +42,9 @@ let --hardcode-zero-version) hardcode_zero_version=1 ;; + --tag-format=*) + tag_format="''${flag#*=}" + ;; --tag-prefix=*) tag_prefix="''${flag#*=}" ;; @@ -90,6 +95,11 @@ let while (( $depth < 10000 )); do last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)" if [[ -n "$last_tag" ]]; then + tag_matched="$(echo ''${last_tag} | grep -Eo ''${tag_format} || true)" + if [[ -z "$tag_matched" ]]; then + ${lib.getExe git} tag -d ''${last_tag} + continue + fi break fi ${git}/bin/git fetch --depth="$depth" --tags @@ -108,13 +118,15 @@ let last_tag="0" fi if [[ -n "$tag_prefix" ]]; then + echo "Stripping prefix '$tag_prefix' from tag '$last_tag'" last_tag="''${last_tag#$tag_prefix}" fi if [[ -n "$tag_converter" ]]; then + echo "Running '$last_tag' through: $tag_converter" last_tag="$(echo ''${last_tag#$tag_prefix} | ''${tag_converter})" fi if [[ ! "$last_tag" =~ ^[[:digit:]] ]]; then - echo "Last tag '$last_tag' (after removing prefix '$tag_prefix') does not start with a digit" > /dev/stderr + echo "Last tag '$last_tag' does not start with a digit" > /dev/stderr exit 1 fi else @@ -135,6 +147,7 @@ in [ updateScript "--url=${builtins.toString url}" + "--tag-format=${tagFormat}" "--tag-prefix=${tagPrefix}" ] ++ lib.optionals (branch != null) [ "--branch=${branch}" From ce91e3572b588ae41296140e63c6f062ddce86f0 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sun, 3 Mar 2024 16:38:43 +0100 Subject: [PATCH 6/8] unstableGitUpdater: Address review feedback --- pkgs/common-updater/unstable-updater.nix | 246 ++++++++++++----------- 1 file changed, 128 insertions(+), 118 deletions(-) diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix index d1bd75344032..5dd4b5609023 100644 --- a/pkgs/common-updater/unstable-updater.nix +++ b/pkgs/common-updater/unstable-updater.nix @@ -1,5 +1,5 @@ { lib -, writeShellScript +, writeShellApplication , coreutils , git , nix @@ -11,146 +11,156 @@ { url ? null # The git url, if empty it will be set to src.gitRepoUrl , branch ? null , hardcodeZeroVersion ? false # Use a made-up version "0" instead of latest tag. Use when there is no previous release, or the project's tagging system is incompatible with what we expect from versions -, tagFormat ? ".*" # A grep -Eo pattern that tags must match to be considered valid -, tagPrefix ? "" # strip this prefix from a tag name +, tagFormat ? "*" # A `git describe --tags --match ''` pattern that tags must match to be considered +, tagPrefix ? null # strip this prefix from a tag name , tagConverter ? null # A command to convert more complex tag formats. It receives the git tag via stdin and should convert it into x.y.z format to stdout , shallowClone ? true }: +assert lib.asserts.assertMsg (tagPrefix == null || tagConverter == null) "Can only use either tagPrefix or tagConverter!"; + let - updateScript = writeShellScript "unstable-update-script.sh" '' - set -ex + updateScript = writeShellApplication { + name = "unstable-update-script"; + runtimeInputs = [ + common-updater-scripts + coreutils + git + nix + ]; + text = '' + set -ex - url="" - branch="" - hardcode_zero_version="" - tag_format="" - tag_prefix="" - tag_converter="" - shallow_clone="" + url="" + branch="" + hardcode_zero_version="" + tag_format="" + tag_prefix="" + tag_converter="" + shallow_clone="" + : "''${systemArg:=}" - while (( $# > 0 )); do - flag="$1" - shift 1 - case "$flag" in - --url=*) - url="''${flag#*=}" - ;; - --branch=*) - branch="''${flag#*=}" - ;; - --hardcode-zero-version) - hardcode_zero_version=1 - ;; - --tag-format=*) - tag_format="''${flag#*=}" - ;; - --tag-prefix=*) - tag_prefix="''${flag#*=}" - ;; - --tag-converter=*) - tag_converter="''${flag#*=}" - ;; - --shallow-clone) - shallow_clone=1 - ;; - *) - echo "$0: unknown option ‘''${flag}’" - exit 1 - ;; - esac - done + while (( $# > 0 )); do + flag="$1" + shift 1 + case "$flag" in + --url=*) + url="''${flag#*=}" + ;; + --branch=*) + branch="''${flag#*=}" + ;; + --hardcode-zero-version) + hardcode_zero_version=1 + ;; + --tag-format=*) + tag_format="''${flag#*=}" + ;; + --tag-prefix=*) + tag_prefix="''${flag#*=}" + ;; + --tag-converter=*) + tag_converter="''${flag#*=}" + ;; + --shallow-clone) + shallow_clone=1 + ;; + *) + echo "$0: unknown option ‘''${flag}’" + exit 1 + ;; + esac + done - # By default we set url to src.gitRepoUrl - if [[ -z "$url" ]]; then - url="$(${nix}/bin/nix-instantiate $systemArg --eval -E \ - "with import ./. {}; $UPDATE_NIX_ATTR_PATH.src.gitRepoUrl" \ - | tr -d '"')" - fi + # By default we set url to src.gitRepoUrl + if [[ -z "$url" ]]; then + # system argument cannot be passed as 1 argument + # shellcheck disable=SC2086 + url="$(nix-instantiate $systemArg --eval -E \ + "with import ./. {}; $UPDATE_NIX_ATTR_PATH.src.gitRepoUrl" \ + | tr -d '"')" + fi - # Get info about HEAD from a shallow git clone - tmpdir="$(${coreutils}/bin/mktemp -d)" + # Get info about HEAD from a shallow git clone + tmpdir="$(mktemp -d)" - cloneArgs=( - --bare - ) + cloneArgs=( + --bare + ) - if [[ "$shallow_clone" == "1" ]]; then - cloneArgs+=(--depth=1) - fi + if [[ "$shallow_clone" == "1" ]]; then + cloneArgs+=(--depth=1) + fi - if [[ -n "$branch" ]]; then - cloneArgs+=(--branch="$branch") - fi + if [[ -n "$branch" ]]; then + cloneArgs+=(--branch="$branch") + fi - ${git}/bin/git clone "''${cloneArgs[@]}" "$url" "$tmpdir" + git clone "''${cloneArgs[@]}" "$url" "$tmpdir" - pushd "$tmpdir" - commit_date="$(${git}/bin/git show -s --pretty='format:%cs')" - commit_sha="$(${git}/bin/git show -s --pretty='format:%H')" - last_tag="" - if [[ -z "$hardcode_zero_version" ]]; then - if [[ "$shallow_clone" == "1" ]]; then - depth=100 - while (( $depth < 10000 )); do - last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)" - if [[ -n "$last_tag" ]]; then - tag_matched="$(echo ''${last_tag} | grep -Eo ''${tag_format} || true)" - if [[ -z "$tag_matched" ]]; then - ${lib.getExe git} tag -d ''${last_tag} - continue - fi - break - fi - ${git}/bin/git fetch --depth="$depth" --tags - depth=$(( $depth * 2 )) - done + pushd "$tmpdir" + commit_date="$(git show -s --pretty='format:%cs')" + commit_sha="$(git show -s --pretty='format:%H')" + last_tag="" + if [[ -z "$hardcode_zero_version" ]]; then + if [[ "$shallow_clone" == "1" ]]; then + depth=100 + while (( depth < 10000 )); do + last_tag="$(git describe --tags --abbrev=0 --match "''${tag_format}" 2> /dev/null || true)" + if [[ -n "$last_tag" ]]; then + break + fi + git fetch --depth="$depth" --tags + depth=$(( depth * 2 )) + done - if [[ -z "$last_tag" ]]; then - # To be extra sure, check if full history helps with finding a tag - git fetch --tags - last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)" - fi - else - last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)" - fi - if [[ -z "$last_tag" ]]; then - last_tag="0" - fi - if [[ -n "$tag_prefix" ]]; then - echo "Stripping prefix '$tag_prefix' from tag '$last_tag'" - last_tag="''${last_tag#$tag_prefix}" - fi - if [[ -n "$tag_converter" ]]; then - echo "Running '$last_tag' through: $tag_converter" - last_tag="$(echo ''${last_tag#$tag_prefix} | ''${tag_converter})" - fi - if [[ ! "$last_tag" =~ ^[[:digit:]] ]]; then - echo "Last tag '$last_tag' does not start with a digit" > /dev/stderr - exit 1 - fi - else - last_tag="0" - fi - new_version="$last_tag-unstable-$commit_date" - popd - # ${coreutils}/bin/rm -rf "$tmpdir" + if [[ -z "$last_tag" ]]; then + # To be extra sure, check if full history helps with finding a tag + git fetch --tags + last_tag="$(git describe --tags --abbrev=0 --match "''${tag_format}" 2> /dev/null || true)" + fi + else + last_tag="$(git describe --tags --abbrev=0 2> --match "''${tag_format}" /dev/null || true)" + fi + if [[ -z "$last_tag" ]]; then + last_tag="0" + fi + if [[ -n "$tag_prefix" ]]; then + echo "Stripping prefix '$tag_prefix' from tag '$last_tag'" + last_tag="''${last_tag#"''${tag_prefix}"}" + fi + if [[ -n "$tag_converter" ]]; then + echo "Running '$last_tag' through: $tag_converter" + last_tag="$(echo "''${last_tag}" | ''${tag_converter})" + fi + else + last_tag="0" + fi + if [[ ! "$last_tag" =~ ^[[:digit:]] ]]; then + echo "Last tag '$last_tag' does not start with a digit" > /dev/stderr + exit 1 + fi + new_version="$last_tag-unstable-$commit_date" + popd + # rm -rf "$tmpdir" - # update the nix expression - ${common-updater-scripts}/bin/update-source-version \ - "$UPDATE_NIX_ATTR_PATH" \ - "$new_version" \ - --rev="$commit_sha" - ''; + # update the nix expression + update-source-version \ + "$UPDATE_NIX_ATTR_PATH" \ + "$new_version" \ + --rev="$commit_sha" + ''; + }; in [ - updateScript + (lib.getExe updateScript) "--url=${builtins.toString url}" "--tag-format=${tagFormat}" - "--tag-prefix=${tagPrefix}" ] ++ lib.optionals (branch != null) [ "--branch=${branch}" +] ++ lib.optionals (tagPrefix != null) [ + "--tag-prefix=${tagPrefix}" ] ++ lib.optionals (tagConverter != null) [ "--tag-converter=${tagConverter}" ] ++ lib.optionals hardcodeZeroVersion [ From ce3a2f648e52001596548585ee779e3efc1c863f Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sun, 3 Mar 2024 18:40:47 +0100 Subject: [PATCH 7/8] unstableGitUpdater: Drop --bare cloning It messes with tags --- pkgs/common-updater/unstable-updater.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix index 5dd4b5609023..1a417ebad3f5 100644 --- a/pkgs/common-updater/unstable-updater.nix +++ b/pkgs/common-updater/unstable-updater.nix @@ -84,9 +84,7 @@ let # Get info about HEAD from a shallow git clone tmpdir="$(mktemp -d)" - cloneArgs=( - --bare - ) + cloneArgs=() if [[ "$shallow_clone" == "1" ]]; then cloneArgs+=(--depth=1) @@ -120,7 +118,7 @@ let last_tag="$(git describe --tags --abbrev=0 --match "''${tag_format}" 2> /dev/null || true)" fi else - last_tag="$(git describe --tags --abbrev=0 2> --match "''${tag_format}" /dev/null || true)" + last_tag="$(git describe --tags --abbrev=0 --match "''${tag_format}" 2> /dev/null || true)" fi if [[ -z "$last_tag" ]]; then last_tag="0" From c4019f81b741e8429fa02ed0c145f620048853d9 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Mon, 25 Mar 2024 12:50:47 +0100 Subject: [PATCH 8/8] unstableGitUpdater: Move copy-pasted git describe call into reusable function --- pkgs/common-updater/unstable-updater.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix index 1a417ebad3f5..d982fc6110ba 100644 --- a/pkgs/common-updater/unstable-updater.nix +++ b/pkgs/common-updater/unstable-updater.nix @@ -95,6 +95,9 @@ let fi git clone "''${cloneArgs[@]}" "$url" "$tmpdir" + getLatestVersion() { + git describe --tags --abbrev=0 --match "''${tag_format}" 2> /dev/null || true + } pushd "$tmpdir" commit_date="$(git show -s --pretty='format:%cs')" @@ -104,7 +107,7 @@ let if [[ "$shallow_clone" == "1" ]]; then depth=100 while (( depth < 10000 )); do - last_tag="$(git describe --tags --abbrev=0 --match "''${tag_format}" 2> /dev/null || true)" + last_tag="$(getLatestVersion)" if [[ -n "$last_tag" ]]; then break fi @@ -115,10 +118,10 @@ let if [[ -z "$last_tag" ]]; then # To be extra sure, check if full history helps with finding a tag git fetch --tags - last_tag="$(git describe --tags --abbrev=0 --match "''${tag_format}" 2> /dev/null || true)" + last_tag="$(getLatestVersion)" fi else - last_tag="$(git describe --tags --abbrev=0 --match "''${tag_format}" 2> /dev/null || true)" + last_tag="$(getLatestVersion)" fi if [[ -z "$last_tag" ]]; then last_tag="0"