Commit eb8250d
authored
refactor: migrate ReactiveList to ReactiveUI.Primitives (#247)
* Migrate from System.Reactive to ReactiveUI.Primitives
Replace usages of System.Reactive types with ReactiveUI.Primitives (Signals, Sequencer, SynchronizationContextSequencer, MultipleDisposable, etc.) across the library, tests, benchmarks and README. Add a SubscribeObserver benchmark helper and several new benchmark files (MicroParityBenchmarks and BenchmarkObservableExtensions), plus internal observable/grouped observable helpers. Update README examples and sample code to use the new primitives and adjust BenchmarkDotNet Program to respect --job overrides. Update tests to use Signal/BehaviorSignal and Sequencer.Immediate, and replace CompositeDisposable and Rx schedulers with MultipleDisposable and Sequencer/SynchronizationContextSequencer where appropriate.
* Migrate to Signals API; update ReactiveUI and deps
Replace legacy Observable helper usages with the ReactiveUI.Primitives Signals API (Signal.Create/Emit/None and stream operators such as Map, Keep, FlatMap, Blend, Lead, Chain/SwitchTo, Tap, etc.). Update internal mixins and remove redundant Observable shims. Apply related API changes across collections, views, and extensions (e.g., Stream property, ReactiveList streams, QuaternaryExtensions, ReactiveListExtensions, DynamicReactiveView/ReactiveView buffering). Other changes: bump ReactiveUI.Primitives to 1.3.0, bump TUnit to 1.49.0, add System.Security.Cryptography.Xml to build, convert GroupedObservable and PooledEditableListWrapper to concise constructor/initialization forms, and fix PooledBatch.Dispose to respect ReturnToPool. Misc scheduling and minor null-safety adjustments included.
* Migrate core to ReactiveUI.Primitives and expand test coverage
* Refactor build schema, lock usage, and internals
Rework the NUKE build schema and modernize several internals. .nuke/build.schema.json: extract Host, ExecutableTarget and Verbosity as reusable definitions and reorganize Configuration/NukeBuild via allOf/ref usage. build/Build.cs: mark the partial Build class as sealed. build/Configuration.cs: add ToString() override. src/ReactiveList: rename EnumerablePolyfills to EnumerableExtensions and adjust LINQ helper placement; change IsExternalInit into a sealed class. Multiple ReactiveList view files replace the previous System.Threading.Lock field with a conditional compilation that uses Lock on NET9_0_OR_GREATER and falls back to object otherwise. Miscellaneous small API/implementation cleanups and renames to improve compatibility and clarity.
* ci: restrict compile gate to packable projects
CI BuildOnly executes the NUKE Compile target, which was building the full solution and failing on analyzer-as-error findings in non-packable test, benchmark, and sample application projects.
Update Compile to build the same packable project set used by Pack, log each project being built, and keep the package artifact validation focused on ReactiveList without adding analyzer suppressions.
Verified locally with ./build.cmd Compile, ./build.cmd Compile --Configuration Release, and TUnit coverage for ReactiveList at 100% line coverage.1 parent 8bc3b5d commit eb8250d
125 files changed
Lines changed: 9875 additions & 5062 deletions
File tree
- .nuke
- build
- src
- ReactiveList.Benchmarks
- ReactiveList.Test
- ReactiveListTestApp
- Views
- ReactiveList
- Collections
- Core
- Internal
- Views
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | 3 | | |
6 | | - | |
7 | | - | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
8 | 46 | | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | 47 | | |
18 | 48 | | |
19 | 49 | | |
| |||
23 | 53 | | |
24 | 54 | | |
25 | 55 | | |
26 | | - | |
27 | 56 | | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
| 57 | + | |
45 | 58 | | |
46 | 59 | | |
47 | 60 | | |
48 | 61 | | |
49 | 62 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | 63 | | |
55 | 64 | | |
56 | 65 | | |
| |||
74 | 83 | | |
75 | 84 | | |
76 | 85 | | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
| 86 | + | |
86 | 87 | | |
87 | 88 | | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | 89 | | |
93 | 90 | | |
94 | 91 | | |
95 | 92 | | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
| 93 | + | |
105 | 94 | | |
106 | 95 | | |
107 | 96 | | |
108 | | - | |
109 | 97 | | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
110 | 109 | | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
| 110 | + | |
| 111 | + | |
115 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
116 | 121 | | |
117 | 122 | | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
118 | 126 | | |
119 | | - | |
| 127 | + | |
120 | 128 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
45 | | - | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
46 | 47 | | |
47 | 48 | | |
48 | 49 | | |
| |||
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
55 | | - | |
| 56 | + | |
56 | 57 | | |
57 | | - | |
58 | 58 | | |
59 | 59 | | |
0 commit comments