Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
7dadf2e
Remove System.Reactive/DynamicData from core; fused sinks, MinVer, So…
glennawatson May 23, 2026
164f9e7
Fix: Add ConfigureAwait(false) to Interaction.cs to prevent deadlocks
glennawatson May 23, 2026
0836876
chore: Bump Microsoft.Testing.Platform.MSBuild to 2.2.3 in Directory.…
glennawatson May 23, 2026
7e902d0
Green up the test suite after the fused-sink rework
glennawatson May 23, 2026
c06a622
Merge remote-tracking branch 'origin/main' into glennawatson/update-a…
glennawatson May 23, 2026
364825b
ci: drop removed minver inputs from build/sonar workflows
glennawatson May 23, 2026
42cd723
build(drawing): reference Splat.Drawing via package, not sibling repo
glennawatson May 23, 2026
60f8dd0
build: fully disable MSIX PRI pipeline off-Windows (Maui/WinUI)
glennawatson May 23, 2026
9966d5c
ci: run UI test projects as plain net off-Windows
glennawatson May 23, 2026
c8fa85c
fix(maui): assign Router before wiring RoutedViewHost subscriptions
glennawatson May 23, 2026
6b1b9ef
fix(apple): add missing usings to Apple/UIKit platform files
glennawatson May 23, 2026
c10f2fa
fix(apple): restore ViewModelViewHost conditional usings, align GetAf…
glennawatson May 24, 2026
0543368
fix(binding): remove redundant host assignment (IDE0059)
glennawatson May 24, 2026
a49a1fc
fix(apple): correct copyright headers and add Rx/Splat/Helpers usings
glennawatson May 24, 2026
d3e5674
fix(apple): add remaining Disposables/Concurrency usings, hoist Helpe…
glennawatson May 24, 2026
e01c221
build(android): target net10.0-android36.0 only; fix versioned-TFM co…
glennawatson May 24, 2026
3be85d0
fix(apple): remove redundant #nullable enable directives (IDE0240)
glennawatson May 24, 2026
5876f24
build(apple): drop net9 mobile (iOS/tvOS/macOS/maccatalyst) targets
glennawatson May 24, 2026
ea597aa
build(android): use unversioned net10.0-android
glennawatson May 24, 2026
9bbd816
fix: resolve SonarCloud reliability/maintainability findings
glennawatson May 24, 2026
b2fe122
style(apple): clear analyzer backlog across Platforms files
glennawatson May 24, 2026
7cc37aa
refactor(apple): consolidate Observable.* onto fused sinks
glennawatson May 24, 2026
b92c6e4
style(apple): resolve analysis warnings, improve type safety
glennawatson May 24, 2026
0cb1945
refactor: simplify reactive pipelines and enforce compatibility settings
glennawatson May 24, 2026
07ee718
update(ci): extend SonarCloud CPD exclusions to examples directory
glennawatson May 24, 2026
9c95e1b
refactor: dedupe EventPatternObservable to a single linked source; re…
glennawatson May 24, 2026
1ae41c1
test(api): fix approval baselines (BOM/casing) and run on non-Windows
glennawatson May 24, 2026
7aba8e6
refactor: re-expose DynamicData IChangeSet on the public surface via …
glennawatson May 24, 2026
e9b9e34
test(bench): replace stale benchmarks with a modern strict-clean suite
glennawatson May 24, 2026
849ff18
chore: add a fully-documented .gitignore from the complete VS template
glennawatson May 24, 2026
3a2bc7b
fix(bench): apply ServerGC, drop NoWarn and correct the ReactiveUI pr…
glennawatson May 24, 2026
45b2d93
perf(command): run output-scheduler transitions inline on the immedia…
glennawatson May 24, 2026
561d5f5
perf(whenany): cache the per-link value fetcher in ExpressionChainSink
glennawatson May 24, 2026
5dc5835
perf(changeset): pre-size the per-event change list
glennawatson May 24, 2026
681f017
perf(routing): run scheduled transitions inline on the immediate sche…
glennawatson May 24, 2026
9512bfb
perf: route the remaining immediate-schedulable hot paths through Sch…
glennawatson May 24, 2026
0bc19e8
test(bench): add Interaction, MessageBus, ReactiveProperty, Activatio…
glennawatson May 24, 2026
c6dc565
perf(reactiveobject): stop allocating a closure per property change i…
glennawatson May 24, 2026
67d0d1d
perf(activation): drop the LINQ from ViewModelActivator.Activate
glennawatson May 24, 2026
9039fb4
perf(interaction): cache the handler snapshot across Handle calls
glennawatson May 24, 2026
981c6cf
perf(messagebus): make SendMessage allocation-free
glennawatson May 24, 2026
7d1d96a
test(bench): add CombinedCommand, ObservableForProperty, BindTo, nest…
glennawatson May 24, 2026
5d1f480
perf(observation): reuse the projected ObservedChange per subscription
glennawatson May 24, 2026
343049d
test(bench): add change-stream, suppression, CreateFromObservable, Au…
glennawatson May 24, 2026
d109ad7
perf(reactiveobject): defer change-notification event args until a co…
glennawatson May 24, 2026
e82e428
fix: restore ContentControlBindingHook result and subscribe in WinFor…
glennawatson May 24, 2026
606f27d
fix(winforms): simplify ContentControlBindingHook.ExecuteHook to alwa…
glennawatson May 24, 2026
8fef4ea
Merge remote-tracking branch 'origin/main' into glennawatson/update-a…
glennawatson May 24, 2026
be64d70
chore(deps): bump WindowsAppSDK to 2.1.3 and AndroidX.Collection to 1…
glennawatson May 24, 2026
ec714f6
fix(wpf): marshal command rebind onto the dispatcher (cross-thread re…
glennawatson May 24, 2026
a7584d1
fix: restore three WPF binding/routing regressions from the sink rework
glennawatson May 25, 2026
5d76124
fix(wpf): marshal binding updates through the configured MainThreadSc…
glennawatson May 25, 2026
a44be7a
style(wpf-tests): reword disposal-test comment to satisfy S125
glennawatson May 25, 2026
24fd2c4
style(wpf-tests): collapse disposal-test comment to plain prose for S125
glennawatson May 25, 2026
fb82486
fix: rebind command parameter to current view model; align WPF test s…
glennawatson May 25, 2026
fd201a2
docs: document running Windows/WPF tests on Linux via Wine
glennawatson May 25, 2026
a8956f4
test(wpf): defer ViewModelToViewBinding bg-thread test to WpfTestExec…
glennawatson May 25, 2026
1e1dce6
test: add deferred-marshal two-way binding regression test
glennawatson May 25, 2026
2e1ec82
test(wpf): TEMP diagnostic for background-thread binding failure
glennawatson May 25, 2026
2ccb954
fix: resolve the registered IPropertyBinderImplementation in Property…
glennawatson May 25, 2026
169e5e6
build: align coverage scope and modernize MTP coverage config
glennawatson May 25, 2026
a7f529a
test: raise ReactiveUI core coverage above 90%
glennawatson May 25, 2026
c1cad5d
refactor: extract shared Select/Choose/Merge observables to remove du…
glennawatson May 25, 2026
253ea0c
refactor: share Blazor component lifecycle logic via static helpers
glennawatson May 25, 2026
1ee29a6
refactor: share ComponentModelFallbackConverter logic across platforms
glennawatson May 25, 2026
896c491
ci: exclude Shared/Platform from SonarCloud coverage
glennawatson May 25, 2026
7f018bf
refactor: drop System.Reactive.Linq from ObservableAsPropertyHelper
glennawatson May 25, 2026
5afc20a
refactor: remove System.Reactive.Linq from Apple/UIKit code
glennawatson May 25, 2026
f39d5bb
refactor: dedupe BindInteraction overloads and use internal Disposabl…
glennawatson May 25, 2026
13c7da9
refactor: reuse shared Select/Choose sinks to remove duplication
glennawatson May 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1,675 changes: 1,434 additions & 241 deletions .editorconfig

Large diffs are not rendered by default.

41 changes: 41 additions & 0 deletions .github/workflows/sonarcloud.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: SonarCloud

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

permissions:
contents: read

jobs:
sonarcloud:
uses: reactiveui/actions-common/.github/workflows/workflow-common-sonarcloud.yml@main
with:
productNamespacePrefix: ReactiveUI
installWorkloads: true
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/**'
# 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
# view-model/driver shapes so it reads standalone), so cross-sample duplication is
# expected and not worth de-duplicating into a shared library.
# - WhenAny{Value,Change}Sink.Arity{N}.cs, WhenAnyMixin.Arity{N}.cs and
# WhenAnyObservableMixin.Arity{N}.cs are template-style arity-specific files: the
# residual duplication is the irreducible per-arity typed surface (N typed fields,
# N constructor params, N switch arms). Compressing further would need source
# generators or boxing-based erasure; suppressing CPD here keeps the metric honest
# while every other Sonar rule still runs on them. Sonar path matchers only support
# *, **, ? — use ? twice to cover 1- and 2-digit arities.
sonarCpdExclusions: '**/tests/**,**/integrationtests/**,**/benchmarks/**,**/examples/**,**/*.Arity?.cs,**/*.Arity??.cs'
sonarTestExclusions: '**/tests/**,**/integrationtests/**,**/benchmarks/**'
testTimeout: '15m'
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
Loading
Loading