All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning starting from 1.x releases.
All recent changes are published
0.13.x
Releases - 0.13.00.12.x
Releases - 0.12.0 | 0.12.10.11.x
Releases - 0.11.00.10.x
Releases - 0.10.00.9.x
Releases - 0.9.0 | 0.9.10.8.x
Releases - 0.8.00.7.x
Releases - 0.7.00.6.x
Releases - 0.6.0 | 0.6.1 | 0.6.20.5.x
Releases - 0.5.00.4.x
Releases - 0.4.0
Released on 2018-11-07
- BREAKING: contentful.swift has removed its own dependency on Interestellar and therefore the package is no longer a required import. The
Contentful
SDK now has its ownResult
type. If you were relying on fetch methods that returned anObservable
, you will need to update your code to simply switch on the result. - BREAKING: Another side-effect of the updated dependency on contentful.swift is that the
localeCode
property on yourNSManagedObject
subclasses must now be marked as optional. Don't forget to check the "Optional" box in the assistant Xcode editor for your@NSManaged
variable in the CoreData model editor. - The project is now updated to Swift 4.2.
Released on 2018-07-30
- Pulled in a change from contentful.swift #216 that fixed asset fields not localizing properly
Released on 2018-07-02
- If there are ever any (currently) unresolvable relationships returned on a page, they will now be cached to disk so that if the user quits the app, the relationship will still be resolved when the target resources are returned in subsequent sync operations. Thanks to @marcin-bo for submitting the fix in #60
Released on 2018-04-18
- BREAKING: If you were using the methods to seed a CoreData database on first launch, you will need to re-run the command from contentful-utilities.swift to generate the bundle files. This change coencides with the fact that environments are now locale specific.
- BREAKING: Upgrades project to Xcode 9.3 and Swift 4.1
Released on 2018-04-05
- BREAKING: Ability to store all asset metadata in
AssetPersistable
has been added. Conforming to the new protocol contstraints is a breaking change and you should make sure to resync all data to ensure this metedata is stored properly. - You can now use the
fetchData(for:with:)
method from contentful.swift onAssetPersistable
instances
- BREAKING: The library is now upgraded to Swift 4.1 and Xcode 9.3
- Assets that contained media files that were not images failed to deserialize the metadata about the file properly, see contentful.swift #182
Released on 2018-02-07
- Relationships were not resolving when seeding a database from bundled content if the source and destination resources were in different files. Fixed in #48
Released on 2017-01-09
- Improved test coverage to capture edge cases for various models.
Contentful.Location
can now be stored as an 'Transformable' attribute on a CoreData entity in the Xcode data model editor and on yourNSManagedObject
subclasses.
Released on 2017-11-27
- Travis now deploys the reference documentation from the
gh-pages
branch when a new tag is pushed. - Upgraded dependency on Contentful to 1.0.0-beta3 and updated development dependencies.
- Issue where seeding CoreData db from bundled JSON files only created entities for the spaces default locale in #39
Released on 2017-10-05
- BREAKING: Migrated to Swift 4; you must now use Xcode 9 in order to develop with the persistence library.
Released on 2017-09-20
- Bug that caused
SynchronizationManager
to fail seeding a CoreData database from bundled content because of lack of localization context.
Released on 2017-09-08
- Methods on
SynchronizationManager
to seed a CoreData database from bundled content.
- Project configuration so that contentful-persistence.swift may be built from source without warnings. Implications:
- Dependencies are still managed via Carthage but using the
--use-submodules
flag. Thus, dependencies are all tracked as submodules and the source (i.e. Carthage/Checkouts) is now tracked in git. - Now travis doesn't install carthage or use it at all to build the project and ContentfulPersistence.xcodeproj framework search paths are cleared.
- Dependencies are still managed via Carthage but using the
Released on 2017-07-31
- The ability to a
LocalizationScheme
onSynchronizationManager
which determines for which locales data should be saved to your persistent store.
- BREAKING:
ContentPersistable
is now calledContentSysPersistable
- BREAKING:
mapping()
is now calledfieldMapping()
to clarify that only 'fields' from your Entries ContentModel must be mapped. - BREAKING:
localeCode: String
is now a necessary property forContentSysPersistable
model classes.
Released on 2017-07-18
- Bug where "clearing" a field in an Entry did not nullify the corresponding persisted property.
- Bug where deleting a relationship in Contentful did not nullify the corresponding persisted relationship.
- Crash caused by explicitly defining mapping for relationships.
- BREAKING: Mapping must be explictly define for types conforming to
EntryPersistable
Released on 2017-06-20
BREAKING: ContentfulSynchronizer
is now called SynchronizationManager
BREAKING: Rather than initializing SynchronizationManager
with a Contentful.Client
instance, the Contentful.Client
is now initialized with a SynchronizationManager
instance as the persistenceIntegration
parameter in the Client
initializer.
BREAKING: The manner in which content type identifiers map Contentful responses to NSManagedObject
model classes is now changed: SynchronizationManager
is initialized with a PersistenceModel
which is constructed by passing in your NSManagedObject
subclasses that conform to either SyncSpacePersistable
AssetPersistable
or EntryPersistable
.