Repository navigation
Description
Problem
EF Core ships every behaviour change it backports into a servicing patch with an AppContext off switch named Microsoft.EntityFrameworkCore.IssueNNNN (dotnet/efcore#39114: "Quirk added"; its switch is Issue37081). The set of switch names in the EF Core assemblies is therefore a list of every behaviour change in a patch, and nobody here reads it.
Measured 2026-10-19 over the Microsoft.EntityFrameworkCore* assemblies in the local package cache: 10.0.0 carries 2 switch names, 10.0.13 carries 33, so 32 behaviour changes reached consumers since the floor this repository tests on (#297), none of them classified. Issue37081, the one behind #288, is not even in 10.0.13 yet.
Change
test/oracles/upstream-quirks.json: one entry per switch name found in the newest EF Core 10.0 patch and not in the floor, with the upstream issue and PR, and a verdict:does-not-touch(with a one-line reason),held-by(the test that runs the plugin on both sides of the switch), orissue(the issue it caused, as 10.x:RangeSet.ContainsthrowsArgumentExceptionon the EF Core 10 patch that carries dotnet/efcore#37081 #288).- A command in
tools/oracles.cs(… quirks) that extracts the switch names from the floor and from a given EF Core version and prints the diff with each entry's status; never run in CI, like the other prover commands. - A conventions test that fails on an entry without a verdict, and the newest-patch leg (10.x CI: run the EF Core suites on the newest EF Core / Npgsql 10 patch and the daily servicing builds, not only the floor #297) that fails when a switch is present in the resolved assemblies but not in the registry, so a new patch cannot be adopted unclassified.
Microsoft.EntityFrameworkCore.Issue37081is the first entry,issue: #288, and the 10.x changelog for 10.x:RangeSet.ContainsthrowsArgumentExceptionon the EF Core 10 patch that carries dotnet/efcore#37081 #288 names it as the consumer stopgap.
Done when
Every switch between EF Core 10.0.0 and the newest 10.0 patch has a verdict in the registry, the conventions test enforces it, the newest-patch leg fails on an unregistered switch (shown by deleting one entry), and dotnet run tools/oracles.cs quirks prints the diff.
Activity
CaffeinatedCoder commentedon Oct 19, 2026
Measured 2026-10-19 over the
Microsoft.EntityFrameworkCore*assemblies in the local package cache (user strings are UTF-16LE, so a regex forMicrosoft.EntityFrameworkCore.Issue\d+over the raw bytes of eachlib/*/*.dllfinds them; macOSstringscannot). First appearance per patch, with the assembly:Issue31751(Design),Issue36856(core)Issue37009,Issue37016,Issue37189(Relational),Issue37162(core)Issue37112,Issue37247,Issue37249(core),Issue37152(core + Relational),Issue37178,Issue37204,Issue37205,Issue37216(Relational)Issue37337,Issue37478(core),Issue37373(Relational)Issue37387(core),Issue37409(Relational)Issue35293,Issue37537→no:Issue35293(Relational),Issue37304,Issue37465,Issue37516,Issue37585,Issue37724,Issue37771,Issue37890(core)Issue37537(Relational),Issue37974,Issue38008,Issue38119,Issue38132(core)Issue38299(core)Issue37151,Issue37185,Issue37336,Issue37569; not ours)Issue38632(core)So 31 switches between the floor and 10.0.13 in the assemblies this plugin loads (core, Relational, Abstractions, Design), not 32: the registry should fix that assembly set, because a count over whatever the cache holds drifts (the SqlServer assemblies cached only at 10.0.11 inflate that row to 37).
Verdicts so far:
Issue37216(10.0.2, Relational; [release/10.0] Fix empty scalar collection support dotnet/efcore#37248 "Fix empty scalar collection support") → issue: 10.x:Any/Countover an empty captured list of ranges or value sets fails with42883: operator does not exist: text && int4rangeon EF Core 10.0.2 and later (dotnet/efcore#37216) #302. The off switch is the measured stopgap: with it set, all 289 translation and 280 integration tests pass on EF Core 10.0.13.Issue37081→ issue: 10.x:RangeSet.ContainsthrowsArgumentExceptionon the EF Core 10 patch that carries dotnet/efcore#37081 #288; not in any published 10.0 patch yet ([release/10.0] Fix Contains handling for read-only collections dotnet/efcore#39114, milestone 10.0.15).CaffeinatedCoder commentedon Oct 19, 2026
Moved from the 10.1.0 epic (#296) to the oracle theme epic (#36) on 2026-10-19: the registry classifies upstream behaviour changes and does not change the packages, so it is not release-bound. The 10.1.0 release keeps #297 (the newest-patch leg), which is what makes a new switch visible; the two verdicts already recorded here (
Issue37216→ #302,Issue37081→ #288) stand.