From c9a195b14517d88e5db4199bbab4bf4c344c0e4b Mon Sep 17 00:00:00 2001 From: James Chapman Date: Fri, 22 Nov 2024 13:23:30 +0000 Subject: [PATCH] fix: get_git_repo_info result dictionary missing entries on error fic: bump version Errors obtaining git information were triggering a KeyError exception and hence failing to generate release.json Traceback (most recent call last): File "/home/james/venv/bin/edm", line 8, in sys.exit(main()) ^^^^^^ File "/home/james/venv/lib/python3.12/site-packages/edm_tool/__init__.py", line 17, in main edm.main(get_parser()) File "/home/james/venv/lib/python3.12/site-packages/edm_tool/edm.py", line 1667, in main args.action_handler(args) File "/home/james/venv/lib/python3.12/site-packages/edm_tool/edm.py", line 1301, in release_handler if everest_core_repo_info["rev"]: ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^ KeyError: 'rev' Signed-off-by: James Chapman --- dependency_manager/src/edm_tool/__init__.py | 3 ++- dependency_manager/src/edm_tool/edm.py | 22 ++++++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/dependency_manager/src/edm_tool/__init__.py b/dependency_manager/src/edm_tool/__init__.py index 74605d2..5c92c33 100644 --- a/dependency_manager/src/edm_tool/__init__.py +++ b/dependency_manager/src/edm_tool/__init__.py @@ -4,7 +4,8 @@ # """Everest Dependency Manager.""" from edm_tool import edm -__version__ = "0.6.2" + +__version__ = "0.7.0" def get_parser(): diff --git a/dependency_manager/src/edm_tool/edm.py b/dependency_manager/src/edm_tool/edm.py index ead24cf..76d2147 100755 --- a/dependency_manager/src/edm_tool/edm.py +++ b/dependency_manager/src/edm_tool/edm.py @@ -411,10 +411,22 @@ def get_git_repo_info(cls, repo_path: Path, fetch=False) -> dict: """ Return useful information about a repository a the given path. - TODO: return type should be a well defined object - Returns an empty dictionary if the path is no git repo + Returns a default dictionary if the path is no git repo """ - repo_info = {'is_repo': False} + repo_info = { + 'is_repo': False, + 'fetch_worked': None, + 'remote_branch': None, + 'behind': None, + 'ahead': None, + 'tag': None, + 'branch': None, + 'dirty': None, + 'detached': None, + 'rev': None, + 'short_rev': None, + 'url': None, + } if GitInfo.is_repo(repo_path): repo_info["is_repo"] = True if fetch: @@ -1628,9 +1640,9 @@ def get_parser(version) -> argparse.ArgumentParser: type=str, action="append", help="Bazel-style label for the build files into the deppendencies. " + - "The format should be `@//:BUILD..bazel`." + + "The format should be `@//:BUILD..bazel`." + " should correspond to the name of the dependency in " + - "the dependencies.yaml file. This option can be used multiple times." + + "the dependencies.yaml file. This option can be used multiple times." + "If not provided, Bazel will search for BUILD file in the repo itself.", required=False)