Release 3.8.0.2: app.zip updates, lock hygiene, secret-safe getState.

This commit is contained in:
M4
2026-07-29 22:00:39 +03:00
parent 54b5b87990
commit 6a7480dceb
31 changed files with 2058 additions and 1537 deletions
+59
View File
@@ -0,0 +1,59 @@
#!/usr/bin/env python3
"""Sync versioninfo.json + build-macos.bat from internal/update/update.go constants."""
from __future__ import annotations
import json
import re
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
UPDATE_GO = ROOT / "internal" / "update" / "update.go"
VERSIONINFO = ROOT / "versioninfo.json"
BUILD_BAT = ROOT / "build-macos.bat"
def read_consts() -> tuple[str, int]:
text = UPDATE_GO.read_text(encoding="utf-8")
m = re.search(r'CurrentVersion\s*=\s*"([^"]+)"', text)
b = re.search(r"const BuildNumber\s*=\s*(\d+)", text)
if not m or not b:
raise SystemExit("cannot parse CurrentVersion/BuildNumber from update.go")
return m.group(1), int(b.group(1))
def main() -> None:
ver, build = read_consts()
parts = [int(x) for x in ver.split(".")]
while len(parts) < 3:
parts.append(0)
major, minor, patch = parts[0], parts[1], parts[2]
full = f"{ver}.{build}"
data = json.loads(VERSIONINFO.read_text(encoding="utf-8"))
data["FixedFileInfo"]["FileVersion"] = {
"Major": major,
"Minor": minor,
"Patch": patch,
"Build": build,
}
data["FixedFileInfo"]["ProductVersion"] = dict(data["FixedFileInfo"]["FileVersion"])
data["StringFileInfo"]["FileVersion"] = full
data["StringFileInfo"]["ProductVersion"] = full
VERSIONINFO.write_text(json.dumps(data, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
print("updated", VERSIONINFO, "->", full)
bat = BUILD_BAT.read_text(encoding="utf-8")
bat2 = re.sub(
r'-version\s+\d+\.\d+\.\d+\s+-build\s+\d+\.\d+\.\d+\.\d+',
f"-version {ver} -build {full}",
bat,
)
if bat2 != bat:
BUILD_BAT.write_text(bat2, encoding="utf-8")
print("updated", BUILD_BAT, "->", ver, full)
else:
print("build-macos.bat already in sync")
if __name__ == "__main__":
main()