Skip to content

feat: migrate hosting packages to ReactiveUI.Primitives#256

Merged
ChrisPulman merged 5 commits into
mainfrom
CP_migrate-reactiveui-primitives-net11
Jul 5, 2026
Merged

feat: migrate hosting packages to ReactiveUI.Primitives#256
ChrisPulman merged 5 commits into
mainfrom
CP_migrate-reactiveui-primitives-net11

Conversation

@ChrisPulman

Copy link
Copy Markdown
Member

What kind of change does this PR introduce?

Feature and maintenance migration.

This migrates the solution to Central Package Management, ReactiveUI.Primitives-based package references, StyleSharp.Analyzers 3.16.0, and net11.0/net11.0-* target frameworks. It also fixes analyzer findings, updates examples, and expands TUnit coverage.

What is the new behavior?

  • Package versions are centralized in Directory.Packages.props.
  • Projects target net11.0 and relevant net11.0 platform TFMs where applicable.
  • Direct System.Reactive source/project references are removed in favor of ReactiveUI.Primitives APIs and aliases.
  • ReactiveUI bridge projects use the updated ReactiveUI 24 / ReactiveUI.Avalonia 12 beta package surface.
  • The ReactiveAvalonia example now renders NuGet search result rows correctly after a search.
  • Plugin and single-instance behavior have additional TUnit coverage.

What is the current behavior?

  • Package versions are spread across project files.
  • Projects do not include net11.0 target frameworks.
  • The migrated ReactiveAvalonia example could perform a search while rendering blank item views because the item template did not pass the result view model into the child view.
  • Coverage around plugin loading, hosted service lifecycle, and single-instance behavior is lower.

Checklist

  • 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

Validation performed:

  • dotnet build Extensions.Hosting.slnx -c Release --no-restore /m:1 /p:BuildInParallel=false passed with 0 warnings and 0 errors before the final ReactiveAvalonia template fix.
  • dotnet build examples/Extensions.Hosting.ReactiveAvalonia.Example/Extensions.Hosting.ReactiveAvalonia.Example.csproj -c Release --no-restore /m:1 /p:BuildInParallel=false passed with 0 warnings and 0 errors after the template fix.
  • dotnet test --solution Extensions.Hosting.slnx -c Release passed 194/194. The solution test command still emits unrelated analyzer warnings from other projects.
  • Coverage run passed 194/194 with merged MTP coverage at 84.87% line and 75.22% branch.
  • rg found no direct System.Reactive references outside bin/obj.
  • Launched the ReactiveAvalonia sample, searched reactiveui, and visually confirmed populated rows with icons, titles, descriptions, and Open buttons.

Package management and targets:

- Add Central Package Management with StyleSharp.Analyzers 3.16.0, ReactiveUI.Primitives 6.0.0, ReactiveUI 24.0.0-beta.3, ReactiveUI.Avalonia 12.1.0-beta.1, and net11 preview package versions.

- Expand projects to net11.0 and relevant net11.0 platform TFMs.

ReactiveUI.Primitives migration:

- Remove direct System.Reactive source and project usage in favor of ReactiveUI.Primitives aliases and APIs.

- Update hosted service, platform, plugin, ReactiveUI bridge, and example code for the new primitives surface.

Analyzer and quality updates:

- Resolve StyleSharp/Roslyn analyzer findings without suppressions and keep project documentation/XML comments aligned.

- Convert repository guidance to AGENTS.md and include it in the solution-oriented update.

Tests and validation:

- Add focused TUnit coverage for plugin loading, hosted service lifecycle, plugin base registration, assembly loading, and single-instance behavior.

- Fix the ReactiveAvalonia example result template so searched NuGet packages render in the list.
@ChrisPulman ChrisPulman marked this pull request as ready for review July 5, 2026 15:49
Seal the NUKE Build type so CA1852 is satisfied when the build project is compiled in CI.

Add a FromConfiguration conversion alternative for Configuration to satisfy CA2225 without suppressing analyzer diagnostics.

Verification: dotnet build build/_build.csproj -c Release /warnaserror; dotnet build src/Extensions.Hosting.slnx -c Release --no-restore /m:1 /p:BuildInParallel=false.
Add 11.0.x to setup-dotnet in BuildOnly and BuildDeploy so CI can compile the new net11.0 target frameworks.

Verification: git diff --check.
Remove setup-dotnet package caching now that the workflows already use a dedicated actions/cache step for NuGet packages and NUKE temp data.

This prevents the setup-dotnet post step from spending excessive time saving duplicate cache data after successful build and test steps.

Verification: git diff --check.
@ChrisPulman ChrisPulman merged commit 53a01c6 into main Jul 5, 2026
1 check passed
@ChrisPulman ChrisPulman deleted the CP_migrate-reactiveui-primitives-net11 branch July 5, 2026 17:06
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