Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions .github/workflows/sonarcloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,18 @@ jobs:
sonarProjectKey: reactiveui_ReactiveUI
sonarOrganization: reactiveui
sonarExclusions: '**/tests/**,**/integrationtests/**,**/benchmarks/**,**/examples/**,**/TestResults/**'
# Shared/Platform fused Rx-replacement observables are compile-linked into every platform assembly and
# only exercisable via platform (WPF/WinForms/MAUI/mobile) tests, so exclude them from coverage like
# generated code. The Shared/ root helpers stay measured (covered by the core test suite).
sonarCoverageExclusions: '**/tests/**,**/integrationtests/**,**/benchmarks/**,**/examples/**,**/*Tests/**,**/*Tests.cs,**/Generated/**,**/Shared/Platform/**'
# Coverage exclusions (sonar.coverage.exclusions) — code the Sonar scan cannot execute, so counting it
# would only ever report 0%. This is COVERAGE ONLY; every excluded file is still fully analysed for bugs,
# smells and duplication.
# - Shared/Platform fused Rx-replacement observables are compile-linked into every platform assembly and
# only exercisable via platform tests; the Shared/ root helpers stay measured (core test suite covers them).
# - The scan runs on windows-latest (see workflow-common-sonarcloud.yml runsOn) so it builds and runs the
# core + WPF + WinUI + WinForms tests — that platform code stays measured (e.g. CreatesWinformsCommandBinding
# sits at ~99%). What it CANNOT run is the android/apple per-OS code under ReactiveUI/Platforms/{android,
# apple-common,ios,mac,tvos,uikit-common,mobile-common}: those need an emulator/device or a mac runner, so
# their tests never execute in CI and the files always read 0%. Exclude exactly those per-OS dirs from
# coverage (Platforms/net and Platforms/netstandard2.0 stay measured — they run under the core tests).
sonarCoverageExclusions: '**/tests/**,**/integrationtests/**,**/benchmarks/**,**/examples/**,**/*Tests/**,**/*Tests.cs,**/Generated/**,**/Shared/Platform/**,**/Platforms/android/**,**/Platforms/apple-common/**,**/Platforms/ios/**,**/Platforms/mac/**,**/Platforms/tvos/**,**/Platforms/uikit-common/**,**/Platforms/mobile-common/**'
# CPD (copy/paste detection) exclusions:
# - tests/integrationtests/Benchmarks/examples are non-shipping code. The examples are
# demo apps that deliberately parallel each other (each sample reimplements the same
Expand Down
2 changes: 1 addition & 1 deletion src/Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<PropertyGroup Label="Shared Version Variables">
<SplatVersion>20.0.0</SplatVersion>
<PrimitivesVersion>5.6.0</PrimitivesVersion>
<PrimitivesVersion>5.7.0</PrimitivesVersion>
<TUnitVersion>1.56.25</TUnitVersion>
<XamarinAndroidXLifecycleLiveDataVersion>2.10.0.2</XamarinAndroidXLifecycleLiveDataVersion>
</PropertyGroup>
Expand Down
7 changes: 7 additions & 0 deletions src/ReactiveShim.props
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@
Broadcaster) resolve unqualified to the lean ReactiveUI.Primitives namespace. Open generics can't be aliased,
so this is a namespace import rather than a per-type alias like RxVoid/ISequencer above. -->
<Using Include="ReactiveUI.Primitives.Signals" />
<!-- Concrete signal classes (ReturnSignal/StartSignal/ImmutableReturnRxVoidSignal, ...) that back the
Signal.* factories. The shared source constructs these directly in place of in-repo sink forks; only
the seam-neutral (both-leaf) concretes are named so the .Reactive leaf below stays buildable. -->
<Using Include="ReactiveUI.Primitives.Advanced" />
</ItemGroup>

<!-- Reactive seam: the *.Reactive leaves recompile the shared ReactiveUI source against System.Reactive's
Expand All @@ -63,6 +67,9 @@
<Using Include="ReactiveUI.Reactive.Builder" />
<Using Include="ReactiveUI.Reactive.Interfaces" />
<Using Include="ReactiveUI.Primitives.Signals" />
<!-- Reactive-shim counterpart of the lean leaf's ReactiveUI.Primitives.Advanced import: the same
seam-neutral concrete signal classes, flipped to the ReactiveUI.Primitives.Reactive.Advanced namespace. -->
<Using Include="ReactiveUI.Primitives.Reactive.Advanced" />
</ItemGroup>

<!-- Reactive seam, platform leaves: the apple/android reactive main-thread sequencers
Expand Down
26 changes: 0 additions & 26 deletions src/ReactiveUI.Core/Internal/SingleValueObservable{T}.cs

This file was deleted.

35 changes: 0 additions & 35 deletions src/ReactiveUI.Core/Internal/SyncExecuteObservable.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -319,15 +319,9 @@ ReactiveUI.InteractionContext<TInput, TOutput>.Input.get -> TInput
ReactiveUI.InteractionContext<TInput, TOutput>.InteractionContext(TInput input) -> void
ReactiveUI.InteractionContext<TInput, TOutput>.IsHandled.get -> bool
ReactiveUI.InteractionContext<TInput, TOutput>.SetOutput(TOutput output) -> void
ReactiveUI.Internal.SingleValueObservable<T>
ReactiveUI.Internal.SingleValueObservable<T>.SingleValueObservable(T value) -> void
ReactiveUI.Internal.SingleValueObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.StartWithObservable<T>
ReactiveUI.Internal.StartWithObservable<T>.StartWithObservable(System.IObservable<T>! source, T value) -> void
ReactiveUI.Internal.StartWithObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>
ReactiveUI.Internal.SyncExecuteObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>.SyncExecuteObservable(System.Func<T>! execute) -> void
ReactiveUI.Internal.TaskObservable<T>
ReactiveUI.Internal.TaskObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.TaskObservable<T>.TaskObservable(System.Threading.Tasks.Task<T>! task) -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,15 +319,9 @@ ReactiveUI.InteractionContext<TInput, TOutput>.Input.get -> TInput
ReactiveUI.InteractionContext<TInput, TOutput>.InteractionContext(TInput input) -> void
ReactiveUI.InteractionContext<TInput, TOutput>.IsHandled.get -> bool
ReactiveUI.InteractionContext<TInput, TOutput>.SetOutput(TOutput output) -> void
ReactiveUI.Internal.SingleValueObservable<T>
ReactiveUI.Internal.SingleValueObservable<T>.SingleValueObservable(T value) -> void
ReactiveUI.Internal.SingleValueObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.StartWithObservable<T>
ReactiveUI.Internal.StartWithObservable<T>.StartWithObservable(System.IObservable<T>! source, T value) -> void
ReactiveUI.Internal.StartWithObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>
ReactiveUI.Internal.SyncExecuteObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>.SyncExecuteObservable(System.Func<T>! execute) -> void
ReactiveUI.Internal.TaskObservable<T>
ReactiveUI.Internal.TaskObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.TaskObservable<T>.TaskObservable(System.Threading.Tasks.Task<T>! task) -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,15 +319,9 @@ ReactiveUI.InteractionContext<TInput, TOutput>.Input.get -> TInput
ReactiveUI.InteractionContext<TInput, TOutput>.InteractionContext(TInput input) -> void
ReactiveUI.InteractionContext<TInput, TOutput>.IsHandled.get -> bool
ReactiveUI.InteractionContext<TInput, TOutput>.SetOutput(TOutput output) -> void
ReactiveUI.Internal.SingleValueObservable<T>
ReactiveUI.Internal.SingleValueObservable<T>.SingleValueObservable(T value) -> void
ReactiveUI.Internal.SingleValueObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.StartWithObservable<T>
ReactiveUI.Internal.StartWithObservable<T>.StartWithObservable(System.IObservable<T>! source, T value) -> void
ReactiveUI.Internal.StartWithObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>
ReactiveUI.Internal.SyncExecuteObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>.SyncExecuteObservable(System.Func<T>! execute) -> void
ReactiveUI.Internal.TaskObservable<T>
ReactiveUI.Internal.TaskObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.TaskObservable<T>.TaskObservable(System.Threading.Tasks.Task<T>! task) -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,15 +319,9 @@ ReactiveUI.InteractionContext<TInput, TOutput>.Input.get -> TInput
ReactiveUI.InteractionContext<TInput, TOutput>.InteractionContext(TInput input) -> void
ReactiveUI.InteractionContext<TInput, TOutput>.IsHandled.get -> bool
ReactiveUI.InteractionContext<TInput, TOutput>.SetOutput(TOutput output) -> void
ReactiveUI.Internal.SingleValueObservable<T>
ReactiveUI.Internal.SingleValueObservable<T>.SingleValueObservable(T value) -> void
ReactiveUI.Internal.SingleValueObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.StartWithObservable<T>
ReactiveUI.Internal.StartWithObservable<T>.StartWithObservable(System.IObservable<T>! source, T value) -> void
ReactiveUI.Internal.StartWithObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>
ReactiveUI.Internal.SyncExecuteObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>.SyncExecuteObservable(System.Func<T>! execute) -> void
ReactiveUI.Internal.TaskObservable<T>
ReactiveUI.Internal.TaskObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.TaskObservable<T>.TaskObservable(System.Threading.Tasks.Task<T>! task) -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,15 +319,9 @@ ReactiveUI.InteractionContext<TInput, TOutput>.Input.get -> TInput
ReactiveUI.InteractionContext<TInput, TOutput>.InteractionContext(TInput input) -> void
ReactiveUI.InteractionContext<TInput, TOutput>.IsHandled.get -> bool
ReactiveUI.InteractionContext<TInput, TOutput>.SetOutput(TOutput output) -> void
ReactiveUI.Internal.SingleValueObservable<T>
ReactiveUI.Internal.SingleValueObservable<T>.SingleValueObservable(T value) -> void
ReactiveUI.Internal.SingleValueObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.StartWithObservable<T>
ReactiveUI.Internal.StartWithObservable<T>.StartWithObservable(System.IObservable<T>! source, T value) -> void
ReactiveUI.Internal.StartWithObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>
ReactiveUI.Internal.SyncExecuteObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>.SyncExecuteObservable(System.Func<T>! execute) -> void
ReactiveUI.Internal.TaskObservable<T>
ReactiveUI.Internal.TaskObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.TaskObservable<T>.TaskObservable(System.Threading.Tasks.Task<T>! task) -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,15 +319,9 @@ ReactiveUI.InteractionContext<TInput, TOutput>.Input.get -> TInput
ReactiveUI.InteractionContext<TInput, TOutput>.InteractionContext(TInput input) -> void
ReactiveUI.InteractionContext<TInput, TOutput>.IsHandled.get -> bool
ReactiveUI.InteractionContext<TInput, TOutput>.SetOutput(TOutput output) -> void
ReactiveUI.Internal.SingleValueObservable<T>
ReactiveUI.Internal.SingleValueObservable<T>.SingleValueObservable(T value) -> void
ReactiveUI.Internal.SingleValueObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.StartWithObservable<T>
ReactiveUI.Internal.StartWithObservable<T>.StartWithObservable(System.IObservable<T>! source, T value) -> void
ReactiveUI.Internal.StartWithObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>
ReactiveUI.Internal.SyncExecuteObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>.SyncExecuteObservable(System.Func<T>! execute) -> void
ReactiveUI.Internal.TaskObservable<T>
ReactiveUI.Internal.TaskObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.TaskObservable<T>.TaskObservable(System.Threading.Tasks.Task<T>! task) -> void
Expand Down
6 changes: 0 additions & 6 deletions src/ReactiveUI.Core/PublicAPI/net10.0/PublicAPI.Shipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -319,15 +319,9 @@ ReactiveUI.InteractionContext<TInput, TOutput>.Input.get -> TInput
ReactiveUI.InteractionContext<TInput, TOutput>.InteractionContext(TInput input) -> void
ReactiveUI.InteractionContext<TInput, TOutput>.IsHandled.get -> bool
ReactiveUI.InteractionContext<TInput, TOutput>.SetOutput(TOutput output) -> void
ReactiveUI.Internal.SingleValueObservable<T>
ReactiveUI.Internal.SingleValueObservable<T>.SingleValueObservable(T value) -> void
ReactiveUI.Internal.SingleValueObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.StartWithObservable<T>
ReactiveUI.Internal.StartWithObservable<T>.StartWithObservable(System.IObservable<T>! source, T value) -> void
ReactiveUI.Internal.StartWithObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>
ReactiveUI.Internal.SyncExecuteObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>.SyncExecuteObservable(System.Func<T>! execute) -> void
ReactiveUI.Internal.TaskObservable<T>
ReactiveUI.Internal.TaskObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.TaskObservable<T>.TaskObservable(System.Threading.Tasks.Task<T>! task) -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,15 +319,9 @@ ReactiveUI.InteractionContext<TInput, TOutput>.Input.get -> TInput
ReactiveUI.InteractionContext<TInput, TOutput>.InteractionContext(TInput input) -> void
ReactiveUI.InteractionContext<TInput, TOutput>.IsHandled.get -> bool
ReactiveUI.InteractionContext<TInput, TOutput>.SetOutput(TOutput output) -> void
ReactiveUI.Internal.SingleValueObservable<T>
ReactiveUI.Internal.SingleValueObservable<T>.SingleValueObservable(T value) -> void
ReactiveUI.Internal.SingleValueObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.StartWithObservable<T>
ReactiveUI.Internal.StartWithObservable<T>.StartWithObservable(System.IObservable<T>! source, T value) -> void
ReactiveUI.Internal.StartWithObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>
ReactiveUI.Internal.SyncExecuteObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>.SyncExecuteObservable(System.Func<T>! execute) -> void
ReactiveUI.Internal.TaskObservable<T>
ReactiveUI.Internal.TaskObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.TaskObservable<T>.TaskObservable(System.Threading.Tasks.Task<T>! task) -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,15 +319,9 @@ ReactiveUI.InteractionContext<TInput, TOutput>.Input.get -> TInput
ReactiveUI.InteractionContext<TInput, TOutput>.InteractionContext(TInput input) -> void
ReactiveUI.InteractionContext<TInput, TOutput>.IsHandled.get -> bool
ReactiveUI.InteractionContext<TInput, TOutput>.SetOutput(TOutput output) -> void
ReactiveUI.Internal.SingleValueObservable<T>
ReactiveUI.Internal.SingleValueObservable<T>.SingleValueObservable(T value) -> void
ReactiveUI.Internal.SingleValueObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.StartWithObservable<T>
ReactiveUI.Internal.StartWithObservable<T>.StartWithObservable(System.IObservable<T>! source, T value) -> void
ReactiveUI.Internal.StartWithObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>
ReactiveUI.Internal.SyncExecuteObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>.SyncExecuteObservable(System.Func<T>! execute) -> void
ReactiveUI.Internal.TaskObservable<T>
ReactiveUI.Internal.TaskObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.TaskObservable<T>.TaskObservable(System.Threading.Tasks.Task<T>! task) -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,15 +319,9 @@ ReactiveUI.InteractionContext<TInput, TOutput>.Input.get -> TInput
ReactiveUI.InteractionContext<TInput, TOutput>.InteractionContext(TInput input) -> void
ReactiveUI.InteractionContext<TInput, TOutput>.IsHandled.get -> bool
ReactiveUI.InteractionContext<TInput, TOutput>.SetOutput(TOutput output) -> void
ReactiveUI.Internal.SingleValueObservable<T>
ReactiveUI.Internal.SingleValueObservable<T>.SingleValueObservable(T value) -> void
ReactiveUI.Internal.SingleValueObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.StartWithObservable<T>
ReactiveUI.Internal.StartWithObservable<T>.StartWithObservable(System.IObservable<T>! source, T value) -> void
ReactiveUI.Internal.StartWithObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>
ReactiveUI.Internal.SyncExecuteObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.SyncExecuteObservable<T>.SyncExecuteObservable(System.Func<T>! execute) -> void
ReactiveUI.Internal.TaskObservable<T>
ReactiveUI.Internal.TaskObservable<T>.Subscribe(System.IObserver<T>! observer) -> System.IDisposable!
ReactiveUI.Internal.TaskObservable<T>.TaskObservable(System.Threading.Tasks.Task<T>! task) -> void
Expand Down
Loading
Loading