Repository navigation
v0.3.0
pip install -U physim-gate
Behavior change: a more accurate bootstrap
Continuous metrics now use Hesterberg's expanded percentile bootstrap by default. The plain percentile interval was too narrow with small samples: with 10 trials and a true degradation exactly at the margin it said PASS or FAIL wrongly in up to 5.5% of runs per side, against a nominal 2.5%. The expanded interval brings that to at most 3.5%, and with 100 trials power is unchanged (93.7% vs 93.8%). See the measured error rates.
Intervals for continuous metrics are therefore a little wider, most noticeably below about 30 trials, and some borderline verdicts can change from PASS or FAIL to INCONCLUSIVE. Set defaults.bootstrap_method: percentile to reproduce v0.2 results. 0/1 metrics are unchanged. BCa intervals were evaluated too and did not help.
New
- Planning for paired runs and from a pilot.
physim-gate plan --rate 0.9 --margin 0.05 --discordance 0.04plans paired 0/1 metrics (here 173 trials per run instead of 573 unpaired).physim-gate plan --from comparison.jsonplans every metric of an earlier comparison from its own data. - Baseline store.
physim-gate baseline save/list/pathkeeps baselines as plain files under.physim-gate/baselines/;compare --baseline @mainpicks the stored baseline for the candidate's scenario. - Suites.
physim-gate suite suite.yamlgates several scenarios with one exit code, per-scenario reports, one JUnit test suite per scenario and one Markdown summary. - Real multi-task data.
examples/lerobot-metaworld/: a SmolVLA policy on four MetaWorld tasks throughlerobot-eval, andexamples/lerobot-suite.yamlgating both LeRobot examples. - Cross-checks. The statistics are tested against scipy and statsmodels.
Fixes
- The terminal table is never truncated; when it does not fit, each metric is printed as a block.
- Markdown tables keep intervals and verdicts on one line in narrow pull-request comments.
- Long paths in suite errors are no longer broken across lines.
The GitHub Action (uses: kiyeonjeon21/physim-gate@v0.3.0) was exercised on a real pull request: it posts its summary and updates the same comment on later pushes.
Full changelog: CHANGELOG.md