diff --git a/.CI/format-recent-changes.py b/.CI/format-recent-changes.py index 630cfb85c..253ecb6dd 100644 --- a/.CI/format-recent-changes.py +++ b/.CI/format-recent-changes.py @@ -16,37 +16,43 @@ LINE_REGEX = re.compile( ) VERSION_REGEX = re.compile(r"^#+\s*v?\d") -# contains lines in the form of -# {commit-sha} (<{email}>\s+{date}\s+{line-no}) {line} -p = subprocess.run( - ["git", "blame", "-e", "--date=iso", "../CHANGELOG.md"], - cwd=os.path.dirname(os.path.realpath(__file__)), - text=True, - check=True, - capture_output=True, -) -unreleased_lines: list[tuple[datetime, str]] = [] -for line in p.stdout.splitlines(): - if not line: - continue - m = LINE_REGEX.match(line) - assert m, f"Failed to match '{line}'" - content = m.group("content") +def get_unreleased_lines(file: str): + # contains lines in the form of + # {commit-sha} (<{email}>\s+{date}\s+{line-no}) {line} + p = subprocess.run( + ["git", "blame", "-e", "--date=iso", file], + cwd=os.path.dirname(os.path.realpath(__file__)), + text=True, + check=True, + capture_output=True, + ) - if not content: - continue - if content.startswith("#"): - if VERSION_REGEX.match(content): - break - continue # ignore lines with '#' + unreleased_lines: list[tuple[datetime, str]] = [] + for line in p.stdout.splitlines(): + if not line: + continue + m = LINE_REGEX.match(line) + assert m, f"Failed to match '{line}'" + content = m.group("content") - d = datetime.fromisoformat(m.group("date")) - d = d.astimezone(tz=timezone.utc) - content = content.replace("- ", f"- [{d.strftime('%Y-%m-%d')}] ", 1) - unreleased_lines.append((d, content)) + if not content: + continue + if content.startswith("#"): + if VERSION_REGEX.match(content): + break + continue # ignore lines with '#' -unreleased_lines.sort(key=lambda it: it[0], reverse=True) + d = datetime.fromisoformat(m.group("date")) + d = d.astimezone(tz=timezone.utc) + content = content.replace("- ", f"- [{d.strftime('%Y-%m-%d')}] ", 1) + unreleased_lines.append((d, content)) + + unreleased_lines.sort(key=lambda it: it[0], reverse=True) + return unreleased_lines + + +unreleased_lines = get_unreleased_lines("../CHANGELOG.md") if len(unreleased_lines) == 0: print("No changes since last release.") diff --git a/CHANGELOG.md b/CHANGELOG.md index 7cee04890..4d8e97668 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,7 +84,7 @@ - Dev: Moved some responsibility away from Application into WindowManager. (#5551) - Dev: Fixed benchmarks segfaulting on run. (#5559) - Dev: Refactored `MessageBuilder` to be a single class. (#5548) -- Dev: Recent changes are now shown in the nightly release description. (#5553, #5554) +- Dev: Recent changes are now shown in the nightly release description. (#5553, #5554, #5593) - Dev: The timer for `StreamerMode` is now destroyed on the correct thread. (#5571) - Dev: Cleanup some parts of the `magic_enum` adaptation for Qt. (#5587)