Files
EscapistsReintroduced/tools/release_check.py
T

20 lines
770 B
Python

#!/usr/bin/env python3
"""Refuse release qualification while acceptance evidence is incomplete."""
import json,sys
from pathlib import Path
ROOT=Path(__file__).resolve().parents[1]
ledger=json.loads((ROOT/'docs/acceptance.json').read_text())
blocked=[]
for name,case in ledger['cases'].items():
if case['status']!='passed' or not case['evidence']:
blocked.append(name)
continue
for evidence in case['evidence']:
path=(ROOT/evidence).resolve()
if not path.is_relative_to(ROOT) or not path.is_file():blocked.append(name);break
if blocked:
print('Not release-qualified; missing passed evidence:')
for name in blocked:print(' - '+name)
sys.exit(1)
print('Acceptance ledger complete. Review provenance, native packages and publication metadata before release.')