perf: replace public benchmark evidence pipeline - #10
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Replace the public performance benchmark harness so Python only collects raw timings, R owns all statistical inference with family-wise multiplicity control, release benchmarking is reduced by roughly seventeen minutes, and every release GitHub Actions workflow benchmarks the exact verified ABI3 wheel and publishes both raw and inferred evidence; validate, push, open the pull request, and take it through CI for merge.
What Changed
Risk Assessment
🚨 High: The change should not merge without resolving the exact-wheel isolation gap and clarifying or correcting the claimed family-wise inference contract.
Testing
No pre-run baseline commands were supplied. The 63 targeted automated contracts passed, the exact verified ABI3 wheel completed the full 253-endpoint raw-to-R design in 185.86 seconds, semantic workflow checks confirmed publication of both evidence layers, and representative historical measurements support a 16.76-minute reduction. A full historical run exceeded the local execution-session ceiling, so the runtime baseline uses completed category samples weighted across the old execution geometry. The emitted R evidence reports five PASS families and G4 FAIL; this demonstrates inference output and is not a harness failure.
Evidence: Consolidated acceptance evidence
Evidence: Verified ABI3 benchmark-wheel identity
Evidence: Verified ABI3 benchmark transcript
Full 253-endpoint, 10-worker ABI3 panel completed in 185.86 seconds; R emitted five PASS decisions and one G4 FAIL decision.Evidence: Python raw timing evidence
/var/folders/pt/19wwr80d5bs38zmww5rm2vsc0000gn/T/no-mistakes-evidence/01KZZ1DNBPEZYZM9D6GQF5CPF0/abi3-report-default-r.json)Evidence: Historical runtime comparison
Representative historical rows produced a 19.86-minute weighted estimate versus 3.10 minutes observed for the verified ABI3 harness—a 16.76-minute estimated reduction.Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
tests/test_release_workflows.py:252- This test reads workflow YAML through a regex-based indentation parser and then asserts literal/substrings ofrunscripts. It can pass without proving that GitHub executes the verified-wheel install, benchmark pipeline, or evidence publication, violating the source-content-only test rule. Replace these assertions—and the same-pattern workflow checks directly in scope—with a real workflow/YAML semantic consumer plus executable seams that assert installed-wheel identity and produced evidence artifacts.🔧 Fix: Verify release wheel identity and evidence contracts
3 errors still open:
benches/_panel.py:70- Intent requires benchmarking “the exact verified ABI3 wheel,” but workers inheritPYTHONPATHand run without-I. A shadowmsgspec_toonpackage can therefore supply different Python wrappers while reusing the verified native extension; the later check compares only the extension digest and would accept it. Launch this shared worker boundary in isolated mode and bind its package/native paths to the verification record.benches/analyze_ab.R:224- Intent requires “family-wise multiplicity control,” but one declared A/B family is split into separate Holm procedures for non-inferiority and improvement claims. Fordistinct-key-hotfix, the two procedures can jointly exceed alpha while the output advertises oneholmadjustment. Adjust one role-appropriate p-value vector across every confirmatory member, or explicitly declare separate families.benches/analyze_report.R:264- The report analyzer similarly runs independent Holm procedures formeets_floorandmisses_floorwithin each declared family, then publishes both as inferential statuses. At the boundary, either directional false classification can total roughly 10% even for a one-comparison family. Use one simultaneous two-sided classification procedure, or mark one direction non-confirmatory.✅ **Test** - passed
✅ No issues found.
uv run --no-sync pytest -q tests/test_performance_evidence.py tests/test_release_artifacts.py tests/test_release_report.py tests/test_release_workflows.pyCARGO_TARGET_DIR=<evidence>/cargo-target uv run --no-sync maturin build --release --locked --compatibility pypi --out <evidence>/abi3-wheels -i /opt/homebrew/opt/python@3.13/bin/python3.13scripts/release_artifacts.py manifest, followed by isolated ABI3-environmentverifyandverify-release-wheel --python-abi cp313-abi3/usr/bin/time -p <verified-abi3-python> -I benches/collect_report.py --python <verified-abi3-python> --seed 20260813 --raw-output <evidence>/abi3-report-default-raw.json --output <evidence>/abi3-report-default-r.jsonExecuted representative base-commit public benchmark rows for typed, codec, integration, and key-cardinality categories and weighted them across the historical 37-row/407-process geometry.Parsed and asserted the generated ABI3 identity, raw timing, R inference, runtime, and normalized GitHub Actions workflow contracts intovalidation-summary.json.Removed test-created caches and confirmedgit status --shortis empty.🔧 **Document** - 2 issues found → auto-fixed ✅
BENCHMARKS.md:57- The generated benchmark report still documents the retired Student t and fixed-order methodology. Regeneration requires fresh benchmark evidence, which this phase forbids.benches/_timing.py:63- The runtime methodology text still says Python publishes worker means and standard deviations. This phase permits edits only to documentation files and doc comments.🔧 Fix: Refresh benchmark inference documentation
✅ Re-checked - no issues remain.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.