Skip to content

V11.0.0/double digits - #6

Merged
gimlichael merged 18 commits into
masterfrom
v11.0.0/double-digits
Nov 1, 2026
Merged

gimlichael merged 18 commits into
masterfrom
v11.0.0/double-digits

Conversation

@gimlichael

Copy link
Copy Markdown
Member

This pull request retargets the retained Codebelt.Coverlet.MTP package and its test projects from .NET 9 to a .NET 10 and .NET 11 matrix. It also fixes shared framework resolution so prerelease and non-numeric runtime folders no longer break instrumentation.

Framework retargeting:

  • Library and test projects target net10.0 and net11.0 alongside netstandard2.0, and the SDK pin in global.json moves to .NET 11.
  • The .NET 9 target and its package overrides are removed from the projects and test projects.

Runtime dependencies:

  • Runtime package versions are selected per target framework, with a new .NET 11 runtime version alongside the .NET 10 version.
  • Dependency groups no longer carry .NET 9 assets, so newer generation assets never land in older target groups.

Shared framework resolution:

  • The resolver picks the highest matching shared framework by parsed NuGet version instead of string prefix matching.
  • A regression test covers the selection rules.

Validation and tests:

  • Validation tests read the .NET 11 runtime version from the MSBuild properties and assert that the package carries no .NET 9 assets.

Tooling and documentation:

  • CI runs the test matrix on .NET 10 and .NET 11, and the devcontainer builds on the .NET 11 SDK.
  • The README, contributing guide, agent guide, integration docs, and changelog describe the new target matrix.

Resolve the shared framework directory by parsed NuGet version instead of string prefix matching, so prerelease and non-numeric folders no longer break runtime resolution. A regression test covers the selection rules.
The retained package surface no longer targets .NET 9, so the library projects and the SDK pin move to .NET 10 and .NET 11.
Runtime packages are selected per target framework so newer generation assets never land in older TFM groups.
Test projects run on the same target matrix as the packages, and the .NET 9 specific package override is no longer needed.
The validation tests read the .NET 11 runtime version from Directory.Packages.props and assert that the package carries no .NET 9 assets.
The CI test matrix runs on the same two targets the package supports.
The devcontainer builds on the .NET 11 SDK and keeps .NET 10 side by side as the previous runtime.
The README, contributing guide, agent guide, and integration docs describe the .NET 10 and .NET 11 targets instead of the retired .NET 9 target.
The changelog records the .NET 11 target, the removal of the .NET 9 target, and the validation package preparation change, so users can see what this release changes.
@gimlichael gimlichael self-assigned this Oct 30, 2026
@greptile-apps

greptile-apps Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[High impact] The changes since the previous review appear safe to merge.

Summary

The PR moves the retained package and tests to .NET 10/11, improves shared-framework selection, and brings in upstream branch-coverage and local-function changes.

Changes since the previous review document that work:

  • Branch coverage counts only paths reachable from a method's entry.
  • The retained package targets .NET 10 and .NET 11.
  • Shared-framework lookup selects the highest matching parsed version.
  • Local functions stay instrumented when generated-code attributes are excluded.
  • MTP collector tests cover report messages and threshold checks.
  • An upstream tracking note records the retained fork's changes.

No actionable new issues were found. No previous findings were supplied. Tests were not run.

Reviews (5) · Last reviewed commit: "💬 require dated upstream synchronizatio..." · Reviewed by Greptile

gimlichael and others added 9 commits October 30, 2026 09:23
The current SDK emits one conditional jump for both pattern matching and the equivalent logical expression, so the tests should expect the same two covered paths.
Move the Microsoft Testing Platform, test SDK, xUnit, Moq, LinqKit and NuGet.Packaging/NuGet.Versioning pins to current releases. NuGet.Versioning for netstandard2.0 stays on 6.14.3, the newest release that still supports that target.
Branches that cannot be reached from method entry, including through exception handlers, can never be covered and were inflating the missed-branch count. Each branch now records whether it is reachable, unreachable branches are excluded from branch totals, and the Cobertura, LCOV and OpenCover reporters skip them. State files written before this change still read back as reachable.
The reachability change and the MTP configuration, report format and threshold paths need regression coverage. These tests pin the new IsReachable behavior, the reporter output for unreachable branches, and the shared-framework resolution fix.
Record the 11.0.0 changes: .NET 11 support, the .NET 9 target removal, branch reachability, dependency bumps and the local-function and shared-framework fixes.
Keep the README installation example consistent with the Microsoft Testing Platform and xUnit versions selected by the upstream sync.
Record the original Coverlet marker, verified Codebelt tag targets, inherited upstream history, selective ports, exclusions, behavioral differences, and historical CI outcomes. Link the ledger from the README and expose it in the solution items so readers can audit what each sync contains.
Require UPSTREAM.md updates alongside every sync, with operation dates, source and destination evidence, exclusions, adaptations, and actual validation outcomes. Keep meaningful fork differences explicit and preserve the distinct roles of the README, changelog, and maintenance guidance.
@gimlichael
gimlichael merged commit 6e72c0c into master Nov 1, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants