Two reds on main are failing every PR's CI, and neither has an owner
Found while triaging CI on #10669. Both reproduce on unrelated PRs, so they are main's, not any one change's.
1. gap-suite shard 5 — a real parity regression
REGRESSIONS — these were expected to pass:
- test_gap_10430_stream_module_constructor: pass -> parity_fail
Confirmed identical on #10669 (a GC change) and #10646 (a codegen change), with the same second mismatch (test_gap_2514_settracesigint) in both. Shard 5 reports 140 pass / 2 parity-fail, 98.5%.
Because the snapshot records it as expected-to-pass, every PR touching anything in that shard's scope now fails gap-suite (5) and therefore pr-gate, regardless of content. That makes a real regression indistinguishable from an inherited one at a glance, which is how a genuine one gets waved through.
Possibly related: #10568 (node:stream/web ReadableStream.from() returning an empty object).
2. lint — the public benchmark baseline is stale
public baseline error: public artifact benchmark inputs changed;
regenerate it with ./benchmarks/run_public_baseline.sh
Identical on #10643, #10651 and #10669. Every PR that touches crates/ fails lint on this regardless of whether it has a changelog fragment — which also means the changeset gate's own signal is buried behind a failure nobody can act on from their own branch.
Why this is worth fixing rather than routing around
Both make pr-gate red on essentially every PR. The cost is not the red itself, it is that "CI is red, but it's red for everyone" becomes the default reading — and the next genuinely broken PR looks exactly the same. I nearly made that mistake on #10669 in the other direction: I initially assumed all of its reds were inherited, when the changelog fragment was in fact mine.
A third main-health item with a fix already written is #10655 (two ImportedClass test initializers missing constructor_has_synthetic_arguments, breaking cargo check --all-targets).
Two reds on main are failing every PR's CI, and neither has an owner
Found while triaging CI on #10669. Both reproduce on unrelated PRs, so they are main's, not any one change's.
1.
gap-suiteshard 5 — a real parity regressionConfirmed identical on #10669 (a GC change) and #10646 (a codegen change), with the same second mismatch (
test_gap_2514_settracesigint) in both. Shard 5 reports 140 pass / 2 parity-fail, 98.5%.Because the snapshot records it as expected-to-pass, every PR touching anything in that shard's scope now fails
gap-suite (5)and thereforepr-gate, regardless of content. That makes a real regression indistinguishable from an inherited one at a glance, which is how a genuine one gets waved through.Possibly related: #10568 (
node:stream/webReadableStream.from()returning an empty object).2.
lint— the public benchmark baseline is staleIdentical on #10643, #10651 and #10669. Every PR that touches
crates/failslinton this regardless of whether it has a changelog fragment — which also means the changeset gate's own signal is buried behind a failure nobody can act on from their own branch.Why this is worth fixing rather than routing around
Both make
pr-gatered on essentially every PR. The cost is not the red itself, it is that "CI is red, but it's red for everyone" becomes the default reading — and the next genuinely broken PR looks exactly the same. I nearly made that mistake on #10669 in the other direction: I initially assumed all of its reds were inherited, when the changelog fragment was in fact mine.A third main-health item with a fix already written is #10655 (two
ImportedClasstest initializers missingconstructor_has_synthetic_arguments, breakingcargo check --all-targets).