Skip to content
Snippets Groups Projects
Commit 251cfb9d authored by Stefano Di Frischia's avatar Stefano Di Frischia
Browse files

L2SS-630: refactor lofar_version

parent 90fc794c
No related branches found
No related tags found
1 merge request!296Resolve L2SS-630 "Refactor functions graded c"
...@@ -72,14 +72,10 @@ def get_version(repo: git.Repo = None) -> str: ...@@ -72,14 +72,10 @@ def get_version(repo: git.Repo = None) -> str:
commit = repo.commit() commit = repo.commit()
filtered_tags = [tag.name for tag in repo.tags if reg.search(tag.name)] filtered_tags = [tag.name for tag in repo.tags if reg.search(tag.name)]
# Order tags from newest to oldest # Order tags from newest to oldest
tags = {tag.commit: tag for tag in reversed(repo.tags) if tag.name in filtered_tags} tags = _order_tags(repo, filtered_tags)
# Find closest tag for commit # Find closest tag for commit
closest_tag = type('',(object,),{"name": 'v0.0.0'})() closest_tag = _find_closest_tag(commit, repo, tags)
for item in commit.iter_items(repo, commit):
if item.type == 'commit' and item in tags:
closest_tag = tags[item]
break
if commit in tags: if commit in tags:
# a tag = production ready # a tag = production ready
...@@ -94,6 +90,19 @@ def get_version(repo: git.Repo = None) -> str: ...@@ -94,6 +90,19 @@ def get_version(repo: git.Repo = None) -> str:
return "{}{}".format(commit_str, ".dirty" if repo.is_dirty() else "") return "{}{}".format(commit_str, ".dirty" if repo.is_dirty() else "")
def _order_tags(repo, filtered_tags):
""" Helper function to order tags from newest to oldest """
return {tag.commit: tag for tag in reversed(repo.tags) if tag.name in filtered_tags}
def _find_closest_tag(commit, repo, tags):
""" Helper function to find closest tag for commit """
closest_tag = type('',(object,),{"name": 'v0.0.0'})()
for item in commit.iter_items(repo, commit):
if item.type == 'commit' and item in tags:
closest_tag = tags[item]
break
return closest_tag
# at least cache the current repo version immediately # at least cache the current repo version immediately
try: try:
_ = get_version() _ = get_version()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment