Skip to content

Releases: jessesquires/JSQCoreDataKit

5.0.0

15 Sep 21:20
Compare
Choose a tag to compare

This release closes the 5.0.0 milestone.

Swift 2.3 now required.

4.0.2

06 Jun 06:20
Compare
Choose a tag to compare

This release closes the 4.0.2 milestone.

  • Fixed an issue where sqlite temporary files would not be cleaned up when removing the store (#85). Thanks @deemadden!

4.0.1

02 Jun 01:23
Compare
Choose a tag to compare

This release closes the 4.0.1 milestone.

  • Fixed a multithreading concurrency violation while merging (#83). Thanks @saurabytes!

4.0.0

08 May 21:08
Compare
Choose a tag to compare

This release closes the 4.0.0 milestone.

This release includes a significant change to CoreDataStack, which no longer uses child contexts. The mainContext and backgroundContext are now both connected to the persistent store coordinator. See #60 for the background and rationale behind this change. In short, child contexts are considered bad practice for this kind of stack setup and should really only be used for "throw away" work.

While this is technically a breaking change, it likely will not affect most clients. The behavior should remain largely unchanged β€” data is still kept in-sync between the 2 contexts. So unless you were specifically relying on this parent-child nesting behavior, you should be fine. πŸ‘

Thanks

Huge thanks to @Liquidsoul for closing most of the issues for this release and to @wiedem for contributing significantly as well! πŸŽ‰

Breaking changes ⚠️

Stack
  • The mainContext and backgroundContext are now both connected to the persistent store coordinator (#60)
  • When creating a child context, the concurrencyType determines which context is the parent (#73)
  • CoreDataStackFactory has been simplified. There is now a single createStack() method. (#77)
Free functions

In alignment with the latest Swift API guidelines, the library now prefers methods/extensions over free functions.

  • The resetStack() top-level function is now a method on CoreDataStack (#75)
  • The deleteObjects() top-level function is now an extension method on NSManagedObjectContext (#76)
  • The fetch() top-level function is now an extension method on NSManagedObjectContext (#78)
  • The migrate() top-level function is now an extension method CoreDataModel (#82)

Documentation

All docs have been updated. As usual, check these out for more details on the changes described above.

Refinements

There have been other general refinements and additional unit tests have been added. Test coverage is 94% 😎

3.0.0

04 Apr 05:48
Compare
Choose a tag to compare

This release closes the 3.0.0 milestone.

The goals of this release are primarily to adopt Swift 2.2 and refine the API to make it more Swifty, as the definition of Swifty has evolved.

Breaking changes ⚠️

There are many breaking changes in this release, however β€” with the exception of Swift 2.2 β€” they are all merely name changes that aim to reduce verbosity.

  • Migrated to Swift 2.2. (#67) Swift 2.2 and above is now required.
  • Renamed DefaultStoreOptions to defaultStoreOptions
  • Renamed CoreDataSaveResult to SaveResult
  • Renamed CoreDataStackResult to StackResult
  • Renamed CoreDataModel.removeExistingModelStore() to CoreDataModel.removeExistingStore()
  • Renamed all enum cases to be lowercase, in line with latest Swift API guidelines
  • The StackResultClosure typealias has been removed

New features

  • Support for Swift Package Manager (#55) πŸŽ‰
  • Core Data model migration support! (#46, #66) Thanks @marius-serban ! πŸŽ‰ See the README and docs for details!

2.2.1

02 Apr 19:59
Compare
Choose a tag to compare

This release closes the 2.2.1 milestone.

Fixes

  • Fixed multithreading violation while saving context (#63, #59, #65). Thanks @saurabytes and @markkrenek!
  • On tvOS, the default SQLite directory now defaults to .CacheDirectory instead of .DocumentDirectory (#61, #62). Thanks @cgoldsby !

2.2.0

28 Dec 19:35
Compare
Choose a tag to compare

This release closes the 2.2.0 milestone.

New

Added a resetStack() top-level function. See the updated docs for details. Thanks @marius-serban! πŸŽ‰

Changes

⚠️ CoreDataStackFactory.CompletionHandler was moved from the factory's scope to the module's scope and renamed to StackResultClosure. This is technically a breaking change, but it is highly unlikely that anyone was referring to this closure directly. If so, simply rename to the correct type.

2.1.0: All the platforms!

03 Dec 02:53
Compare
Choose a tag to compare

JSQCoreDataKit now "officially" supports all Apple platforms: iOS, OSX, tvOS, watchOS. πŸŽ‰

πŸ† 2.1.0 milestone

2.0.0

17 Oct 06:10
Compare
Choose a tag to compare

πŸŽ‰ JSQCoreDataKit 2.0 is here! πŸŽ‰

img

Breaking changes

  • Swift 2.0
  • You must now initialize CoreDataStack via a CoreDataStackFactory. This will init the stack on a background queue and return to your completion handler on the main queue when finished. This is necessary since adding a persistent store can take an unknown amount of time.
  • Rethinking and rewriting of CoreDataStack. It now has a mainContext and a backgroundContext. 😎
  • Saving a context now returns a CoreDataSaveResult to the completion handler, instead of NSError?

New

  • New CoreDataStackFactory for async stack initialization, as mentioned above. It also support synchronous init if you need it, but this is only recommended for testing. Returns a CoreDataStackResult.
  • All types now conform to CustomStringConvertible and Equatable. πŸ‘Š

Issues closed

Find the complete list of closed issues here. πŸ›

Documentation

All documentation has been updated. πŸ“œ

Example app

The example app is actually an example app now, check it out! It's a pretty substantial demo.

Release 1.1.0

26 Apr 05:04
Compare
Choose a tag to compare

This release closes the 1.1.0 milestone.

  • New top-level functions
  • Ability to specify store directory other than ~/Documents/
  • No breaking changes

See the documentation for more information!