mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-21 23:24:33 +01:00
62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
from pathlib import Path
|
|
from datetime import datetime
|
|
from tempfile import template
|
|
import yaml
|
|
import argparse
|
|
|
|
ROOT_DIR = Path(__file__).resolve().parent.parent
|
|
|
|
def extract_release_type(version: str) -> str:
|
|
"""Extract release type from version string."""
|
|
parts = version.split('.')
|
|
if len(parts) != 3:
|
|
return "Unknown"
|
|
major, minor, patch = map(int, parts)
|
|
if minor == 0 and patch == 0:
|
|
return "Major"
|
|
elif patch == 0:
|
|
return "Minor"
|
|
else:
|
|
return "Bug Fix"
|
|
|
|
def get_previous_version(data_path: Path, version : str) -> str:
|
|
"""Get the previous version from the versions YAML file."""
|
|
with open(data_path, 'r') as f:
|
|
data = yaml.safe_load(f)
|
|
|
|
prev_version = data['versions'][0]["version"]
|
|
if prev_version == version: #already updated to new version
|
|
prev_version = data['versions'][1]["version"]
|
|
|
|
return prev_version
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description='Update release notes from templated md file')
|
|
parser.add_argument('--version', type=str, help='Version to use in release notes, if not provided will read from VERSION file')
|
|
args = parser.parse_args()
|
|
|
|
if args.version:
|
|
version = args.version
|
|
else:
|
|
version = Path(ROOT_DIR / "VERSION").read_text().strip()
|
|
|
|
release_type = extract_release_type(version)
|
|
|
|
prev_version = get_previous_version(ROOT_DIR / "docs/main_index/versions.yaml", version)
|
|
|
|
# Read template
|
|
template = Path(ROOT_DIR / "RELEASE.md.template").read_text()
|
|
|
|
# Substitute version and date
|
|
output = template.replace("{{VERSION}}", version)
|
|
output = output.replace("{{DATE}}", datetime.now().strftime("%Y-%m-%d"))
|
|
output = output.replace("{{RELEASE_TYPE}}", release_type)
|
|
output = output.replace("{{PREVIOUS_VERSION}}", prev_version)
|
|
|
|
# Write output
|
|
Path(ROOT_DIR / "RELEASE.md").write_text(output)
|
|
print(f"Generated RELEASE.md for version {version}")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|