Skip to content

Conversation

@lillo42
Copy link
Contributor

@lillo42 lillo42 commented Oct 7, 2025

Add support for .NET v10

@lillo42 lillo42 added 3 - Done dependencies Pull requests that update a dependency file .NET Pull requests that update .net code V10.X labels Oct 7, 2025
codescene-delta-analysis[bot]

This comment was marked as outdated.

@lillo42 lillo42 changed the title feat: Add support to .NET v10 [WIP] feat: Add support to .NET v10 Oct 7, 2025
codescene-delta-analysis[bot]

This comment was marked as outdated.

@lillo42 lillo42 added the Draft This is a work in progress label Oct 9, 2025
# Conflicts:
#	Directory.Packages.props
#	src/Paramore.Brighter.Locking.Firestore/Paramore.Brighter.Locking.Firestore.csproj
#	src/Paramore.Brighter.MySql.EntityFrameworkCore/Paramore.Brighter.MySql.EntityFrameworkCore.csproj
#	tests/Paramore.Brighter.AWS.Tests/Paramore.Brighter.AWS.Tests.csproj
#	tests/Paramore.Brighter.AWS.V4.Tests/Paramore.Brighter.AWS.V4.Tests.csproj
#	tests/Paramore.Brighter.AWSScheduler.Tests/Paramore.Brighter.AWSScheduler.Tests.csproj
#	tests/Paramore.Brighter.AWSScheduler.V4.Tests/Paramore.Brighter.AWSScheduler.V4.Tests.csproj
#	tests/Paramore.Brighter.Azure.Tests/Paramore.Brighter.Azure.Tests.csproj
#	tests/Paramore.Brighter.AzureServiceBus.Tests/Paramore.Brighter.AzureServiceBus.Tests.csproj
#	tests/Paramore.Brighter.Core.Tests/Paramore.Brighter.Core.Tests.csproj
#	tests/Paramore.Brighter.DynamoDB.Tests/Paramore.Brighter.DynamoDB.Tests.csproj
#	tests/Paramore.Brighter.DynamoDB.V4.Tests/Paramore.Brighter.DynamoDB.V4.Tests.csproj
#	tests/Paramore.Brighter.Extensions.Tests/Paramore.Brighter.Extensions.Tests.csproj
#	tests/Paramore.Brighter.Gcp.Tests/Paramore.Brighter.Gcp.Tests.csproj
#	tests/Paramore.Brighter.Hangfire.Tests/Paramore.Brighter.Hangfire.Tests.csproj
#	tests/Paramore.Brighter.InMemory.Tests/Paramore.Brighter.InMemory.Tests.csproj
#	tests/Paramore.Brighter.Kafka.Tests/Paramore.Brighter.Kafka.Tests.csproj
#	tests/Paramore.Brighter.MQTT.Tests/Paramore.Brighter.MQTT.Tests.csproj
#	tests/Paramore.Brighter.MSSQL.Tests/Paramore.Brighter.MSSQL.Tests.csproj
#	tests/Paramore.Brighter.MongoDb.Tests/Paramore.Brighter.MongoDb.Tests.csproj
#	tests/Paramore.Brighter.MySQL.Tests/Paramore.Brighter.MySQL.Tests.csproj
#	tests/Paramore.Brighter.PostgresSQL.Tests/Paramore.Brighter.PostgresSQL.Tests.csproj
#	tests/Paramore.Brighter.Quartz.Tests/Paramore.Brighter.Quartz.Tests.csproj
#	tests/Paramore.Brighter.RMQ.Async.Tests/Paramore.Brighter.RMQ.Async.Tests.csproj
#	tests/Paramore.Brighter.RMQ.Sync.Tests/Paramore.Brighter.RMQ.Sync.Tests.csproj
#	tests/Paramore.Brighter.Redis.Tests/Paramore.Brighter.Redis.Tests.csproj
#	tests/Paramore.Brighter.RocketMQ.Tests/Paramore.Brighter.RocketMQ.Tests/Paramore.Brighter.RocketMQ.Tests.csproj
#	tests/Paramore.Brighter.Sqlite.Tests/Paramore.Brighter.Sqlite.Tests.csproj
#	tests/Paramore.Brighter.Transforms.Adaptors.Tests/Paramore.Brighter.Transforms.Adaptors.Tests.csproj
Copy link

@codescene-delta-analysis codescene-delta-analysis bot left a comment

Choose a reason for hiding this comment

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

No application code in the PR — skipped Code Health checks.

See analysis details in CodeScene

Quality Gate Profile: Clean Code Collective
Want more control? Customize Code Health rules or catch issues early with our IDE extension and CLI tool.

@claude
Copy link

claude bot commented Oct 20, 2025

Pull Request Review: .NET 10 Support

Thank you for this PR! Adding .NET 10 support is a significant undertaking. Here's my comprehensive review:


Positive Aspects

1. Comprehensive Scope

  • All 80 changed files have been updated systematically
  • Samples, tests, and source projects all migrated consistently
  • CI/CD workflow properly updated for .NET 10 preview

