fix(blazor): migrate to ReactiveUI.Primitives.Blazor - #4445
Merged
Conversation
Scheduler migration: - Replace Reactive.Wasm with the lean and System.Reactive Primitives Blazor packages. - Use the WebAssembly sequencer/scheduler without creating an invalid renderer dispatcher. - Configure core, main-thread, task-pool, and Blazor platform services consistently. Validation coverage: - Add lean and reactive scheduler regression coverage. - Add a runnable Blazor WebAssembly scheduler example and include it in the solution. Dependency servicing: - Align ASP.NET, Microsoft.Extensions, System.Text.Json, and WebAssembly servicing versions with ReactiveUI.Primitives 7.2.0.
ChrisPulman
marked this pull request as ready for review
August 18, 2026 00:38
glennawatson
approved these changes
Aug 18, 2026
The Blazor WebAssembly example was rewritten from top-level statements to a named Program class with an explicit Main method. This keeps startup logic explicit and consistent with the generated host pattern while preserving the existing builder setup and app bootstrapping.
ChrisPulman
enabled auto-merge (squash)
August 18, 2026 00:58
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4445 +/- ##
==========================================
+ Coverage 93.89% 93.92% +0.03%
==========================================
Files 359 359
Lines 15104 15105 +1
Branches 1568 1568
==========================================
+ Hits 14182 14188 +6
+ Misses 679 674 -5
Partials 243 243 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What kind of change does this PR introduce?
This is a Blazor scheduler and dependency compatibility fix. It migrates the Blazor packages from
Reactive.WasmtoReactiveUI.Primitives.Blazorand its System.Reactive variant, aligns required servicing dependencies, and adds lean/reactive regression coverage plus a runnable WebAssembly example.closes #4430
What is the new behavior?
WasmSequencer.Defaultin the lean package andWasmScheduler.Defaultin the System.Reactive package.ComponentBase.InvokeAsync, avoiding an invalid process-wide renderer dispatcher.WithBlazorWasm()consistently configures core services, the WASM main scheduler, the task-pool scheduler, and Blazor platform registrations.Microsoft.Extensions.*,System.Text.Json, and WebAssembly package versions satisfy theReactiveUI.Primitives 7.2.0servicing floors.What is the current behavior?
The Blazor projects depend on the removed
Reactive.Wasmpackage and do not provide equivalent lean/reactive validation. After updating toReactiveUI.Primitives 7.2.0, lower central ASP.NET,System.Collections.Immutable, andSystem.Text.Jsonpins cause package-downgrade restore failures.Checklist
Additional information
Root-cause fixes were made without adding warning suppressions,
NoWarn, pragmas, warning demotion, or analyzer exclusions.Validation completed:
ReactiveUI.Blazor.Tests: 38/38 passedReactiveUI.Blazor.Tests.Reactive: 11/11 passedReactiveUI.Splat.Tests: 6/6 passedReactiveUI.Tests: 2,024/2,024 passedReactiveUI.Tests.Reactive: 2,024/2,024 passedReactiveUI.Builder.Tests: 187/187 passedBlazorReactiveUIBuilderExtensions: 100% line coverage in lean and reactive reportsgit diff --check: clean