Skip to content

Releases: scribd/Lucid

Add support for Xcode 15+16

14 Nov 18:01
789608f
Compare
Choose a tag to compare

This is a point release to allow for the project to be compiled with Xcode 16. It does not yet support Swift 6.

Added support for Xcode 15 and iOS 17

15 Dec 15:18
5686c33
Compare
Choose a tag to compare

This release fixes issues that occurred when compiling with Xcode 15 and iOS 17.

This also completes the major async/await migration by converting RemoteStore and APIClientQueue to Swift Concurrency.

Add Swift Concurrency Support

18 May 17:23
1eac4fa
Compare
Choose a tag to compare

A major change to Lucid!

Swift Concurrency is now supported on all of the primary actions on CoreManager:

  • get
  • remove
  • set
  • search

The Combine versions of these functions are also still supported.

As of this release, graph building and stores are not yet updated with Swift Concurrency, that will be rolled out in a later release.

Fix runtime deadlock and publisher crashes

08 May 20:07
Compare
Choose a tag to compare

This fixes:

  • a deadlock issue we ran into we migrating over to async/await. This was an existing issue that wasn't exposed until we moved to code that increased the performance rate of calls.
  • two runtime crashes tied to thread-safety issues in the AMB Publisher and the CoreManagerProperty.

Added test support for all platforms

08 Nov 17:08
34ad850
Compare
Choose a tag to compare

This update extends LucidTestKit support for all available platforms:

  • iOS
  • macOS
  • tvOS
  • watchOS

Update for iOS 16

04 Oct 22:28
f4c6585
Compare
Choose a tag to compare

This makes two key changes:

  • Updates the code to be compatible with Xcode 14, iOS 16.
  • Fixes a crashing issue with Combine.Future by replacing it with an equivalent class Publishers.ReplayOnce.

EntityGraph objects now carry Metadata

04 Jul 18:07
14e3986
Compare
Choose a tag to compare

This update contains one feature change and one bug fix.

The feature is to add Metadata directly onto the EntityGraph, this simplifies passing all data back as a single object when using graphs.

The bug fix is a race condition in CoreManagerProperty when setting up a new subscriber. There was a chance that using the receive(on:) function would delay the initialization of the subscriber and it would not receive the initial event. The subscriber should now receive all events regardless of any set-up timing.

Lucid now uses Apple's Combine framework natively.

24 Mar 01:19
6215e38
Compare
Choose a tag to compare

As of this release going forward, Lucid will exclusively only support Apple's Combine framework, and all ReactiveKit support has been deprecated.

For existing users that were already building Lucid for Combine, the exposed APIs haven't changed at all, so your code should work exactly as it did before.

Lucid now also exports a few Combine convenience extensions to assist in your code, including:

  • a flatMapError() function. Combine's flatMap() doesn't support transforming the error type unless you have iOS 14 as your base target.
  • mapToResult(). This will transform your publisher to a failure type of Never and change the output type to Result<Output, Failure>.
  • Publishers.AMB. An ambiguous race condition observer that takes an array of publishers and returns the first value received from any publisher.
  • CancellableBox and CancellableActor, two thread-safe types that can be passed to AnyCancellable.
  • a few other error managing convenience functions ported from the existing ReactiveKit extensions.

1.0.1

26 May 18:45
9f4892d
Compare
Choose a tag to compare

Added new targets for macOS and tvOS!

Added concept of cache_size for entities to control the size of the memory store. These can be specified as "small", "medium", or "large" (with values for each group specified at initialization) or with a fixed, unique value.

1.0.0

16 Mar 22:09
4b3a7af
Compare
Choose a tag to compare

🚀 First version of Lucid 🚀