diff --git a/scripts/versionbump.py b/scripts/versionbump.py index 46a8c8cf4..549a148b7 100644 --- a/scripts/versionbump.py +++ b/scripts/versionbump.py @@ -7,7 +7,9 @@ from packaging import version def main(): parser = argparse.ArgumentParser(description="Bump version") parser.add_argument("new_version", help="New version in x.y.z format") + parser.add_argument("--dry-run", action="store_true", help="Print each step without actually executing them") args = parser.parse_args() + dry_run = args.dry_run new_version = version.parse(args.new_version) if not isinstance(new_version, version.Version): @@ -22,14 +24,25 @@ def main(): updated_content = re.sub(r'__version__ = ".+?"', f'__version__ = "{new_version}"', content) - with open("aider/__init__.py", "w") as f: - f.write(updated_content) + if dry_run: + print("Updating aider/__init__.py with new version") + else: + with open("aider/__init__.py", "w") as f: + f.write(updated_content) - subprocess.run(["git", "add", "aider/__init__.py"], check=True) - subprocess.run(["git", "commit", "-m", f"version bump to {new_version}"], check=True) - subprocess.run(["git", "tag", f"v{new_version}"], check=True) - subprocess.run(["git", "push", "origin"], check=True) - subprocess.run(["git", "push", "origin", f"v{new_version}"], check=True) + git_commands = [ + ["git", "add", "aider/__init__.py"], + ["git", "commit", "-m", f"version bump to {new_version}"], + ["git", "tag", f"v{new_version}"], + ["git", "push", "origin"], + ["git", "push", "origin", f"v{new_version}"], + ] + + for cmd in git_commands: + if dry_run: + print(f"Running: {' '.join(cmd)}") + else: + subprocess.run(cmd, check=True) if __name__ == "__main__": main()