Skip to content

Epic: 11.0.0 #147

Open
10 of 20 issues completed
Open

Description

@CaffeinatedCoder

Goal

Open the .NET 11 line: net11.0, EF Core 11, Npgsql 11, PostgreSQL 16+. It ships as 11.0.0-preview.N from main once v10.0.0 is tagged (one preview per .NET 11 RC), and as 11.0.0 after .NET 11 GA. There is no preview branch (#280).

Decision (2026-10-18): two parallel lines, one per platform major, as EntglDb/BLite and EFCore.ComplexIndexes do. 10.x is the LTS line on .NET 10 (supported to 2028-11). 11.x is where the surface changes: the five range variants become C# 15 closed hierarchies or union types, which is the one change that justifies a separate major rather than a net11.0 TFM in the same package.

In scope and out of scope

In scope: the retarget, the compile probe and the rewrite of the variants, the native HasWithoutOverlaps/HasPeriod documentation, the two-line policy and release wiring, and the CI matrix with PostgreSQL floor legs.

Added 2026-10-19 (maintainer): #275, the per-domain range set types (Int32RangeSet, DateRangeSet, …) that replace RangeSet<TRange, T>. With #149 non-breaking, this is the breaking surface change the 11 line carries; 10.0.0 ships with "nothing removed or renamed" and the set family differs between the lines from then on.

Out of scope: the 14 silent fixes (#58) — they land on main first and are merged forward. The 10.0.0 features (#58: scheduling and parity themes, the Float32/Float64 family #153) — they land on main and are merged forward like the fixes. Later additions ship as 10.x minors within the window #178 sets. ltree — it belongs in the sibling hierarchies package, not here (research 2026-10-18: Npgsql's LTree is translation-only and its maintainers declined client-side semantics three times; no .NET package fills the gap; the domain is label paths, not intervals).

Sequence

  1. At the v10.0.0 tag: cut release/10.x, then retarget main (11.0.0-preview.1: retarget main to net11.0 / EF Core 11 / Npgsql 11 after the v10.0.0 tag, with the four behaviour changes as named tests #103). Fixes for both go to main first and are cherry-picked with -x.
  2. 11.0.0-preview.1 = pure retarget, identical public API.
  3. 11.0.0-preview.2 = the unions marked closed (Mark the range unions closed (C# 15) for compile-time exhaustiveness, on both lines #149; closed not union, decided after the Compile probe: C# 15 closed hierarchies and union types for the five variants, on net10.0 and net11.0 #148 probe). Not platform-bound: it also ships on 10.x as a minor after .NET 11 GA, inside the additions window (10.x takes additions for six months after v11.0.0, not only until it #178), so the two lines are driven by EF Core 11 / Npgsql 11, not by the language feature.
  4. 11.0.0-preview.3 = the per-domain range set types (Per-domain range set types (Int32RangeSet, DateRangeSet, …) replace RangeSet<TRange, T> #275) replacing RangeSet<TRange, T>; docs/migration.md v10.x gets the rename.

Done when

  • every sub-issue is closed
  • 11.0.0-preview.N has been published for each .NET 11 RC that was current while the line was open
  • the root changelog opens 11.0.0 with the platform floor, the variants migration and the "what can break you" list, and docs/migration.md has a v10.x section
  • v11.0.0 is tagged on main and the four packages are on NuGet
  • release/10.x exists, CONTRIBUTING and SECURITY.md name both lines
  • release/10.x carries the same branch protection as main (GitHub settings, done by hand; CONTRIBUTING promises it)

Activity

  1. added this to the 11.0.0 milestone on Oct 18, 2026
  2. added
    epicTracks a release or a theme; its sub-issues are the work
    area/releaseVersioning, changelogs, release wiring
    on Oct 18, 2026
  3. CaffeinatedCoder commented on Oct 18, 2026

    @CaffeinatedCoder
    OwnerAuthor

    Two scope notes from 2026-10-18: (1) 10.x takes additions for six months after v11.0.0 (#178, PR #180), so #149's 10.x half fits. (2) The 10.0.0 epic (#58) now carries the scheduling and parity themes and the Float32/Float64 family (#153), so the 'Additions such as DoubleRange ship in a 10.x minor' line in the out-of-scope section is out of date: they ship in 10.0.0 and are merged forward like the fixes.

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 wiringepicTracks a release or a theme; its sub-issues are the work

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions