Expand description
2026-09-26: Which changed paths invalidate which gate’s records.
Owner: bench gate. Invariants:
- A path under a
BOUNDARY_FILESentry invalidates every gate;invalidatesasks that first, so no exclusion can exempt the files that define the rules. - Any other path under
PERF_PATHSinvalidates a gate unless it is a registered test-only module, akernels/**/BENCH.toml, or under one of that gate’sExclusions. invalidated_byandpromotion_debtread only their paths and the constants here.
Gates subtract with exclusions rather than claim what they cover, so a path nobody classified re-runs a gate instead of escaping every gate.
Structs§
- Exclusion
- 2026-09-26: A path prefix that does not invalidate one gate, with the reason it cannot move
that gate’s numbers (
every_exclusion_states_whyrejects an empty or short reason). - Gate
Coverage - 2026-09-26: One gate id and the exclusions that do not invalidate it.
- Test
Only Rust Module - 2026-09-26: A Rust source whose only module edge is a
#[cfg(test)]declaration inparent, so it is absent from release builds and invalidates no gate.
Constants§
- BOUNDARY_
FILES - 2026-09-26: Files that define the boundary or decide a verdict, so a change to any of them invalidates every gate. Were one excludable, a PR changing the rules would be judged by its own new rules.
- NOT_
REQUIRED - 2026-09-26: Registered benchmarks that are not required gates, each with the reason
(
every_excusal_names_a_real_benchmark_and_a_reason). - PERF_
PATHS - 2026-09-26: Paths whose contents can change what the engine computes.
.benchmarksis not listed because the records are the verdict, not its subject. - PROMOTION_
CANDIDATES - 2026-09-26: Gates not required yet whose invalidation is tracked as debt.
- REQUIRED
- 2026-09-26: The gates whose records must pass, and what each one ignores.
REQUIRED_GATESin mod.rs is built from these ids (required_gates_is_derived_from_the_coverage_table). - TEST_
ONLY_ RUST_ MODULES
Functions§
- find
- 2026-09-26: A required gate’s coverage by id; promotion candidates are not searched.
- invalidated_
by - 2026-09-26: The required gates invalidated by a set of changed paths: a function of the paths alone, with no network, environment or clock input, so it reproduces offline.
- invalidates
- 2026-09-26: Whether changing
pathinvalidatesgate’s existing records. The checks run in this order, and the first that applies decides: - on_
boundary - 2026-09-26: Whether
pathis under aPERF_PATHSentry. - promotion_
debt - 2026-09-26: Which
PROMOTION_CANDIDATESthese changed paths invalidate: the debt a merge takes on, one id per candidate that was owed a run and not required to have one.