1- .PHONY : help install install-dev check test release-check demo evolve benchmark reproduce clean
1+ .PHONY : help install install-dev check test quality release-check demo evolve benchmark reproduce clean
22
33# Default target: show available commands
44help :
99 @echo " make install Install Python dependencies (core only) nothing"
1010 @echo " make install-dev Install test and release tooling nothing"
1111 @echo " make test Run the test suite nothing (no GPU/net)"
12+ @echo " make quality Run lint, types, data integrity, and shell checks dev dependencies"
1213 @echo " make release-check Build and validate wheel + source distribution nothing"
1314 @echo " make check Preflight: verify env vars / creds / endpoints nothing (probes only)"
1415 @echo " make demo 1-iter smoke test from examples/seed_library Gemini + vLLM (or HF)"
1516 @echo " make benchmark K=2/3/4 accuracy on EditReward-Bench (read-only) Gemini + vLLM"
16- @echo " make evolve Evolve src/ library/ for 200 iters → results/my_run/ Gemini + vLLM"
17+ @echo " make evolve Evolve packaged library for 200 iters → results/my_run/ Gemini + vLLM"
1718 @echo " make reproduce End-to-end EditReward-Bench reproduction (~4-6 h) Gemini + 4 GPUs"
1819 @echo " make clean Remove caches and generated artifacts nothing"
1920 @echo " "
@@ -24,43 +25,54 @@ help:
2425 @echo " See .env.example for the full list."
2526
2627install :
27- pip install -r requirements.txt
28+ python -m pip install -r requirements.txt
2829
2930install-dev :
30- pip install -r requirements-dev.txt
31+ python -m pip install -r requirements-dev.txt
3132
3233check :
3334 python scripts/check_env.py
3435
3536test :
36- python -m pytest tests/ -v
37+ python -m pytest tests/ -v --cov=rewardharness --cov-report=term-missing
3738
38- release-check :
39+ quality :
40+ ruff format --check rewardharness src scripts examples tests vanilla
41+ ruff check rewardharness src scripts examples tests vanilla
42+ mypy rewardharness
43+ python scripts/check_rating_integrity.py
44+ python scripts/check_migration_coverage.py
45+ pip-audit -r requirements.txt
46+ @for file in scripts/* .sh scripts/lib/* .sh; do bash -n " $$ file" ; done
47+ @if command -v shellcheck > /dev/null 2>&1 ; then shellcheck scripts/* .sh scripts/lib/* .sh; \
48+ else echo " shellcheck not installed; bash syntax checks completed" ; fi
49+
50+ release-check : quality test
3951 python -m build
4052 python -m twine check dist/*
4153
4254demo :
43- python scripts/run_evolution.py \
55+ rewardharness evolve \
4456 --config configs/default.yaml \
4557 --library-dir examples/seed_library \
4658 --results-dir results/demo/ \
4759 --max-iters 1
4860
4961evolve :
50- python scripts/run_evolution.py \
62+ rewardharness evolve \
5163 --config configs/default.yaml \
5264 --results-dir results/my_run/ \
5365 --max-iters 200
5466
5567benchmark :
56- python scripts/run_benchmark.py \
68+ rewardharness benchmark \
5769 --config configs/default.yaml
58- # Defaults to the paper-evolved library shipped at src/library/ and reports
70+ # Defaults to the paper-evolved library shipped as package resources and reports
5971# K=2/3/4 accuracy on EditReward-Bench. The paper's headline 45.7% / 47.4%
6072# average is mean(K=2, K=3, K=4, GenAI-Bench) — for the GenAI-Bench column
6173# you need a separate eval pass (see OUTPUTS.md §"After make benchmark").
6274# To benchmark a different library — e.g. one you evolved yourself or the
63- # small examples/seed_library/ — call run_benchmark.py directly with
75+ # small examples/seed_library/ — call the CLI with
6476# --library-dir <path>.
6577
6678reproduce :
0 commit comments