7
7
8
8
__all__ = ('get_installer_version' )
9
9
10
+ # Default Tag represents tag value in case git is not available on system.
11
+ # This need not be updated with every tag release.
12
+ defaultTag = "2.2"
13
+
10
14
import os
11
15
from subprocess import Popen , PIPE
12
16
from subprocess import call , STDOUT
@@ -21,6 +25,15 @@ def get_version():
21
25
except :
22
26
raise ValueError ('Cannot get the version number!' )
23
27
28
+ def get_latest_tag ():
29
+ try :
30
+ p = Popen (['git' , 'describe' , '--tags' , '--abbrev=0' ],
31
+ stdout = PIPE , stderr = PIPE )
32
+ p .stderr .close ()
33
+ line = p .stdout .readlines ()[0 ].decode ().strip ()
34
+ return line [1 :]
35
+ except :
36
+ raise ValueError ('Cannot get the latest tag!' )
24
37
25
38
def is_dirty ():
26
39
try :
@@ -34,15 +47,15 @@ def is_dirty():
34
47
35
48
36
49
def get_installer_version ():
37
- # if not a git repo, return empty string
50
+ # if not a git repo, return default tag.
38
51
try :
39
52
if call (['git' , 'branch' ], stderr = STDOUT , stdout = open (os .devnull , 'w' )):
40
- return ''
53
+ return defaultTag
41
54
except FileNotFoundError :
42
- # also return empty when we do not have git
43
- return ''
55
+ # also return default tag when we do not have git.
56
+ return defaultTag
44
57
45
- version = get_version ()
58
+ version = f" { get_latest_tag () } + { get_version ()} "
46
59
if not version :
47
60
raise ValueError ("Cannot get the version number!" )
48
61
0 commit comments