@@ -10,13 +10,30 @@ set -o pipefail # don't hide errors within pipes
10
10
trap " { echo 'Could not generate a version file. Probably you need to sync your fork.' >&2; }" ERR
11
11
12
12
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:]]+' )
15
15
current_commit=$( git rev-parse HEAD)
16
16
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} " )
21
20
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