Skip to content

Commit 926a201

Browse files
committed
qa: measuring against a running build; reading a timeout-bound benchmark
1 parent d3e31ed commit 926a201

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

‎QA.md‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,36 @@ snapshots and the fixture worktree.
188188
- E-class claims ("no output change") land with a bitcheck result in the
189189
same commit. Q-class still needs the corpus and a baseline edit.
190190

191+
## Measuring against a running build
192+
193+
Two ways to invalidate an overnight measurement, both hit this session:
194+
195+
- **`maturin develop` swaps the extension under a running experiment.** The
196+
eval harnesses invoke `.venv/bin/diffctx`, which loads
197+
`src/diffctx/_diffctx.abi3.so`. Rebuilding mid-run mixes two builds into one
198+
result file. `cargo build` / `cargo test` are safe — they write `target/`.
199+
Editing Python under `src/diffctx/` is NOT safe for the CLI path (editable
200+
install), though `mcp/` is, since the CLI never imports it.
201+
- **Name the build, not the branch.** Commit time is not build time. Compare the
202+
`.so` mtime against `git log --date` and state which commit's *content* the
203+
run executed; "measured on main" is meaningless when six commits landed while
204+
it ran.
205+
206+
## Reading a benchmark whose cases time out
207+
208+
`datasets/real-world-diff/v1/` is 109 real commits over react-native / gitpod /
209+
sentry, and its shipped snapshot is 66% hangs — so its quality numbers describe
210+
the survivors, not the benchmark. Rules that follow:
211+
212+
- Report the hang rate first and the denominator always. "precision 0.81" over
213+
43 produced cases out of 81 is not "precision 0.81".
214+
- Record elapsed per case. The snapshot used a 30s cap and current defaults use
215+
300s; only the recorded seconds let one run be read at both.
216+
- Parallelise per repo (one detached worktree each), not per case — checkouts of
217+
a 2 GB repo dominate otherwise, and the three repos never contend.
218+
- gitpod and sentry are the timeout-bound pair; react-native completes. A
219+
liveness claim that does not say which repo is not a claim.
220+
191221
## Corpus baseline discipline
192222

193223
`known_below_threshold.txt` is bidirectional: a listed case that starts

0 commit comments

Comments
 (0)