Skip to content

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

Closed

Description

@CaffeinatedCoder

Problem

The EF Core suites only ever run on the floor. src/CodoMetis.ValueRanges.EFCore.PostgreSQL references Npgsql.EntityFrameworkCore.PostgreSQL 10.0.0, which resolves EF Core 10.0.0, and .github/dependabot.yml ignores Microsoft.EntityFrameworkCore* and Npgsql* in test/*. A consumer resolves the newest patch. #288 came in through that gap: dotnet/efcore#39114 merged into release/10.0 on 2026-10-02, changes how every RangeSet.Contains query is preprocessed, and no run of this repository's CI will ever execute it.

Change

Done when

release/10.x CI runs the EF suites on the floor and on the newest published 10.0 patch (EF Core 10.0.13 / Npgsql EF 10.0.3 as of 2026-10-19; the leg reads the versions from one place so a new patch is a one-line bump), the scheduled daily-build run exists or this issue records why the feed is unreachable, and reverting the #302 fix fails the newest-patch leg while the floor leg stays green — the exact check that found #302. The floor leg and the newest-patch leg are both required.

Not a gate: when EF Core 10.0.15 is published, the #288 seed (reverting the RangeSetContains rewrite) is run against it on this leg and the result recorded on #288.

Activity

  1. added this to the 10.0.1 milestone on Oct 19, 2026
  2. added
    testsAdds or changes tests only (oracles, harnesses); no library code
    package/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQL
    area/releaseVersioning, changelogs, release wiring
    package/efcore-nodatimeAffects CodoMetis.ValueRanges.EFCore.PostgreSQL.NodaTime
    on Oct 19, 2026
  3. CaffeinatedCoder commented on Oct 19, 2026

    @CaffeinatedCoder
    OwnerAuthor

    A one-off version of this leg ran on 2026-10-19 against release/10.x (d47d9a3) and found #302 on its first run, so the mechanism works and is worth keeping:

    Two facts for the matrix:

    • Npgsql EF 10.0.1, 10.0.2 and 10.0.3 all require Microsoft.EntityFrameworkCore [10.0.4, 11.0.0), so a leg that floats only Npgsql already floats EF Core past the floor; set EF Core explicitly anyway, Design included, so the leg is reproducible.
    • A .NET 11 runtime leg would catch 10.x on the .NET 11 runtime reads an hour of 24: {24:00:00} parses as {00:00:00} and T24:00:00 as the next day #300 (and is cheap): dotnet-install.sh --channel 11.0 --quality preview --runtime dotnet into a folder, then run the net10.0 test assemblies with DOTNET_ROLL_FORWARD=Major. TemporalLiteralGrammarTests.Time_Rejects("24:00:00") fails there today.
  4. CaffeinatedCoder commented on Oct 19, 2026

    @CaffeinatedCoder
    OwnerAuthor

    Measured while porting #300 (PR #308), for the .NET 11 runtime roll-forward leg: dotnet test with DOTNET_ROOT pointed at a runtime-only .NET 11 install and DOTNET_ROLL_FORWARD=Major does not move the test host. VSTest launches testhost from the muxer that runs vstest.console, so the run stays on .NET 10 and passes, silently. What does run the net10.0 assembly on .NET 11: DOTNET_ROOT=<dotnet11> DOTNET_ROLL_FORWARD=Major <dotnet11>/dotnet exec --roll-forward Major <sdk>/vstest.console.dll <test dll> (both variables needed, or testhost finds no 10.0 runtime and prints no summary); --Diag:<file> writes a log.host.* with Runtime location: as the proof. The leg should assert that line, or it can pass by running on the wrong runtime. Before #308, that run fails TemporalLiteralGrammarTests.Time_Rejects("24:00:00") on 11.0.0-rc.2; the whole core project (1397) passes there with it.

  5. CaffeinatedCoder commented on Oct 19, 2026

    @CaffeinatedCoder
    OwnerAuthor

    The newest-patch leg is in PR #311. The scheduled run against the servicing builds is not, for two reasons. Both were measured on 2026-10-19; it moves to #312.

    What was tried for the feed:

    • https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10/nuget/v3/index.json answers (HTTP 200 in 0.4 s; the earlier failed curl doesn't reproduce). Its flat container lists 858 Microsoft.EntityFrameworkCore versions, all 10.0.0 prereleases: 122 alpha, 462 preview, 249 rc, 25 rtm, newest 10.0.0-rtm.25513.102. It has no 10.0.x servicing build, and .Relational and .Design look the same.
    • dotnet/efcore release/10.0's NuGet.config lists these other public feeds. dotnet10-transport and dotnet-tools don't carry EF Core (404). dotnet-eng holds one unrelated version. dotnet-public mirrors nuget.org (10.0.2–10.0.13).
    • What does carry the build: darc-pub-dotnet-dotnet-d7437ff1, the isolated feed for the VMR build that Maestro's backflow last wrote into that NuGet.config (eng/Version.Details.xml: dotnet/dotnet d7437ff1, BAR 336650). It holds EF Core, .Relational and .Design 10.0.14, one patch ahead of nuget.org; release/10.0's Versions.props says 10.0.14 servicing. The feed name changed six times between 2026-10-05 and 2026-10-15.
    • The four EF projects, floated to that build (-p:EfFloat=10.0.14 -p:NpgsqlEfFloat=10.0.3 -p:RestoreAdditionalProjectSources=<feed>, private NUGET_PACKAGES, src/ on the floor), all pass on PostgreSQL 16: 295/295, 91/91, 280/280, 4/4.

    Why it can't sit on release/10.x anyway: GitHub fires schedule only from the default branch, so a weekly trigger in release/10.x's dotnet.yml would never run. #312 puts the scheduler on main, dispatching a leg on release/10.x that reads the current darc-pub feed.

    Measured for the newest-patch leg (PR #311, local, PostgreSQL 16), with the #302 rewriter reverted to d883b12^:

    With the fix in place, all four pass on the newest patch. The leg also fails if a test host's deps.json doesn't name the floated versions, so it can't silently re-test the floor.

  6. CaffeinatedCoder commented on Oct 19, 2026

    @CaffeinatedCoder
    OwnerAuthor

    Done on release/10.x by PR #311 (merge commit b9d7fa2, 2026-10-19): the EF suites run on the floor and on the newest published 10.0 patch (EF Core 10.0.13 / Npgsql EF 10.0.3) on PostgreSQL 16 and 18, required through the integration gate; the PR body holds the red run with the #302 fix reverted. The weekly servicing-build run is #312. Closed by hand: Closes acts only on main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/releaseVersioning, changelogs, release wiringpackage/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQLpackage/efcore-nodatimeAffects CodoMetis.ValueRanges.EFCore.PostgreSQL.NodaTimetestsAdds or changes tests only (oracles, harnesses); no library code

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions