Skip to content

Upgrade to .NET 10 - #172

Merged
elzik merged 1 commit into
mainfrom
upgrade-net10
Nov 22, 2025
Merged

Upgrade to .NET 10#172
elzik merged 1 commit into
mainfrom
upgrade-net10

Conversation

@elzik

@elzik elzik commented Nov 22, 2025

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • Chores
    • Upgraded the application platform to .NET 10 (from .NET 8) with comprehensive updates to Docker container base images and all project dependencies including core libraries and testing frameworks. This ensures improved system compatibility, enhanced security posture, and access to the latest platform capabilities and improvements.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitai Bot commented Nov 22, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

The project undergoes a framework upgrade from .NET 8.0 to .NET 10.0 across all projects and the Dockerfile. Corresponding NuGet package versions are updated to align with the new framework, including Microsoft.SemanticKernel, Microsoft.Extensions packages, and test tooling.

Changes

Cohort / File(s) Summary
Dockerfile
src/Elzik.Breef.Api/Dockerfile
Base image updated from ASP.NET 8.0 to 10.0 for runtime and SDK build stages.
Production Projects
src/Elzik.Breef.Api/Elzik.Breef.Api.csproj, src/Elzik.Breef.Application/Elzik.Breef.Application.csproj, src/Elzik.Breef.Domain/Elzik.Breef.Domain.csproj, src/Elzik.Breef.Infrastructure/Elzik.Breef.Infrastructure.csproj
TargetFramework bumped net8.0 → net10.0. Dependencies updated: Microsoft.SemanticKernel 1.66.0 → 1.67.1 (multiple projects), Microsoft.Extensions.* (DependencyInjection, Configuration, Options, etc.) 9.0.10 → 10.0.0.
Test Projects
tests/Elzik.Breef.Api.Tests.Functional/Elzik.Breef.Api.Tests.Functional.csproj, tests/Elzik.Breef.Api.Tests.Integration/Elzik.Breef.Api.Tests.Integration.csproj, tests/Elzik.Breef.Infrastructure.Tests.Integration/Elzik.Breef.Infrastructure.Tests.Integration.csproj, tests/Elzik.Breef.Infrastructure.Tests.Unit/Elzik.Breef.Infrastructure.Tests.Unit.csproj
TargetFramework updated net8.0 → net10.0. Test tooling versions aligned: Microsoft.NET.Test.Sdk 18.0.0 → 18.0.1, xunit.analyzers 1.24.0 → 1.25.0, Microsoft.AspNetCore.Mvc.Testing 8.0.21 → 10.0.0, Microsoft.SemanticKernel 1.66.0 → 1.67.1 where present, and Microsoft.Extensions.* packages 9.0.10 → 10.0.0.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Changes follow a consistent, homogeneous pattern across all files (framework version bump + aligned dependency updates)
  • No code logic modifications or API signature changes
  • Wide file spread (10 files) but minimal heterogeneity of edits
  • Primary focus: verify version compatibility and build success
  • Minor attention point: Verify that test execution succeeds post-upgrade and that all semantic kernel and dependency injection usages remain compatible across the codebase

Possibly related PRs

  • Update Dependencies #155: Updates Microsoft.SemanticKernel dependency in Elzik.Breef.Api.csproj and other manifests; overlaps with this PR's dependency upgrade strategy.

Poem

🐰 From eight to ten, we leap with glee,
The framework's young, dependencies agree,
With Semantic Kernels bright and new,
Extensions aligned in every hue,
.NET's spring has arrived anew! 🌱

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: upgrading the project from .NET 8.0 to .NET 10.0, which is comprehensively reflected across all modified files (Dockerfiles, project files, and dependencies).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch upgrade-net10

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a69e6ae and c782a2c.

