aider/scripts/update-history.py
2024-11-26 06:10:03 -08:00

50 lines
1.3 KiB
Python

#!/usr/bin/env python3
import os
import subprocess
import tempfile
import re
from aider import __version__
def get_base_version():
# Parse current version like "0.64.2.dev" to get major.minor
match = re.match(r"(\d+\.\d+)", __version__)
if not match:
raise ValueError(f"Could not parse version: {__version__}")
return match.group(1) + ".0"
def run_git_log():
base_ver = get_base_version()
cmd = ["git", "log", "-p", f"v{base_ver}..HEAD", "--", "aider/", ":!aider/website/", ":!HISTORY.md"]
result = subprocess.run(cmd, capture_output=True, text=True)
return result.stdout
def main():
# Get the git log output
diff_content = run_git_log()
# Save to temporary file
with tempfile.NamedTemporaryFile(mode="w", delete=False, suffix=".diff") as tmp:
tmp.write(diff_content)
tmp_path = tmp.name
# Construct and run the aider command
message = (
"Update the history with changes shown in the diffs. "
"Follow the existing pattern. "
"Don't edit or duplicate changes that have existing history entries, "
"just add any new items not already listed."
)
cmd = ["aider", "HISTORY.md", "--read", tmp_path, "--msg", message]
subprocess.run(cmd)
# Cleanup
os.unlink(tmp_path)
if __name__ == "__main__":
main()