Skip to content

Conversation

@timothycoleman
Copy link
Contributor

@timothycoleman timothycoleman commented Oct 9, 2025

  • To be upgraded to NET10 RTM once it is out, and before our next production release: KurrentDB 26.0.0.
  • In line with net10 base container images: Jammy is upgraded to Noble and Debian (bookworm) build is no longer present.
  • Using dotnet test in VSTest mode. Upgraded to MTP1 but not MTP2 because support for this is removed there.
  • MTP2 can follow later, but involves significant rejigging of the unit test projects.

@timothycoleman timothycoleman changed the base branch from master to timothycoleman/net-10-base October 21, 2025 07:54
… projects. stay on MTP 1 for now.

fix TypeLoadException: Could not load type 'Microsoft.Testing.Platform.Extensions.TestHost.IDataConsumer'
@timothycoleman timothycoleman force-pushed the timothycoleman/net10 branch 2 times, most recently from fda0de0 to 8950a33 Compare October 23, 2025 07:39
…10-rational

# Conflicts:
#	src/KurrentDB.Core/Index/PTable.cs
#	src/KurrentDB.Core/Index/PTableFooter.cs
#	src/KurrentDB.Core/Services/Storage/ReaderIndex/IndexReader.cs
@timothycoleman timothycoleman changed the base branch from timothycoleman/net-10-base to master October 23, 2025 08:12
@cloudflare-workers-and-pages
Copy link

Deploying eventstore with  Cloudflare Pages  Cloudflare Pages

Latest commit: e19301a
Status: ✅  Deploy successful!
Preview URL: https://54cbabdc.eventstore.pages.dev
Branch Preview URL: https://timothycoleman-net10.eventstore.pages.dev

View logs

@timothycoleman timothycoleman changed the title net10 (wip) Upgrade from NET8 to NET10-rc.2 Oct 23, 2025
@timothycoleman timothycoleman changed the title Upgrade from NET8 to NET10-rc.2 [DB-1704] Upgrade from NET8 to NET10-rc.2 Oct 23, 2025
@linear
Copy link

linear bot commented Oct 23, 2025

DB-1704 Spike

@timothycoleman timothycoleman marked this pull request as ready for review October 23, 2025 09:28
@timothycoleman timothycoleman requested review from a team as code owners October 23, 2025 09:28
@RagingKore RagingKore requested a review from Copilot October 24, 2025 10:03
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR upgrades KurrentDB from .NET 8 to .NET 10 RC 2, updating all project files, dependencies, and container images accordingly. The upgrade includes removing obsolete polyfills, updating to the latest package versions, and adapting code for API changes in .NET 10. The PR also removes legacy build scripts and updates Docker configurations to use Noble instead of Jammy/Bookworm base images.

Key Changes

  • Updated all .csproj files to target net10.0 framework and removed obsolete LangVersion properties
  • Removed polyfill code for Blazor routing attributes that are now available in .NET 10
  • Updated NuGet package versions to .NET 10 RC 2 releases and removed packages that are now part of the framework

Reviewed Changes

Copilot reviewed 100 out of 100 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/Directory.Build.props Updated global target framework to net10.0 and LangVersion to 14.0
src/Directory.Packages.props Updated Microsoft package versions to 10.0.0-rc.2 and removed packages now in framework
Multiple .csproj files Removed net8.0 target framework (inherited from Directory.Build.props) and obsolete properties
src/KurrentDB/Polyfills/* Removed Blazor routing polyfill files now available in .NET 10
src/KurrentDB.Surge/Readers/SystemReader.cs Updated LINQ async extension method calls for .NET 10 API changes
Dockerfile Updated base images from jammy/bookworm to noble (Ubuntu 24.04)
README.md Updated documentation to reference .NET 10 SDK

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment on lines +43 to +44
//qq temporarily workaround entrypointnotfound runtime bug that results from call to cast
// https://github.com/dotnet/runtime/issues/120270
Copy link

Copilot AI Oct 24, 2025

Choose a reason for hiding this comment

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

The comment prefix 'qq' is unclear. Consider using a standard TODO/HACK comment format with a clear description of when this workaround should be removed, such as '// TODO: Remove this workaround once .NET 10 RTM is released and runtime bug #120270 is fixed'.

Suggested change
//qq temporarily workaround entrypointnotfound runtime bug that results from call to cast
// https://github.com/dotnet/runtime/issues/120270
// TODO: Remove this workaround once .NET runtime bug #120270 is fixed and available in a stable release.
// Workaround for EntryPointNotFoundException caused by Enum.GetValues<Conf.GrpcMethod>().Cast<int>().
// See: https://github.com/dotnet/runtime/issues/120270

Copilot uses AI. Check for mistakes.

Comment on lines +51 to +56
[SupplyParameterFromForm] LoginInputModel Input { get; set; }
[SupplyParameterFromQuery] string ReturnUrl { get; set; }
[CascadingParameter] HttpContext HttpContext { get; set; } = default!;

protected override void OnInitialized() {
Input ??= new();
Copy link

Copilot AI Oct 24, 2025

Choose a reason for hiding this comment

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

The Input property is now nullable but is dereferenced without null checks. The initialization in OnInitialized() only assigns if null, but the property should be marked nullable (LoginInputModel?) or initialized inline to match the previous behavior of = new().

Suggested change
[SupplyParameterFromForm] LoginInputModel Input { get; set; }
[SupplyParameterFromQuery] string ReturnUrl { get; set; }
[CascadingParameter] HttpContext HttpContext { get; set; } = default!;
protected override void OnInitialized() {
Input ??= new();
[SupplyParameterFromForm] LoginInputModel Input { get; set; } = new();
[SupplyParameterFromQuery] string ReturnUrl { get; set; }
[CascadingParameter] HttpContext HttpContext { get; set; } = default!;
protected override void OnInitialized() {

Copilot uses AI. Check for mistakes.

Copy link
Contributor

@RagingKore RagingKore left a comment

Choose a reason for hiding this comment

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

LGTM

@timothycoleman timothycoleman merged commit 6aec08c into master Oct 24, 2025
8 checks passed
@timothycoleman timothycoleman deleted the timothycoleman/net10 branch October 24, 2025 12:47
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.

3 participants