📒 Files selected for processing (9)
  • src/Elzik.Breef.Api/Dockerfile (1 hunks)
  • src/Elzik.Breef.Api/Elzik.Breef.Api.csproj (2 hunks)
  • src/Elzik.Breef.Application/Elzik.Breef.Application.csproj (1 hunks)
  • src/Elzik.Breef.Domain/Elzik.Breef.Domain.csproj (1 hunks)
  • src/Elzik.Breef.Infrastructure/Elzik.Breef.Infrastructure.csproj (2 hunks)
  • tests/Elzik.Breef.Api.Tests.Functional/Elzik.Breef.Api.Tests.Functional.csproj (2 hunks)
  • tests/Elzik.Breef.Api.Tests.Integration/Elzik.Breef.Api.Tests.Integration.csproj (2 hunks)
  • tests/Elzik.Breef.Infrastructure.Tests.Integration/Elzik.Breef.Infrastructure.Tests.Integration.csproj (2 hunks)
  • tests/Elzik.Breef.Infrastructure.Tests.Unit/Elzik.Breef.Infrastructure.Tests.Unit.csproj (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: build-ubuntu
  • GitHub Check: build-ubuntu
  • GitHub Check: Analyze (csharp)
🔇 Additional comments (10)
src/Elzik.Breef.Domain/Elzik.Breef.Domain.csproj (1)

4-4: Framework upgrade to .NET 10 is straightforward.

The target framework change is standard. Microsoft.SemanticKernel.Abstractions package targets .NET 8.0 and is compatible with higher frameworks, so the dependency is compatible with net10.0.

src/Elzik.Breef.Application/Elzik.Breef.Application.csproj (1)

4-4: Clean framework-only upgrade.

No other changes needed for this project—the framework target update alone is sufficient for .NET 10 compatibility.

src/Elzik.Breef.Api/Dockerfile (1)

4-4: Docker base images correctly aligned with .NET 10.

Both the ASP.NET runtime and SDK images are updated from version 8.0 to 10.0, consistent with the net10.0 target framework changes across the project.

Also applies to: 11-11

src/Elzik.Breef.Infrastructure/Elzik.Breef.Infrastructure.csproj (1)

4-4: Infrastructure project correctly updated for .NET 10.

All Microsoft.Extensions packages are updated to version 10.0.0 (standard for .NET 10), and SemanticKernel connector libraries are bumped to 1.67.1 to maintain consistency across dependencies.

Also applies to: 10-14, 25-26

src/Elzik.Breef.Api/Elzik.Breef.Api.csproj (1)

4-4: API project framework and dependencies updated for .NET 10.

Microsoft.SemanticKernel targets .NET 8.0 and is compatible with higher frameworks. The Serilog.Sinks.Console minor version bump is straightforward.

Also applies to: 13-13, 20-20

tests/Elzik.Breef.Infrastructure.Tests.Unit/Elzik.Breef.Infrastructure.Tests.Unit.csproj (1)

4-4: Test project correctly updated for .NET 10.

Framework target and test tooling dependencies (Microsoft.Extensions.Diagnostics.Testing, Microsoft.NET.Test.Sdk) are aligned with .NET 10. The patch version bump for Test.Sdk is routine.

Also applies to: 21-23

tests/Elzik.Breef.Api.Tests.Functional/Elzik.Breef.Api.Tests.Functional.csproj (1)

4-4: Functional test project updated for .NET 10 with appropriate test dependencies.

Microsoft.AspNetCore.Mvc.Testing is correctly bumped to 10.0.0 (required for .NET 10), and other test packages are updated to maintain consistency. The xunit.analyzers minor version bump is safe.

Please verify that Microsoft.PowerShell.SDK 7.5.4 has no breaking changes relative to 7.4.13 for your use case.

Also applies to: 20-23, 31-31

tests/Elzik.Breef.Api.Tests.Integration/Elzik.Breef.Api.Tests.Integration.csproj (1)

4-4: Integration test project framework and test dependencies correctly updated for .NET 10.

All package updates (Microsoft.Extensions to 10.0.0, test SDK patch version, xunit.analyzers minor version) follow standard upgrade patterns.

Also applies to: 18-20, 27-27

tests/Elzik.Breef.Infrastructure.Tests.Integration/Elzik.Breef.Infrastructure.Tests.Integration.csproj (2)

4-4: LGTM!

The target framework upgrade from net8.0 to net10.0 is correct. NET 10 is an LTS release, making it a solid foundation for the project.


21-29: LGTM!

All package version upgrades are appropriate and verified to support .NET 10. Microsoft.Extensions.Configuration 10.0.0 targets .NET 8.0 and is compatible with this framework or higher, and this pattern applies to all other Extensions packages being upgraded. Microsoft.SemanticKernel 1.67.1 targets .NET 8.0 and is compatible with this framework or higher.

The incremental package updates (Extensions 9.x → 10.0.0, SemanticKernel 1.66.0 → 1.67.1, Test.Sdk 18.0.0 → 18.0.1) represent appropriate patch/minor version bumps with no breaking changes identified.

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@sonarqubecloud

Copy link
Copy Markdown

@elzik
elzik merged commit e7f7505 into main Nov 22, 2025
14 checks passed
@elzik
elzik deleted the upgrade-net10 branch November 22, 2025 20:06
elzik added a commit that referenced this pull request Nov 24, 2025
* Do not leak exception details in production

* Fix unauthorised scenario asserts

* Fix whitespace issue

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix whitespace

* Fix whitespace

* Ensure tests cover exception handler as well as development excetion page

* Revert "Ensure tests cover exception handler as well as development excetion page"

This reverts commit 4b34d4b.

* Use additional class to ensure tests cover exception handler as well as development excetion page

* Use multiple WebApplicationFactories to cover production and deveopment scenarios

* Use TheoryData as return type to provide better type safety

* Explicit;ly configure exception handler

* Ensure WebApplicationFactory and client get disposed

* Add http sample file to solution

* Upgrade to .NET 10 (#172)

* Do not leak exception details in production

* Fix unauthorised scenario asserts

* Fix whitespace

* Fix whitespace

* Ensure tests cover exception handler as well as development excetion page

* Fix whitespace issue

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Revert "Ensure tests cover exception handler as well as development excetion page"

This reverts commit 4b34d4b.

* Use additional class to ensure tests cover exception handler as well as development excetion page

* Use multiple WebApplicationFactories to cover production and deveopment scenarios

* Use TheoryData as return type to provide better type safety

* Explicit;ly configure exception handler

* Ensure WebApplicationFactory and client get disposed

* Add http sample file to solution

* Implement ProblemDetails for only caller fixable extensions

* Don't end Problem Deatils titles with full-stops

* Refactor deprecated ConfigureWebHost override pattern

* Treat all ICallerFixableException instaces as a Status400BadRequest

* Add funcitonal Problem Details tests

* Remove unnecessary null-conditional operator

* Don't perform seperate dev and prod health tests - there is no value

* Make namespaces clearer

* Remove unused WebApplicationFactories

* Remove unecessary launch profile

* Add trace ID to Problem Details and log

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@coderabbitai coderabbitai Bot mentioned this pull request Jan 3, 2026
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