Skip to content

Conversation

@samtrion
Copy link
Member

@samtrion samtrion commented Dec 3, 2025

Summary by CodeRabbit

  • Chores
    • Added .NET 10.0 target framework support.
    • Updated build configuration for improved project file handling.
    • Upgraded code analysis tools to the latest version.
    • Refined test infrastructure and data handling patterns.

✏️ Tip: You can customize this high-level summary in your review settings.

@samtrion samtrion self-assigned this Dec 3, 2025
Copilot AI review requested due to automatic review settings December 3, 2025 14:24
@samtrion samtrion requested a review from a team as a code owner December 3, 2025 14:24
@samtrion samtrion requested a review from benwirren December 3, 2025 14:24
@samtrion samtrion added state:ready for merge Indicates that a pull request has been reviewed and approved, and is ready to be merged into the mai type:feature Indicates a new feature or enhancement to be added. labels Dec 3, 2025
@coderabbitai
Copy link

coderabbitai bot commented Dec 3, 2025

Walkthrough

The pull request updates project configuration files to add support for .slnx files in editor settings, extend target frameworks to include net10.0 while removing GitVersion workarounds, replace GitVersion.MsBuild with an unconditional SonarAnalyzer.CSharp package reference, and restructure test data in a constraint test file by wrapping lambda expressions in an additional layer.

Changes

Cohort / File(s) Summary
Build Configuration
.editorconfig, Directory.Build.props, Directory.Packages.props
.editorconfig: Adds slnx pattern to XML project files glob for editor formatting rules. Directory.Build.props: Extends target frameworks from net8.0;net9.0 to net8.0;net9.0;net10.0 and removes GitVersionTargetFramework workaround property. Directory.Packages.props: Removes GitVersion.MsBuild package reference; replaces conditional SonarAnalyzer.CSharp reference with unconditional SonarAnalyzer.CSharp Version 10.16.1.129956.
Test Data Restructuring
tests/NetEvolve.FluentValue.Tests.Unit/ConstraintTests.cs
Changes ChainedInvalidOperationsData method signature from Func<IConstraint>[] to IEnumerable<Func<Func<IConstraint>>>, wrapping each constraint-producing lambda in an additional lambda layer (e.g., () => Value.Not.Not becomes () => () => Value.Not.Not). Removes pragma warning suppressions (TUnit0046).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • ConstraintTests.cs: Pay close attention to the method signature change and the double-lambda wrapping pattern to ensure test invocation logic correctly handles the new data structure and that no test semantics are altered.
  • Directory.Packages.props: Verify that transitioning SonarAnalyzer.CSharp to unconditional (removing the BuildingInsideVisualStudio condition) does not introduce unintended package conflicts or alter build behavior in different environments.

Poem

🐰 ✨ A rabbit hops through frameworks new,
Net10 joins the trusty crew,
SonarAnalyzer takes its place so bright,
While slnx files find their right,
Lambda wraps in loops so tight! 🎉

Pre-merge checks

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: .NET 10 Support' accurately summarizes the main objective of the pull request, which is to add .NET 10 support by updating target frameworks in Directory.Build.props.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link

codecov bot commented Dec 3, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.54%. Comparing base (75f35d0) to head (34419fb).
⚠️ Report is 71 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #226   +/-   ##
=======================================
  Coverage   98.54%   98.54%           
=======================================
  Files          22       22           
  Lines         274      274           
  Branches       43       43           
=======================================
  Hits          270      270           
  Misses          1        1           
  Partials        3        3           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
tests/NetEvolve.FluentValue.Tests.Unit/ConstraintTests.cs (1)

42-51: Consider consistency with ChainedInvalidOperationsData pattern.

This data provider returns Func<IConstraint>[] while ChainedInvalidOperationsData now returns IEnumerable<Func<Func<IConstraint>>>. If the double-wrapping pattern was needed to resolve TUnit0046 warnings, verify whether this provider also needs the same treatment, or document why the patterns differ.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 55046c1 and 34419fb.

📒 Files selected for processing (4)
  • .editorconfig (1 hunks)
  • Directory.Build.props (1 hunks)
  • Directory.Packages.props (1 hunks)
  • tests/NetEvolve.FluentValue.Tests.Unit/ConstraintTests.cs (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Build & Tests / Build Solution / Build .NET solution
  • GitHub Check: Agent
  • GitHub Check: CodeQL analysis (csharp)
🔇 Additional comments (4)
.editorconfig (1)

44-46: LGTM! Correct addition of .slnx to XML project file formatting rules.

The .slnx format is the new XML-based solution file format, and including it with other XML project files ensures consistent 2-space indentation.

Directory.Packages.props (1)

13-13: LGTM! SonarAnalyzer.CSharp is now unconditionally included.

Making the analyzer unconditional ensures consistent code analysis across all build environments (local and CI), improving code quality coverage.

Directory.Build.props (1)

12-13: Target framework extension to .NET 10 looks good.

Adding net10.0 to both NetEvolve_ProjectTargetFrameworks and NetEvolve_TestTargetFrameworks follows the established pattern. The build pipeline uses a shared workflow that should handle the .NET 10 SDK setup, so ensure your organization's pipeline template includes the necessary .NET 10 runtime for building and testing.

tests/NetEvolve.FluentValue.Tests.Unit/ConstraintTests.cs (1)

11-17: The type signature is correct per TUnit's MethodDataSource pattern requirements.

The apparent type mismatch is intentional and correct. When a test parameter is Func<IConstraint>, the MethodDataSource must return IEnumerable<Func<Func<IConstraint>>>. TUnit automatically unwraps one layer of Func at runtime, calling the inner function to produce the value passed to the test. The removal of #pragma warning disable TUnit0046 confirms this pattern satisfies TUnit's analyzer; the refactoring is sound.

@samtrion samtrion merged commit 7e20fea into main Dec 3, 2025
18 checks passed
@samtrion samtrion deleted the feature/dotnet-10 branch December 3, 2025 14:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state:ready for merge Indicates that a pull request has been reviewed and approved, and is ready to be merged into the mai type:feature Indicates a new feature or enhancement to be added.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants