Skip to content

Commit

Permalink
Merge pull request #62 from mtzgroup/feature-update-qcio
Browse files Browse the repository at this point in the history
  • Loading branch information
coltonbh authored Jul 13, 2024
2 parents f7f6d01 + b875a4e commit 7a88e53
Show file tree
Hide file tree
Showing 5 changed files with 105 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ repos:
hooks:
- id: mypy
additional_dependencies:
[tokenize-rt==3.2.0, pydantic>=2.0.0, types-pyyaml]
[tokenize-rt==3.2.0, pydantic>=2.0.0, types-pyyaml, types-toml]
- repo: https://github.com/crate-ci/typos
rev: v1.16.10
hooks:
Expand Down
4 changes: 4 additions & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

## [unreleased]

### Changed

Updated qcio (0.10.1 -> 0.10.2). `Structure.ids` -> `Structure.identifiers`

## [0.10.1] - 2024-07-11

### Added
Expand Down
19 changes: 15 additions & 4 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ python = "^3.8"
tomli = { version = ">=1.1.0", python = "<3.11" }
tomli-w = "^1.0.0"
httpx = "^0.23.1"
qcio = "^0.10.1"
qcio = "^0.10.2"
pydantic = ">=2.0.0, !=2.4.0"
pydantic-settings = "^2.0.3"

Expand All @@ -44,6 +44,7 @@ pytest-cov = "^4.1.0"
coverage = "^7.3.0"
pytest-httpx = "<0.23.0"
pytest-mock = "^3.11.1"
types-toml = "^0.10.8.20240310"


[tool.poetry.group.docs.dependencies]
Expand Down
83 changes: 83 additions & 0 deletions scripts/release.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
import subprocess
import sys
from datetime import datetime

import toml


def get_repo_url():
"""Get the repository URL from pyproject.toml or ask the user for it."""
try:
with open("pyproject.toml", "r") as file:
pyproject = toml.load(file)
repo_url = pyproject["tool"]["poetry"]["repository"]
return repo_url
except KeyError:
return input("Enter the repository URL (e.g., https://github.com/user/repo): ")


def update_version_with_poetry(version):
"""Update the version in pyproject.toml using Poetry."""
print("Updating version in pyproject.toml...")
subprocess.run(["poetry", "version", version], check=True)


def update_changelog(version, repo_url):
"""Update the CHANGELOG.md file with the new version and today's date."""
print("Updating CHANGELOG.md...")
with open("CHANGELOG.md", "r") as file:
lines = file.readlines()

today = datetime.today().strftime("%Y-%m-%d")
new_entry = f"\n## [{version}] - {today}\n"

# Insert the new entry after the ## [unreleased] section
for i, line in enumerate(lines):
if line.startswith("## [unreleased]"):
lines.insert(i + 1, new_entry)
break

# Update links at the bottom
unreleased_link = f"[unreleased]: {repo_url}/compare/{version}...HEAD\n"
new_version_link = f"[{version}]: {repo_url}/releases/tag/{version}\n"

# Ensure the new version link is added right after the [unreleased] link
for i, line in enumerate(lines):
if line.startswith("[unreleased]:"):
lines[i] = unreleased_link
lines.insert(i + 1, new_version_link)
break

with open("CHANGELOG.md", "w") as file:
file.writelines(lines)


def run_git_commands(version):
"""Run the git commands to commit the changes, create a new tag, and push."""
print("Running git commands...")
subprocess.run(["git", "add", "."], check=True)
subprocess.run(
["git", "commit", "-m", f"Bumped version to {version}. Updated CHANGELOG."],
check=True,
)
subprocess.run(["git", "tag", version], check=True)
subprocess.run(["git", "push", "--tags"], check=True)
subprocess.run(["git", "push"], check=True)


def main():
"""Main entry point for the script."""
if len(sys.argv) != 2:
print("Usage: release.py <version>")
sys.exit(1)

version = sys.argv[1]

repo_url = get_repo_url()
update_version_with_poetry(version)
update_changelog(version, repo_url)
run_git_commands(version)


if __name__ == "__main__":
main()

0 comments on commit 7a88e53

Please sign in to comment.