-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
86 lines (65 loc) · 3.55 KB
/
Copy pathMakefile
File metadata and controls
86 lines (65 loc) · 3.55 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
# LabTrust-Gym make targets
# Optional: use 'make test' and 'make bench-smoke' (bench-smoke requires [env])
# make verify: full verification battery (lint, typecheck, policy, tests, risk-register gate, docs).
# make paper OUT=<dir>: package-release paper_v0.1 then verify-release (requires OUT= output dir).
.PHONY: test golden bench-smoke lint format typecheck policy-validate no-placeholders e2e-artifacts-chain verification-battery verify paper pcs-bench-producer pcs-bench-sync-suite pcs-fixtures pcs-bench-publish-fixtures
# Default: run fast test suite (no env optional deps for golden/policy)
test:
pytest -q --ignore=tests/test_pz_parallel_smoke.py --ignore=tests/test_pz_aec_smoke.py --ignore=tests/test_benchmark_smoke.py
# Full golden suite (requires LABTRUST_RUN_GOLDEN=1 so tests do not skip)
golden:
LABTRUST_RUN_GOLDEN=1 pytest tests/test_golden_suite.py -q
# Benchmark smoke: 1 episode per task (TaskA, TaskB, TaskC). Requires: pip install -e ".[env]"
bench-smoke:
labtrust bench-smoke --seed 42
# Or run benchmark smoke via pytest (2 episodes TaskA + determinism)
bench-smoke-pytest:
pytest tests/test_benchmark_smoke.py -v
lint:
ruff check .
format:
ruff format .
typecheck:
mypy src/
policy-validate:
labtrust validate-policy
# Fail if placeholder/stub markers or NotImplementedError/501 remain in non-test code/docs/config
no-placeholders:
python tools/no_placeholders.py
# Full reproducible artifact chain: package-release (minimal) -> verify-bundle -> export-risk-register.
# Requires bash. No network. Deterministic (SEED_BASE=100). Use for CI gate and local one-button proof.
e2e-artifacts-chain:
bash scripts/ci_e2e_artifacts_chain.sh
# Verification battery: lint, typecheck, no-placeholders, validate-policy, verify-bundle, risk-register gate,
# pytest fast, golden suite, determinism-report, quick-eval, baseline-regression (if baselines exist), docs.
# Requires: pip install -e ".[dev,env,docs]". Set LABTRUST_BATTERY_E2E=1 to also run e2e-artifacts-chain.
verification-battery:
bash scripts/run_verification_battery.sh
# One-command verify: same as verification-battery (recommended for contributors).
verify: verification-battery
# Paper release: package-release paper_v0.1 then verify-release. Set OUT=<dir> (required).
# Example: make paper OUT=./paper_release
paper:
@if [ -z "$${OUT}" ]; then echo "OUT is required (e.g. make paper OUT=./paper_release)"; exit 1; fi; \
labtrust package-release --profile paper_v0.1 --out "$$OUT" --seed-base 100 && \
labtrust verify-release --release-dir "$$OUT" --strict-fingerprints
# Release-grade reproducibility producer + pcs-bench ingest validation (requires ../pcs-core).
PCS_CORE ?= ../pcs-core
PCS_BENCH ?= ../pcs-bench
BENCH_RUN_DIR ?= benchmark_runs/labtrust_reproducibility
pcs-bench-producer:
python scripts/pcs_bench_producer.py
PCS_BENCH_OUT ?= ../pcs-bench/benchmarks/labtrust_qc_release
pcs-bench-sync-suite:
python scripts/sync_pcs_bench_labtrust_suite.py --pcs-bench-out $(PCS_BENCH_OUT)
pcs-fixtures:
python scripts/generate_pcs_bench_ingest_fixture.py
pcs-bench-publish-fixtures:
python scripts/publish_pcs_bench_fixtures.py --pcs-bench $(PCS_BENCH)
pcs-verify: pcs-fixtures
python examples/pcs_qc_release/scripts/ci_validate_pcs_bench_ingest_fixture.py
python examples/pcs_qc_release/scripts/ci_validate_pcs_producer_contract.py
@if [ -d "$(PCS_CORE)" ]; then \
labtrust validate-pcs-producer --dir tests/fixtures/pcs_bench_reproducibility --pcs-core $(PCS_CORE); \
pcs-bench validate-ingest --input tests/fixtures/pcs_bench_reproducibility/pcs_bench_ingest.v0.json --pcs-core $(PCS_CORE); \
fi