2. Good Architectural Decisions

  • Using BrighterTargetFramework property to centralize target framework management is excellent
  • Conditional package references based on TargetFramework maintains backward compatibility
  • Multi-targeting approach (netstandard2.0;net8.0;net9.0;net10.0) allows gradual adoption

3. Package Management

  • Properly using centralized package management via Directory.Packages.props
  • Preview packages (rc.2) are appropriately versioned for .NET 10

🐛 Critical Issues

1. Typo in System.Text.Json Package References (Lines 138 & 159 in Directory.Packages.props)

<!-- CURRENT (INCORRECT) -->
<PackageVersion Include="System.Text.Json" ersion="9.0.9" />
<PackageVersion Include="System.Text.Json" ersion="10.0.0-rc.2.25502.107" />

<!-- SHOULD BE -->
<PackageVersion Include="System.Text.Json" Version="9.0.9" />
<PackageVersion Include="System.Text.Json" Version="10.0.0-rc.2.25502.107" />

Missing 'V' in 'Version' attribute - This will cause build failures.

Location: Directory.Packages.props:138 and Directory.Packages.props:159


⚠️ Concerns & Questions

2. CI/CD Changes May Break Existing .NET 8/9 Testing

The workflow now only installs .NET 10:

dotnet-version: '10.x.x'
dotnet-quality: 'preview'

Problem: If the codebase still multi-targets net8.0 and net9.0 (which it does according to src/Directory.Build.props:32), you need those SDKs installed to build and test those target frameworks.

Recommendation: Either:

  • Keep multi-SDK installation:
    dotnet-version: |
      8.0.x
      9.0.x
      10.x.x
    dotnet-quality: 'preview'
  • OR document that you're dropping .NET 8/9 from CI (though source still targets them)

3. Pomelo.EntityFrameworkCore.MySql Not Updated for .NET 10

Line 189 in Directory.Packages.props:

<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0" />

While other EF Core packages are using 10.0.0-rc.2, Pomelo is still at 9.0.0. This might cause compatibility issues if EF Core 10 has breaking changes.

Check: Does Pomelo 9.0.0 work with EF Core 10.0.0-rc.2? You may need to watch for a Pomelo preview release.

4. Microsoft.Extensions.TimeProvider.Testing Version Discrepancy

Line 158:

<PackageVersion Include="Microsoft.Extensions.TimeProvider.Testing" Version="9.9.0" />

This is using version 9.9.0 for .NET 10, while other Microsoft.Extensions.* packages are at 10.0.0-rc.2. Is there a reason, or is a 10.0.0 preview not available yet?

5. Assembly Version Updated to 10.0.0

src/Directory.Build.props:26-29 shows assembly versions updated to 10.0.0. This is a breaking semantic version change.

Questions:

  • Is this intentional for .NET 10 support, or should this be a minor/patch version?
  • Are there breaking API changes that warrant a major version bump?
  • Should this be coordinated with the .NET 10 release timeline?

6. [WIP] Tag - What's Remaining?

The PR is marked as [WIP]. What tasks remain before this is ready for merge?

Suggested checklist:

  • Fix System.Text.Json typos
  • Verify all tests pass on .NET 10
  • Resolve CI/CD multi-targeting concerns
  • Verify third-party package compatibility (Pomelo, etc.)
  • Update documentation/release notes
  • Performance testing on .NET 10

📋 Best Practices Alignment

✅ Follows Repository Guidelines:

  • Central package management via Directory.Packages.props
  • Consistent target framework management ✓
  • All Microsoft.Extensions.* packages aligned within each TFM ✓

⚠️ Potential Concerns:

  • Mixing preview (.NET 10 RC) with stable packages (some dependencies) - acceptable for preview work but note for production
  • No test coverage changes visible - are there new tests for .NET 10-specific features?

🔒 Security & Performance

  • No security concerns identified - this is infrastructure/build configuration
  • Performance considerations: .NET 10 typically brings performance improvements; no regressions expected
  • Preview/RC quality means thorough testing needed before production use

📝 Recommendations

High Priority:

  1. Fix the System.Text.Json typos immediately - blocking issue
  2. Clarify CI/CD multi-targeting strategy - may cause build failures
  3. Verify Pomelo MySQL provider compatibility

Medium Priority:

  1. Document what's remaining for WIP → ready
  2. Consider adding CI job that tests all target frameworks (not just net10.0)
  3. Update CHANGELOG/release notes for .NET 10 support

Nice to Have:

  1. Add smoke tests specifically targeting .NET 10 features if applicable
  2. Document minimum SDK version required for contributors

🎯 Summary

This is a well-structured PR for .NET 10 support with good architectural decisions. The main blockers are:

  1. Critical typo in package references (easy fix)
  2. CI/CD strategy needs clarification

Once these are addressed, the PR should be in good shape! The systematic approach to updating all projects is commendable.

Overall Assessment: ⚠️ Needs fixes before merge, but solid foundation


Let me know if you have questions about any of these points! Happy to discuss the multi-targeting strategy or help validate package compatibility.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2 - In Progress dependencies Pull requests that update a dependency file Draft This is a work in progress .NET Pull requests that update .net code V10.X

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants