Skip to content

Add support for .net 8 through 10 Expand .NET version support to net8.0-net10.0#17

Merged
WahidBitar merged 3 commits into
masterfrom
support-dot-net-8
Apr 5, 2026
Merged

Add support for .net 8 through 10 Expand .NET version support to net8.0-net10.0#17
WahidBitar merged 3 commits into
masterfrom
support-dot-net-8

Conversation

@WahidBitar
Copy link
Copy Markdown
Owner

@WahidBitar WahidBitar commented Apr 5, 2026

Summary by CodeRabbit

  • New Features
    • Expanded platform support to .NET 8–10 with EF Core 9.x–10.x compatibility; package metadata updated for multi-target releases.
  • Documentation
    • Fixed typos, removed an example snippet, renamed the usage heading, and updated the supported versions section.
  • Chores
    • Centralized build properties for multi-targeting and EF Core version ranges; projects adjusted to multi-target and CI updated to run against multiple .NET SDKs.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 5, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 75b57d32-1749-40c8-a618-9c0f323e6af6

📥 Commits

Reviewing files that changed from the base of the PR and between 2ebe678 and 57f8b91.

📒 Files selected for processing (4)
  • README.md
  • src/Directory.Build.props
  • src/Diwink.Extensions.EntityFrameworkCore.TestModel/Diwink.Extensions.EntityFrameworkCore.TestModel.csproj
  • src/Diwink.Extensions.EntityFrameworkCore/Diwink.Extensions.EntityFrameworkCore.csproj
🚧 Files skipped from review as they are similar to previous changes (4)
  • src/Diwink.Extensions.EntityFrameworkCore.TestModel/Diwink.Extensions.EntityFrameworkCore.TestModel.csproj
  • README.md
  • src/Diwink.Extensions.EntityFrameworkCore/Diwink.Extensions.EntityFrameworkCore.csproj
  • src/Directory.Build.props

📝 Walkthrough

Walkthrough

This PR adds multi-targeting for net8.0–net10.0, centralizes EF Core version ranges in a new src/Directory.Build.props, converts projects to conditional EF Core package references, updates package metadata, and expands the GitHub Actions workflow to install/test .NET SDKs 8.0, 9.0, and 10.0.

Changes

Cohort / File(s) Summary
CI/CD Configuration
​.github/workflows/dotnet-core.yml
Changed dotnet-version from a single value to a list: 8.0.x, 9.0.x, 10.0.x for the build and publish jobs.
Documentation
README.md
Fixed typos, removed a graph update example block, replaced "v2 Rebuild (EF Core 10+)" with "Support (.NET 8-10, EF Core 9-10)", and renamed "v2 Usage" to "Usage".
Centralized Build Props
src/Directory.Build.props
Added MSBuild props defining TargetFrameworks = net8.0;net9.0;net10.0 and EF Core version range properties: EfCore9Version = [9.0.14,10.0.0) and EfCore10Version = [10.0.5,11.0.0).
Library Project
src/Diwink.Extensions.EntityFrameworkCore/Diwink.Extensions.EntityFrameworkCore.csproj
Removed single-target net10.0, bumped NuGet <Version> to 10.0.1, updated <Description> to cover .NET 8–10 / EF Core 9–10, and added conditional Microsoft.EntityFrameworkCore package references using $(EfCore9Version) / $(EfCore10Version).
Test Model Project
src/Diwink.Extensions.EntityFrameworkCore.TestModel/Diwink.Extensions.EntityFrameworkCore.TestModel.csproj
Replaced single net10.0 target with multi-targeting and made Microsoft.EntityFrameworkCore.SqlServer package references conditional by target framework, using centralized version properties.
Integration Tests Project
src/Diwink.Extensions.EntityFrameworkCore.Tests.Integration/Diwink.Extensions.EntityFrameworkCore.Tests.Integration.csproj
Converted to TargetFrameworks = net8.0;net9.0;net10.0; removed hard-coded EF Core versions and added conditional SqlServer and InMemory package references using $(EfCore9Version) for net8/net9 and $(EfCore10Version) for net10.
Unit Tests Project
src/Diwink.Extensions.EntityFrameworkCore.Tests.Unit/Diwink.Extensions.EntityFrameworkCore.Tests.Unit.csproj
Changed single net10.0 to multi-target net8.0;net9.0;net10.0 and replaced unconditional Microsoft.EntityFrameworkCore.InMemory with conditional references using $(EfCore9Version) / $(EfCore10Version).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 Hopping from ten to eight and nine,
Props align versions all in a line,
Conditional packs now dance by frame,
CI checks three SDKs—what a game!
A rabbit cheers this tidy change. 🌱

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title Check ✅ Passed Title check skipped as CodeRabbit has written the PR title.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch support-dot-net-8

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot changed the title Add support for .net 8 through 10 @coderabbit Add support for .net 8 through 10 Expand .NET version support to net8.0-net10.0 Apr 5, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
README.md (1)

2-3: Minor grammar issue: sentence fragment.

Line 3 starts with lowercase "and" as a sentence fragment. Consider combining with the previous sentence or capitalizing.

✏️ Suggested fix
-In this simple project we're going to expose the helper extension methods that we're using in our company.
-and as a starting point we'll start with the Graph update method.
+In this simple project we're going to expose the helper extension methods that we're using in our company,
+and as a starting point we'll start with the Graph update method.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 2 - 3, The README contains a sentence fragment: "and
as a starting point we'll start with the Graph update method." Fix it by either
joining it to the previous sentence or capitalizing and rephrasing so it reads
as a complete sentence; e.g., merge with the prior sentence to read "In this
simple project we're going to expose the helper extension methods that we're
using in our company, and as a starting point we'll start with the Graph update
method." or change "and" to "As" and adjust punctuation for the second sentence.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/Directory.Build.props`:
- Around line 1-7: TargetFrameworks in Directory.Build.props is missing net9.0
which causes build/test mismatches; update the TargetFrameworks value to include
net9.0 (e.g., net8.0;net9.0;net10.0) so library and TestModel produce net9.0
assets, and then add the corresponding conditional package reference in the
library project (Diwink.Extensions.EntityFrameworkCore.csproj) for the net9.0
TFMoniker using the same pattern used for EfCore9Version/EfCore10Version to
ensure correct EF Core package binding for .NET 9.

In
`@src/Diwink.Extensions.EntityFrameworkCore.TestModel/Diwink.Extensions.EntityFrameworkCore.TestModel.csproj`:
- Around line 8-14: The project file lacks a conditional ItemGroup for net9.0;
add an ItemGroup with Condition="'$(TargetFramework)' == 'net9.0'" containing
the PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer"
Version="$(EfCore9Version)" so the test model project mirrors the main library
when net9.0 is added to TargetFrameworks; update the
Diwink.Extensions.EntityFrameworkCore.TestModel.csproj by adding that net9.0
conditional block next to the existing net8.0 and net10.0 ItemGroup entries.

In
`@src/Diwink.Extensions.EntityFrameworkCore/Diwink.Extensions.EntityFrameworkCore.csproj`:
- Around line 16-22: Add a conditional ItemGroup for net9.0 in the
Diwink.Extensions.EntityFrameworkCore.csproj so the
Microsoft.EntityFrameworkCore package is referenced when TargetFramework is
net9.0; specifically, mirror the pattern used for net8.0 by adding an ItemGroup
with Condition "'$(TargetFramework)' == 'net9.0'" and a PackageReference
Include="Microsoft.EntityFrameworkCore" Version="$(EfCore9Version)" to align
with the EfCore9Version variable.

---

Nitpick comments:
In `@README.md`:
- Around line 2-3: The README contains a sentence fragment: "and as a starting
point we'll start with the Graph update method." Fix it by either joining it to
the previous sentence or capitalizing and rephrasing so it reads as a complete
sentence; e.g., merge with the prior sentence to read "In this simple project
we're going to expose the helper extension methods that we're using in our
company, and as a starting point we'll start with the Graph update method." or
change "and" to "As" and adjust punctuation for the second sentence.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0fb81be2-5d26-4873-b974-9668c288e1fa

📥 Commits

Reviewing files that changed from the base of the PR and between fe2b477 and ccdbde3.

📒 Files selected for processing (7)
  • .github/workflows/dotnet-core.yml
  • README.md
  • src/Directory.Build.props
  • src/Diwink.Extensions.EntityFrameworkCore.TestModel/Diwink.Extensions.EntityFrameworkCore.TestModel.csproj
  • src/Diwink.Extensions.EntityFrameworkCore.Tests.Integration/Diwink.Extensions.EntityFrameworkCore.Tests.Integration.csproj
  • src/Diwink.Extensions.EntityFrameworkCore.Tests.Unit/Diwink.Extensions.EntityFrameworkCore.Tests.Unit.csproj
  • src/Diwink.Extensions.EntityFrameworkCore/Diwink.Extensions.EntityFrameworkCore.csproj

Comment thread src/Directory.Build.props
Comment on lines +1 to +7
<Project>
<PropertyGroup>
<TargetFrameworks>net8.0;net10.0</TargetFrameworks>
<EfCore9Version>[9.0.14,10.0.0)</EfCore9Version>
<EfCore10Version>[10.0.5,11.0.0)</EfCore10Version>
</PropertyGroup>
</Project>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Missing net9.0 from TargetFrameworks creates a build/test mismatch.

The TargetFrameworks property defines only net8.0;net10.0, but:

  • Test projects override this to net8.0;net9.0;net10.0
  • The README claims ".NET 8-10" support
  • The CI workflow installs SDKs for 8.x, 9.x, and 10.x

Since the library and TestModel projects inherit from this file, they won't produce net9.0 assets. When tests run against net9.0, NuGet will fall back to the net8.0 library assembly, which is inconsistent with the stated support range.

🔧 Proposed fix: Add net9.0 to TargetFrameworks
 <Project>
   <PropertyGroup>
-    <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
+    <TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
     <EfCore9Version>[9.0.14,10.0.0)</EfCore9Version>
     <EfCore10Version>[10.0.5,11.0.0)</EfCore10Version>
   </PropertyGroup>
 </Project>

If net9.0 is added here, you'll also need to add the corresponding conditional package reference in the library project (Diwink.Extensions.EntityFrameworkCore.csproj).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/Directory.Build.props` around lines 1 - 7, TargetFrameworks in
Directory.Build.props is missing net9.0 which causes build/test mismatches;
update the TargetFrameworks value to include net9.0 (e.g.,
net8.0;net9.0;net10.0) so library and TestModel produce net9.0 assets, and then
add the corresponding conditional package reference in the library project
(Diwink.Extensions.EntityFrameworkCore.csproj) for the net9.0 TFMoniker using
the same pattern used for EfCore9Version/EfCore10Version to ensure correct EF
Core package binding for .NET 9.

@WahidBitar WahidBitar merged commit ed1f1a2 into master Apr 5, 2026
3 checks passed
@WahidBitar WahidBitar deleted the support-dot-net-8 branch April 5, 2026 13:09
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.

1 participant