@@ -38,27 +38,42 @@ def get_version_increment_type(last_version):
3838 return parsed_subjects .increment_type ()
3939
4040
41- def release ():
42- """Creates a github release."""
41+ def pull_latest_and_verify (expected_version_tag ):
42+ check_output (["git" , "pull" ])
43+ latest_version = get_current_version ()
44+ if latest_version != expected_version_tag :
45+ raise ValueError (f"Expected { expected_version_tag } to be latest tag, but was { latest_version } " )
4346
47+
48+ def get_current_version ():
4449 # get the last release tag
4550 stdout = check_output (["git" , "describe" , "--abbrev=0" , "--tags" ])
4651 stdout = stdout .decode ("utf-8" )
4752 last_version = stdout .strip ()
53+ return last_version
54+
4855
49- if not recent_changes_to_src (last_version ):
56+ def release ():
57+ """Creates a github release."""
58+ latest_version = get_current_version ()
59+ print (f"Current version is { latest_version } " )
60+
61+ if not recent_changes_to_src (latest_version ):
5062 print ("Nothing to release." )
5163 exit (1 )
5264 return
5365
54- changes = get_changes (last_version )
66+ changes = get_changes (latest_version )
67+
68+ increment_type = get_version_increment_type (latest_version )
5569
56- increment_type = get_version_increment_type ( last_version )
70+ next_version = get_next_version ( latest_version , increment_type )
5771
58- next_version = get_next_version (last_version , increment_type )
72+ manager = ReleaseManager (next_version , changes )
73+ tag_created = manager .create_release ()
5974
60- manager = ReleaseManager ( str ( next_version ), changes )
61- manager . create_release ( )
75+ # pull the new tag that was just created
76+ pull_latest_and_verify ( tag_created )
6277
6378
6479def main ():
0 commit comments