Skip to content

Commit d97f5ab

Browse files
committed
Document release performance gate
1 parent a771adf commit d97f5ab

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

docs/performance.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,25 @@ PYTHONPATH=src .venv/bin/python tools/benchmark_fader_drag.py \
3232
--max-p95-ms graph-response-surface-redraw=30.0
3333
```
3434

35+
For release candidates that changed UI responsiveness, graph drawing, filter
36+
parameter updates, analyzer work, routing callbacks, or PipeWire event
37+
handling, run a deterministic benchmark before publishing:
38+
39+
```bash
40+
PYTHONPATH=src .venv/bin/python tools/benchmark_fader_drag.py \
41+
--iterations 300 \
42+
--warmup 50 \
43+
--json \
44+
--max-p95-ms current-drag-update=10.0 \
45+
--max-p95-ms graph-response-surface-redraw=30.0 \
46+
> /tmp/mini-eq-release-benchmark.json
47+
```
48+
49+
Archive or summarize the JSON output in the release or PR notes when it was
50+
part of the decision to ship. If this benchmark fails, rerun it without
51+
`--json` to inspect the terminal table before changing budgets; the intended
52+
fix is usually the performance regression, not looser thresholds.
53+
3554
For backend parameter-update work, include the local control and SPA pod build
3655
costs:
3756

docs/release.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ Run the narrowest gate that covers the release risk:
2929
session.
3030
- **When preset, output, startup, routing, monitor, or inspector UI behavior
3131
changed:** run the workflow usability gate below before release.
32+
- **When UI responsiveness, graph drawing, filter parameter updates, analyzer,
33+
routing callbacks, or PipeWire event handling changed:** run the performance
34+
regression check in `docs/performance.md` and keep the benchmark output with
35+
the release notes or PR investigation.
3236
- **When the GNOME Shell extension source changed:** run the extension checker,
3337
build the review zip, test the supported Shell versions, and upload after the
3438
app release is ready.
@@ -225,6 +229,13 @@ run the app interactively with real music before release. Exercise
225229
enable/disable, output switching, preset changes, analyzer display, shutdown,
226230
and stream restoration against the actual desktop audio graph.
227231

232+
Run the deterministic performance check when a release touches UI
233+
responsiveness, graph drawing, filter parameter updates, analyzer work, routing
234+
callbacks, or PipeWire event handling. Use `docs/performance.md` for the exact
235+
commands and budget policy. Keep this as a maintainer confidence gate unless
236+
the benchmark runs on a known stable machine; generic CI timing is too noisy
237+
for strict GTK performance budgets.
238+
228239
Before the manual real-music pass for app or UI behavior changes, run the live
229240
UI smoke on a supported recent GNOME/GTK stack. It starts a private
230241
PipeWire/WirePlumber graph, synthetic playback, nested headless GNOME Shell,

0 commit comments

Comments
 (0)