Commit graph

505 commits

Author SHA1 Message Date
Paul Gauthier
1aa8699e15 Updated versionbump.py to include the new version in the error message and print the updated content when running in dry-run mode. 2023-06-17 07:24:11 -07:00
Paul Gauthier
2b1fab43a1 aider: Added a --dry-run argument to the scripts/versionbump.py script to print each step without actually modifying the __init__.py file or running the git commands.
# Context:
USER: add a --dry-run arg that just prints each step, so it won't overwrite __init__.py or actually rnu the git cmds
ASSISTANT: I will add a `--dry-run` argument to the `scripts/versionbump.py` script. When this argument is provided, the script will print each step without actually modifying the `__init__.py` file or running the git commands.

Here are the changes:

```python
scripts/versionbump.py
<<<<<<< ORIGINAL
def main():
    parser = argparse.ArgumentParser(description="Bump version")
    parser.add_argument("new_version", help="New version in x.y.z format")
=======
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")
>>>>>>> UPDATED

scripts/versionbump.py
<<<<<<< ORIGINAL
    args = parser.parse_args()
=======
    args = parser.parse_args()
    dry_run = args.dry_run
>>>>>>> UPDATED

scripts/versionbump.py
<<<<<<< ORIGINAL
    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)
>>>>>>> UPDATED

scripts/versionbump.py
<<<<<<< ORIGINAL
    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)
>>>>>>> UPDATED
```

Now you can run the script with the `--dry-run` argument to see the steps without actually executing them:

```bash
python scripts/versionbump.py x.y.z --dry-run
```
2023-06-17 07:22:45 -07:00
Paul Gauthier
2181923859 aider: Added check=True parameter to subprocess.run() calls in scripts/versionbump.py to raise CalledProcessError exception if any of the git commands fail.
# 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.
2023-06-17 07:20:58 -07:00
Paul Gauthier
25ae54f6bf 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
```
2023-06-17 07:20:02 -07:00
Paul Gauthier
6f5496d201 Added new files to the git repo: scripts/versionbump.py 2023-06-17 07:17:05 -07:00