mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-20 04:14:59 +00:00
aider: Updated versionbump.py script to handle version bumping, git commit, tag, and push.
# Context: USER: write a dcript that takes x.y.z semver on the cmd line. it should: 1. verify that the version is greater than `__version__` 2. wupdate the `__version__` in init.py 3. git commit that change with msg `version bump to x.y.z` 4. git tag that new commit with "vx.y.z" (note the leading v) 5. git push to origin 6. git push the new tag to origin ASSISTANT: I will create a new script called `scripts/versionbump.py` to handle the version bumping process. Here are the changes: ```python scripts/versionbump.py <<<<<<< ORIGINAL ======= 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"]) 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}"]) if __name__ == "__main__": main() >>>>>>> UPDATED ``` This script will perform the requested actions. Make sure to install the `packaging` library if you haven't already: ```bash pip install packaging ``` You can run the script with the new version as an argument: ```bash python scripts/versionbump.py x.y.z ```
This commit is contained in:
parent
6f5496d201
commit
25ae54f6bf
1 changed files with 35 additions and 0 deletions
|
@ -0,0 +1,35 @@
|
|||
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"])
|
||||
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}"])
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Add table
Add a link
Reference in a new issue