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 Mixpanel, reference master (671496), with Swift 6.1 for macOS (SPM) on 25 Apr 2025 14:52:14 UTC.

Swift 6 data race errors: 11

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.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.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/mixpanel/mixpanel-swift.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/mixpanel/mixpanel-swift
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 6714969 Update CHANGELOG
Cloned https://github.com/mixpanel/mixpanel-swift.git
Revision (git rev-parse @):
6714969ad44cc1a6537a0f132dd4d0251ad3b599
SUCCESS checkout https://github.com/mixpanel/mixpanel-swift.git at master
========================================
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": "mixpanel-swift",
      "name": "Mixpanel",
      "url": "https://github.com/mixpanel/mixpanel-swift.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/mixpanel-swift",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/mixpanel/mixpanel-swift.git
[1/15246] Fetching mixpanel-swift
Fetched https://github.com/mixpanel/mixpanel-swift.git from cache (2.95s)
Creating working copy for https://github.com/mixpanel/mixpanel-swift.git
Working copy of https://github.com/mixpanel/mixpanel-swift.git resolved at master (6714969)
warning: '.resolve-product-dependencies': dependency 'mixpanel-swift' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/mixpanel/mixpanel-swift.git
https://github.com/mixpanel/mixpanel-swift.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Mixpanel",
  "name" : "Mixpanel",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "watchos",
      "version" : "4.0"
    }
  ],
  "products" : [
    {
      "name" : "Mixpanel",
      "targets" : [
        "Mixpanel"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Mixpanel",
      "module_type" : "SwiftTarget",
      "name" : "Mixpanel",
      "path" : "Sources",
      "product_memberships" : [
        "Mixpanel"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "AutomaticEvents.swift",
        "AutomaticProperties.swift",
        "Constants.swift",
        "Data+Compression.swift",
        "Error.swift",
        "FileLogging.swift",
        "Flush.swift",
        "FlushRequest.swift",
        "Group.swift",
        "JSONHandler.swift",
        "MPDB.swift",
        "Mixpanel.swift",
        "MixpanelInstance.swift",
        "MixpanelLogger.swift",
        "MixpanelPersistence.swift",
        "MixpanelType.swift",
        "Network.swift",
        "People.swift",
        "PrintLogging.swift",
        "ReadWriteLock.swift",
        "SessionMetadata.swift",
        "Track.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.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/3] Write sources
[1/3] Copying PrivacyInfo.xcprivacy
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/25] Emitting module Mixpanel
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | class AutomaticProperties {
 20 |     static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
    |                |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |
 22 |     static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |     private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 20 |     static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
 21 |
 22 |     static var properties: InternalProperties = {
    |                |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |         var p = InternalProperties()
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:78:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 76 |     }()
 77 |
 78 |     static var peopleProperties: InternalProperties = {
    |                |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 79 |         var p = InternalProperties()
 80 |         let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:15:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |
14 | struct QueueConstants {
15 |     static var queueSize = 5000
   |                |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | }
17 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:10: warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
10 |
11 | enum PropertyError: Error {
12 |     case invalidType(type: Any)
   |          `- warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:16:16: warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | class Assertions {
16 |     static var assertClosure      = swiftAssertClosure
   |                |- warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'assertClosure' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'assertClosure' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |     static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
18 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:17:16: warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
15 | class Assertions {
16 |     static var assertClosure      = swiftAssertClosure
17 |     static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
   |                |- warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'swiftAssertClosure' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:266:16: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
262 | }
263 |
264 | final class MixpanelManager {
    |             `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
265 |
266 |     static let sharedInstance = MixpanelManager()
    |                |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
267 |     private var instances: [String: MixpanelInstance]
268 |     private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:24: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 58 |
 59 | public class MixpanelLogger {
 60 |     private static var loggers = [MixpanelLogging]()
    |                        |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 61 |     private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |     private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:24: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 59 | public class MixpanelLogger {
 60 |     private static var loggers = [MixpanelLogging]()
 61 |     private static var enabledLevels = Set<MixpanelLogLevel>()
    |                        |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 62 |     private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:24: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 60 |     private static var loggers = [MixpanelLogging]()
 61 |     private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |     private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
    |                        |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 63 |
 64 |     /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |     private let concurrentQueue: DispatchQueue
12 |
[5/27] Compiling Mixpanel Track.swift
[6/27] Compiling Mixpanel resource_bundle_accessor.swift
[7/27] Compiling Mixpanel Flush.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:52:27: warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 11 | /// Access to the Mixpanel Groups API, available through the getGroup function from
 12 | /// the main Mixpanel instance.
 13 | open class Group {
    |            `- note: class 'Group' does not conform to the 'Sendable' protocol
 14 |
 15 |     let apiToken: String
    :
 50 |             var r = InternalProperties()
 51 |             var p = InternalProperties()
 52 |             r["$token"] = self.apiToken
    |                           `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 53 |             r["$time"] = epochMilliseconds
 54 |             if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:57:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 55 |                 // $unset takes an array of property names which is supplied to this method
 56 |                 // in the properties parameter under the key "$properties"
 57 |                 r[action] = properties["$properties"]
    |                             `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 58 |             } else {
 59 |                 p += properties
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:111:17: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
109 |         if let timer = timer {
110 |             DispatchQueue.main.async { [weak self, timer] in
111 |                 timer.invalidate()
    |                 |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'timer' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
112 |                 self?.timer = nil
113 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:112:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
110 |             DispatchQueue.main.async { [weak self, timer] in
111 |                 timer.invalidate()
112 |                 self?.timer = nil
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
113 |             }
114 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:89:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 87 |         stopFlushTimer()
 88 |         DispatchQueue.main.async { [weak self] in
 89 |             guard let self = self else {
    |                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 90 |                 return
 91 |             }
[8/27] Compiling Mixpanel FlushRequest.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:52:27: warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 11 | /// Access to the Mixpanel Groups API, available through the getGroup function from
 12 | /// the main Mixpanel instance.
 13 | open class Group {
    |            `- note: class 'Group' does not conform to the 'Sendable' protocol
 14 |
 15 |     let apiToken: String
    :
 50 |             var r = InternalProperties()
 51 |             var p = InternalProperties()
 52 |             r["$token"] = self.apiToken
    |                           `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 53 |             r["$time"] = epochMilliseconds
 54 |             if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:57:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 55 |                 // $unset takes an array of property names which is supplied to this method
 56 |                 // in the properties parameter under the key "$properties"
 57 |                 r[action] = properties["$properties"]
    |                             `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 58 |             } else {
 59 |                 p += properties
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:111:17: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
109 |         if let timer = timer {
110 |             DispatchQueue.main.async { [weak self, timer] in
111 |                 timer.invalidate()
    |                 |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'timer' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
112 |                 self?.timer = nil
113 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:112:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
110 |             DispatchQueue.main.async { [weak self, timer] in
111 |                 timer.invalidate()
112 |                 self?.timer = nil
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
113 |             }
114 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:89:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 87 |         stopFlushTimer()
 88 |         DispatchQueue.main.async { [weak self] in
 89 |             guard let self = self else {
    |                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 90 |                 return
 91 |             }
[9/27] Compiling Mixpanel Group.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:52:27: warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 11 | /// Access to the Mixpanel Groups API, available through the getGroup function from
 12 | /// the main Mixpanel instance.
 13 | open class Group {
    |            `- note: class 'Group' does not conform to the 'Sendable' protocol
 14 |
 15 |     let apiToken: String
    :
 50 |             var r = InternalProperties()
 51 |             var p = InternalProperties()
 52 |             r["$token"] = self.apiToken
    |                           `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 53 |             r["$time"] = epochMilliseconds
 54 |             if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:57:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 55 |                 // $unset takes an array of property names which is supplied to this method
 56 |                 // in the properties parameter under the key "$properties"
 57 |                 r[action] = properties["$properties"]
    |                             `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 58 |             } else {
 59 |                 p += properties
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:111:17: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
109 |         if let timer = timer {
110 |             DispatchQueue.main.async { [weak self, timer] in
111 |                 timer.invalidate()
    |                 |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'timer' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
112 |                 self?.timer = nil
113 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:112:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
110 |             DispatchQueue.main.async { [weak self, timer] in
111 |                 timer.invalidate()
112 |                 self?.timer = nil
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
113 |             }
114 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:89:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 87 |         stopFlushTimer()
 88 |         DispatchQueue.main.async { [weak self] in
 89 |             guard let self = self else {
    |                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 90 |                 return
 91 |             }
[10/27] Compiling Mixpanel MixpanelType.swift
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:80:21: warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
 78 |
 79 |                 if let hasError = error {
 80 |                     failure(.other(hasError), data, response)
    |                     |- warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 81 |                 } else {
 82 |                     failure(.noData, data, response)
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:94:32: warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
 32 | }
 33 |
 34 | struct Resource<A> {
    |        `- note: consider making generic struct 'Resource' conform to the 'Sendable' protocol
 35 |     let path: String
 36 |     let method: RequestMethod
    :
 92 |                 return
 93 |             }
 94 |             guard let result = resource.parse(responseData) else {
    |                                `- warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
 95 |                 failure(.parseError, data, response)
 96 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:99:13: warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
 97 |             }
 98 |
 99 |             success(result, response)
    |             |- warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
100 |         }.resume()
101 |     }
[11/27] Compiling Mixpanel Network.swift
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:80:21: warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
 78 |
 79 |                 if let hasError = error {
 80 |                     failure(.other(hasError), data, response)
    |                     |- warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 81 |                 } else {
 82 |                     failure(.noData, data, response)
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:94:32: warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
 32 | }
 33 |
 34 | struct Resource<A> {
    |        `- note: consider making generic struct 'Resource' conform to the 'Sendable' protocol
 35 |     let path: String
 36 |     let method: RequestMethod
    :
 92 |                 return
 93 |             }
 94 |             guard let result = resource.parse(responseData) else {
    |                                `- warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
 95 |                 failure(.parseError, data, response)
 96 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:99:13: warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
 97 |             }
 98 |
 99 |             success(result, response)
    |             |- warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
100 |         }.resume()
101 |     }
[12/27] Compiling Mixpanel People.swift
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:51:30: warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
 11 | /// Access to the Mixpanel People API, available as an accessible variable from
 12 | /// the main Mixpanel instance.
 13 | open class People {
    |            `- note: class 'People' does not conform to the 'Sendable' protocol
 14 |
 15 |     /// controls the $ignore_time property in any subsequent MixpanelPeople operation.
    :
 49 |
 50 |         serialQueue.async { [weak self, action, properties] in
 51 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
 52 |
 53 |             var r = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:63:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 61 |                 // $unset takes an array of property names which is supplied to this method
 62 |                 // in the properties parameter under the key "$properties"
 63 |                 r[action] = properties["$properties"]
    |                             `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 64 |             } else {
 65 |                 if action == "$set" || action == "$set_once" {
[13/27] Compiling Mixpanel PrintLogging.swift
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:51:30: warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
 11 | /// Access to the Mixpanel People API, available as an accessible variable from
 12 | /// the main Mixpanel instance.
 13 | open class People {
    |            `- note: class 'People' does not conform to the 'Sendable' protocol
 14 |
 15 |     /// controls the $ignore_time property in any subsequent MixpanelPeople operation.
    :
 49 |
 50 |         serialQueue.async { [weak self, action, properties] in
 51 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
 52 |
 53 |             var r = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:63:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 61 |                 // $unset takes an array of property names which is supplied to this method
 62 |                 // in the properties parameter under the key "$properties"
 63 |                 r[action] = properties["$properties"]
    |                             `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 64 |             } else {
 65 |                 if action == "$set" || action == "$set_once" {
[14/27] Compiling Mixpanel ReadWriteLock.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionMetadata.swift:24:30: warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
 9 | import Foundation
10 |
11 | class SessionMetadata {
   |       `- note: class 'SessionMetadata' does not conform to the 'Sendable' protocol
12 |     var eventsCounter: UInt64 = 0
13 |     var peopleCounter: UInt64 = 0
   :
22 |     func applicationWillEnterForeground() {
23 |         trackingQueue.async { [weak self] in
24 |             guard let self = self else { return }
   |                              `- warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
25 |
26 |             self.eventsCounter = 0
[15/27] Compiling Mixpanel SessionMetadata.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionMetadata.swift:24:30: warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
 9 | import Foundation
10 |
11 | class SessionMetadata {
   |       `- note: class 'SessionMetadata' does not conform to the 'Sendable' protocol
12 |     var eventsCounter: UInt64 = 0
13 |     var peopleCounter: UInt64 = 0
   :
22 |     func applicationWillEnterForeground() {
23 |         trackingQueue.async { [weak self] in
24 |             guard let self = self else { return }
   |                              `- warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
25 |
26 |             self.eventsCounter = 0
[16/27] Compiling Mixpanel MixpanelLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:24: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 58 |
 59 | public class MixpanelLogger {
 60 |     private static var loggers = [MixpanelLogging]()
    |                        |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 61 |     private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |     private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:24: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 59 | public class MixpanelLogger {
 60 |     private static var loggers = [MixpanelLogging]()
 61 |     private static var enabledLevels = Set<MixpanelLogLevel>()
    |                        |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 62 |     private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:24: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 60 |     private static var loggers = [MixpanelLogging]()
 61 |     private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |     private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
    |                        |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 63 |
 64 |     /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |     private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:73:23: warning: result of call to 'write(closure:)' is unused
 71 |     /// Enable log messages of a specific `LogLevel` to be added to the log
 72 |     class func enableLevel(_ level: MixpanelLogLevel) {
 73 |         readWriteLock.write {
    |                       `- warning: result of call to 'write(closure:)' is unused
 74 |             enabledLevels.insert(level)
 75 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:80:23: warning: result of call to 'write(closure:)' is unused
 78 |     /// Disable log messages of a specific `LogLevel` to prevent them from being logged
 79 |     class func disableLevel(_ level: MixpanelLogLevel) {
 80 |         readWriteLock.write {
    |                       `- warning: result of call to 'write(closure:)' is unused
 81 |             enabledLevels.remove(level)
 82 |         }
[17/27] Compiling Mixpanel MixpanelPersistence.swift
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:24: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 58 |
 59 | public class MixpanelLogger {
 60 |     private static var loggers = [MixpanelLogging]()
    |                        |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 61 |     private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |     private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:24: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 59 | public class MixpanelLogger {
 60 |     private static var loggers = [MixpanelLogging]()
 61 |     private static var enabledLevels = Set<MixpanelLogLevel>()
    |                        |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 62 |     private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:24: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 60 |     private static var loggers = [MixpanelLogging]()
 61 |     private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |     private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
    |                        |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 63 |
 64 |     /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |     private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:73:23: warning: result of call to 'write(closure:)' is unused
 71 |     /// Enable log messages of a specific `LogLevel` to be added to the log
 72 |     class func enableLevel(_ level: MixpanelLogLevel) {
 73 |         readWriteLock.write {
    |                       `- warning: result of call to 'write(closure:)' is unused
 74 |             enabledLevels.insert(level)
 75 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:80:23: warning: result of call to 'write(closure:)' is unused
 78 |     /// Disable log messages of a specific `LogLevel` to prevent them from being logged
 79 |     class func disableLevel(_ level: MixpanelLogLevel) {
 80 |         readWriteLock.write {
    |                       `- warning: result of call to 'write(closure:)' is unused
 81 |             enabledLevels.remove(level)
 82 |         }
[18/27] Compiling Mixpanel JSONHandler.swift
[19/27] Compiling Mixpanel MPDB.swift
[20/27] Compiling Mixpanel Data+Compression.swift
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:10: warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
10 |
11 | enum PropertyError: Error {
12 |     case invalidType(type: Any)
   |          `- warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:16:16: warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | class Assertions {
16 |     static var assertClosure      = swiftAssertClosure
   |                |- warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'assertClosure' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'assertClosure' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |     static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
18 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:17:16: warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
15 | class Assertions {
16 |     static var assertClosure      = swiftAssertClosure
17 |     static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
   |                |- warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'swiftAssertClosure' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | }
19 |
[21/27] Compiling Mixpanel Error.swift
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:10: warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
10 |
11 | enum PropertyError: Error {
12 |     case invalidType(type: Any)
   |          `- warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:16:16: warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | class Assertions {
16 |     static var assertClosure      = swiftAssertClosure
   |                |- warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'assertClosure' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'assertClosure' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |     static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
18 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:17:16: warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
15 | class Assertions {
16 |     static var assertClosure      = swiftAssertClosure
17 |     static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
   |                |- warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'swiftAssertClosure' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | }
19 |
[22/27] Compiling Mixpanel FileLogging.swift
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:10: warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
10 |
11 | enum PropertyError: Error {
12 |     case invalidType(type: Any)
   |          `- warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:16:16: warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | class Assertions {
16 |     static var assertClosure      = swiftAssertClosure
   |                |- warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'assertClosure' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'assertClosure' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |     static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
18 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:17:16: warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
15 | class Assertions {
16 |     static var assertClosure      = swiftAssertClosure
17 |     static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
   |                |- warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'swiftAssertClosure' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | }
19 |
[23/27] Compiling Mixpanel AutomaticEvents.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | class AutomaticProperties {
 20 |     static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
    |                |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |
 22 |     static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |     private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 20 |     static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
 21 |
 22 |     static var properties: InternalProperties = {
    |                |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |         var p = InternalProperties()
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:78:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 76 |     }()
 77 |
 78 |     static var peopleProperties: InternalProperties = {
    |                |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 79 |         var p = InternalProperties()
 80 |         let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:15:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |
14 | struct QueueConstants {
15 |     static var queueSize = 5000
   |                |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | }
17 |
[24/27] Compiling Mixpanel AutomaticProperties.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | class AutomaticProperties {
 20 |     static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
    |                |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |
 22 |     static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |     private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 20 |     static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
 21 |
 22 |     static var properties: InternalProperties = {
    |                |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |         var p = InternalProperties()
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:78:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 76 |     }()
 77 |
 78 |     static var peopleProperties: InternalProperties = {
    |                |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 79 |         var p = InternalProperties()
 80 |         let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:15:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |
14 | struct QueueConstants {
15 |     static var queueSize = 5000
   |                |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | }
17 |
[25/27] Compiling Mixpanel Constants.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | class AutomaticProperties {
 20 |     static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
    |                |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |
 22 |     static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |     private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 20 |     static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
 21 |
 22 |     static var properties: InternalProperties = {
    |                |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |         var p = InternalProperties()
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:78:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 76 |     }()
 77 |
 78 |     static var peopleProperties: InternalProperties = {
    |                |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 79 |         var p = InternalProperties()
 80 |         let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:15:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |
14 | struct QueueConstants {
15 |     static var queueSize = 5000
   |                |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | }
17 |
[26/27] Compiling Mixpanel Mixpanel.swift
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:266:16: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
262 | }
263 |
264 | final class MixpanelManager {
    |             `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
265 |
266 |     static let sharedInstance = MixpanelManager()
    |                |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
267 |     private var instances: [String: MixpanelInstance]
268 |     private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:714:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 712 |         if hasOptedOutTracking() {
 713 |             if let completion = completion {
 714 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 715 |             }
 716 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:721:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 719 |             MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 720 |             if let completion = completion {
 721 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 722 |             }
 723 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:768:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 766 |                 hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 767 |             if let completion = completion {
 768 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 769 |             }
 770 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:726:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
 724 |         }
 725 |         trackingQueue.async { [weak self, distinctId, usePeople] in
 726 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 727 |
 728 |             // If there's no anonymousId assigned yet, that means distinctId is stored in the storage. Assigning already stored
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:767:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 765 |                 alias: self.alias,
 766 |                 hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 767 |             if let completion = completion {
     |                                 |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 768 |                 DispatchQueue.main.async(execute: completion)
 769 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:803:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 801 |         if hasOptedOutTracking() {
 802 |             if let completion = completion {
 803 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 804 |             }
 805 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:811:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 809 |             MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 810 |             if let completion = completion {
 811 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 812 |             }
 813 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:819:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 817 |             MixpanelLogger.error(message: "\(self) create alias called with empty alias")
 818 |             if let completion = completion {
 819 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 820 |             }
 821 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:828:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 826 |                 guard let self = self else {
 827 |                     if let completion = completion {
 828 |                         DispatchQueue.main.async(execute: completion)
     |                                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 829 |                     }
 830 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:870:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 868 |             MixpanelLogger.error(message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
 869 |             if let completion = completion {
 870 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 871 |             }
 872 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:826:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
 824 |         if alias != distinctId {
 825 |             trackingQueue.async { [weak self, alias] in
 826 |                 guard let self = self else {
     |                                  `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 827 |                     if let completion = completion {
 828 |                         DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:827:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 825 |             trackingQueue.async { [weak self, alias] in
 826 |                 guard let self = self else {
 827 |                     if let completion = completion {
     |                                         |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 828 |                         DispatchQueue.main.async(execute: completion)
 829 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:903:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 901 |             self.archive()
 902 |             if let completion = completion {
 903 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 904 |             }
 905 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:884:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
 882 |         flush()
 883 |         trackingQueue.async { [weak self] in
 884 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 885 |                 return
 886 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:902:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 900 |             self.mixpanelPersistence.resetEntities()
 901 |             self.archive()
 902 |             if let completion = completion {
     |                                 |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 903 |                 DispatchQueue.main.async(execute: completion)
 904 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:982:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 980 |         if hasOptedOutTracking() {
 981 |             if let completion = completion {
 982 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 983 |             }
 984 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:989:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 987 |             guard let self = self else {
 988 |                 if let completion = completion {
 989 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 990 |                 }
 991 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:996:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 994 |             if let shouldFlush = self.delegate?.mixpanelWillFlush(self), !shouldFlush {
 995 |                 if let completion = completion {
 996 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 997 |                 }
 998 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1019:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1017 |                 guard let self = self else {
1018 |                     if let completion = completion {
1019 |                         DispatchQueue.main.async(execute: completion)
     |                                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1020 |                     }
1021 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1028:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1026 |
1027 |                 if let completion = completion {
1028 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1029 |                 }
1030 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:987:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
 985 |         }
 986 |         trackingQueue.async { [weak self, completion] in
 987 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 988 |                 if let completion = completion {
 989 |                     DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:988:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 986 |         trackingQueue.async { [weak self, completion] in
 987 |             guard let self = self else {
 988 |                 if let completion = completion {
     |                                     |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 989 |                     DispatchQueue.main.async(execute: completion)
 990 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1017:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1015 |
1016 |             self.networkQueue.async { [weak self, completion] in
1017 |                 guard let self = self else {
     |                                  `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1018 |                     if let completion = completion {
1019 |                         DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1018:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1016 |             self.networkQueue.async { [weak self, completion] in
1017 |                 guard let self = self else {
1018 |                     if let completion = completion {
     |                                         |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1019 |                         DispatchQueue.main.async(execute: completion)
1020 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1023:33: warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1021 |                     return
1022 |                 }
1023 |                 self.flushQueue(eventQueue, type: .events)
     |                                 `- warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1024 |                 self.flushQueue(peopleQueue, type: .people)
1025 |                 self.flushQueue(groupsQueue, type: .groups)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1024:33: warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1022 |                 }
1023 |                 self.flushQueue(eventQueue, type: .events)
1024 |                 self.flushQueue(peopleQueue, type: .people)
     |                                 `- warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1025 |                 self.flushQueue(groupsQueue, type: .groups)
1026 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1025:33: warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1023 |                 self.flushQueue(eventQueue, type: .events)
1024 |                 self.flushQueue(peopleQueue, type: .people)
1025 |                 self.flushQueue(groupsQueue, type: .groups)
     |                                 `- warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1026 |
1027 |                 if let completion = completion {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1058:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1056 |     func flushSuccess(type: FlushType, ids: [Int32]) {
1057 |         trackingQueue.async { [weak self] in
1058 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1059 |                 return
1060 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1086:23: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1084 |
1085 |         trackingQueue.async { [weak self, event, properties, epochInterval] in
1086 |             guard let self else {
     |                       `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1087 |                 return
1088 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1107:76: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1105 |                                                          hadPersistedDistinctId: self.hadPersistedDistinctId)
1106 |             let timedEventsSnapshot = self.trackInstance.track(event: event,
1107 |                                                                properties: properties,
     |                                                                            `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1108 |                                                                timedEvents: shadowTimedEvents,
1109 |                                                                superProperties: shadowSuperProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |     /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1203:23: warning: result of call to 'write(closure:)' is unused
1201 |
1202 |     func removeCachedGroup(groupKey: String, groupID: MixpanelType) {
1203 |         readWriteLock.write {
     |                       `- warning: result of call to 'write(closure:)' is unused
1204 |             groups.removeValue(forKey: makeMapKey(groupKey: groupKey, groupID: groupID))
1205 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1237:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1235 |         let startTime = Date().timeIntervalSince1970
1236 |         trackingQueue.async { [weak self, startTime, event] in
1237 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1238 |             let timedEvents = self.trackInstance.time(event: event, timedEvents: self.timedEvents, startTime: startTime)
1239 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1268:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1266 |     public func clearTimedEvents() {
1267 |         trackingQueue.async { [weak self] in
1268 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1269 |             self.readWriteLock.write {
1270 |                 self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1283:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1281 |     public func clearTimedEvent(event: String) {
1282 |         trackingQueue.async { [weak self, event] in
1283 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1284 |
1285 |             let updatedTimedEvents = self.trackInstance.clearTimedEvent(event: event, timedEvents: self.timedEvents)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1308:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1306 |     public func clearSuperProperties() {
1307 |         trackingQueue.async { [weak self] in
1308 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1309 |             self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1310 |             MixpanelPersistence.saveSuperProperties(superProperties: self.superProperties, instanceName: self.name)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1327:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1325 |     public func registerSuperProperties(_ properties: Properties) {
1326 |         trackingQueue.async { [weak self] in
1327 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1328 |             let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
1329 |                                                                                     superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1328:85: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1326 |         trackingQueue.async { [weak self] in
1327 |             guard let self = self else { return }
1328 |             let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
     |                                                                                     `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1329 |                                                                                     superProperties: self.superProperties)
1330 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |     /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1356:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1354 |                                           defaultValue: MixpanelType? = nil) {
1355 |         trackingQueue.async { [weak self] in
1356 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1357 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1358 |                                                                                         superProperties: self.superProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1357:89: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1355 |         trackingQueue.async { [weak self] in
1356 |             guard let self = self else { return }
1357 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
     |                                                                                         `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1358 |                                                                                         superProperties: self.superProperties,
1359 |                                                                                         defaultValue: defaultValue)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |     /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1359:103: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1357 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1358 |                                                                                         superProperties: self.superProperties,
1359 |                                                                                         defaultValue: defaultValue)
     |                                                                                                       `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1360 |             self.readWriteLock.write {
1361 |                 self.superProperties = updatedSuperProperties
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |     /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1384:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1382 |     public func unregisterSuperProperty(_ propertyName: String) {
1383 |         trackingQueue.async { [weak self] in
1384 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1385 |             let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(propertyName,
1386 |                                                                               superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1403:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1401 |     func updateSuperProperty(_ update: @escaping (_ superproperties: inout InternalProperties) -> Void) {
1402 |         trackingQueue.async { [weak self] in
1403 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1404 |             var superPropertiesShadow = self.superProperties
1405 |             self.trackInstance.updateSuperProperty(update,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1405:52: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1403 |             guard let self = self else { return }
1404 |             var superPropertiesShadow = self.superProperties
1405 |             self.trackInstance.updateSuperProperty(update,
     |                                                    |- warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
     |                                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1406 |                                                    superProperties: &superPropertiesShadow)
1407 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1520:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1518 |     public func optOutTracking() {
1519 |         trackingQueue.async { [weak self] in
1520 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1521 |             if self.people.distinctId != nil {
1522 |                 self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1565:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1563 |     public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1564 |         trackingQueue.async { [weak self] in
1565 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1566 |             self.readWriteLock.write {
1567 |                 self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1575:54: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1573 |                 self.identify(distinctId: distinctId)
1574 |             }
1575 |             self.track(event: "$opt_in", properties: properties)
     |                                                      `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1576 |         }
1577 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |     /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
[27/27] Compiling Mixpanel MixpanelInstance.swift
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:266:16: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
262 | }
263 |
264 | final class MixpanelManager {
    |             `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
265 |
266 |     static let sharedInstance = MixpanelManager()
    |                |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
267 |     private var instances: [String: MixpanelInstance]
268 |     private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:714:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 712 |         if hasOptedOutTracking() {
 713 |             if let completion = completion {
 714 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 715 |             }
 716 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:721:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 719 |             MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 720 |             if let completion = completion {
 721 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 722 |             }
 723 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:768:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 766 |                 hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 767 |             if let completion = completion {
 768 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 769 |             }
 770 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:726:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
 724 |         }
 725 |         trackingQueue.async { [weak self, distinctId, usePeople] in
 726 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 727 |
 728 |             // If there's no anonymousId assigned yet, that means distinctId is stored in the storage. Assigning already stored
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:767:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 765 |                 alias: self.alias,
 766 |                 hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 767 |             if let completion = completion {
     |                                 |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 768 |                 DispatchQueue.main.async(execute: completion)
 769 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:803:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 801 |         if hasOptedOutTracking() {
 802 |             if let completion = completion {
 803 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 804 |             }
 805 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:811:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 809 |             MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 810 |             if let completion = completion {
 811 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 812 |             }
 813 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:819:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 817 |             MixpanelLogger.error(message: "\(self) create alias called with empty alias")
 818 |             if let completion = completion {
 819 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 820 |             }
 821 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:828:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 826 |                 guard let self = self else {
 827 |                     if let completion = completion {
 828 |                         DispatchQueue.main.async(execute: completion)
     |                                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 829 |                     }
 830 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:870:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 868 |             MixpanelLogger.error(message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
 869 |             if let completion = completion {
 870 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 871 |             }
 872 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:826:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
 824 |         if alias != distinctId {
 825 |             trackingQueue.async { [weak self, alias] in
 826 |                 guard let self = self else {
     |                                  `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 827 |                     if let completion = completion {
 828 |                         DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:827:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 825 |             trackingQueue.async { [weak self, alias] in
 826 |                 guard let self = self else {
 827 |                     if let completion = completion {
     |                                         |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 828 |                         DispatchQueue.main.async(execute: completion)
 829 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:903:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 901 |             self.archive()
 902 |             if let completion = completion {
 903 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 904 |             }
 905 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:884:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
 882 |         flush()
 883 |         trackingQueue.async { [weak self] in
 884 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 885 |                 return
 886 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:902:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 900 |             self.mixpanelPersistence.resetEntities()
 901 |             self.archive()
 902 |             if let completion = completion {
     |                                 |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 903 |                 DispatchQueue.main.async(execute: completion)
 904 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:982:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 980 |         if hasOptedOutTracking() {
 981 |             if let completion = completion {
 982 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 983 |             }
 984 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:989:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 987 |             guard let self = self else {
 988 |                 if let completion = completion {
 989 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 990 |                 }
 991 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:996:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 994 |             if let shouldFlush = self.delegate?.mixpanelWillFlush(self), !shouldFlush {
 995 |                 if let completion = completion {
 996 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 997 |                 }
 998 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1019:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1017 |                 guard let self = self else {
1018 |                     if let completion = completion {
1019 |                         DispatchQueue.main.async(execute: completion)
     |                                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1020 |                     }
1021 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1028:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1026 |
1027 |                 if let completion = completion {
1028 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1029 |                 }
1030 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:987:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
 985 |         }
 986 |         trackingQueue.async { [weak self, completion] in
 987 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 988 |                 if let completion = completion {
 989 |                     DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:988:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 986 |         trackingQueue.async { [weak self, completion] in
 987 |             guard let self = self else {
 988 |                 if let completion = completion {
     |                                     |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 989 |                     DispatchQueue.main.async(execute: completion)
 990 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1017:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1015 |
1016 |             self.networkQueue.async { [weak self, completion] in
1017 |                 guard let self = self else {
     |                                  `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1018 |                     if let completion = completion {
1019 |                         DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1018:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1016 |             self.networkQueue.async { [weak self, completion] in
1017 |                 guard let self = self else {
1018 |                     if let completion = completion {
     |                                         |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1019 |                         DispatchQueue.main.async(execute: completion)
1020 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1023:33: warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1021 |                     return
1022 |                 }
1023 |                 self.flushQueue(eventQueue, type: .events)
     |                                 `- warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1024 |                 self.flushQueue(peopleQueue, type: .people)
1025 |                 self.flushQueue(groupsQueue, type: .groups)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1024:33: warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1022 |                 }
1023 |                 self.flushQueue(eventQueue, type: .events)
1024 |                 self.flushQueue(peopleQueue, type: .people)
     |                                 `- warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1025 |                 self.flushQueue(groupsQueue, type: .groups)
1026 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1025:33: warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1023 |                 self.flushQueue(eventQueue, type: .events)
1024 |                 self.flushQueue(peopleQueue, type: .people)
1025 |                 self.flushQueue(groupsQueue, type: .groups)
     |                                 `- warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1026 |
1027 |                 if let completion = completion {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1058:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1056 |     func flushSuccess(type: FlushType, ids: [Int32]) {
1057 |         trackingQueue.async { [weak self] in
1058 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1059 |                 return
1060 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1086:23: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1084 |
1085 |         trackingQueue.async { [weak self, event, properties, epochInterval] in
1086 |             guard let self else {
     |                       `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1087 |                 return
1088 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1107:76: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1105 |                                                          hadPersistedDistinctId: self.hadPersistedDistinctId)
1106 |             let timedEventsSnapshot = self.trackInstance.track(event: event,
1107 |                                                                properties: properties,
     |                                                                            `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1108 |                                                                timedEvents: shadowTimedEvents,
1109 |                                                                superProperties: shadowSuperProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |     /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1203:23: warning: result of call to 'write(closure:)' is unused
1201 |
1202 |     func removeCachedGroup(groupKey: String, groupID: MixpanelType) {
1203 |         readWriteLock.write {
     |                       `- warning: result of call to 'write(closure:)' is unused
1204 |             groups.removeValue(forKey: makeMapKey(groupKey: groupKey, groupID: groupID))
1205 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1237:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1235 |         let startTime = Date().timeIntervalSince1970
1236 |         trackingQueue.async { [weak self, startTime, event] in
1237 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1238 |             let timedEvents = self.trackInstance.time(event: event, timedEvents: self.timedEvents, startTime: startTime)
1239 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1268:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1266 |     public func clearTimedEvents() {
1267 |         trackingQueue.async { [weak self] in
1268 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1269 |             self.readWriteLock.write {
1270 |                 self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1283:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1281 |     public func clearTimedEvent(event: String) {
1282 |         trackingQueue.async { [weak self, event] in
1283 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1284 |
1285 |             let updatedTimedEvents = self.trackInstance.clearTimedEvent(event: event, timedEvents: self.timedEvents)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1308:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1306 |     public func clearSuperProperties() {
1307 |         trackingQueue.async { [weak self] in
1308 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1309 |             self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1310 |             MixpanelPersistence.saveSuperProperties(superProperties: self.superProperties, instanceName: self.name)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1327:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1325 |     public func registerSuperProperties(_ properties: Properties) {
1326 |         trackingQueue.async { [weak self] in
1327 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1328 |             let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
1329 |                                                                                     superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1328:85: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1326 |         trackingQueue.async { [weak self] in
1327 |             guard let self = self else { return }
1328 |             let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
     |                                                                                     `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1329 |                                                                                     superProperties: self.superProperties)
1330 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |     /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1356:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1354 |                                           defaultValue: MixpanelType? = nil) {
1355 |         trackingQueue.async { [weak self] in
1356 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1357 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1358 |                                                                                         superProperties: self.superProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1357:89: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1355 |         trackingQueue.async { [weak self] in
1356 |             guard let self = self else { return }
1357 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
     |                                                                                         `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1358 |                                                                                         superProperties: self.superProperties,
1359 |                                                                                         defaultValue: defaultValue)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |     /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1359:103: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1357 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1358 |                                                                                         superProperties: self.superProperties,
1359 |                                                                                         defaultValue: defaultValue)
     |                                                                                                       `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1360 |             self.readWriteLock.write {
1361 |                 self.superProperties = updatedSuperProperties
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |     /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1384:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1382 |     public func unregisterSuperProperty(_ propertyName: String) {
1383 |         trackingQueue.async { [weak self] in
1384 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1385 |             let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(propertyName,
1386 |                                                                               superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1403:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1401 |     func updateSuperProperty(_ update: @escaping (_ superproperties: inout InternalProperties) -> Void) {
1402 |         trackingQueue.async { [weak self] in
1403 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1404 |             var superPropertiesShadow = self.superProperties
1405 |             self.trackInstance.updateSuperProperty(update,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1405:52: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1403 |             guard let self = self else { return }
1404 |             var superPropertiesShadow = self.superProperties
1405 |             self.trackInstance.updateSuperProperty(update,
     |                                                    |- warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
     |                                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1406 |                                                    superProperties: &superPropertiesShadow)
1407 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1520:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1518 |     public func optOutTracking() {
1519 |         trackingQueue.async { [weak self] in
1520 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1521 |             if self.people.distinctId != nil {
1522 |                 self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1565:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     /// apiToken string that identifies the project to track data to
     :
1563 |     public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1564 |         trackingQueue.async { [weak self] in
1565 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1566 |             self.readWriteLock.write {
1567 |                 self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1575:54: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1573 |                 self.identify(distinctId: distinctId)
1574 |             }
1575 |             self.track(event: "$opt_in", properties: properties)
     |                                                      `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1576 |         }
1577 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |     /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
Build complete! (8.66s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Mixpanel",
  "name" : "Mixpanel",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "watchos",
      "version" : "4.0"
    }
  ],
  "products" : [
    {
      "name" : "Mixpanel",
      "targets" : [
        "Mixpanel"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Mixpanel",
      "module_type" : "SwiftTarget",
      "name" : "Mixpanel",
      "path" : "Sources",
      "product_memberships" : [
        "Mixpanel"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "AutomaticEvents.swift",
        "AutomaticProperties.swift",
        "Constants.swift",
        "Data+Compression.swift",
        "Error.swift",
        "FileLogging.swift",
        "Flush.swift",
        "FlushRequest.swift",
        "Group.swift",
        "JSONHandler.swift",
        "MPDB.swift",
        "Mixpanel.swift",
        "MixpanelInstance.swift",
        "MixpanelLogger.swift",
        "MixpanelPersistence.swift",
        "MixpanelType.swift",
        "Network.swift",
        "People.swift",
        "PrintLogging.swift",
        "ReadWriteLock.swift",
        "SessionMetadata.swift",
        "Track.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.