akiomik / akiomik/tears

No merge-blocking check builds or runs a benchmark

Offen
#374 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
documentation
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

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.