mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-22 12:43:48 +01:00
automatically update documentation paths in release notes
This commit is contained in:
61
etc/generate_release_notes.py
Normal file
61
etc/generate_release_notes.py
Normal file
@@ -0,0 +1,61 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user