Repository navigation
build(deps): bump ReactiveUI.Binding to 8.4.0 - #4525
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4525 +/- ##
=======================================
Coverage 93.68% 93.68%
=======================================
Files 175 175
Lines 6223 6224 +1
Branches 742 742
=======================================
+ Hits 5830 5831 +1
Misses 392 392
Partials 1 1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
|
This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.



Summary
Bumps
ReactiveUI.Binding/ReactiveUI.Binding.Reactiveto 8.4.0, which generates bindings for MAUI and Avalonia controls named withx:Name(or Avalonia'sName).BindingVersioninDirectory.Packages.propsis now8.4.0.LoginPage.xaml.csinReactiveUI.Samples.Mauinow callsBind/BindCommandinstead of theBindUnsafe/BindCommandUnsafeworkaround the earlier gap needed;LoginPage.xamlalready carriedx:FieldModifier="internal"on every bound control.ActivationForViewFetcher.cs(ReactiveUI.Maui) andHostTestFixture.cs(ReactiveUI.TestsandReactiveUI.Wpf.Tests, both of which compile a physical copy of the file) now callObservedProperty.Switchexplicitly instead of the.Switch()extension call, because ReactiveUI.Binding 8.4.0 addsObservedProperty.Switch, which is ambiguous withReactiveUI.Primitives(.Reactive).LinqExtensions.Switchonce both are in scope (CS0121).Why
Picking up ReactiveUI.Binding 8.4.0's generated bindings for
x:Namecontrols on MAUI and Avalonia removes the need for theUnsafeworkaround the sample used for its MAUI login page while that generator gap existed.The version bump also surfaced a real ambiguity:
ObservedProperty.Switch, new in 8.4.0, and the existingReactiveUI.PrimitivesSwitchoperator both apply toIObservable<IObservable<T>>, so any call site with both namespaces in scope (true for every ReactiveUI.Maui and ReactiveUI.Tests file, because of the project's global usings) fails to build.Breaking changes
None for consumers. Internally, two call sites had to disambiguate
.Switch()by qualifying the call.How this was verified
dotnet build reactiveui.slnx -c Release -warnaserrorpasses with 0 warnings/errors on Linux and on Windows (which also covers WPF, WinForms, WinUI and every MAUI platform, since those target frameworks are Windows-only).ReactiveUI.Tests,.Tests.Reactive,Testing.Tests,Splat.Tests,AOTTests,Builder.Tests,Blazor.Tests,Blazor.Tests.Reactive) passes.Wpf.Tests,Wpf.Tests.Reactive,WinForms.Tests,WinForms.Tests.Reactive,WinUI.Tests) passes, run individually on a Windows VM.ReactiveUI.Samples.Mauiandexamples/Documentation/Pages/platform-mauiboth build cleanly on Windows.platform-mauidocumentation example's expected output still matches (example-output.cscheck).Notes for the reviewer
The
SwitchLatesthelpers added toActivationForViewFetcher.csand bothHostTestFixture.csfiles are mechanical: they exist only to pickObservedProperty.Switchexplicitly over the now-ambiguous.Switch()extension call, under the same#if REACTIVE_SHIMseam the rest of the file already uses to pick between the lean and.Reactivenamespaces.I checked every other example project under
examples/Documentation/Pagesand found no other use of theBindUnsafe/BindCommandUnsafeworkaround forx:Namecontrols;LoginPage.xaml.cswas the only one.Checklist