From 7d5e666ea723d087ab7d9c884b3b20babbc4e81a Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Tue, 30 Jul 2024 10:14:58 -0300 Subject: [PATCH] Make the start tag an optional positional argument and use the latest vX.Y.0 tag if no start tag is provided. --- scripts/blame.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/scripts/blame.py b/scripts/blame.py index 7b9ce8f94..070e4a777 100755 --- a/scripts/blame.py +++ b/scripts/blame.py @@ -91,9 +91,17 @@ def process_all_tags_since(start_tag): return results +def get_latest_version_tag(): + all_tags = run(["git", "tag", "--sort=-v:refname"]).strip().split("\n") + for tag in all_tags: + if semver.Version.is_valid(tag[1:]) and tag.endswith(".0"): + return tag + return None + + def main(): parser = argparse.ArgumentParser(description="Get aider/non-aider blame stats") - parser.add_argument("start_tag", help="The tag to start from") + parser.add_argument("start_tag", nargs="?", help="The tag to start from (optional)") parser.add_argument("--end-tag", help="The tag to end at (default: HEAD)", default=None) parser.add_argument( "--all-since", @@ -104,13 +112,16 @@ def main(): ), ) parser.add_argument( - "--output", - help="Output file to save the YAML results", - type=str, - default=None + "--output", help="Output file to save the YAML results", type=str, default=None ) args = parser.parse_args() + if not args.start_tag: + args.start_tag = get_latest_version_tag() + if not args.start_tag: + print("Error: No valid vX.Y.0 tag found.") + return + if args.all_since: results = process_all_tags_since(args.start_tag) yaml_output = yaml.dump(results, sort_keys=False) @@ -136,7 +147,7 @@ def main(): yaml_output = yaml.dump(result, sort_keys=False) if args.output: - with open(args.output, 'w') as f: + with open(args.output, "w") as f: f.write(yaml_output) else: print(yaml_output)