ci: quality gates exclude the control-plane core (coverage skips yipd; mutation only 3 logic crates); no perf-regression gate #107

Open
opened 2026-07-25 21:54:39 +00:00 by vxfemboy · 0 comments
vxfemboy commented 2026-07-25 21:54:39 +00:00 (Migrated from github.com)

Flagged independently by the architecture and test reviewers. (1) coverage.yml runs --exclude yipd --exclude yip-device with a 90% floor, so bin/yipd (peer_manager/epoch/membership — the #34/#37/M2 logic) has no enforced coverage. (2) mutants.yml mutates only yip-wire/yip-transport/yip-crypto — bin/yipd, yip-membership, yip-rendezvous, yip-obf, yip-io are never mutation-tested. So the highest-risk new logic is well-tested but UNGATED: regressions are caught only by tests someone remembered to write. (3) No CI perf-regression gate at all — the bench-smoke job disclaims itself (--sample-size 10, 'not a perf gate'); a 10x FEC/AEAD regression ships green; netem-vs-WG has no stored baseline. Fix: add yipd to coverage (regex-exclude netns files like uring.rs already is); widen mutants to yip-obf/yip-membership/yip-rendezvous, then yipd via --in-diff on PRs + full nightly; add a stored-baseline perf gate. Also make the nightly mutants job durable: upload mutants.out/--json artifact + a checked-in baseline count so a red run distinguishes 'new survivor' from 'known backlog' (it has cron-fired red into the void for 10+ days).

See docs/2026-07-25-project-review-and-roadmap.md for the full review synthesis.

Flagged independently by the architecture and test reviewers. (1) coverage.yml runs `--exclude yipd --exclude yip-device` with a 90% floor, so bin/yipd (peer_manager/epoch/membership — the #34/#37/M2 logic) has no enforced coverage. (2) mutants.yml mutates only yip-wire/yip-transport/yip-crypto — bin/yipd, yip-membership, yip-rendezvous, yip-obf, yip-io are never mutation-tested. So the highest-risk new logic is well-tested but UNGATED: regressions are caught only by tests someone remembered to write. (3) No CI perf-regression gate at all — the bench-smoke job disclaims itself (--sample-size 10, 'not a perf gate'); a 10x FEC/AEAD regression ships green; netem-vs-WG has no stored baseline. Fix: add yipd to coverage (regex-exclude netns files like uring.rs already is); widen mutants to yip-obf/yip-membership/yip-rendezvous, then yipd via `--in-diff` on PRs + full nightly; add a stored-baseline perf gate. Also make the nightly mutants job durable: upload mutants.out/--json artifact + a checked-in baseline count so a red run distinguishes 'new survivor' from 'known backlog' (it has cron-fired red into the void for 10+ days). See docs/2026-07-25-project-review-and-roadmap.md for the full review synthesis.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
femboy/yip#107
No description provided.