Files

22 lines
1.2 KiB
Python

"""Portable release metadata check. No ComfyUI or optional modules required."""
import json
import re
import subprocess
import sys
from pathlib import Path
root = Path(__file__).resolve().parents[1]
version = re.search(r'^version\s*=\s*"([^"]+)"', (root / "pyproject.toml").read_text(), re.M)[1]
package = json.loads((root / "gallery_ui/package.json").read_text())
lock = json.loads((root / "gallery_ui/package-lock.json").read_text())
assert version == package["version"] == lock["version"] == lock["packages"][""]["version"], "Version mismatch"
assert f"## {version}" in (root / "CHANGELOG.md").read_text(encoding="utf-8-sig"), "Missing changelog"
subprocess.run([sys.executable, str(root / "scripts/release_notes.py"), "--check"], check=True)
assert json.loads((root / "gallery_ui/dist/release-version.json").read_text())["version"] == version, "Rebuild dist for this version"
index = (root / "gallery_ui/dist/index.html").read_text()
assets = re.findall(r'(?:src|href)="/gallery/([^"?#]+)"', index)
assert assets, "Missing built assets"
for asset in assets:
assert (root / "gallery_ui/dist" / asset).is_file(), f"Missing asset: {asset}"
print(f"Release metadata verified: {version}")