Skip to content

Commit 879c4a8

Browse files
authored
feat!: add ReactiveUI.Primitives support (#1227)
* feat!: add ReactiveUI.Primitives support - Compile the shared source against ReactiveUI.Primitives so Akavache.X publishes IObservable<RxVoid> and ISequencer, with no System.Reactive at runtime - Add Akavache.X.Reactive: the same files under REACTIVE_SHIM against ReactiveUI.Primitives.Reactive, publishing IObservable<Unit> and IScheduler - Shift every Akavache namespace to Akavache.Reactive.* on that leaf so both packages can be referenced side by side - Drop the in-repo fused-sink forks now that Primitives ships the same operators - Route the RxVoid and bool returns at the Advanced singleton sinks - Track the public surface of both leaves per target framework - Move every package pin to its current release BREAKING CHANGE: the Akavache.* packages now speak ReactiveUI.Primitives. Public signatures return IObservable<RxVoid> and take ISequencer where they previously used System.Reactive's Unit and IScheduler. Consumers already on System.Reactive should switch to the matching Akavache.*.Reactive package, whose surface is unchanged apart from the Akavache.Reactive.* namespace. * fix: wait for cache operations in tests instead of cancelling them SubscribeAndComplete disposes its subscription as soon as Subscribe returns, so any source that has not finished synchronously is cancelled. The deleted in-repo helper of the same name never disposed, so operations ran to completion; swapping to the Primitives one silently changed that. CacheDatabase.ResetForTests runs Shutdown and only clears _instance from the Do on completion, so a cancelled reset leaves a half-torn-down sqlite worker behind and wedges the next test. In a NotInParallel assembly that stalls the rest of the run. - Use WaitForCompletion at all 471 call sites: blocks until the operation finishes, rethrows its error, and gives up after 30s rather than hanging * refactor: delete the fused sinks Primitives replaced Removing the in-repo operator forks left their backing observables with no caller. RunAllObservable and TrySelectObservable had none at all; CatchReturnObservable and WhereSelectObservable were kept alive only by their own test files. Primitives supplies and tests all four. - Delete RunAllObservable, TrySelectObservable, CatchReturnObservable and WhereSelectObservable, plus the two test files that existed solely for them - Repoint the remaining crefs at the ReactiveExtensions members that took over * fix: stop the encrypted settings tests holding two connections to one database Both tests kept the store the builder created alive while opening a second store on the same encrypted file, so the second connection's CREATE TABLE raced the first and failed with SQLITE_BUSY. The error went unnoticed while it was being swallowed; WaitForCompletion surfaces it. - Dispose the builder-created store, and its file handles, before opening the fresh store the write goes through
1 parent 8f118ca commit 879c4a8

874 files changed

Lines changed: 44070 additions & 3696 deletions