No merge-blocking check builds or runs a benchmark
- Vorherrschende Sprache
- Rust
- Sterne
- 9
- Forks
- 1
- Ø Merge
- 11 Std. 46 Min.
- Gemergte PRs (30 T.)
- 62
Beschreibung
## What
`main`'s ruleset requires eight contexts: Format Check, Test ×3 (pinned),
Clippy, Documentation, Code Coverage, Declared Versions. `Benchmarks` is not
among them, and neither are `MSRV` or `Loom`.
After #369, what each of those eight does with a bench target:
| | benches |
| --- | --- |
| `Clippy` (`--all-targets`) | type-checks, no codegen, no link |
| `Test` ×3 | not selected |
| everything else required | not selected |
So no required context builds a bench binary, and none runs one. Locally,
neither `just check` nor `just pre-commit` does either — `bench-smoke` is in
neither.
## The failure it admits
A change that keeps the benches compiling but breaks them at run time merges
with all eight required checks green. Concretely: `kernel_load`'s
`set_global_default(LoadSubscriber)` starting to conflict, or a
`bench-internals` handle whose semantics shift so `--self-test`'s negative
cases stop failing. The only signal is a red advisory `Benchmarks` job.
Before #369 this could not happen locally: `just test` passed
`--all-targets`, so `just pre-commit` built and ran all three. That is also
why it took 22 minutes, which is what #369 fixes — the coverage and the cost
came from the same place.
## The options, which is why this is filed rather than fixed
1. **Make `Benchmarks` required.** Closes it for merges and costs nothing
locally. Ruleset change; and a job added to the required list must be one
that cannot be skipped, since a skipped required context reports success.
2. **Put `bench-smoke` in `check` but not `pre-commit`.** Restores a local
run without putting the load harness back in the commit gate. Its cost is
unmeasured — the smoke profiles are reduced, but running one to find out
is itself a bench run.
3. **Accept it**, on the ground that the benches' own correctness is not what
the required set is for, and record that in the ruleset's rationale rather
than only in a `justfile` comment.
These differ in what they say the required set is for, which is a judgment
about the gate rather than about the recipe.
Raised in review of #369, which documents the gap in the `justfile` comment
but does not close it.
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.