#!/usr/bin/env python3 """Set Clearview's release version and reset the dev/test build segment.""" from __future__ import annotations import re import sys from pathlib import Path if len(sys.argv) != 2: raise SystemExit("usage: scripts/set-release-version.py vX.Y.Z") version = sys.argv[1] if not re.fullmatch(r"v\d+\.\d+\.\d+", version): raise SystemExit("version must match vX.Y.Z, for example v0.1.1") ROOT = Path(__file__).resolve().parents[1] VERSION_FILE = ROOT / "containers" / "clearview" / "src" / "clearview_app" / "version.py" text = VERSION_FILE.read_text() text, n_version = re.subn(r'^VERSION = ["\'][^"\']+["\']\s*$', f'VERSION = "{version}"', text, count=1, flags=re.MULTILINE) text, n_build = re.subn(r"^BUILD = \d+\s*$", "BUILD = 0", text, count=1, flags=re.MULTILINE) if n_version != 1 or n_build != 1: raise SystemExit(f"Could not update VERSION/BUILD in {VERSION_FILE}") VERSION_FILE.write_text(text) print(f"[set-release-version] {version}")