Skip to content

Upgrade from .NET 7 to .NET 9 - #56

Open
devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/1782137569-upgrade-dotnet-9
Open

devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/1782137569-upgrade-dotnet-9

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Jun 22, 2026

Copy link
Copy Markdown

Summary

Migrates the entire solution from .NET 7 (EOL) to .NET 9.

Target framework: net7.0net9.0 across all 6 .csproj files.

NuGet package upgrades:

  • EF Core stack (Microsoft.EntityFrameworkCore, .Design, .Tools) → 9.0.6
  • Npgsql stack (Npgsql, .EntityFrameworkCore.PostgreSQL, .NodaTime) → 9.0.x
  • Microsoft.AspNetCore.OpenApi → 9.0.6
  • Swashbuckle.AspNetCore → 6.9.0
  • AspNetCore.HealthChecks.NpgSql → 8.0.2 (latest 8.x compatible with net9.0)
  • Mapster → 7.4.0
  • FakeItEasy → 8.3.0, xunit → 2.9.3, xunit.runner.visualstudio → 2.8.2
  • Microsoft.NET.Test.Sdk → 17.12.0, coverlet.collector → 6.0.2

Removed: Microsoft.EntityFrameworkCore.SqlServer from Infrastructure (unused; project uses PostgreSQL via Npgsql).

Infrastructure: Dockerfile base images → aspnet:9.0 / sdk:9.0. Added global.json pinning SDK 9.0.100 with latestMinor rollForward. README updated.

All 20 tests pass. Docker build succeeds.

Link to Devin session: https://app.devin.ai/sessions/dc436bfeb87a40fe87295f4f94b0d6fb
Requested by: @detectiveharree


Devin Review

Status Commit
⚪ Not started

Run Devin Review

Open in Devin Review (Staging)

- Update TargetFramework to net9.0 in all 6 .csproj files
- Update NuGet packages to .NET 9 compatible versions:
  - EF Core packages → 9.0.6
  - Npgsql packages → 9.0.x
  - ASP.NET Core OpenApi → 9.0.6
  - Swashbuckle → 6.9.0
  - AspNetCore.HealthChecks.NpgSql → 8.0.2
  - Mapster → 7.4.0
  - FakeItEasy → 8.3.0
  - xunit → 2.9.3, xunit.runner.visualstudio → 2.8.2
  - Microsoft.NET.Test.Sdk → 17.12.0
  - coverlet.collector → 6.0.2
- Remove unused Microsoft.EntityFrameworkCore.SqlServer package
- Update Dockerfile base images from 7.0 to 9.0
- Add global.json pinning SDK to 9.0.100 with latestMinor rollForward
- Update README.md references from .NET 7 to .NET 9

Co-Authored-By: harrison.reeves <harrisonreeves00@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

Open in Devin Review

Comment thread src/WebApi/WebApi.csproj
<PackageReference Include="AspNetCore.HealthChecks.NpgSql" Version="7.0.0" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.9" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.10">
<PackageReference Include="AspNetCore.HealthChecks.NpgSql" Version="8.0.2" />

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

🚩 Health checks package not upgraded to .NET 9 aligned version

The AspNetCore.HealthChecks.NpgSql package was upgraded from 7.0.0 to 8.0.2, while all other packages were upgraded to their 9.x counterparts. The Xabaril health check packages typically version-align with the .NET release (7.x for .NET 7, 8.x for .NET 8, etc.). This package at 8.0.2 was built against Npgsql 8.x, but the project now uses Npgsql 9.0.5 (src/Infrastructure/Infrastructure.csproj:19). NuGet will unify to 9.0.5 at runtime. The basic connection APIs used by health checks (create connection, open, execute query) are compatible across Npgsql 8→9, so this likely works fine at runtime. However, it's worth checking if a 9.x version exists or if the package was renamed to AspNetCore.HealthChecks.Npgsql (lowercase) for newer releases.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

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.

0 participants