Decouple base configuration and administration from companions

This commit is contained in:
2026-09-19 03:15:33 +02:00
parent 35daefa860
commit ce19ec68df
96 changed files with 9200 additions and 171 deletions
+14
View File
@@ -44,6 +44,20 @@ def check():
assert owners[g] in visibility[addon],f'Resource outside declared dependency graph in {p}: {g} {path}'
if p.suffix in ['.et','.conf','.ent','.layout','.emat']:
assert p.with_name(p.name+'.meta').exists(),f'Missing metadata: {p}'
inventory=json.loads((ROOT/'docs/original-resource-inventory.json').read_text())
coverage=json.loads((ROOT/'docs/original-feature-coverage.json').read_text())
mapped=[];feature_ids=set()
for feature in coverage['features']:
assert feature['id'] not in feature_ids,'Duplicate feature responsibility'
feature_ids.add(feature['id'])
assert feature['status'] in {'pending','partial'},'Completion requires a separately reviewed acceptance update'
assert feature['remaining'],'Unfinished responsibilities must describe remaining work'
mapped.extend(feature['original_scripts'])
for path in feature['replacement_files']:
assert (ROOT/path).is_file(),f'Missing replacement reference: {path}'
assert len(mapped)==len(set(mapped)), 'Original scripts assigned more than once'
assert set(mapped)==set(inventory['script_paths']), 'Original inventory has untracked or unknown entries'
print(f'PASS: {len(mapped)} original script entries tracked across {len(feature_ids)} unfinished responsibilities')
print(f'PASS: {len(ids)} isolated addons, acyclic dependencies, {len(resources)} unique resources, exact vanilla references')
for name in ['test_mission_rules.py','test_settings_migration.py','hq_network_regression.py','helicopter_availability_regression.py','mortar_salvo_regression.py']:
subprocess.run([sys.executable,str(ROOT/'tests'/name)],check=True)