Commit 879c4a8
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 through1 parent 8f118ca commit 879c4a8
874 files changed
Lines changed: 44070 additions & 3696 deletions