|
import json, hashlib, datetime, pathlib |
|
ROOT = pathlib.Path(__file__).resolve().parents[2] |
|
DIST = ROOT / "dist" |
|
HASHES = DIST / "HASHES.json" |
|
if not HASHES.exists(): |
|
raise SystemExit("Run `make hash` first.") |
|
data = json.loads(HASHES.read_text()) |
|
digest = hashlib.sha256(json.dumps(data, sort_keys=True).encode()).hexdigest() |
|
manifest = { |
|
"name": "BELEL-LEX Gold Standard Stack", |
|
"version": "0.1.0", |
|
"generated": datetime.datetime.utcnow().isoformat()+"Z", |
|
"hashes_sha256": digest, |
|
"hashes_file": "HASHES.json", |
|
"license": "BPSL v1.0", |
|
"integrity_note": "Replace with real signing (minisign/sigstore) for prod" |
|
} |
|
(DIST / "RELEASE_MANIFEST.json").write_text(json.dumps(manifest, indent=2)) |
|
print("Wrote", DIST / "RELEASE_MANIFEST.json") |
|
|