Skip to content

build: update nuget package dependencies - #4426

Merged
glennawatson merged 3 commits into
mainfrom
chore/update-nuget-packages-and-editorconfig
Aug 2, 2026
Merged

build: update nuget package dependencies#4426
glennawatson merged 3 commits into
mainfrom
chore/update-nuget-packages-and-editorconfig

Conversation

@glennawatson

Copy link
Copy Markdown
Contributor

What kind of change does this PR introduce?

Build (dependency updates), plus the analyzer fallout they caused and one docs removal.

What is the new behavior?

  • Central package versions are current. Every PackageVersion in src/Directory.Packages.props and src/benchmarks/Directory.Packages.props was checked against nuget.org:
    • Sharp analyzer suite 3.38.1 -> 3.40.1
    • Third-party C# analyzer package moved to its current release
    • TUnit 1.61.38 -> 1.63.0
    • Microsoft.Testing.Platform.MSBuild 2.3.2 -> 2.3.3
  • The analyzer bump introduced SST1537, which flagged 15 sites where a comment sat between an expression-bodied member's => and its expression. Those comments have moved:
    • Substantive explanations now live in <remarks> on the member's XML docs, where they are actually discoverable.
    • Bare Act & Assert markers on single-expression tests are gone; they restated the one line beneath them.
  • CLAUDE.md no longer documents running the Windows test suites through Wine.

What is the current behavior?

  • The pinned versions were behind on the four packages above.
  • The 15 comment sites failed the build once the newer analyzers were in place.
  • CLAUDE.md told agents to run WPF and WinForms tests under Wine on Linux. Wine does not enforce WPF Dispatcher thread affinity, so results for the marshalling and background-thread tests were not trustworthy in the one place a Windows host mattered most.

What might this PR break?

  • No product code changed. The diff is limited to package versions, test-project comments, and CLAUDE.md.
  • Framework-aligned pins were deliberately left alone. Entries like AspNetVersion per TFM, MicrosoftExtensionsVersion and SystemTextJsonVersion are each already the newest release inside their own major.minor band, so bumping them to the newest overall version would have broken TFM alignment.

Checklist

  • I have read the Contribute guide
  • Tests have been added or updated (for bug fixes / features)
  • Docs have been added or updated (for bug fixes / features)
  • Changes target the main branch
  • PR title follows Conventional Commits

Additional information

Version discovery was done with a throwaway single-file dotnet run tool built on NuGet.Protocol, querying FindPackageByIdResource.GetAllVersionsAsync for every declared package. It resolves $(Property) indirections back to their PropertyGroup definitions and compares each conditional value inside its own major.minor band, so TFM-aligned pins are not reported as stale against an unrelated major.

Verified on Linux:

  • dotnet build reactiveui.slnx -c Release -t:Rebuild - 0 warnings, 0 errors. This includes the Windows target frameworks, which compile here via EnableWindowsTargeting.
  • 2326 tests pass across ReactiveUI.Tests, ReactiveUI.Tests.Reactive, Testing.Tests, Builder.Tests, Routing.Tests (+ .Reactive), Splat.Tests, Blazor.Tests and AOT.Tests.

Not verified locally, left to CI on windows-latest: execution of the WPF, WinForms and WinUI suites. ReactiveUI.NonParallel.Mobile.Tests also needs iOS workloads that are not installed on this machine.

- Bump the Sharp analyzer suite 3.38.1 -> 3.40.1.
- Bump the third-party C# analyzer package to its current release.
- Bump TUnit 1.61.38 -> 1.63.0 and Microsoft.Testing.Platform.MSBuild 2.3.2 -> 2.3.3.
- Framework-aligned pins are unchanged; each is already newest in its own major.minor band.
- SST1537 and SST1515 both fire on a comment sitting between '=>' and its
  expression, and SST2275 blocks the obvious block-body escape.
- Fold the substantive explanations into <remarks> on the member's XML docs.
- Drop bare "Act & Assert" markers from single-expression tests; they add nothing.
- Wine does not enforce WPF Dispatcher thread affinity, so its results were
  never trustworthy for the tests that most needed a Windows host.
- Windows verification belongs on CI, or a real Windows guest.
@sonarqubecloud

sonarqubecloud Bot commented Aug 2, 2026

Copy link
Copy Markdown

@codecov

codecov Bot commented Aug 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.35%. Comparing base (07989b5) to head (4a57bff).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4426   +/-   ##
=======================================
  Coverage   93.35%   93.35%           
=======================================
  Files         347      347           
  Lines       14921    14921           
  Branches     1553     1553           
=======================================
  Hits        13929    13929           
  Misses        731      731           
  Partials      261      261           

☔ View full report in Codecov by Harness.
📢 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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@glennawatson
glennawatson merged commit ad4b00c into main Aug 2, 2026
13 checks passed
@glennawatson
glennawatson deleted the chore/update-nuget-packages-and-editorconfig branch August 2, 2026 06:17
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.

1 participant