-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
88 lines (66 loc) · 3.95 KB
/
Copy pathMakefile
File metadata and controls
88 lines (66 loc) · 3.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
PYTHON ?= ./.venv/bin/python
INDUSTRY ?= manufacturing
COMPAT_TELEMETRY_LOG_PATH ?= artifacts/telemetry/compat_usage.jsonl
IMPORT_BUDGET_REPEATS ?= 5
IMPORT_BUDGET_TARGETS ?= app analysis_runner
SOURCE_SNAPSHOT_DATE ?= $(shell date +%F)
.PHONY: run run-demo verify ci test test-compat check-import-cycles measure-import-budget verify-sources refresh-sources verify-citations verify-report-consistency verify-report-preconfirm verify-prune-hygiene report-compat-telemetry verify-safe-lane-promotion verify-safe-lane-promotion-nonstrict verify-safe-lane-promotion-strict verify-safe-lane-promotion-core verify-release-readiness qa-report
run:
uv run streamlit run app.py
run-demo:
LLM_DISABLE=true RAG_ENABLE=false ANALYSIS_TIMEOUT_MS=0 uv run streamlit run app.py --server.headless true --server.port $${STREAMLIT_PORT:-8501}
verify: ci
ci:
$(MAKE) qa-report
$(MAKE) check-import-cycles
$(MAKE) verify-safe-lane-promotion
@echo "[ok] ci parity gate completed."
test:
COMPAT_TELEMETRY_ENABLE=false COMPAT_DEPRECATION_WARN=false $(PYTHON) -m unittest discover -s tests -v
test-compat:
COMPAT_TELEMETRY_ENABLE=false COMPAT_DEPRECATION_WARN=false $(PYTHON) -m unittest discover -s tests -p "test_compat_contracts.py" -v
check-import-cycles:
python3 scripts/check_import_cycles.py services app.py
measure-import-budget:
$(PYTHON) tools/measure_import_budget.py --repeats $(IMPORT_BUDGET_REPEATS) --targets $(IMPORT_BUDGET_TARGETS) --output artifacts/perf/import_budget.json --modules-output artifacts/perf/import_modules.json --json
verify-sources:
$(PYTHON) tools/verify_sources.py --skip-http --json
refresh-sources:
$(PYTHON) tools/snapshot_sources.py --date $(SOURCE_SNAPSHOT_DATE) --offline --update-catalog --json
$(MAKE) verify-sources
verify-citations:
COMPAT_TELEMETRY_ENABLE=false COMPAT_DEPRECATION_WARN=false $(PYTHON) tools/verify_citations.py --json
verify-report-consistency:
COMPAT_TELEMETRY_ENABLE=false COMPAT_DEPRECATION_WARN=false $(PYTHON) tools/verify_report_consistency.py --json
verify-report-preconfirm: verify-citations verify-report-consistency
@echo "[ok] pre-confirm verification suite completed."
verify-prune-hygiene:
$(PYTHON) scripts/verify_prune_hygiene.py
report-compat-telemetry:
COMPAT_TELEMETRY_LOG_PATH=$(COMPAT_TELEMETRY_LOG_PATH) $(PYTHON) scripts/compat_telemetry_report.py --days 7 --json --log-path $(COMPAT_TELEMETRY_LOG_PATH)
verify-safe-lane-promotion: verify-safe-lane-promotion-nonstrict
verify-safe-lane-promotion-nonstrict:
@echo "[warn] running non-strict safe-lane gate (telemetry evidence is not enforced)."
COMPAT_TELEMETRY_LOG_PATH=$(COMPAT_TELEMETRY_LOG_PATH) $(PYTHON) scripts/compat_telemetry_report.py --days 7 --json --log-path $(COMPAT_TELEMETRY_LOG_PATH) --fail-on-usage
$(MAKE) verify-safe-lane-promotion-core
verify-safe-lane-promotion-core:
$(PYTHON) scripts/verify_prune_hygiene.py
$(MAKE) test-compat
verify-safe-lane-promotion-strict:
@mkdir -p $(dir $(COMPAT_TELEMETRY_LOG_PATH))
@if [ ! -f "$(COMPAT_TELEMETRY_LOG_PATH)" ]; then \
echo "[fail] strict safe-lane gate blocked: telemetry log is missing: $(COMPAT_TELEMETRY_LOG_PATH)"; \
echo "[hint] run workload with COMPAT_TELEMETRY_ENABLE=true before promotion."; \
exit 2; \
fi
@if [ ! -s "$(COMPAT_TELEMETRY_LOG_PATH)" ]; then \
echo "[fail] strict safe-lane gate blocked: telemetry log is empty: $(COMPAT_TELEMETRY_LOG_PATH)"; \
echo "[hint] placeholder file is not accepted; collect real telemetry evidence first."; \
exit 2; \
fi
COMPAT_TELEMETRY_LOG_PATH=$(COMPAT_TELEMETRY_LOG_PATH) $(PYTHON) scripts/compat_telemetry_report.py --days 7 --json --log-path $(COMPAT_TELEMETRY_LOG_PATH) --fail-on-usage --require-log --fail-on-invalid-rows
$(MAKE) verify-safe-lane-promotion-core
verify-release-readiness:
$(PYTHON) scripts/verify_release_readiness.py --qa-runs 3 --safe-lane-mode strict --output artifacts/qa/release_readiness.json --json
qa-report: test verify-sources verify-report-preconfirm verify-prune-hygiene
@echo "[ok] report qa gate completed."