Skip to content

Commit

Permalink
build: Added simple script to generate release notes
Browse files Browse the repository at this point in the history
  • Loading branch information
WerWolv committed Jun 3, 2024
1 parent d9d85cb commit a491b85
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions dist/gen_release_notes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import subprocess
import sys

def get_commits(branch: str, start_tag: str, end_tag: str) -> list[str]:
try:
commits_raw = subprocess.check_output([ "git", "--no-pager", "log", branch, "--no-color", "--pretty=oneline", "--abbrev-commit", f"{start_tag}..{end_tag}"], stderr=subprocess.DEVNULL).decode("UTF-8").split("\n")
except:
return []

commits = []
for line in commits_raw:
commits.append(line[9:])

return commits

def main(args: list) -> int:
if len(args) != 2:
print(f"Usage: {args[0]} prev_minor")
return 1

last_minor_version = f"v1.{args[1]}"

master_commits = get_commits("master", f"{last_minor_version}.0", "master")

for i in range(1, 100):
branch_commits = get_commits(f"releases/{last_minor_version}.X", f"{last_minor_version}.0", f"{last_minor_version}.{i}")

if len(branch_commits) == 0:
break

master_commits = [commit for commit in master_commits if commit not in branch_commits]

sorted_commits = {}
for commit in master_commits:
category, commit_name = commit.split(":", 1)

if category not in sorted_commits:
sorted_commits[category] = []
sorted_commits[category].append(commit_name)

for category in sorted_commits:
print(f"## {category}\n")
for commit in sorted_commits[category]:
print(f"- {commit}")
print(f"\n")

if __name__ == "__main__":
exit(main(sys.argv))

0 comments on commit a491b85

Please sign in to comment.