Releases: reactiveui/ReactiveUI
Release list
24.0.0
ReactiveUI 24.0.0
ReactiveUI 24 is a major release. ReactiveUI now runs on the allocation-conscious ReactiveUI.Primitives engine, with System.Reactive becoming optional. This changes public type identities and, for the System.Reactive-compatible distribution, namespaces, so review the migration path before upgrading.
Choose your distribution
Both distributions use the same ReactiveUI.Primitives engine, custom schedulers, and optimized sinks. Choose one package family consistently based on the reactive types you want in your public API.
| You want | Packages | Namespace | Public reactive types |
|---|---|---|---|
| The new lighter default | ReactiveUI, ReactiveUI.WPF, ReactiveUI.WinForms, ReactiveUI.WinUI, ReactiveUI.Maui, ReactiveUI.Blazor, ReactiveUI.AndroidX, etc. |
ReactiveUI |
RxVoid, ISequencer, Signal<T> |
| ReactiveUI APIs using System.Reactive schedulers | ReactiveUI.Reactive, ReactiveUI.WPF.Reactive, ReactiveUI.WinForms.Reactive, ReactiveUI.WinUI.Reactive, ReactiveUI.Maui.Reactive, ReactiveUI.Blazor.Reactive, etc. |
Primarily ReactiveUI.Reactive and ReactiveUI.Reactive.Builder |
Unit, IScheduler, Subject<T> |
New default: ReactiveUI.Primitives types
Keeping the existing package names selects the new default distribution. The normal ReactiveUI namespaces remain, but these public reactive types change:
System.Reactive.Concurrency.ISchedulerbecomesReactiveUI.Primitives.Concurrency.ISequencer.System.Reactive.UnitbecomesReactiveUI.Primitives.RxVoid.Subject<T>,BehaviorSubject<T>, andReplaySubject<T>becomeSignal<T>,BehaviorSignal<T>, andReplaySignal<T>.- System.Reactive is no longer a transitive dependency. ReactiveUI.Primitives provides Rx-style operators over
IObservable<T>, so the default distribution does not require System.Reactive for observable composition. System.Reactive can still coexist with the default packages; choose the.Reactivefamily when you specifically want ReactiveUI APIs to use System.Reactive'sISchedulercompatibility seam (together withUnitand subject interop types).
Use System.Reactive schedulers with ReactiveUI: choose the .Reactive packages
Use the .Reactive packages when you want ReactiveUI itself to accept and expose System.Reactive's IScheduler types. Merely referencing or using System.Reactive elsewhere does not require this distribution. Replace each ReactiveUI package with its matching .Reactive package; for example, use ReactiveUI.Reactive with ReactiveUI.WPF.Reactive instead of ReactiveUI with ReactiveUI.WPF.
The compatibility packages intentionally have distinct type identities. Most ReactiveUI APIs move from ReactiveUI to ReactiveUI.Reactive, builder APIs move to ReactiveUI.Reactive.Builder, and platform XAML/CLR namespace mappings may also need updating. This namespace change is part of why version 24 is a major release.
The .Reactive packages are not the old implementation: they use the same Primitives engine and performance work as the default packages, while exposing System.Reactive 7 types at the interop boundary.
Other changes to know about
- DynamicData integration moved out of core. Core routing types such as
RoutingState,IScreen, andRoutedViewHostremain in the main package. DynamicData-backed routing, change-set, collection, and auto-persist helpers now live inReactiveUI.Routing, orReactiveUI.Routing.Reactivefor the System.Reactive distribution. - Hot MVVM paths are substantially faster. Representative .NET 10 benchmarks showed roughly 3–4× faster
WhenAnyValue/ToPropertysubscription and emission, with 5–13× less allocation. Both distributions benefit because both run on Primitives. - AOT-friendly view activation was added. New
IActivatableView.WhenActivatedoverloads accept anIObservable<object?>ViewModel-change source and avoid reflection and trim warnings. - .NET 11 preview targets were added and aligned. MAUI now targets supported .NET 10+ releases; the end-of-life .NET 9 MAUI targets were removed. Existing .NET 9 Windows/WinUI targets remain.
- Several correctness fixes are included.
WhenAnyValueno longer loses a concurrent first change, WPF main-thread scheduling now dispatches correctly from background threads, suspension state is materialized before shutdown persistence, interaction task handlers resume on the captured UI context, and pureObservableMixinshelpers work before builder initialization. - Platform fixes are included. WinForms design-mode detection works on .NET Core and for nested controls. The WPF
.Reactivepackage now resolves its XAML namespace and ships the default theme required byViewModelViewHost. - Two internal-looking public sink types were removed. Consumers of
ReactiveUI.Internal.SingleValueObservable<T>orSyncExecuteObservable<T>should use the equivalentReactiveUI.Primitives.Advancedsignal types (ReturnSignal<T>andStartSignal<T>).
🗞️ What's Changed
💥 Breaking Changes
- 6433b00 refactor!: drop duplicate sinks for Primitives 5.7.0 concretes (#4387) @glennawatson
✨ Features
- 42b4cce feat: re-platform ReactiveUI onto ReactiveUI.Primitives — leaner, faster, System.Reactive optional (#4382) @glennawatson
- 2f34b56 feat: add AOT-friendly WhenActivated for IActivatableView (#4413) @glennawatson
♻️ Refactoring
- ff88f13 refactor(winui): share routed host setup (#4419) @glennawatson
- 873e9c3 refactor: consolidate duplicated reactive plumbing (#4418) @glennawatson
🐛 Fixes
- fed5931 fix: WaitForDispatcherScheduler marshals to UI thread from non-UI threads (fixes #4354) (#4361) @ChrisPulman @Copilot
- c18940e fix: use ObservableMixins helpers before RxAppBuilder initialization (#4410) @glennawatson
- 5a82114 fix(release): use empty MinVer tag prefix to match unprefixed tags @glennawatson
- 4a4efcf fix(wpf): resolve XAML namespace under REACTIVE_SHIM in AutoDataTemplateBindingHook (#4404) @deeferentleeg
- 9f1b734 fix(wpf): ship a default theme in ReactiveUI.WPF.Reactive so ViewModelViewHost renders (#4412) @glennawatson
- 2eb48f2 fix: resume interaction task handlers on the captured context (#4409) @glennawatson
- e5dbcfe fix: Winforms design mode detection regressed (#4369) @xackus
- d9133b6 fix: support .NET Core in winforms activation design mode check (#4358) @xackus
- 69586a4 Fix: WhenAnyValue subscribes to PropertyChanged before reading the initial value (#4381) @dwcullop
⚡ Performance
- 4680609 perf: use custom reactive sinks to improve allocations and performance (#4363) @glennawatson
🧹 General Changes
- 180a40b build: update package dependencies (#4417) @glennawatson
- b37934c ci(security): pin 3rd-party actions to commit SHAs (CodeQL actions/unpinned-tag) @glennawatson
- 2c6f400 build: allow stable packages with net11 previews @glennawatson
- 6dc538e chore: enable the expanded StyleSharp analyzer rule set and resolve all violations (#4385) @ChrisPulman @glennawatson
- 0a1a74e ci(release): grant packages:read so the release workflow can pull the signer image @glennawatson
- 3823cc3 ci(release): add alpha/beta/rc release channel (#4388) @glennawatson
- c9e11d4 chore(deps): update NuGet dependencies to latest (#4389) @glennawatson
- 4680756 ci(release): migrate signing from SSL.com eSigner to Certum SimplySign @glennawatson
- 9b92273 chore(deps): bump NuGet dependencies and drop EOL net9 MAUI targets (#4391) @glennawatson
- 1330c80 chore: Delete MERGE_FOLLOWUPS.md @glennawatson
- e6088d3 chore(deps): adopt the Sharp analyzer suite, update Primitives, modernize (#4414) @glennawatson
- 9fd2d8c chore: remove stray .dotnet-home template cache and gitignore it (#4371) @glennawatson
- 742cb4e ci(release): allow releasing from a historical ref @glennawatson
📦 Dependencies
24.0.0-beta.3
🗞️ What's Changed
💥 Breaking Changes
- 6433b00 refactor!: drop duplicate sinks for Primitives 5.7.0 concretes (#4387) @glennawatson
✨ Features
- 42b4cce feat: re-platform ReactiveUI onto ReactiveUI.Primitives — leaner, faster, System.Reactive optional (#4382) @glennawatson
🐛 Fixes
- fed5931 fix: WaitForDispatcherScheduler marshals to UI thread from non-UI threads (fixes #4354) (#4361) @ChrisPulman @Copilot
- 5a82114 fix(release): use empty MinVer tag prefix to match unprefixed tags @glennawatson
- e5dbcfe fix: Winforms design mode detection regressed (#4369) @xackus
- d9133b6 fix: support .NET Core in winforms activation design mode check (#4358) @xackus
- 69586a4 Fix: WhenAnyValue subscribes to PropertyChanged before reading the initial value (#4381) @dwcullop
⚡ Performance
- 4680609 perf: use custom reactive sinks to improve allocations and performance (#4363) @glennawatson
🧹 General Changes
- 3823cc3 ci(release): add alpha/beta/rc release channel (#4388) @glennawatson
- 9b92273 chore(deps): bump NuGet dependencies and drop EOL net9 MAUI targets (#4391) @glennawatson
- c9e11d4 chore(deps): update NuGet dependencies to latest (#4389) @glennawatson
- 4680756 ci(release): migrate signing from SSL.com eSigner to Certum SimplySign @glennawatson
- b37934c ci(security): pin 3rd-party actions to commit SHAs (CodeQL actions/unpinned-tag) @glennawatson
- 1330c80 chore: Delete MERGE_FOLLOWUPS.md @glennawatson
- 742cb4e ci(release): allow releasing from a historical ref @glennawatson
- 9fd2d8c chore: remove stray .dotnet-home template cache and gitignore it (#4371) @glennawatson
- 0a1a74e ci(release): grant packages:read so the release workflow can pull the signer image @glennawatson
- 6dc538e chore: enable the expanded StyleSharp analyzer rule set and resolve all violations (#4385) @ChrisPulman @glennawatson
📦 Dependencies
- b50c47a chore(deps): update dependency sonaranalyzer.csharp to 10.27.0.140913 (#4367) @renovate[bot]
- 8fb69dc chore(deps): update dependency microsoft.net.test.sdk to 18.7.0 (#4374) @renovate[bot]
- 5aa92cc chore(deps): update dotnet monorepo to 10.0.8 (#4357) @renovate[bot]
- 719f6e6 chore(deps): update dependency microsoft.testing.extensions.codecoverage to 18.7.0 (#4362) @renovate[bot]
- 4068079 chore(deps): update dependency stylesharp.analyzers to 3.11.2 (#4384) @renovate[bot]
- ca7f343 chore(deps): update microsoft.extensions to 10.0.9 (#4378) @renovate[bot]
- 8a7ff35 chore(deps): update dependency microsoft.extensions.dependencymodel to 10.0.8 (#4355) @renovate[bot]
- 30dcf2f chore(deps): update dotnet monorepo to 10.0.9 (#4377) @renovate[bot]
- ce0fbeb chore(deps): update dependency microsoft.testing.platform.msbuild to 2.2.3 (#4359) @renovate[bot]
- 0a8fe1d chore(deps): update .net test stack (#4334) @renovate[bot]
- 1f35503 chore(deps): update dependency microsoft.sourcelink.github to 10.0.300 (#4356) @renovate[bot]
📌 Other
- bd27fbc Fix suspension persistence to materialize app state before shutdown save (#4353) @ChrisPulman
🔗 Full Changelog: 23.2.28...24.0.0-beta.3
🙌 Contributions
🌱 New contributors since the last release: @dwcullop
💖 Thanks to all the contributors: @ChrisPulman, @Copilot, @dwcullop, @glennawatson, @xackus
🤖 Automated services that contributed: @renovate[bot]
24.0.0-beta.2
🗞️ What's Changed
💥 Breaking Changes
- 6433b00 refactor!: drop duplicate sinks for Primitives 5.7.0 concretes (#4387) @glennawatson
✨ Features
- 42b4cce feat: re-platform ReactiveUI onto ReactiveUI.Primitives — leaner, faster, System.Reactive optional (#4382) @glennawatson
🐛 Fixes
- fed5931 fix: WaitForDispatcherScheduler marshals to UI thread from non-UI threads (fixes #4354) (#4361) @ChrisPulman @Copilot
- 5a82114 fix(release): use empty MinVer tag prefix to match unprefixed tags @glennawatson
- e5dbcfe fix: Winforms design mode detection regressed (#4369) @xackus
- d9133b6 fix: support .NET Core in winforms activation design mode check (#4358) @xackus
- 69586a4 Fix: WhenAnyValue subscribes to PropertyChanged before reading the initial value (#4381) @dwcullop
⚡ Performance
- 4680609 perf: use custom reactive sinks to improve allocations and performance (#4363) @glennawatson
🧹 General Changes
- 0a1a74e ci(release): grant packages:read so the release workflow can pull the signer image @glennawatson
- c9e11d4 chore(deps): update NuGet dependencies to latest (#4389) @glennawatson
- 3823cc3 ci(release): add alpha/beta/rc release channel (#4388) @glennawatson
- 4680756 ci(release): migrate signing from SSL.com eSigner to Certum SimplySign @glennawatson
- b37934c ci(security): pin 3rd-party actions to commit SHAs (CodeQL actions/unpinned-tag) @glennawatson
- 742cb4e ci(release): allow releasing from a historical ref @glennawatson
- 1330c80 chore: Delete MERGE_FOLLOWUPS.md @glennawatson
- 9fd2d8c chore: remove stray .dotnet-home template cache and gitignore it (#4371) @glennawatson
- 6dc538e chore: enable the expanded StyleSharp analyzer rule set and resolve all violations (#4385) @ChrisPulman @glennawatson
📦 Dependencies
- b50c47a chore(deps): update dependency sonaranalyzer.csharp to 10.27.0.140913 (#4367) @renovate[bot]
- 30dcf2f chore(deps): update dotnet monorepo to 10.0.9 (#4377) @renovate[bot]
- 5aa92cc chore(deps): update dotnet monorepo to 10.0.8 (#4357) @renovate[bot]
- 719f6e6 chore(deps): update dependency microsoft.testing.extensions.codecoverage to 18.7.0 (#4362) @renovate[bot]
- 8fb69dc chore(deps): update dependency microsoft.net.test.sdk to 18.7.0 (#4374) @renovate[bot]
- 4068079 chore(deps): update dependency stylesharp.analyzers to 3.11.2 (#4384) @renovate[bot]
- ca7f343 chore(deps): update microsoft.extensions to 10.0.9 (#4378) @renovate[bot]
- 1f35503 chore(deps): update dependency microsoft.sourcelink.github to 10.0.300 (#4356) @renovate[bot]
- ce0fbeb chore(deps): update dependency microsoft.testing.platform.msbuild to 2.2.3 (#4359) @renovate[bot]
- 0a8fe1d chore(deps): update .net test stack (#4334) @renovate[bot]
- 8a7ff35 chore(deps): update dependency microsoft.extensions.dependencymodel to 10.0.8 (#4355) @renovate[bot]
📌 Other
- bd27fbc Fix suspension persistence to materialize app state before shutdown save (#4353) @ChrisPulman
🔗 Full Changelog: 23.2.28...24.0.0-beta.2
🙌 Contributions
🌱 New contributors since the last release: @dwcullop
💖 Thanks to all the contributors: @ChrisPulman, @Copilot, @dwcullop, @glennawatson, @xackus
🤖 Automated services that contributed: @renovate[bot]
24.0.0-beta.1
🗞️ What's Changed
💥 Breaking Changes
- 6433b00 refactor!: drop duplicate sinks for Primitives 5.7.0 concretes (#4387) @glennawatson
✨ Features
- 42b4cce feat: re-platform ReactiveUI onto ReactiveUI.Primitives — leaner, faster, System.Reactive optional (#4382) @glennawatson
🐛 Fixes
- fed5931 fix: WaitForDispatcherScheduler marshals to UI thread from non-UI threads (fixes #4354) (#4361) @ChrisPulman @Copilot
- 5a82114 fix(release): use empty MinVer tag prefix to match unprefixed tags @glennawatson
- e5dbcfe fix: Winforms design mode detection regressed (#4369) @xackus
- d9133b6 fix: support .NET Core in winforms activation design mode check (#4358) @xackus
- 69586a4 Fix: WhenAnyValue subscribes to PropertyChanged before reading the initial value (#4381) @dwcullop
⚡ Performance
- 4680609 perf: use custom reactive sinks to improve allocations and performance (#4363) @glennawatson
🧹 General Changes
- 3823cc3 ci(release): add alpha/beta/rc release channel (#4388) @glennawatson
- 6dc538e chore: enable the expanded StyleSharp analyzer rule set and resolve all violations (#4385) @ChrisPulman @glennawatson
- 0a1a74e ci(release): grant packages:read so the release workflow can pull the signer image @glennawatson
- 4680756 ci(release): migrate signing from SSL.com eSigner to Certum SimplySign @glennawatson
- 742cb4e ci(release): allow releasing from a historical ref @glennawatson
- b37934c ci(security): pin 3rd-party actions to commit SHAs (CodeQL actions/unpinned-tag) @glennawatson
- 1330c80 chore: Delete MERGE_FOLLOWUPS.md @glennawatson
- 9fd2d8c chore: remove stray .dotnet-home template cache and gitignore it (#4371) @glennawatson
📦 Dependencies
- b50c47a chore(deps): update dependency sonaranalyzer.csharp to 10.27.0.140913 (#4367) @renovate[bot]
- 8a7ff35 chore(deps): update dependency microsoft.extensions.dependencymodel to 10.0.8 (#4355) @renovate[bot]
- 5aa92cc chore(deps): update dotnet monorepo to 10.0.8 (#4357) @renovate[bot]
- 719f6e6 chore(deps): update dependency microsoft.testing.extensions.codecoverage to 18.7.0 (#4362) @renovate[bot]
- 1f35503 chore(deps): update dependency microsoft.sourcelink.github to 10.0.300 (#4356) @renovate[bot]
- 8fb69dc chore(deps): update dependency microsoft.net.test.sdk to 18.7.0 (#4374) @renovate[bot]
- 4068079 chore(deps): update dependency stylesharp.analyzers to 3.11.2 (#4384) @renovate[bot]
- ca7f343 chore(deps): update microsoft.extensions to 10.0.9 (#4378) @renovate[bot]
- 30dcf2f chore(deps): update dotnet monorepo to 10.0.9 (#4377) @renovate[bot]
- ce0fbeb chore(deps): update dependency microsoft.testing.platform.msbuild to 2.2.3 (#4359) @renovate[bot]
- 0a8fe1d chore(deps): update .net test stack (#4334) @renovate[bot]
📌 Other
- bd27fbc Fix suspension persistence to materialize app state before shutdown save (#4353) @ChrisPulman
🔗 Full Changelog: 23.2.28...24.0.0-beta.1
🙌 Contributions
🌱 New contributors since the last release: @dwcullop
💖 Thanks to all the contributors: @ChrisPulman, @Copilot, @dwcullop, @glennawatson, @xackus
🤖 Automated services that contributed: @renovate[bot]
23.2.28
🔏 23.2.28 — consolidated, re-signed release
This is the recommended 23.x release. It supersedes and folds together 23.1.1, 23.1.8, 23.2.1, 23.2.19, and 23.2.27, which were signed with a code-signing certificate that has since been revoked — NuGet restore fails on them with NU3012. 23.2.28 is identical in code to 23.2.27 but re-signed with a valid certificate, and it depends on the re-signed Splat 19.4.1. Those superseded releases have been removed and their notes consolidated here.
🗞️ What's Changed
🐛 Fixes
- Interaction async-handler scheduling (#4351, fixes #4280)
- Support inherited
DependencyPropertylookup (#4350, fixes #3921) - Handle null load state in activation (#4349, fixes #4331)
- WinForms designer serialization errors (#4339)
BindCommandpassing the wrong parameter after a new ViewModel is assigned to the View (#4324)- WPF design-time activation and main-thread bindings (#4337)
- Slow WPF startup —
ComponentModelFallbackConverterfalse positives + missingConverterServiceregistrations (#4313) - Blazor activation render ordering (#4318)
WithWinForms()initialization + ReactiveCommand output-propagation tests (#4314)- Builder
StackOverflow, activator negative ref-count, a binding regression, and testing extensions (#4301)
✨ Enhancements
WithCoreServices()and additional platform converters (#4316)
🧹 Build, CI & signing
- Migrate signing to Certum SimplySign and versioning to MinVer (this release is a re-sign of the
23.2.27source) - Add a CodeQL analysis workflow
- Remove the deprecated integration tests; add modern samples, snippets, CI and docs (#4319)
📦 Dependencies
- Splat →
19.4.1(re-signed) - Routine dependency/test-stack updates by @renovate[bot]
🔗 Full Changelog: 22.3.1...23.2.28
🙌 Contributions
💖 Thanks to all the contributors — @glennawatson, @ChrisPulman, @Copilot, and Maciej Walczak (see the linked PRs for attribution).
🤖 Automated services that contributed: @renovate[bot], @github-code-quality[bot]
23.1.0-beta.8
🗞️ What's Changed
✨ Features
- eec2539 feature: Refactor command parameter handling for WinForms binding (#4278) @ChrisPulman
- f4d5e40 feature: Add blazor example app (#4279) @BekAllaev
- fec7219 feature: Add default WhenActivated calls to WPF base classes (#4277) @ChrisPulman
🐛 Fixes
- 10ebe5d fix: Add WithMessageBus and TaskPool schedulers with RxAppBuilder (#4282) @ChrisPulman
🧹 General Changes
- 6e3b7fb chore: Update TUnitVersion to 1.12.102 @glennawatson
- c519ba0 chore: Enhance XML documentation for activation and binding APIs (#4276) @ChrisPulman
📦 Dependencies
🔗 Full Changelog: 23.1.0-beta.1...23.1.0-beta.8
🙌 Contributions
💖 Thanks to all the contributors: @BekAllaev, @ChrisPulman, @glennawatson
🤖 Automated services that contributed: @renovate[bot]
23.1.0-beta.1
🗞️ What's Changed
💥 Breaking Changes
- ce2aebc breaking: Remove netstandard2.0, reorganise tests with more coverage (#4239) @glennawatson
🐛 Fixes
- be0eb89 Fix nested property binding to avoid redundant setter calls (#4240) @ChrisPulman @Copilot
- 1e44aed fix(doc): AutoSuspendHelper not known by all target frameworks (#4245) @dabbinavo
- 22d5bb5 Fix intermittient test failures that use Locator, introduced a scope (#4251) @glennawatson
🧹 General Changes
- 40290d7 chore: Release the 23.1.0-beta @glennawatson
- c2eddf4 chore: Enhance unit tests to over 80% coverage (#4248) @glennawatson
- 6d3eb99 chore: Improve the test coverage (#4272) @glennawatson
- 8faaf05 chore: Update copilot instructions and add claude instructions @glennawatson
- b3f1e31 Update package references in README (#4252) @ChrisPulman
- 67d3e78 chore: Update SplatVersion from 18.1.1 to 19.1.1 (#4260) @glennawatson
- 68903f2 chore: Migrate scope-based tests to declarative executor pattern (#4271) @ChristianFischerauer @glennawatson
📦 Dependencies
- c565013 chore(deps): update dependency tunit to 1.7.7 (#4253) @renovate[bot]
- 3bfb979 chore(deps): update dependency verify.nunit to 31.7.3 (#4208) @renovate[bot]
- e5988e6 chore(deps): update dependency bunit to 2.5.3 (#4265) @renovate[bot]
- 8d50541 chore(deps): update dependency verify.tunit to 31.9.3 (#4250) @renovate[bot]
- 33e1511 chore(deps): update dependency microsoft.windows.cswinrt to 2.3.0-prerelease.251115.2 (#4204) @renovate[bot]
- 4eff267 chore(deps): update dependency verify.nunit to 31.9.0 (#4237) @renovate[bot]
- e20db9e chore(deps): update dotnet monorepo to 10.0.2 (#4269) @renovate[bot]
- 108d6c1 chore(deps): update dependency verify.tunit to 31.9.2 (#4246) @renovate[bot]
- e017cf6 chore(deps): update dependency microsoft.extensions.dependencymodel to v10 (#4247) @renovate[bot]
- c3b39b8 chore(deps): update dependency nunit3testadapter to v6 (#4219) @renovate[bot]
- 5188666 chore(deps): update dependency benchmarkdotnet to 0.15.8 (#4216) @renovate[bot]
- 69b64a1 chore(deps): update dependency tunit to 1.7.5 (#4249) @renovate[bot]
- c53052f chore(deps): update windows sdk & app sdk (#4266) @renovate[bot]
- 40c4ab1 chore(deps): update dependency tunit to 1.7.20 (#4254) @renovate[bot]
- 760486b chore(deps): update dependency roslynator.analyzers to 4.15.0 (#4236) @renovate[bot]
- 90da488 chore(deps): update dependency nunit3testadapter to v6 (#4225) @renovate[bot]
- 9fb52cd chore(deps): update dependency publicapigenerator to 11.5.4 (#4211) @renovate[bot]
- 170db84 chore(deps): update dotnet monorepo (major) (#4203) @renovate[bot]
- 6183653 chore(deps): update dependency syncfusion.maui.toolkit to 1.0.8 (#4230) @renovate[bot]
- d3633a6 chore(deps): update dessant/lock-threads action to v6 (#4229) @renovate[bot]
- d483f82 chore(deps): update dependency verify.nunit to 31.8.0 (#4218) @renovate[bot]
📌 Other
- 60a8070 Add BuilderMixins and enhance ReactiveUI builder API (#4228) @ChrisPulman
- f3014b0 Add custom MAUI scheduler support and improve builder API (#4224) @ChrisPulman
- fe2a8c7 Add XML docs and usage examples to public interfaces (#4233) @ChrisPulman @Copilot @Glenn
- 0044f6c Add YamlMime reference to codecov.yml (#4256) @ChrisPulman
- 9308d79 Replace RxApp schedulers with RxSchedulers throughout codebase (#4213) @ChrisPulman
- 8005a05 Add Avalonia to Registration Namespace and update tests (#4223) @ChrisPulman
- 9e23245 Remove Xamarin Forms support from registration logic (#4222) @ChrisPulman
- c13dfe0 Add platform-specific main thread schedulers for MAUI (#4212) @ChrisPulman
- 708d77a breaking: Remove .NET Standard 2.0, modernize AOT compatibility (#4257) @glennawatson
- 8451c8c Replace Locator.Current with AppLocator.Current (#4217) @ChrisPulman
- 65589fa Add MAUI activation tests and update activation logic (#4227) @ChrisPulman
- 0e0d149 Add BuilderMixins and WithInstance Tests (#4232) @ChrisPulman @Glenn
- 3709a49 Enhance XML docs for suspension, view, and interaction APIs (#4238) @ChrisPulman
🔗 Full Changelog: 22.3.1...23.1.0-beta.1
🙌 Contributions
🌱 New contributors since the last release: @ChristianFischerauer, @dabbinavo
💖 Thanks to all the contributors: @ChrisPulman, @ChristianFischerauer, @Copilot, @dabbinavo, @Glenn, @glennawatson
🤖 Automated services that contributed: @renovate[bot]
22.3.1
🗞️ What's Changed
🐛 Fixes
- d6b0ced Fix race condition in ReactiveCommand cancellation test (#4196) @Copilot @copilot-swe-agent[bot] @glennawatson
📦 Dependencies
- 9d25a55 chore(deps): update dotnet monorepo to 9.0.11 (#4202) @renovate[bot]
- 74a572a chore(deps): update windows sdk & app sdk (#4197) @renovate[bot]
- c333339 chore(deps): update .net test stack (#4198) @renovate[bot]
- ff1b00f chore(deps): update dependency nerdbank.gitversioning to 3.9.50 (#4201) @renovate[bot]
- 8c0630e chore(deps): update dependency benchmarkdotnet to 0.15.6 (#4199) @renovate[bot]
- cae2b65 chore(deps): update dependency verify.nunit to 31.0.4 (#4194) @renovate[bot]
- f02755f chore(deps): update dependency publicapigenerator to 11.5.1 (#4206) @renovate[bot]
📌 Other
- f2f9022 Adding ReactiveOwningComponentBase (#4205) @BekAllaev
- 346e3bb Reduce allocations within ReactiveObject and ReactiveRecord (#4195) @Glenn @jl0pd
- da99d4a Bump version from 22.2 to 22.3.x @glennawatson
🔗 Full Changelog: 22.2.1...22.3.1
🙌 Contributions
🌱 New contributors since the last release: @BekAllaev, @jl0pd
💖 Thanks to all the contributors: @BekAllaev, @Copilot, @Glenn, @glennawatson, @jl0pd
🤖 Automated services that contributed: @copilot-swe-agent[bot], @renovate[bot]
22.2.1
🗞️ What's Changed
🐛 Fixes
- 9e7eac7 Fix RxSchedulers not being set by ReactiveUI.Testing SchedulerExtensions (#4184) @Cheesebaron
- c3d6d99 fix: ensure consistent schedulers across threads by removing ThreadStatic in RxSchedulers (#4192) @glennawatson
- a05b475 Fix test isolation issue in RxSchedulersTest causing intermittent failures on Linux (#4193) @Copilot @copilot-swe-agent[bot] @glennawatson
🧹 General Changes
- 221a25e housekeeping: Release 22.2.x of ReactiveUI @glennawatson
📦 Dependencies
- 61cfabc chore(deps): update dependency verify.nunit to 31.0.3 (#4190) @renovate[bot]
- 73577ef chore(deps): update dotnet monorepo to 9.0.10 (#4187) @renovate[bot]
- 50cfdba chore(deps): update dependency microsoft.windows.cswinrt to 2.3.0-prerelease.251015.2 (#4188) @renovate[bot]
- 8eeca30 chore(deps): update dependency microsoft.windowsappsdk to 1.8.251003001 (#4186) @renovate[bot]
- 64e7c38 chore(deps): update dependency publicapigenerator to 11.5.0 (#4182) @renovate[bot]
- c2f5c32 chore(deps): update dependency verify.nunit to 31.0.2 (#4181) @renovate[bot]
- e3ed43d chore(deps): update dependency verify.nunit to v31 (#4179) @renovate[bot]
🔗 Full Changelog: 22.1.1...22.2.1
🙌 Contributions
💖 Thanks to all the contributors: @Cheesebaron, @Copilot, @glennawatson
🤖 Automated services that contributed: @copilot-swe-agent[bot], @renovate[bot]
22.1.1
🗞️ What's Changed
✨ Features
- d59db7c feature: AOT-Friendly Scheduler Access for ReactiveUI (#4122) @ChrisPulman @Copilot @copilot-swe-agent[bot] @glennawatson
🐛 Fixes
- 073e07e Fix InitRxUI to account for order of passed registration namespaces (#3887) @Glenn @Metadorius
- 9deb481 Fix TFMs missing for ReactiveUI.Testing (#4171) @Cheesebaron
🧹 General Changes
- 9dbac6e chore: Stabilize ReactiveUI.Tests with state restoration and de-parallelization (#4168) @Copilot @copilot-swe-agent[bot] @glennawatson
- 8605872 chore: Update target frameworks for Maui and Testing projects (#4174) @ChrisPulman @Glenn @TomaszCielecki
📦 Dependencies
- a26f6f2 chore(deps): update dependency verify.nunit to 30.20.1 (#4176) @renovate[bot]
- c339577 chore(deps): update dependency roslynator.analyzers to 4.14.1 (#4175) @renovate[bot]
- e67aeee chore(deps): update dependency verify.nunit to 30.20.0 (#4172) @renovate[bot]
- 1ed95b6 chore(deps): update dependency microsoft.net.test.sdk to v18 (#4169) @renovate[bot]
- f8b49b5 chore(deps): update dependency nunit3testadapter to 5.2.0 (#4177) @renovate[bot]
📌 Other
- 0c24fb5 Bump version from 22.0 to 22.1.x @glennawatson
🔗 Full Changelog: 22.0.1...22.1.1
🙌 Contributions
🌱 New contributors since the last release: @Cheesebaron, @Metadorius, @TomaszCielecki
💖 Thanks to all the contributors: @Cheesebaron, @ChrisPulman, @Copilot, @Glenn, @glennawatson, @Metadorius, @TomaszCielecki
🤖 Automated services that contributed: @copilot-swe-agent[bot], @renovate[bot]