The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of IceCream, reference master (e6a89b), with Swift 6.0 for macOS (SPM) on 29 Nov 2024 09:14:12 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/caiyue1993/IceCream.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/caiyue1993/IceCream
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at e6a89be use Music Mate as the updated live demo
Cloned https://github.com/caiyue1993/IceCream.git
Revision (git rev-parse @):
e6a89be5c7dfa3b42e58bfe5422d57c19c4d9e4d
SUCCESS checkout https://github.com/caiyue1993/IceCream.git at master
Fetching https://github.com/realm/realm-core
Fetching https://github.com/realm/realm-cocoa
[1/131123] Fetching realm-cocoa
[1313/383393] Fetching realm-cocoa, realm-core
Fetched https://github.com/realm/realm-cocoa from cache (8.89s)
Fetched https://github.com/realm/realm-core from cache (8.89s)
Computing version for https://github.com/realm/realm-cocoa
Computed https://github.com/realm/realm-cocoa at 4.1.1 (0.62s)
Computing version for https://github.com/realm/realm-core
Computed https://github.com/realm/realm-core at 5.23.6 (0.60s)
Creating working copy for https://github.com/realm/realm-core
Working copy of https://github.com/realm/realm-core resolved at 5.23.6
Creating working copy for https://github.com/realm/realm-cocoa
Working copy of https://github.com/realm/realm-cocoa resolved at 4.1.1
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "icecream",
      "name": "IceCream",
      "url": "https://github.com/caiyue1993/IceCream.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/IceCream",
      "dependencies": [
        {
          "identity": "realm-cocoa",
          "name": "Realm",
          "url": "https://github.com/realm/realm-cocoa",
          "version": "4.4.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/realm-cocoa",
          "dependencies": [
            {
              "identity": "realm-core",
              "name": "RealmCore",
              "url": "https://github.com/realm/realm-core",
              "version": "5.23.8",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/realm-core",
              "dependencies": [
              ]
            }
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/caiyue1993/IceCream.git
[1/4461] Fetching icecream
Fetched https://github.com/caiyue1993/IceCream.git from cache (1.04s)
Fetching https://github.com/realm/realm-cocoa from cache
Fetched https://github.com/realm/realm-cocoa from cache (0.97s)
Computing version for https://github.com/realm/realm-cocoa
Computed https://github.com/realm/realm-cocoa at 4.4.1 (0.60s)
Fetching https://github.com/realm/realm-core from cache
Fetched https://github.com/realm/realm-core from cache (1.00s)
Computing version for https://github.com/realm/realm-core
Computed https://github.com/realm/realm-core at 5.23.8 (0.57s)
Creating working copy for https://github.com/caiyue1993/IceCream.git
Working copy of https://github.com/caiyue1993/IceCream.git resolved at master (e6a89be)
Creating working copy for https://github.com/realm/realm-cocoa
Working copy of https://github.com/realm/realm-cocoa resolved at 4.4.1
Creating working copy for https://github.com/realm/realm-core
Working copy of https://github.com/realm/realm-core resolved at 5.23.8
warning: '.resolve-product-dependencies': dependency 'icecream' is not used by any target
Found 1 product dependencies
  - Realm
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/caiyue1993/IceCream.git
{
  "dependencies" : [
    {
      "identity" : "realm-cocoa",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.1.1",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/realm/realm-cocoa"
    }
  ],
  "manifest_display_name" : "IceCream",
  "name" : "IceCream",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.12"
    },
    {
      "name" : "ios",
      "version" : "10.0"
    },
    {
      "name" : "tvos",
      "version" : "10.0"
    },
    {
      "name" : "watchos",
      "version" : "3.0"
    }
  ],
  "products" : [
    {
      "name" : "IceCream",
      "targets" : [
        "IceCream"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "IceCream",
      "module_type" : "SwiftTarget",
      "name" : "IceCream",
      "path" : "IceCream",
      "product_dependencies" : [
        "RealmSwift",
        "Realm"
      ],
      "product_memberships" : [
        "IceCream"
      ],
      "sources" : [
        "Classes/BackgroundWorker.swift",
        "Classes/CKRecordConvertible.swift",
        "Classes/CKRecordRecoverable.swift",
        "Classes/CreamAsset.swift",
        "Classes/CreamLocation.swift",
        "Classes/DatabaseManagerProtocol.swift",
        "Classes/ErrorHandler.swift",
        "Classes/Manifest.swift",
        "Classes/Notification+Name.swift",
        "Classes/PendingRelationshipsWorker.swift",
        "Classes/PrivateDatabaseManager.swift",
        "Classes/PublicDatabaseManager.swift",
        "Classes/SyncEngine.swift",
        "Classes/SyncObject.swift",
        "Classes/Syncable.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/55] Write sources
[1/55] Write swift-version--7754E27361AE5C74.txt
[2/55] Compiling keychain_helper.cpp
[3/55] Compiling RLMUpdateChecker.mm
[4/55] Compiling RLMRealmConfiguration.mm
[5/55] Compiling RLMUtil.mm
[6/55] Compiling RLMThreadSafeReference.mm
[7/55] Compiling RLMSchema.mm
[8/55] Compiling RLMRealmUtil.mm
[9/55] Compiling RLMResults.mm
[10/55] Compiling RLMRealm.mm
[11/55] Compiling RLMSwiftSupport.m
[12/55] Compiling RLMPredicateUtil.mm
[13/55] Compiling RLMProperty.mm
[14/55] Compiling RLMObjectSchema.mm
[15/55] Compiling RLMConstants.m
[16/55] Compiling RLMObjectStore.mm
[17/55] Compiling RLMOptionalBase.mm
[18/55] Compiling RLMObject.mm
[19/55] Compiling RLMObservation.mm
[20/55] Compiling RLMMigration.mm
[21/55] Compiling RLMObjectBase.mm
[22/55] Compiling RLMManagedArray.mm
[23/55] Compiling event_loop_signal.cpp
[24/55] Compiling uuid.cpp
[25/55] Compiling RLMListBase.mm
[26/55] Compiling RLMAnalytics.mm
[27/55] Compiling placeholder.cpp
[28/55] Compiling RLMCollection.mm
[29/55] Compiling RLMClassInfo.mm
[30/55] Compiling RLMQueryUtil.mm
[31/55] Compiling RLMArray.mm
[32/55] Compiling schema.cpp
[33/55] Compiling RLMAccessor.mm
[34/55] Compiling thread_safe_reference.cpp
[35/55] Compiling index_set.cpp
[36/55] Compiling weak_realm_notifier.cpp
[37/55] Compiling object_schema.cpp
[38/55] Compiling object_store.cpp
[39/55] Compiling shared_realm.cpp
[40/55] Compiling object.cpp
[41/55] Compiling results.cpp
[42/55] Compiling list.cpp
[43/55] Compiling external_commit_helper.cpp
[44/55] Compiling binding_callback_thread_observer.cpp
[44/55] Write sources
[46/55] Compiling results_notifier.cpp
[47/55] Compiling collection_notifications.cpp
[48/55] Compiling primitive_list_notifier.cpp
[49/55] Compiling collection_change_builder.cpp
[50/55] Compiling object_notifier.cpp
[51/55] Compiling list_notifier.cpp
[52/55] Compiling transact_log_handler.cpp
[53/55] Compiling realm_coordinator.cpp
[54/55] Compiling collection_notifier.cpp
[56/74] Compiling RealmSwift Results.swift
[57/74] Compiling RealmSwift Schema.swift
[58/74] Compiling RealmSwift SortDescriptor.swift
[59/74] Compiling RealmSwift ThreadSafeReference.swift
[60/75] Compiling RealmSwift RealmCollection.swift
[61/75] Compiling RealmSwift RealmConfiguration.swift
[62/75] Compiling RealmSwift Property.swift
[63/75] Compiling RealmSwift Realm.swift
[64/75] Compiling RealmSwift ObjectiveCSupport.swift
[65/75] Compiling RealmSwift Optional.swift
[66/75] Compiling RealmSwift Migration.swift
[67/75] Compiling RealmSwift Nonsync.swift
[68/75] Compiling RealmSwift Object.swift
[69/75] Compiling RealmSwift ObjectSchema.swift
[70/75] Compiling RealmSwift Aliases.swift
[71/75] Compiling RealmSwift Error.swift
[72/75] Emitting module RealmSwift
[73/75] Compiling RealmSwift LinkingObjects.swift
[74/75] Compiling RealmSwift List.swift
[75/75] Compiling RealmSwift Util.swift
[76/90] Compiling IceCream SyncObject.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
   |       `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 |     static let shared = BackgroundWorker()
   |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 |     private var thread: Thread?
[77/90] Compiling IceCream SyncEngine.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/SyncEngine.swift:42:13: warning: switch must be exhaustive; this is an error in the Swift 6 language mode
 40 |         databaseManager.container.accountStatus { [weak self] (status, error) in
 41 |             guard let self = self else { return }
 42 |             switch status {
    |             |- warning: switch must be exhaustive; this is an error in the Swift 6 language mode
    |             `- note: add missing case: '.temporarilyUnavailable'
 43 |             case .available:
 44 |                 self.databaseManager.registerLocalDatabase()
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/SyncEngine.swift:41:30: warning: capture of 'self' with non-sendable type 'SyncEngine?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 14 | /// 3. it hands over CKRecordZone stuffs to SyncObject so that it can have an effect on local Realm Database
 15 |
 16 | public final class SyncEngine {
    |                    `- note: class 'SyncEngine' does not conform to the 'Sendable' protocol
 17 |
 18 |     private let databaseManager: DatabaseManager
    :
 39 |         databaseManager.prepare()
 40 |         databaseManager.container.accountStatus { [weak self] (status, error) in
 41 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'SyncEngine?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 42 |             switch status {
 43 |             case .available:
[78/91] Compiling IceCream Notification+Name.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
   |       `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 |     static let shared = BackgroundWorker()
   |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 |     private var thread: Thread?
[79/91] Compiling IceCream PendingRelationshipsWorker.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
   |       `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 |     static let shared = BackgroundWorker()
   |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 |     private var thread: Thread?
[80/91] Compiling IceCream CreamLocation.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:10:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
  8 | import CloudKit
  9 |
 10 | protocol DatabaseManager: class {
    |                           `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 11 |
 12 |     /// A conduit for accessing and performing operations on the data of an app container.
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:57:30: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 55 |     func resumeLongLivedOperationIfPossible() {
 56 |         container.fetchAllLongLivedOperationIDs { [weak self]( opeIDs, error) in
 57 |             guard let self = self, error == nil, let ids = opeIDs else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 58 |             for id in ids {
 59 |                 self.container.fetchLongLivedOperation(withID: id, completionHandler: { [weak self](ope, error) in
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:60:38: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 58 |             for id in ids {
 59 |                 self.container.fetchLongLivedOperation(withID: id, completionHandler: { [weak self](ope, error) in
 60 |                     guard let self = self, error == nil else { return }
    |                                      `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 61 |                     if let modifyOp = ope as? CKModifyRecordsOperation {
 62 |                         modifyOp.modifyRecordsCompletionBlock = { (_,_,_) in
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:82:30: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 80 |     func startObservingRemoteChanges() {
 81 |         NotificationCenter.default.addObserver(forName: Notifications.cloudKitDataDidChangeRemotely.name, object: nil, queue: nil, using: { [weak self](_) in
 82 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 83 |             DispatchQueue.global(qos: .utility).async {
 84 |                 self.fetchChangesInDatabase(nil)
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:84:17: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             guard let self = self else { return }
 83 |             DispatchQueue.global(qos: .utility).async {
 84 |                 self.fetchChangesInDatabase(nil)
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 85 |             }
 86 |         })
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:121:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
119 |             case .success:
120 |                 DispatchQueue.main.async {
121 |                     completion?(nil)
    |                     |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
122 |                 }
123 |             case .retry(let timeToWait, _):
[81/91] Compiling IceCream DatabaseManagerProtocol.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:10:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
  8 | import CloudKit
  9 |
 10 | protocol DatabaseManager: class {
    |                           `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 11 |
 12 |     /// A conduit for accessing and performing operations on the data of an app container.
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:57:30: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 55 |     func resumeLongLivedOperationIfPossible() {
 56 |         container.fetchAllLongLivedOperationIDs { [weak self]( opeIDs, error) in
 57 |             guard let self = self, error == nil, let ids = opeIDs else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 58 |             for id in ids {
 59 |                 self.container.fetchLongLivedOperation(withID: id, completionHandler: { [weak self](ope, error) in
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:60:38: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 58 |             for id in ids {
 59 |                 self.container.fetchLongLivedOperation(withID: id, completionHandler: { [weak self](ope, error) in
 60 |                     guard let self = self, error == nil else { return }
    |                                      `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 61 |                     if let modifyOp = ope as? CKModifyRecordsOperation {
 62 |                         modifyOp.modifyRecordsCompletionBlock = { (_,_,_) in
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:82:30: warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 80 |     func startObservingRemoteChanges() {
 81 |         NotificationCenter.default.addObserver(forName: Notifications.cloudKitDataDidChangeRemotely.name, object: nil, queue: nil, using: { [weak self](_) in
 82 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Self?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 83 |             DispatchQueue.global(qos: .utility).async {
 84 |                 self.fetchChangesInDatabase(nil)
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:84:17: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             guard let self = self else { return }
 83 |             DispatchQueue.global(qos: .utility).async {
 84 |                 self.fetchChangesInDatabase(nil)
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 85 |             }
 86 |         })
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:121:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
119 |             case .success:
120 |                 DispatchQueue.main.async {
121 |                     completion?(nil)
    |                     |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
122 |                 }
123 |             case .retry(let timeToWait, _):
[82/91] Compiling IceCream PublicDatabaseManager.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PublicDatabaseManager.swift:61:17: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
 59 |         syncObjects.forEach { object in
 60 |             DispatchQueue.main.async {
 61 |                 object.registerLocalDatabase()
    |                 |- warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'object' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 62 |             }
 63 |         }
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PublicDatabaseManager.swift:82:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
 80 |             case .success:
 81 |                 DispatchQueue.main.async {
 82 |                     callback?(nil)
    |                     |- warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'callback' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 83 |                 }
 84 |             case .retry(let timeToWait, _):
[83/91] Compiling IceCream ErrorHandler.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Manifest.swift:14:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// This file is for setting some develop configs for IceCream framework.
11 |
12 | public class IceCream {
   |              `- note: class 'IceCream' does not conform to the 'Sendable' protocol
13 |
14 |     public static let shared = IceCream()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 |     /// There are quite a lot `print`s in the IceCream source files.
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/ErrorHandler.swift:113:13: warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
111 |         let delayTime = DispatchTime.now() + retryAfter
112 |         DispatchQueue.main.asyncAfter(deadline: delayTime, execute: {
113 |             block()
    |             |- warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'block' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
114 |         })
115 |
[84/91] Compiling IceCream Manifest.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Manifest.swift:14:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// This file is for setting some develop configs for IceCream framework.
11 |
12 | public class IceCream {
   |              `- note: class 'IceCream' does not conform to the 'Sendable' protocol
13 |
14 |     public static let shared = IceCream()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 |     /// There are quite a lot `print`s in the IceCream source files.
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/ErrorHandler.swift:113:13: warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
111 |         let delayTime = DispatchTime.now() + retryAfter
112 |         DispatchQueue.main.asyncAfter(deadline: delayTime, execute: {
113 |             block()
    |             |- warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'block' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
114 |         })
115 |
[85/91] Compiling IceCream BackgroundWorker.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
   |       `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 |     static let shared = BackgroundWorker()
   |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 |     private var thread: Thread?
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:26:34: warning: capture of 'self' with non-sendable type 'BackgroundWorker?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
   |       `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 |     static let shared = BackgroundWorker()
   :
24 |         if thread == nil {
25 |             thread = Thread { [weak self] in
26 |                 guard let self = self, let th = self.thread else {
   |                                  `- warning: capture of 'self' with non-sendable type 'BackgroundWorker?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |                     Thread.exit()
28 |                     return
[86/91] Compiling IceCream CKRecordConvertible.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
   |       `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 |     static let shared = BackgroundWorker()
   |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 |     private var thread: Thread?
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:26:34: warning: capture of 'self' with non-sendable type 'BackgroundWorker?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
   |       `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 |     static let shared = BackgroundWorker()
   :
24 |         if thread == nil {
25 |             thread = Thread { [weak self] in
26 |                 guard let self = self, let th = self.thread else {
   |                                  `- warning: capture of 'self' with non-sendable type 'BackgroundWorker?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |                     Thread.exit()
28 |                     return
[87/91] Compiling IceCream CKRecordRecoverable.swift
[88/91] Compiling IceCream CreamAsset.swift
[89/91] Compiling IceCream PrivateDatabaseManager.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PrivateDatabaseManager.swift:82:25: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
 80 |                     // have not been caught to CloudKit to make data in sync
 81 |                     DispatchQueue.main.async {
 82 |                         object.pushLocalObjectsToCloudKit()
    |                         |- warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: task-isolated 'object' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 83 |                     }
 84 |                 }
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/PrivateDatabaseManager.swift:132:17: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
130 |         self.syncObjects.forEach { object in
131 |             DispatchQueue.main.async {
132 |                 object.registerLocalDatabase()
    |                 |- warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'object' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
133 |             }
134 |         }
[90/91] Emitting module IceCream
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/BackgroundWorker.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
12 | // Tweaked a little by Yue Cai
13 |
14 | class BackgroundWorker: NSObject {
   |       `- note: class 'BackgroundWorker' does not conform to the 'Sendable' protocol
15 |
16 |     static let shared = BackgroundWorker()
   |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'BackgroundWorker' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 |     private var thread: Thread?
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/DatabaseManagerProtocol.swift:10:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
  8 | import CloudKit
  9 |
 10 | protocol DatabaseManager: class {
    |                           `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 11 |
 12 |     /// A conduit for accessing and performing operations on the data of an app container.
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Manifest.swift:14:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// This file is for setting some develop configs for IceCream framework.
11 |
12 | public class IceCream {
   |              `- note: class 'IceCream' does not conform to the 'Sendable' protocol
13 |
14 |     public static let shared = IceCream()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'IceCream' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 |     /// There are quite a lot `print`s in the IceCream source files.
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Syncable.swift:14:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
12 | /// Since `sync` is an informal version of `synchronize`, so we choose the `syncable` word for
13 | /// the ability of synchronization.
14 | public protocol Syncable: class {
   |                           `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
15 |
16 |     /// CKRecordZone related
[91/91] Compiling IceCream Syncable.swift
/Users/admin/builder/spi-builder-workspace/IceCream/Classes/Syncable.swift:14:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
12 | /// Since `sync` is an informal version of `synchronize`, so we choose the `syncable` word for
13 | /// the ability of synchronization.
14 | public protocol Syncable: class {
   |                           `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
15 |
16 |     /// CKRecordZone related
Build complete! (24.45s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "realm-cocoa",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.1.1",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/realm/realm-cocoa"
    }
  ],
  "manifest_display_name" : "IceCream",
  "name" : "IceCream",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.12"
    },
    {
      "name" : "ios",
      "version" : "10.0"
    },
    {
      "name" : "tvos",
      "version" : "10.0"
    },
    {
      "name" : "watchos",
      "version" : "3.0"
    }
  ],
  "products" : [
    {
      "name" : "IceCream",
      "targets" : [
        "IceCream"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "IceCream",
      "module_type" : "SwiftTarget",
      "name" : "IceCream",
      "path" : "IceCream",
      "product_dependencies" : [
        "RealmSwift",
        "Realm"
      ],
      "product_memberships" : [
        "IceCream"
      ],
      "sources" : [
        "Classes/BackgroundWorker.swift",
        "Classes/CKRecordConvertible.swift",
        "Classes/CKRecordRecoverable.swift",
        "Classes/CreamAsset.swift",
        "Classes/CreamLocation.swift",
        "Classes/DatabaseManagerProtocol.swift",
        "Classes/ErrorHandler.swift",
        "Classes/Manifest.swift",
        "Classes/Notification+Name.swift",
        "Classes/PendingRelationshipsWorker.swift",
        "Classes/PrivateDatabaseManager.swift",
        "Classes/PublicDatabaseManager.swift",
        "Classes/SyncEngine.swift",
        "Classes/SyncObject.swift",
        "Classes/Syncable.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Done.