feat(avalonia): add scheduler integration packages - #145
Merged
Conversation
Packages: - add lean ISequencer and System.Reactive AvaloniaScheduler integrations - bind ready and delayed work to the selected dispatcher and priority - add central Avalonia package versions, target frameworks, solution entries, and API baselines Tests: - add Avalonia.Headless TUnit suites for net8.0 through net11.0 - cover singleton configuration, dispatch threading, delays, validation, and cancellation Documentation: - add package badges, selection guidance, scheduler behavior, migration commands, and repository layout entries - exclude paired platform implementations from Sonar duplication analysis
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #145 +/- ##
==========================================
+ Coverage 98.10% 98.12% +0.01%
==========================================
Files 676 678 +2
Lines 20940 20983 +43
Branches 2528 2531 +3
==========================================
+ Hits 20544 20589 +45
+ Misses 197 195 -2
Partials 199 199 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Package catalog:\n- synchronize README and skill metadata with all 20 packable projects\n- document the standalone R3 bridge analyzer package\n- identify Extensions.Core as source-only implementation code\n\nFramework guidance:\n- correct the current MAUI, Avalonia, platform, and generator target frameworks\n- align package layering and dependency descriptions with evaluated project files
glennawatson
approved these changes
Jul 25, 2026
Remove the unintended Avalonia entries from sonarCpdExclusions so the new packages remain subject to the repository's normal SonarCloud duplication checks. The workflow now matches current main.
ChrisPulman
marked this pull request as ready for review
July 25, 2026 15:39
|
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?
A feature addition that migrates Avalonia dispatcher scheduling into paired lean and System.Reactive integration packages.
What is the new behavior?
ReactiveUI.Primitives.AvaloniawithReactiveUI.Primitives.Concurrency.AvaloniaSchedulerimplementingISequencerthrough the shared coalescing dispatch state.ReactiveUI.Primitives.Avalonia.ReactivewithReactiveUI.Primitives.Reactive.Concurrency.AvaloniaSchedulerimplementing the System.Reactive scheduler surface throughCoalescingDispatchScheduler.AvaloniaScheduler.Instance,Dispatcher, and configurableDispatcherPriority, while binding both posted and delayed work to the selected Avalonia dispatcher.What is the current behavior?
Avalonia scheduling lives in the ReactiveUI.Avalonia repository and is not available as a standalone ReactiveUI.Primitives lean or System.Reactive integration package.
Checklist
Additional information
Validation completed locally:
AvaloniaSchedulerclasses.Ready work follows the established Primitives coalescing sequencer pattern. This intentionally replaces the legacy scheduler's inline zero-delay execution with queued/coalesced dispatcher execution.