All significant changes to this project will be documented in this file.
- Changed debug log output of the ActionProxy to use the tag of the Action it's executing so actions can be identified better.
- Fixed issue where the main context was not being updated when a background context was saved.
- Removed Write Ahead Logging since it was not exposed and enhancing the performance.
- Added the ability to ignoreAttributes during a
ActionContext.merge
. - Added the ability to enable/diable logging when initializing an instance of
GenericConnect
. Default is now logging is disabled. - Updated meta data model to use NSSecureCoding to conform with Apple's new requirements.
- Added the ability to supply a condition for merge that will be evaluated for each object being merged to determine if it should take action.
- Connect will now ignore Abstract entities when determining if they can be managed.
- Connect will now use the parent entity to determine if an entity can be managed.
- Updated Swift Version to 4.2.
- Changed TraceLog dependency requirement to ">= 3", "<= 5"
- Moved to minimum iOS deployment target of 9.0
- Moved to minimum macOS deployment target of 10.13
- Renamed
PersistentStack
toPersistentContainer
. - Change
PersistentContainer
to @objc so you can now pass references to Objective-C. - Changed
Connect
to @objc so you can now pass references to Objective-C. - Split
Connect
protocol intoConnect
andActionManager
protocols. - Changed
StoreConfiguration
to be a class instead of a struct to support Objective-C. - Removed
ObjcPersistentContainer
as it's no longer needed with the new changes to the protocols.
- Changed
GenericConnect
to subclassNSObject
.
- Added the ability to supply an
AsyncErrorHandlerBlock
toGenericConnect
init methods.
This is a minor release to update the Swift language to 4.1 and Xcode to 9.3.
Please see the previous 3.0.0-beta.x releases for a complete list of features and changes.
- Changed defaultStoreLocation from applicationSupport directory to ApplicationSupport directory + "Coherence"
- Removed broken Swift PM support (will re-release in next release)
- Added support for Xcode 9 and Swift 4 compiler.
- Added
attachPersistentStore
andattachPersistentStores
toPersistentStack
and classes that implement it,GenericConnect
andGenericPersistentContainer
. - Added
InMemorySequence
for log entry sequence numbering. - Added
FileBackedSequence
as an alternative for log entry sequence (persistent). - Added
==
toStoreConfiguration
for equality comparison.
- Renamed
Configuration
toStoreConfiguration
. - Moved
start
andstop
blocks to execute on the global queue instead of the internal queue. - Changed performAndWait to non-escaping on Swift 3.2 and above.
- Removed
loadPersistentStores
fromGenericPersistentContainer
(useattachPersistentStore(s)
instead). - Removed
url
fromConfuration
instead realying onurl
passed to the newattachPersistentStore(s)
methods.
- Added
ContextStrategyType
allowing different ManagedObjectContext layout strategies to be used for bothConnect
andGenericPersistentContainer
. - Added
BackgroundContext
which is the base type returned fromContextStrategy
newBackgroundContext
. - Added
Configuration
class to allow configuration of Connect instances. - Added
stop
state management toConnect
. - Added
unloadPersistentStores
state management toGenericPersistentContainer
.
- Changed
Connect
to generic class to supportContextStrategyType
. - Changed
GenericPersistentContainer
generic parameters to supportContextStrategyType
. - Rmeoved
ViewContextType
fromGenericPersistentContainer
generic parameters. - Updated to require Swift 3.1.
- Updated to require Xcode 8.3
- Removed
Configuration
subspec from project. Note this will be moved into its own project.
- Added
Notification.ActionDidStartExecuting
notification for clients to listen for action start notifications. - Added
Notification.ActionDidFinishExecuting
notification for clients to listen for action finished notifications. - Added
Notification.Key.ActionProxy
key used by notifications. - Added
Connect
suspended
functionality to control state.
- Changed init sequence allowing for non-throwing init.
- Removed
GenericCoreDataStack
default persistent optionNSMigratePersistentStoresAutomaticallyOption
. - Removed
GenericCoreDataStack
default persistent optionNSInferMappingModelAutomaticallyOptionChanged
. GenericCoreDataStack
now has a generic parameter forViewContextType
which must be specified.- Changed
GenericCoreDataStack
&CoreDataStack
viewContext
to use theViewContextType
removing the read only context. - Changed default merge policy for
ActionContext
toNSMergeByPropertyObjectTrumpMergePolicy
- Changed
NSEntityDescription.uniquenessAttributes
to be non-optional. - Removed
Connect
online
replacing them withsuspended
. - Renamed
GenericCoreDataStack
toGenericPersistentContainer
. - Renamed
ObjcCoreDataStack
toObjcPersistentContainer
. - Dropped
CoreDataStack
protocol. - Changed init option
StoreConfiguration
into a formal struct to make it simpler to use.
ActionProxy
cancel timing.ActionProxy
now correctly cancels actions in various states and reports back thecompletionStatus
ascanceled
.
- Removed direct support for complex migration (with
NSMigrationManager
) inGenericCoreDataStack
, for complex migrations that require a migration manager, migrate externally before loading. - Removed direct support for complex migration (with
NSMigrationManager
) inObjcCoreDataStack
, for complex migrations that require a migration manager, migrate externally before loading. - Removed direct support for complex migration (with
NSMigrationManager
) inConnect
, for complex migrations that require a migration manager, migrate externally before starting.
- Added
ActionContext
which captures statistics about context usage. - Added
ActionContext
merge routine for merging changing from remote connections. EntityAction
execute now passed an ActionContext rather than anNSManagedObjectContext
.
- Moved statistics in
ActionProxy
to it's own protocol. - Converted
Action
protocolexecute
func to throw instead of returning a type. - Changed
GenericCoreDataStack
&CoreDataStack
viewContext
to be read only, it will now throw an error if you save changes to it.
- Added Connect framework with base features.
- New init to GenericCoreDataStack which accepts a URL for the location of the persistent stores and an optional prefix for the file.
- Added CoreDataStack protocol.
- Changed
GenericCoreDataStack
&CoreDataStack
persistent store file extension to lower case. - Changed
GenericCoreDataStack
&CoreDataStack
persistent store file configuration name to lower. - Changed name of
CoreDataStack
toObjcCoreDataStack
. - Renamed
func editContext()
tofunc newBackgroundContext()
. - Renamed
func mainContext()
tovar viewContext()
. - Changed async error handler error type from
NSError
toError
. - Changed context model to be a hybrid model that connects the backgroundContexts directory to the persistent store and maintains the viewContext. Data from the viewContext is propagated to a root context that is persisted in a background thread.
- Opening up persistentStoreCoordinator and managedObjectModel so they are accessible publicly.
- Fixing crash when TraceLog level is set to TRACE4 (it prints a message using an @escaping closure).
- Removal of Connect (pre-release) in the CocoaPod spec.
- Reorganized internally to contain Connect (pre-release).
- First release to CocoaPods master repo.
- None
- Swift 3 support.
- Swift Package Manager Support.
- This CHANGELOG.md file.
- Changed from Swift 2.0 to Swift 3.
- Changed from CocoaPods 0.39.0 to 1.1.0.
- Change CoreDataStack init methods to throw instead of be failable.
- Changed default Info.plist key to CCConfiguration.
- Changed CCOverwriteIncompatibleStore to overwriteIncompatibleStore
- Changed to TraceLog 2.0.
- Removed PersistentStoreCoordinator until the remainder of the implementation is complete.
- Removed WriteAhead log (for the same reason as above)