#!/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.')