mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-20 04:14:59 +00:00

# Context: USER: will those `subprocess` calls raise exceptions if the git commands error? ASSISTANT: Yes, by default, the `subprocess.run()` function will not raise an exception if the command returns a non-zero exit code. However, you can add the `check=True` parameter to the `subprocess.run()` calls to make them raise a `CalledProcessError` exception if the command returns a non-zero exit code. Here's the updated `scripts/versionbump.py` with the `check=True` parameter added: ```python scripts/versionbump.py <<<<<<< ORIGINAL subprocess.run(["git", "add", "aider/__init__.py"]) subprocess.run(["git", "commit", "-m", f"version bump to {new_version}"]) subprocess.run(["git", "tag", f"v{new_version}"]) subprocess.run(["git", "push", "origin"]) subprocess.run(["git", "push", "origin", f"v{new_version}"]) ======= 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) >>>>>>> UPDATED ``` With these changes, if any of the git commands fail, the script will raise a `CalledProcessError` exception and terminate.
35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
import argparse
|
|
import os
|
|
import re
|
|
import subprocess
|
|
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")
|
|
args = parser.parse_args()
|
|
|
|
new_version = version.parse(args.new_version)
|
|
if not isinstance(new_version, version.Version):
|
|
raise ValueError("Invalid version format")
|
|
|
|
with open("aider/__init__.py", "r") as f:
|
|
content = f.read()
|
|
|
|
current_version = re.search(r'__version__ = "(.+?)"', content).group(1)
|
|
if new_version <= version.parse(current_version):
|
|
raise ValueError("New version must be greater than the current version")
|
|
|
|
updated_content = re.sub(r'__version__ = ".+?"', f'__version__ = "{new_version}"', content)
|
|
|
|
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)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|