Repository navigation
Update to .NET 10 - #724
Merged
Merged
Conversation
- global.json SDK 8.0.303 -> 10.0.100 - Retarget net8.0 -> net10.0 (net48 retained on Windows) - Nuke.Common 8.0.0 -> 10.1.0 and nuke.globaltool 6.0.3 -> 10.1.0; adapt Build.cs to Nuke 10 APIs - Remove/condition package references that are in-box on net10.0 (NU1510) - Bump build/test-only packages flagged by NuGet audit: SourceLink 10.0.401, SSH.NET 2026.0.0, System.Drawing.Common 5.0.3 - Suppress SYSLIB0057/SYSLIB0014 where net48 compatibility requires the obsolete APIs - Resolve WebSocketStream and async LINQ ambiguities with new .NET 10 BCL types - Adjust compressed-size test expectations for zlib-ng on .NET 9+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Assent 1.8.2 -> 3.0.1 - CliWrap 3.8.2 -> 3.10.5 - FluentAssertions 7.0.0 -> 7.2.2 - Microsoft.Extensions.Configuration.EnvironmentVariables 7.0.0 -> 10.0.12 (Halibut.Tests), 6.0.1 -> 10.0.12 (Halibut.Tests.DotMemory) - Microsoft.Extensions.Hosting 7.0.1 -> 10.0.12 (Halibut.TestProxy) - Microsoft.Extensions.Hosting.Abstractions 7.0.0 -> 10.0.12 (Halibut.TestProxy) - Microsoft.NET.Test.Sdk 17.13.0 -> 18.10.1 - Microsoft.VisualStudio.Threading 17.13.61 -> 18.7.23 - NSubstitute 5.3.0 -> 6.2.0 - NUnit 3.13.3 -> 3.14.0 (5.0.0 backed off, breaks Assert.ThrowsAsync usage) - NUnit3TestAdapter 5.0.0 -> 5.2.0 (kept on 5.x to match NUnit 3) - Serilog 4.2.0 -> 4.4.0 - Serilog.Extensions.Logging 9.0.1 -> 10.0.0 - System.Diagnostics.PerformanceCounter 6.0.1 -> 10.0.12 - System.ValueTuple 4.6.1 -> 4.6.2 (Halibut.TestUtils.Contracts) - Testcontainers 4.0.0 -> 4.16.0 - Octopus.Shellfish 0.2.2426 -> 0.2.3062 (Halibut.Tests.DotMemory) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Assent 3.x only supports net8.0+, which broke net48 restore (NU1202). Pin to 1.9.3, the newest version with a net48-compatible build. - System.IO.Pipelines 6.0.3 is a downgrade on net48 now that Microsoft.Extensions.Hosting 10 / Testcontainers pull in newer versions (NU1605 as error). Bump to 10.0.12. - Remove the explicit SSH.NET reference; Testcontainers 4.16 already depends on SSH.NET 2026.0.0. - Upgrade Octopus.OctoVersion.Tool to 1.1.79 and run its net10.0 build. 0.3.400 only ships net8.0 with no roll-forward, so it fails on CI agents that only have the .NET 10 runtime. - ExceptionContractFixture: accept the modern .NET SslStream EOF message, which has no leading space (only .NET Framework's does). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
Opus reviewAn automated code review by Claude Opus 5.5 has been carried out on this branch. Most of the migration was done by a smaller model, so the review was deliberately skeptical. What it checked
What it found and fixed (commit bbcf21a)
Notes (not changed)
Verification: builds with 0 warnings on net10.0 and net48, Verdict: ✅ Approve with notes. Recommend confirming that the Windows net48 test run passes in CI before merging. 🤖 Generated with Claude Code |
LukeButters
approved these changes
Oct 9, 2026
LukeButters
enabled auto-merge (squash)
October 9, 2026 02:01
LukeButters
disabled auto-merge
October 9, 2026 02:01
LukeButters
enabled auto-merge (squash)
October 9, 2026 02:01
- global.json SDK 10.0.100 -> 10.0.401 - NuGet.Packaging 6.12.1 -> 6.14.3 (GHSA-g4vj-cjjj-v7hg) - System.Security.Cryptography.Xml 9.0.0 -> 10.0.12 (GHSA-23rf-6693-g89p) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves the repository from .NET 8 to .NET 10.
Breaking change (deliberate)
The library now targets
net48;net10.0on Windows andnet10.0elsewhere.net8.0is dropped, so consumers on .NET 8/9 will need to move to .NET 10.net48is unchanged.Changes
global.jsonSDK 8.0.303 → 10.0.100; allnet8.0TFMs/conditions →net10.0Build.csadapted to Nuke 10 APIs (target namesCompileNet80/TestWindowsNet80kept so CI config doesn't change)Microsoft.CSharpandSystem.Reflection.DispatchProxy(in-box). net48 group unchanged. No other runtime dependency changes.WebSocketStreamfully qualified internally (ambiguous with the newSystem.Net.WebSockets.WebSocketStream). Consumers importing both namespaces will hit the same ambiguity.System.Interactive.Asyncis now net48-only, with a small test helper to avoid clashes with the in-boxSystem.Linq.AsyncEnumerableAssert.ThrowsAsyncchanges); Assent pinned to 1.9.3 (3.x dropped net48); FluentAssertions kept < 8 (licence)Testing
./build.sh --target CompileNet80succeedsTcpKeepAliveShouldBeSetOnPollingSocketsByDefault, which also fails onmainon macOS (unrelated).🤖 Generated with Claude Code