{"id":16682182,"url":"https://github.com/johnfairh/tmlpersistentcontainer","last_synced_at":"2025-08-24T00:06:12.470Z","repository":{"id":46194060,"uuid":"86585262","full_name":"johnfairh/TMLPersistentContainer","owner":"johnfairh","description":"Shortest-path multi-step Core Data migrations in Swift","archived":false,"fork":false,"pushed_at":"2024-09-19T08:44:02.000Z","size":4146,"stargazers_count":15,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-01-10T19:03:05.155Z","etag":null,"topics":["cloudkit","coredata","ios","macos","swift"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnfairh.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-29T13:26:41.000Z","updated_at":"2024-09-19T08:43:32.000Z","dependencies_parsed_at":"2023-11-27T13:07:34.073Z","dependency_job_id":"600d851a-b426-4503-8c7f-e681a8e9ac91","html_url":"https://github.com/johnfairh/TMLPersistentContainer","commit_stats":{"total_commits":81,"total_committers":2,"mean_commits":40.5,"dds":0.03703703703703709,"last_synced_commit":"fc3efa55e9b3054904489aacceee5fdde1f0d672"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnfairh%2FTMLPersistentContainer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnfairh%2FTMLPersistentContainer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnfairh%2FTMLPersistentContainer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnfairh%2FTMLPersistentContainer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnfairh","download_url":"https://codeload.github.com/johnfairh/TMLPersistentContainer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234594230,"owners_count":18857420,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudkit","coredata","ios","macos","swift"],"created_at":"2024-10-12T14:06:28.535Z","updated_at":"2025-01-19T03:14:41.722Z","avatar_url":"https://github.com/johnfairh.png","language":"Swift","readme":"\u003c!--\nTMLPersistentContainer\nREADME.md\nDistributed under the ISC license, see LICENSE.\n--\u003e\n\n# TMLPersistentContainer\n\n[![CI](https://travis-ci.org/johnfairh/TMLPersistentContainer.svg?branch=master)](https://travis-ci.org/johnfairh/TMLPersistentContainer)\n[![codecov](https://codecov.io/gh/johnfairh/TMLPersistentContainer/branch/master/graph/badge.svg)](https://codecov.io/gh/johnfairh/TMLPersistentContainer)\n![Pod](https://cocoapod-badges.herokuapp.com/v/TMLPersistentContainer/badge.png)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n![Platforms](https://cocoapod-badges.herokuapp.com/p/TMLPersistentContainer/badge.png)\n![License](https://cocoapod-badges.herokuapp.com/l/TMLPersistentContainer/badge.png)\n\nAutomatic shortest-path multi-step Core Data migrations in Swift.\n\n![logo](SourceDocs/logo.png)\n\nA set of Swift extensions to Core Data's `NSPersistentContainer` and\n`NSPersistentCloudKitContainer` that automatically detect and perform\nmulti-step store migration using the shortest valid sequence of migrations.\nThe library supports both light-weight and heavy-weight migrations, multiple\nstores, progress reporting, and configurable logging.\n\n## Example\n\nMinimally replace the call to `NSPersistentContainer.init` or\n`NSPersistentCloudKitContainer`:\n\n```swift\ncontainer = PersistentCloudKitContainer(name: \"MyStore\",\n                                        managedObjectModel: model)\n```\n\nAdditional parameters optionally enable more features:\n\n```swift\ncontainer = PersistentContainer(name: \"MyStore\",\n                                managedObjectModel: model,\n                                bundles: [Bundle.main, myResBundle],\n                                modelVersionOrder: .list(\"V_One\", \"V_Two\", \"V_Six\"),\n                                logMessageHandler: myLogHandler)\ncontainer.migrationDelegate = self\n```\n\nAll migrations happen as part of `NSPersistentContainer.loadPersistentStores`.\n\n## Documentation\n\n* [User guide](https://johnfairh.github.io/TMLPersistentContainer/usage.html) and\n[API documentation](https://johnfairh.github.io/TMLPersistentContainer/) online.\n* Or in the docs/ folder of a local copy of the project.\n* Docset for Dash etc. at [docs/docsets/TMLPersistentContainer.tgz](https://johnfairh.github.io/TMLPersistentContainer/docsets/TMLPersistentContainer.tgz)\n* Read `TestSimpleMigrate.testCanMigrateV1toV3inTwoSteps` for an end-to-end\n  example.\n\n\n## Requirements\n\nSwift 6 or later, Xcode 16 or later.\n* See the *swift31* branch for a Swift 31 version.\n* See the *swift4* branch for a Swift 4 version.\n* See the *swift41* branch for a Swift 4.1 version.\n\nThe library is based on `NSPersistentContainer`.  The minimum deployment targets\nare iOS 12.0, macOS 10.14.6, tvOS 12.0, and watchOS 3.0.\n\nThe `PersistentCloudKitContainer` class is based on\n`NSPersistentCloudKitContainer` so further requires a minimum deployment target\nof iOS 13.0, macOS 10.15, tvOS 13.0, or watchOS 6.0.`\n\nNo additional software dependencies.\n\n## Installation\n\nCocoaPods:\n\n    pod 'TMLPersistentContainer'\n\nSwift package manager:\n\n    .Package(url: \"https://github.com/johnfairh/TMLPersistentContainer/\", majorVersion: 6)\n\nCarthage:\n\n    github \"johnfairh/TMLPersistentContainer\"\n\n## Contributions\n\nContributions and feedback welcome: open an issue / johnfairh@gmail.com / @johnfairh@mastodon.social\n\n## License\n\nDistributed under the ISC license.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnfairh%2Ftmlpersistentcontainer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnfairh%2Ftmlpersistentcontainer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnfairh%2Ftmlpersistentcontainer/lists"}