Skip to content

Commit b0271ed

Browse files
committed
updates generate_version
1 parent a7a525d commit b0271ed

File tree

1 file changed

+24
-7
lines changed

1 file changed

+24
-7
lines changed

scripts/generate_version.bash

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,30 @@ set -o pipefail # don't hide errors within pipes
1010
trap "{ echo 'Could not generate a version file. Probably you need to sync your fork.' >&2; }" ERR
1111

1212
release_info=$(git ls-remote --tags --refs --sort=version:refname https://github.com/ITISFoundation/osparc-simcore-clients | tail -1)
13-
release_version=$(echo "${release_info}" | grep -oP '(?<=refs/tags/v)\d+\.\d+\.\d+')
14-
release_commit=$(echo "${release_info}" | grep -oE '^[[:alnum:]]+')
13+
released_version=$(echo "${release_info}" | grep -oP '(?<=refs/tags/v)\d+\.\d+\.\d+')
14+
released_commit=$(echo "${release_info}" | grep -oE '^[[:alnum:]]+')
1515
current_commit=$(git rev-parse HEAD)
1616

17-
#
18-
# Determines how many commits since the last release and adds that as `post` index.
19-
# WARNING: we should change Version Scheme to https://packaging.python.org/en/latest/specifications/version-specifiers/#version-scheme
20-
merge_base=$(git merge-base "${release_commit}" "${current_commit}")
17+
18+
# Determines how many commits since the last release and adds that as `dev` index.
19+
merge_base=$(git merge-base "${released_commit}" "${current_commit}")
2120
n_commits_to_merge_base=$(git rev-list --count "${merge_base}".."${current_commit}")
22-
echo -n "${release_version}.post${n_commits_to_merge_base}"
21+
22+
23+
# NOTE:
24+
# - we develop using post-release versioning
25+
# - i.e. 1.2.3.post3.devN where N is the number of commits with respect to last release 1.2.3)
26+
# - Another approach would be using a pre-release version but we do not want to decide on that version
27+
# - the releases are of the type 1.2.3
28+
# - we never do post releases as 1.2.3.postX but instead use patches i.e. 1.2.4
29+
# - the releases are defined using git tags (that is the case with n_commits_to_merge_base=0 )
30+
# - SEE .github/workflows/publish-python-client.yml for more details
31+
#
32+
if [ "$n_commits_to_merge_base" -gt 0 ]; then
33+
echo "${released_version}.post3.dev${n_commits_to_merge_base}"
34+
elif [ "$n_commits_to_merge_base" -eq 0 ]; then
35+
echo "${released_version}"
36+
else
37+
echo "Error: n_commits_to_merge_base is negative. This should not happen." >&2
38+
exit 1
39+
fi

0 commit comments

Comments
 (0)