All Versions
Latest Version
Avg Release Cycle
47 days
Latest Release
1314 days ago

Changelog History
Page 2

  • v6.3.1

    April 04, 2019
  • v6.3.0 Changes

    April 01, 2019
    • πŸ— CoreStore now builds on Swift 5 and Xcode 10.2
    • βͺ SetupResult<T>, MigrationResult, and AsynchronousDataTransaction.Result<T> have all been converted into typealiases for Swift.Result<T, CoreStoreError>. The benefit is we can now use the utility methods on Swift.Result such as map(), mapError(), etc. Their Objective-C counterparts (CSSetupResult, etc.) remain available and can still be used as before.
    • πŸ—„ Bunch of deprecated/obsoleted stuff deleted
    • πŸ›  CoreData iCloud support had been deprecated for a while now and CoreStore finally removes its support in this version. If you wish to continue using it please continue to use the 6.2.x versions but it will be unlikely to get bugfixes from here on out so please try to migrate your app's data as soon as possible (iOS and macOS already had this deprecated for years)
  • v6.2.1

    February 28, 2019
  • v6.2.0

    February 28, 2019
  • v6.1.0

    February 12, 2019
  • v6.0.0 Changes

    January 23, 2019

    ⚑️ ⚠️This update will break current code. Make sure to read the changes below:

    πŸ’₯ Breaking changes

    • πŸš€ Minimum Deployment Version is raised to iOS 10, macOS 10.12, tvOS 10, watchOS 3
    • πŸ—„ ICloudStore and ICloudStoreObservers are now officially deprecated (iCloud Core Data had been deprecated quite a long time ago).
    • βͺ Fetching and Querying methods now throws an error of type CoreStoreError.persistentStoreNotFound(DynamicObject.Type) when the specified entity does not exist in any storage. This is to distinguish difference between non-existing objects versus non-existing stores.

      // Beforeif let object = CoreStore.fetchOne(...) { // ...}else { // May be nil because addStorage() hasn't completed yet or because nothing really matches the query}

      // Afterdo { if let object = try CoreStore.fetchOne(...) { // ... } else { // addStorage() has completed but nothing matches the query } }catch { // method was called before addStorage() completed}

    If you are sure you won't encounter cases where fetches happen before a storage is added to the DataStack, simply add try! to your fetch*() and query*() method calls.


    • βͺ CoreStoreObjects (as well as their PartialObject counterparts) now conform to CustomDebugStringConvertable by default.
    • βͺ CoreStoreObjects now assert on property names that possibly collide with reserved names such as description
    • βͺ CoreStoreObject properties can now be observed individually without the need for ObjectMonitors. The API is a bit similar to the standard KVO API:

      // NSManagedObjectlet observer = person.observe(.friends, options: [.new, .old]) { (person, change) in// ...} // CoreStoreObjectlet observer = person.friends.observe(options: [.new, .old]) { (person, change) in// ...}

    You may still use ObjectMonitors especially for observing multiple changes at once.

    • πŸ— CoreStore now has its own Playgrounds file! You can find this at the top of the workspace (run pod try CoreStore if you don't have it locally). You will need to build the CoreStore iOS schema at least once to create the framework used by the Playgrounds.

    πŸ‘Œ Improvements

    • πŸ›  Fixed queue assertion for UnsafeDataTransactions (#275)
    • 🐎 ListMonitor access performance boost (#287, #288)
    • βž• Added a new CoreStoreError.asynchronousMigrationRequired(URL) for cases when addStorageAndWait() is used together with .allowSynchronousLightweightMigration but migrations are only allowed asynchronously (#277)
    • βͺ CoreStore docs are now powered by jazzy
    • πŸ›  Fixed issue with InferredSchemaMappingProvider not respecting renaming identifiers (#301)
  • v5.3.1

    September 19, 2018
  • v5.3.0

    September 15, 2018
  • v5.2.0

    August 09, 2018
  • v5.1.1

    June 10, 2018