Skip to content

Conversation

@thomhurst
Copy link
Owner

This PR contains the following updates:

Package Type Update Change
dotnet-sdk dotnet-sdk major 9.0.307 -> 10.0.100

Release Notes

dotnet/sdk (dotnet-sdk)

v10.0.100: .NET 10.0.0

Compare Source

Release

What's Changed

Full Changelog: dotnet/sdk@v10.0.100-rc.2.25502.107...v10.0.100


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@thomhurst thomhurst added dependencies Pull requests that update a dependency file MAJOR renovate-bot labels Nov 11, 2025
@thomhurst thomhurst enabled auto-merge (squash) November 11, 2025 16:10
@claude
Copy link
Contributor

claude bot commented Nov 11, 2025

Claude finished @thomhurst's task —— View job


PR Review: .NET SDK Update to v10

Todo List:

  • Read the changed files to understand the impact
  • Check repository guidelines in CLAUDE.md
  • Analyze compatibility with .NET 10
  • Review for potential breaking changes
  • Check project target frameworks
  • Provide comprehensive review feedback
  • Test recommendations

📋 Code Review Summary

This Renovate PR updates the .NET SDK from 9.0.307 to 10.0.100, which is a major version upgrade to .NET 10. Here's my comprehensive review:

✅ Positive Findings

  1. Already .NET 10 Ready: The TUnit codebase is already targeting .NET 10 across multiple projects:

    • Library.props:3 - Core libraries target netstandard2.0;net8.0;net9.0;net10.0
    • TestProject.props:12 - Test projects target net472;net8.0;net9.0;net10.0
    • Multiple projects already have explicit .NET 10 support
  2. Microsoft.Testing.Platform Aligned: The global.json correctly specifies "runner": "Microsoft.Testing.Platform" which aligns with TUnit's Rule 3 (No VSTest).

  3. Proper SDK Configuration: The global.json uses:

    • "rollForward": "latestMajor" - Allows forward compatibility
    • "allowPrerelease": true - Appropriate for staying current with .NET

⚠️ Areas for Validation

  1. AOT Compatibility: TUnit has strict AOT/trimming requirements (Rule 5). The .NET 10 update may introduce new AOT warnings or breaking changes that need validation.

  2. Source Generator Compatibility: TUnit heavily relies on source generators for both modes. .NET 10 includes Roslyn updates that could affect source generation.

  3. Performance Impact: Given TUnit's performance-first philosophy (Rule 4), the .NET 10 runtime changes should be benchmarked.

🔍 Specific Concerns

  1. Breaking Changes in .NET 10: Major version updates can introduce breaking changes. Key areas to watch:

    • Reflection API changes (impacts dual-mode implementation)
    • System.Text.Json updates (used extensively)
    • MSBuild/SDK tooling changes
  2. Roslyn Version Compatibility: TUnit supports multiple Roslyn versions (Roslyn414, Roslyn44, Roslyn47). Ensure .NET 10 SDK works with all targeted Roslyn versions.

  3. Testing Platform Changes: Microsoft.Testing.Platform may have updates in .NET 10 that could affect TUnit's integration.

📝 Security Assessment

  • Low Risk: This is a standard Microsoft SDK update
  • No Code Changes: Only configuration file update
  • Dependency Source: Official Microsoft release

🧪 Test Coverage Recommendations

Given TUnit's critical rules, these tests are mandatory before merge:

  1. Snapshot Tests (Rule 2):

    dotnet test TUnit.Core.SourceGenerator.Tests
    dotnet test TUnit.PublicAPI
  2. Dual-Mode Validation (Rule 1):

    # Test both source-generated and reflection modes
    dotnet test TUnit.Engine.Tests  
    dotnet test TUnit.TestProject -- --treenode-filter "/*/*/*/*[Category!=Performance]"
  3. AOT Compatibility (Rule 5):

    cd TUnit.TestProject
    dotnet publish -c Release -p:PublishAot=true --use-current-runtime
  4. Performance Validation (Rule 4):

    cd TUnit.Performance.Tests
    dotnet run -c Release --framework net10.0

💡 Performance Considerations

  • .NET 10 includes performance improvements that should benefit TUnit
  • Monitor for any regression in hot paths (test discovery, execution)
  • Benchmark before/after if possible

🚀 Recommendations

  1. ✅ Approve - The codebase is well-prepared for .NET 10
  2. Run full test suite focusing on the mandatory tests above
  3. Monitor CI for any unexpected failures
  4. Validate AOT specifically, as this is critical for TUnit

📊 Risk Assessment: LOW

The TUnit project is exceptionally well-prepared for this upgrade:

  • Already multi-targeting .NET 10
  • Strong testing infrastructure in place
  • Clear upgrade validation procedures documented
  • No code changes required

This appears to be a safe update that will bring TUnit the latest .NET 10 performance and feature improvements.

@thomhurst thomhurst merged commit 14f0ad8 into main Nov 11, 2025
12 of 13 checks passed
@thomhurst thomhurst deleted the renovate/dotnet-sdk-10.x branch November 11, 2025 16:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file MAJOR renovate-bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants