The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of iOSMcuManagerLibrary, reference 1.10.1 (b60139), with Swift 6.1 for macOS (SPM) on 19 Aug 2025 16:57:52 UTC.

Swift 6 data race errors: 13

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

    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:95:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 93 |     func completedWrite(sequenceNumber: McuSequenceNumber) {
 94 |         lockingQueue.async {
 95 |             self.state[sequenceNumber] = nil
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 96 |         }
 97 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:101:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 99 |     func onError(_ error: Error) {
100 |         lockingQueue.async {
101 |             self.state.forEach { _, value in
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
102 |                 value.writeLock.open(error)
103 |             }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:109:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
107 |     func onWriteError(sequenceNumber: McuSequenceNumber, error: Error) {
108 |         lockingQueue.async {
109 |             self.state[sequenceNumber]?.writeLock.open(error)
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
110 |         }
111 |     }
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:39:27: warning: static property 'upperCase' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'upperCase' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'upperCase' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:40:27: warning: static property 'byteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'byteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'byteSpacing' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:41:27: warning: static property 'prepend0x' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'prepend0x' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'prepend0x' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:42:27: warning: static property 'twoByteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'twoByteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'twoByteSpacing' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
 44 |
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:43:27: warning: static property 'reverseEndianness' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
    |                           |- warning: static property 'reverseEndianness' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'reverseEndianness' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 44 |
 45 |         public let rawValue: Int
[52/84] Compiling iOSMcuManagerLibrary McuMgrBleTransportWriteState.swift
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:38:20: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 36 |         lockingQueue.async {
 37 |             // Either the Lock for a Sequence Number is Open, or there's no state for it.
 38 |             assert(self.state[sequenceNumber]?.writeLock.isOpen ?? true)
    |                    `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 39 |             self.state[sequenceNumber] = (sequenceNumber: sequenceNumber, writeLock: lock, nil, nil)
 40 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:39:86: warning: capture of 'lock' with non-sendable type 'ResultLock' in a '@Sendable' closure
 37 |             // Either the Lock for a Sequence Number is Open, or there's no state for it.
 38 |             assert(self.state[sequenceNumber]?.writeLock.isOpen ?? true)
 39 |             self.state[sequenceNumber] = (sequenceNumber: sequenceNumber, writeLock: lock, nil, nil)
    |                                                                                      `- warning: capture of 'lock' with non-sendable type 'ResultLock' in a '@Sendable' closure
 40 |         }
 41 |     }
/Users/admin/builder/spi-builder-workspace/Source/Utils/ResultLock.swift:11:14: note: class 'ResultLock' does not conform to the 'Sendable' protocol
 9 | public typealias ResultLockKey = String
10 |
11 | public class ResultLock {
   |              `- note: class 'ResultLock' does not conform to the 'Sendable' protocol
12 |
13 |     private var semaphore: DispatchSemaphore
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:38:20: warning: implicit capture of 'self' requires that 'McuMgrBleTransportWriteState' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 36 |         lockingQueue.async {
 37 |             // Either the Lock for a Sequence Number is Open, or there's no state for it.
 38 |             assert(self.state[sequenceNumber]?.writeLock.isOpen ?? true)
    |                    `- warning: implicit capture of 'self' requires that 'McuMgrBleTransportWriteState' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 39 |             self.state[sequenceNumber] = (sequenceNumber: sequenceNumber, writeLock: lock, nil, nil)
 40 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:44:30: warning: capture of 'writeClosure' with non-sendable type '() -> Void' in a '@Sendable' closure
 42 |
 43 |     func sharedLock(_ writeClosure: @escaping () -> Void) {
 44 |         lockingQueue.async { writeClosure() }
    |                              |- warning: capture of 'writeClosure' with non-sendable type '() -> Void' in a '@Sendable' closure
    |                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 45 |     }
 46 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:49:16: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 47 |     func received(sequenceNumber: McuSequenceNumber, data: Data) {
 48 |         lockingQueue.async {
 49 |             if self.state[sequenceNumber]?.chunk == nil {
    |                `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 50 |                 // If we do not have any current response data, this is the initial
 51 |                 // packet in a potentially fragmented response. Get the expected
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:89:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 87 |     func open(sequenceNumber: McuSequenceNumber, dueTo error: McuMgrTransportError) {
 88 |         lockingQueue.async {
 89 |             self.state[sequenceNumber]?.writeLock.open(error)
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:95:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 93 |     func completedWrite(sequenceNumber: McuSequenceNumber) {
 94 |         lockingQueue.async {
 95 |             self.state[sequenceNumber] = nil
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 96 |         }
 97 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:101:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 99 |     func onError(_ error: Error) {
100 |         lockingQueue.async {
101 |             self.state.forEach { _, value in
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
102 |                 value.writeLock.open(error)
103 |             }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:109:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
107 |     func onWriteError(sequenceNumber: McuSequenceNumber, error: Error) {
108 |         lockingQueue.async {
109 |             self.state[sequenceNumber]?.writeLock.open(error)
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
110 |         }
111 |     }
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:39:27: warning: static property 'upperCase' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'upperCase' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'upperCase' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:40:27: warning: static property 'byteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'byteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'byteSpacing' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:41:27: warning: static property 'prepend0x' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'prepend0x' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'prepend0x' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:42:27: warning: static property 'twoByteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'twoByteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'twoByteSpacing' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
 44 |
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:43:27: warning: static property 'reverseEndianness' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
    |                           |- warning: static property 'reverseEndianness' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'reverseEndianness' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 44 |
 45 |         public let rawValue: Int
[53/84] Compiling iOSMcuManagerLibrary CBOR+McuManager.swift
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:38:20: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 36 |         lockingQueue.async {
 37 |             // Either the Lock for a Sequence Number is Open, or there's no state for it.
 38 |             assert(self.state[sequenceNumber]?.writeLock.isOpen ?? true)
    |                    `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 39 |             self.state[sequenceNumber] = (sequenceNumber: sequenceNumber, writeLock: lock, nil, nil)
 40 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:39:86: warning: capture of 'lock' with non-sendable type 'ResultLock' in a '@Sendable' closure
 37 |             // Either the Lock for a Sequence Number is Open, or there's no state for it.
 38 |             assert(self.state[sequenceNumber]?.writeLock.isOpen ?? true)
 39 |             self.state[sequenceNumber] = (sequenceNumber: sequenceNumber, writeLock: lock, nil, nil)
    |                                                                                      `- warning: capture of 'lock' with non-sendable type 'ResultLock' in a '@Sendable' closure
 40 |         }
 41 |     }
/Users/admin/builder/spi-builder-workspace/Source/Utils/ResultLock.swift:11:14: note: class 'ResultLock' does not conform to the 'Sendable' protocol
 9 | public typealias ResultLockKey = String
10 |
11 | public class ResultLock {
   |              `- note: class 'ResultLock' does not conform to the 'Sendable' protocol
12 |
13 |     private var semaphore: DispatchSemaphore
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:38:20: warning: implicit capture of 'self' requires that 'McuMgrBleTransportWriteState' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 36 |         lockingQueue.async {
 37 |             // Either the Lock for a Sequence Number is Open, or there's no state for it.
 38 |             assert(self.state[sequenceNumber]?.writeLock.isOpen ?? true)
    |                    `- warning: implicit capture of 'self' requires that 'McuMgrBleTransportWriteState' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 39 |             self.state[sequenceNumber] = (sequenceNumber: sequenceNumber, writeLock: lock, nil, nil)
 40 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:44:30: warning: capture of 'writeClosure' with non-sendable type '() -> Void' in a '@Sendable' closure
 42 |
 43 |     func sharedLock(_ writeClosure: @escaping () -> Void) {
 44 |         lockingQueue.async { writeClosure() }
    |                              |- warning: capture of 'writeClosure' with non-sendable type '() -> Void' in a '@Sendable' closure
    |                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 45 |     }
 46 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:49:16: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 47 |     func received(sequenceNumber: McuSequenceNumber, data: Data) {
 48 |         lockingQueue.async {
 49 |             if self.state[sequenceNumber]?.chunk == nil {
    |                `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 50 |                 // If we do not have any current response data, this is the initial
 51 |                 // packet in a potentially fragmented response. Get the expected
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:89:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 87 |     func open(sequenceNumber: McuSequenceNumber, dueTo error: McuMgrTransportError) {
 88 |         lockingQueue.async {
 89 |             self.state[sequenceNumber]?.writeLock.open(error)
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:95:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 93 |     func completedWrite(sequenceNumber: McuSequenceNumber) {
 94 |         lockingQueue.async {
 95 |             self.state[sequenceNumber] = nil
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 96 |         }
 97 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:101:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 99 |     func onError(_ error: Error) {
100 |         lockingQueue.async {
101 |             self.state.forEach { _, value in
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
102 |                 value.writeLock.open(error)
103 |             }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:109:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
107 |     func onWriteError(sequenceNumber: McuSequenceNumber, error: Error) {
108 |         lockingQueue.async {
109 |             self.state[sequenceNumber]?.writeLock.open(error)
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
110 |         }
111 |     }
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:39:27: warning: static property 'upperCase' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'upperCase' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'upperCase' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:40:27: warning: static property 'byteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'byteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'byteSpacing' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:41:27: warning: static property 'prepend0x' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'prepend0x' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'prepend0x' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:42:27: warning: static property 'twoByteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'twoByteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'twoByteSpacing' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
 44 |
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:43:27: warning: static property 'reverseEndianness' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
    |                           |- warning: static property 'reverseEndianness' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'reverseEndianness' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 44 |
 45 |         public let rawValue: Int
[54/84] Compiling iOSMcuManagerLibrary Data+McuManager.swift
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:38:20: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 36 |         lockingQueue.async {
 37 |             // Either the Lock for a Sequence Number is Open, or there's no state for it.
 38 |             assert(self.state[sequenceNumber]?.writeLock.isOpen ?? true)
    |                    `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 39 |             self.state[sequenceNumber] = (sequenceNumber: sequenceNumber, writeLock: lock, nil, nil)
 40 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:39:86: warning: capture of 'lock' with non-sendable type 'ResultLock' in a '@Sendable' closure
 37 |             // Either the Lock for a Sequence Number is Open, or there's no state for it.
 38 |             assert(self.state[sequenceNumber]?.writeLock.isOpen ?? true)
 39 |             self.state[sequenceNumber] = (sequenceNumber: sequenceNumber, writeLock: lock, nil, nil)
    |                                                                                      `- warning: capture of 'lock' with non-sendable type 'ResultLock' in a '@Sendable' closure
 40 |         }
 41 |     }
/Users/admin/builder/spi-builder-workspace/Source/Utils/ResultLock.swift:11:14: note: class 'ResultLock' does not conform to the 'Sendable' protocol
 9 | public typealias ResultLockKey = String
10 |
11 | public class ResultLock {
   |              `- note: class 'ResultLock' does not conform to the 'Sendable' protocol
12 |
13 |     private var semaphore: DispatchSemaphore
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:38:20: warning: implicit capture of 'self' requires that 'McuMgrBleTransportWriteState' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 36 |         lockingQueue.async {
 37 |             // Either the Lock for a Sequence Number is Open, or there's no state for it.
 38 |             assert(self.state[sequenceNumber]?.writeLock.isOpen ?? true)
    |                    `- warning: implicit capture of 'self' requires that 'McuMgrBleTransportWriteState' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 39 |             self.state[sequenceNumber] = (sequenceNumber: sequenceNumber, writeLock: lock, nil, nil)
 40 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:44:30: warning: capture of 'writeClosure' with non-sendable type '() -> Void' in a '@Sendable' closure
 42 |
 43 |     func sharedLock(_ writeClosure: @escaping () -> Void) {
 44 |         lockingQueue.async { writeClosure() }
    |                              |- warning: capture of 'writeClosure' with non-sendable type '() -> Void' in a '@Sendable' closure
    |                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 45 |     }
 46 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:49:16: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 47 |     func received(sequenceNumber: McuSequenceNumber, data: Data) {
 48 |         lockingQueue.async {
 49 |             if self.state[sequenceNumber]?.chunk == nil {
    |                `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 50 |                 // If we do not have any current response data, this is the initial
 51 |                 // packet in a potentially fragmented response. Get the expected
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:89:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 87 |     func open(sequenceNumber: McuSequenceNumber, dueTo error: McuMgrTransportError) {
 88 |         lockingQueue.async {
 89 |             self.state[sequenceNumber]?.writeLock.open(error)
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 90 |         }
 91 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:95:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 93 |     func completedWrite(sequenceNumber: McuSequenceNumber) {
 94 |         lockingQueue.async {
 95 |             self.state[sequenceNumber] = nil
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 96 |         }
 97 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:101:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
 99 |     func onError(_ error: Error) {
100 |         lockingQueue.async {
101 |             self.state.forEach { _, value in
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
102 |                 value.writeLock.open(error)
103 |             }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:109:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
 16 | // MARK: - McuMgrBleTransportWriteState
 17 |
 18 | final class McuMgrBleTransportWriteState {
    |             `- note: class 'McuMgrBleTransportWriteState' does not conform to the 'Sendable' protocol
 19 |
 20 |     // MARK: - Private Properties
    :
107 |     func onWriteError(sequenceNumber: McuSequenceNumber, error: Error) {
108 |         lockingQueue.async {
109 |             self.state[sequenceNumber]?.writeLock.open(error)
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a '@Sendable' closure
110 |         }
111 |     }
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:39:27: warning: static property 'upperCase' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'upperCase' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'upperCase' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:40:27: warning: static property 'byteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'byteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'byteSpacing' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:41:27: warning: static property 'prepend0x' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'prepend0x' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'prepend0x' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:42:27: warning: static property 'twoByteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'twoByteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'twoByteSpacing' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
 44 |
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:43:27: warning: static property 'reverseEndianness' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
    |                           |- warning: static property 'reverseEndianness' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'reverseEndianness' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 44 |
 45 |         public let rawValue: Int
[55/84] Compiling iOSMcuManagerLibrary McuMgrSuitManifest.swift
[56/84] Compiling iOSMcuManagerLibrary McuMgrTransport.swift
[57/84] Compiling iOSMcuManagerLibrary McuMgrUploadPipeline.swift
[58/84] Compiling iOSMcuManagerLibrary String+McuManager.swift
[59/84] Compiling iOSMcuManagerLibrary BasicManager.swift
[60/84] Compiling iOSMcuManagerLibrary CrashManager.swift
[61/84] Compiling iOSMcuManagerLibrary FirmwareUpgradeController.swift
[62/84] Compiling iOSMcuManagerLibrary McuMgrHeader.swift
[63/84] Compiling iOSMcuManagerLibrary McuMgrImage.swift
[64/84] Compiling iOSMcuManagerLibrary McuMgrLogDelegate.swift
[65/84] Compiling iOSMcuManagerLibrary McuMgrManifest.swift
[66/84] Emitting module iOSMcuManagerLibrary
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:39:27: warning: static property 'upperCase' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
    |                           |- warning: static property 'upperCase' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'upperCase' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:40:27: warning: static property 'byteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
    |                           |- warning: static property 'byteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'byteSpacing' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:41:27: warning: static property 'prepend0x' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
    |                           |- warning: static property 'prepend0x' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'prepend0x' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:42:27: warning: static property 'twoByteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
    |                           |- warning: static property 'twoByteSpacing' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'twoByteSpacing' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
 44 |
/Users/admin/builder/spi-builder-workspace/Source/Extensions/Data+McuManager.swift:43:27: warning: static property 'reverseEndianness' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 36 |     // MARK: - Hex Encoding
 37 |
 38 |     struct HexEncodingOptions: OptionSet {
    |            `- note: consider making struct 'HexEncodingOptions' conform to the 'Sendable' protocol
 39 |         public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
 40 |         public static let byteSpacing = HexEncodingOptions(rawValue: 1 << 1)
 41 |         public static let prepend0x = HexEncodingOptions(rawValue: 1 << 2)
 42 |         public static let twoByteSpacing = HexEncodingOptions(rawValue: 1 << 3)
 43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
    |                           |- warning: static property 'reverseEndianness' is not concurrency-safe because non-'Sendable' type 'Data.HexEncodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'reverseEndianness' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 44 |
 45 |         public let rawValue: Int
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1250:10: warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'FirmwareUpgradeError' has non-sendable type 'McuMgrResponse'; this is an error in the Swift 6 language mode
1248 | public enum FirmwareUpgradeError: Error, LocalizedError {
1249 |     case unknown(String)
1250 |     case invalidResponse(McuMgrResponse)
     |          `- warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'FirmwareUpgradeError' has non-sendable type 'McuMgrResponse'; this is an error in the Swift 6 language mode
1251 |     case connectionFailedAfterReset
1252 |     case untestedImageFound(image: Int, slot: Int)
/Users/admin/builder/spi-builder-workspace/Source/McuMgrResponse.swift:10:12: note: class 'McuMgrResponse' does not conform to the 'Sendable' protocol
   8 | import SwiftCBOR
   9 |
  10 | open class McuMgrResponse: CBORMappable {
     |            `- note: class 'McuMgrResponse' does not conform to the 'Sendable' protocol
  11 |
  12 |     //**************************************************************************
/Users/admin/builder/spi-builder-workspace/Source/Managers/SuitManager.swift:650:10: warning: associated value 'suitDelegateRequiredForResource' of 'Sendable'-conforming enum 'SuitManagerError' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
648 |
649 | public enum SuitManagerError: Error, LocalizedError {
650 |     case suitDelegateRequiredForResource(_ resource: FirmwareUpgradeResource)
    |          `- warning: associated value 'suitDelegateRequiredForResource' of 'Sendable'-conforming enum 'SuitManagerError' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
651 |     case listRoleResponseMismatch(roleCount: Int, responseCount: Int)
652 |
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeController.swift:38:13: note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
36 | // MARK: FirmwareUpgradeResource
37 |
38 | public enum FirmwareUpgradeResource: CustomStringConvertible {
   |             `- note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
39 |     case file(name: String)
40 |
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:420:10: warning: associated value 'groupCode' of 'Sendable'-conforming enum 'McuMgrError' has non-sendable type 'McuMgrGroupReturnCode'; this is an error in the Swift 6 language mode
418 | public enum McuMgrError: Error, LocalizedError {
419 |     case returnCode(_ rc: McuMgrReturnCode)
420 |     case groupCode(_ group: McuMgrGroupReturnCode)
    |          `- warning: associated value 'groupCode' of 'Sendable'-conforming enum 'McuMgrError' has non-sendable type 'McuMgrGroupReturnCode'; this is an error in the Swift 6 language mode
421 |
422 |     public var errorDescription: String? {
    :
432 | // MARK: - McuMgrGroupReturnCode
433 |
434 | public class McuMgrGroupReturnCode: CBORMappable {
    |              `- note: class 'McuMgrGroupReturnCode' does not conform to the 'Sendable' protocol
435 |
436 |     public var group: UInt64 = 0
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:23:14: warning: associated value 'invalidKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Out-of-Order Buffer.
 16 |  */
 17 | public struct McuMgrCallbackOoOBuffer<Key: Hashable & Comparable, Value> {
    |                                       `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
 21 |     enum BufferError: Error {
 22 |         case empty
 23 |         case invalidKey(_ key: Key)
    |              `- warning: associated value 'invalidKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 24 |         case noValueForKey(_ key: Key)
 25 |     }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:24:14: warning: associated value 'noValueForKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Out-of-Order Buffer.
 16 |  */
 17 | public struct McuMgrCallbackOoOBuffer<Key: Hashable & Comparable, Value> {
    |                                       `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
 22 |         case empty
 23 |         case invalidKey(_ key: Key)
 24 |         case noValueForKey(_ key: Key)
    |              `- warning: associated value 'noValueForKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 25 |     }
 26 |
/Users/admin/builder/spi-builder-workspace/Source/McuMgrPackage.swift:94:14: warning: associated value 'resourceNotFound' of 'Sendable'-conforming enum 'Error' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
 92 |         case deniedAccessToScopedResource, notAValidDocument, unableToAccessCacheDirectory
 93 |         case manifestFileNotFound, manifestImageNotFound
 94 |         case resourceNotFound(_ resource: FirmwareUpgradeResource)
    |              `- warning: associated value 'resourceNotFound' of 'Sendable'-conforming enum 'Error' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
 95 |
 96 |         public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeController.swift:38:13: note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
36 | // MARK: FirmwareUpgradeResource
37 |
38 | public enum FirmwareUpgradeResource: CustomStringConvertible {
   |             `- note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
39 |     case file(name: String)
40 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:75:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 73 |         didSet {
 74 |             DispatchQueue.main.async {
 75 |                 self.notifyPeripheralDelegate()
    |                 |- 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
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:109:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
107 |         didSet {
108 |             DispatchQueue.main.async {
109 |                 self.notifyPeripheralDelegate()
    |                 |- 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
110 |             }
111 |         }
[67/84] Compiling iOSMcuManagerLibrary StatsManager.swift
/Users/admin/builder/spi-builder-workspace/Source/Managers/SuitManager.swift:650:10: warning: associated value 'suitDelegateRequiredForResource' of 'Sendable'-conforming enum 'SuitManagerError' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
648 |
649 | public enum SuitManagerError: Error, LocalizedError {
650 |     case suitDelegateRequiredForResource(_ resource: FirmwareUpgradeResource)
    |          `- warning: associated value 'suitDelegateRequiredForResource' of 'Sendable'-conforming enum 'SuitManagerError' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
651 |     case listRoleResponseMismatch(roleCount: Int, responseCount: Int)
652 |
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeController.swift:38:13: note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
36 | // MARK: FirmwareUpgradeResource
37 |
38 | public enum FirmwareUpgradeResource: CustomStringConvertible {
   |             `- note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
39 |     case file(name: String)
40 |
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:420:10: warning: associated value 'groupCode' of 'Sendable'-conforming enum 'McuMgrError' has non-sendable type 'McuMgrGroupReturnCode'; this is an error in the Swift 6 language mode
418 | public enum McuMgrError: Error, LocalizedError {
419 |     case returnCode(_ rc: McuMgrReturnCode)
420 |     case groupCode(_ group: McuMgrGroupReturnCode)
    |          `- warning: associated value 'groupCode' of 'Sendable'-conforming enum 'McuMgrError' has non-sendable type 'McuMgrGroupReturnCode'; this is an error in the Swift 6 language mode
421 |
422 |     public var errorDescription: String? {
    :
432 | // MARK: - McuMgrGroupReturnCode
433 |
434 | public class McuMgrGroupReturnCode: CBORMappable {
    |              `- note: class 'McuMgrGroupReturnCode' does not conform to the 'Sendable' protocol
435 |
436 |     public var group: UInt64 = 0
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:23:14: warning: associated value 'invalidKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Out-of-Order Buffer.
 16 |  */
 17 | public struct McuMgrCallbackOoOBuffer<Key: Hashable & Comparable, Value> {
    |                                       `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
 21 |     enum BufferError: Error {
 22 |         case empty
 23 |         case invalidKey(_ key: Key)
    |              `- warning: associated value 'invalidKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 24 |         case noValueForKey(_ key: Key)
 25 |     }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:24:14: warning: associated value 'noValueForKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Out-of-Order Buffer.
 16 |  */
 17 | public struct McuMgrCallbackOoOBuffer<Key: Hashable & Comparable, Value> {
    |                                       `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
 22 |         case empty
 23 |         case invalidKey(_ key: Key)
 24 |         case noValueForKey(_ key: Key)
    |              `- warning: associated value 'noValueForKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 25 |     }
 26 |
/Users/admin/builder/spi-builder-workspace/Source/Managers/SuitManager.swift:531:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
529 |                 let waitTime: DispatchTimeInterval = .milliseconds(Self.POLLING_INTERVAL_MS)
530 |                 DispatchQueue.main.asyncAfter(deadline: .now() + waitTime) { [unowned self] in
531 |                     self.pollAttempts += 1
    |                     |- 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
532 |                     self.poll(callback: self.pollingCallback)
533 |                 }
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:146:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
144 |             } catch let robBufferError {
145 |                 DispatchQueue.main.async {
146 |                     callback(response, robBufferError)
    |                     |- warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'callback' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
147 |                 }
148 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:146:30: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
144 |             } catch let robBufferError {
145 |                 DispatchQueue.main.async {
146 |                     callback(response, robBufferError)
    |                              |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'response' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
147 |                 }
148 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                     |- warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'callback' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:30: warning: sending 'key' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                              |- warning: sending 'key' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'key' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:35: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                                   |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                   `- note: task-isolated 'value' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
[68/84] Compiling iOSMcuManagerLibrary SuitManager.swift
/Users/admin/builder/spi-builder-workspace/Source/Managers/SuitManager.swift:650:10: warning: associated value 'suitDelegateRequiredForResource' of 'Sendable'-conforming enum 'SuitManagerError' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
648 |
649 | public enum SuitManagerError: Error, LocalizedError {
650 |     case suitDelegateRequiredForResource(_ resource: FirmwareUpgradeResource)
    |          `- warning: associated value 'suitDelegateRequiredForResource' of 'Sendable'-conforming enum 'SuitManagerError' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
651 |     case listRoleResponseMismatch(roleCount: Int, responseCount: Int)
652 |
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeController.swift:38:13: note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
36 | // MARK: FirmwareUpgradeResource
37 |
38 | public enum FirmwareUpgradeResource: CustomStringConvertible {
   |             `- note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
39 |     case file(name: String)
40 |
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:420:10: warning: associated value 'groupCode' of 'Sendable'-conforming enum 'McuMgrError' has non-sendable type 'McuMgrGroupReturnCode'; this is an error in the Swift 6 language mode
418 | public enum McuMgrError: Error, LocalizedError {
419 |     case returnCode(_ rc: McuMgrReturnCode)
420 |     case groupCode(_ group: McuMgrGroupReturnCode)
    |          `- warning: associated value 'groupCode' of 'Sendable'-conforming enum 'McuMgrError' has non-sendable type 'McuMgrGroupReturnCode'; this is an error in the Swift 6 language mode
421 |
422 |     public var errorDescription: String? {
    :
432 | // MARK: - McuMgrGroupReturnCode
433 |
434 | public class McuMgrGroupReturnCode: CBORMappable {
    |              `- note: class 'McuMgrGroupReturnCode' does not conform to the 'Sendable' protocol
435 |
436 |     public var group: UInt64 = 0
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:23:14: warning: associated value 'invalidKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Out-of-Order Buffer.
 16 |  */
 17 | public struct McuMgrCallbackOoOBuffer<Key: Hashable & Comparable, Value> {
    |                                       `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
 21 |     enum BufferError: Error {
 22 |         case empty
 23 |         case invalidKey(_ key: Key)
    |              `- warning: associated value 'invalidKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 24 |         case noValueForKey(_ key: Key)
 25 |     }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:24:14: warning: associated value 'noValueForKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Out-of-Order Buffer.
 16 |  */
 17 | public struct McuMgrCallbackOoOBuffer<Key: Hashable & Comparable, Value> {
    |                                       `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
 22 |         case empty
 23 |         case invalidKey(_ key: Key)
 24 |         case noValueForKey(_ key: Key)
    |              `- warning: associated value 'noValueForKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 25 |     }
 26 |
/Users/admin/builder/spi-builder-workspace/Source/Managers/SuitManager.swift:531:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
529 |                 let waitTime: DispatchTimeInterval = .milliseconds(Self.POLLING_INTERVAL_MS)
530 |                 DispatchQueue.main.asyncAfter(deadline: .now() + waitTime) { [unowned self] in
531 |                     self.pollAttempts += 1
    |                     |- 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
532 |                     self.poll(callback: self.pollingCallback)
533 |                 }
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:146:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
144 |             } catch let robBufferError {
145 |                 DispatchQueue.main.async {
146 |                     callback(response, robBufferError)
    |                     |- warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'callback' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
147 |                 }
148 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:146:30: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
144 |             } catch let robBufferError {
145 |                 DispatchQueue.main.async {
146 |                     callback(response, robBufferError)
    |                              |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'response' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
147 |                 }
148 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                     |- warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'callback' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:30: warning: sending 'key' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                              |- warning: sending 'key' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'key' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:35: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                                   |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                   `- note: task-isolated 'value' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
[69/84] Compiling iOSMcuManagerLibrary McuManager.swift
/Users/admin/builder/spi-builder-workspace/Source/Managers/SuitManager.swift:650:10: warning: associated value 'suitDelegateRequiredForResource' of 'Sendable'-conforming enum 'SuitManagerError' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
648 |
649 | public enum SuitManagerError: Error, LocalizedError {
650 |     case suitDelegateRequiredForResource(_ resource: FirmwareUpgradeResource)
    |          `- warning: associated value 'suitDelegateRequiredForResource' of 'Sendable'-conforming enum 'SuitManagerError' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
651 |     case listRoleResponseMismatch(roleCount: Int, responseCount: Int)
652 |
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeController.swift:38:13: note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
36 | // MARK: FirmwareUpgradeResource
37 |
38 | public enum FirmwareUpgradeResource: CustomStringConvertible {
   |             `- note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
39 |     case file(name: String)
40 |
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:420:10: warning: associated value 'groupCode' of 'Sendable'-conforming enum 'McuMgrError' has non-sendable type 'McuMgrGroupReturnCode'; this is an error in the Swift 6 language mode
418 | public enum McuMgrError: Error, LocalizedError {
419 |     case returnCode(_ rc: McuMgrReturnCode)
420 |     case groupCode(_ group: McuMgrGroupReturnCode)
    |          `- warning: associated value 'groupCode' of 'Sendable'-conforming enum 'McuMgrError' has non-sendable type 'McuMgrGroupReturnCode'; this is an error in the Swift 6 language mode
421 |
422 |     public var errorDescription: String? {
    :
432 | // MARK: - McuMgrGroupReturnCode
433 |
434 | public class McuMgrGroupReturnCode: CBORMappable {
    |              `- note: class 'McuMgrGroupReturnCode' does not conform to the 'Sendable' protocol
435 |
436 |     public var group: UInt64 = 0
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:23:14: warning: associated value 'invalidKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Out-of-Order Buffer.
 16 |  */
 17 | public struct McuMgrCallbackOoOBuffer<Key: Hashable & Comparable, Value> {
    |                                       `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
 21 |     enum BufferError: Error {
 22 |         case empty
 23 |         case invalidKey(_ key: Key)
    |              `- warning: associated value 'invalidKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 24 |         case noValueForKey(_ key: Key)
 25 |     }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:24:14: warning: associated value 'noValueForKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Out-of-Order Buffer.
 16 |  */
 17 | public struct McuMgrCallbackOoOBuffer<Key: Hashable & Comparable, Value> {
    |                                       `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
 22 |         case empty
 23 |         case invalidKey(_ key: Key)
 24 |         case noValueForKey(_ key: Key)
    |              `- warning: associated value 'noValueForKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 25 |     }
 26 |
/Users/admin/builder/spi-builder-workspace/Source/Managers/SuitManager.swift:531:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
529 |                 let waitTime: DispatchTimeInterval = .milliseconds(Self.POLLING_INTERVAL_MS)
530 |                 DispatchQueue.main.asyncAfter(deadline: .now() + waitTime) { [unowned self] in
531 |                     self.pollAttempts += 1
    |                     |- 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
532 |                     self.poll(callback: self.pollingCallback)
533 |                 }
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:146:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
144 |             } catch let robBufferError {
145 |                 DispatchQueue.main.async {
146 |                     callback(response, robBufferError)
    |                     |- warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'callback' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
147 |                 }
148 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:146:30: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
144 |             } catch let robBufferError {
145 |                 DispatchQueue.main.async {
146 |                     callback(response, robBufferError)
    |                              |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'response' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
147 |                 }
148 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                     |- warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'callback' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:30: warning: sending 'key' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                              |- warning: sending 'key' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'key' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:35: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                                   |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                   `- note: task-isolated 'value' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
[70/84] Compiling iOSMcuManagerLibrary McuMgrCallbackOoOBuffer.swift
/Users/admin/builder/spi-builder-workspace/Source/Managers/SuitManager.swift:650:10: warning: associated value 'suitDelegateRequiredForResource' of 'Sendable'-conforming enum 'SuitManagerError' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
648 |
649 | public enum SuitManagerError: Error, LocalizedError {
650 |     case suitDelegateRequiredForResource(_ resource: FirmwareUpgradeResource)
    |          `- warning: associated value 'suitDelegateRequiredForResource' of 'Sendable'-conforming enum 'SuitManagerError' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
651 |     case listRoleResponseMismatch(roleCount: Int, responseCount: Int)
652 |
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeController.swift:38:13: note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
36 | // MARK: FirmwareUpgradeResource
37 |
38 | public enum FirmwareUpgradeResource: CustomStringConvertible {
   |             `- note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
39 |     case file(name: String)
40 |
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:420:10: warning: associated value 'groupCode' of 'Sendable'-conforming enum 'McuMgrError' has non-sendable type 'McuMgrGroupReturnCode'; this is an error in the Swift 6 language mode
418 | public enum McuMgrError: Error, LocalizedError {
419 |     case returnCode(_ rc: McuMgrReturnCode)
420 |     case groupCode(_ group: McuMgrGroupReturnCode)
    |          `- warning: associated value 'groupCode' of 'Sendable'-conforming enum 'McuMgrError' has non-sendable type 'McuMgrGroupReturnCode'; this is an error in the Swift 6 language mode
421 |
422 |     public var errorDescription: String? {
    :
432 | // MARK: - McuMgrGroupReturnCode
433 |
434 | public class McuMgrGroupReturnCode: CBORMappable {
    |              `- note: class 'McuMgrGroupReturnCode' does not conform to the 'Sendable' protocol
435 |
436 |     public var group: UInt64 = 0
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:23:14: warning: associated value 'invalidKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Out-of-Order Buffer.
 16 |  */
 17 | public struct McuMgrCallbackOoOBuffer<Key: Hashable & Comparable, Value> {
    |                                       `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
 21 |     enum BufferError: Error {
 22 |         case empty
 23 |         case invalidKey(_ key: Key)
    |              `- warning: associated value 'invalidKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 24 |         case noValueForKey(_ key: Key)
 25 |     }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:24:14: warning: associated value 'noValueForKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Out-of-Order Buffer.
 16 |  */
 17 | public struct McuMgrCallbackOoOBuffer<Key: Hashable & Comparable, Value> {
    |                                       `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
 22 |         case empty
 23 |         case invalidKey(_ key: Key)
 24 |         case noValueForKey(_ key: Key)
    |              `- warning: associated value 'noValueForKey' of 'Sendable'-conforming enum 'BufferError' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
 25 |     }
 26 |
/Users/admin/builder/spi-builder-workspace/Source/Managers/SuitManager.swift:531:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
529 |                 let waitTime: DispatchTimeInterval = .milliseconds(Self.POLLING_INTERVAL_MS)
530 |                 DispatchQueue.main.asyncAfter(deadline: .now() + waitTime) { [unowned self] in
531 |                     self.pollAttempts += 1
    |                     |- 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
532 |                     self.poll(callback: self.pollingCallback)
533 |                 }
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:146:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
144 |             } catch let robBufferError {
145 |                 DispatchQueue.main.async {
146 |                     callback(response, robBufferError)
    |                     |- warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'callback' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
147 |                 }
148 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuManager.swift:146:30: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
144 |             } catch let robBufferError {
145 |                 DispatchQueue.main.async {
146 |                     callback(response, robBufferError)
    |                              |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'response' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
147 |                 }
148 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                     |- warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'callback' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:30: warning: sending 'key' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                              |- warning: sending 'key' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'key' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrCallbackOoOBuffer.swift:122:35: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
120 |
121 |                 DispatchQueue.main.async {
122 |                     callback(key, value)
    |                                   |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                   `- note: task-isolated 'value' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |                 }
124 |             }
[71/84] Compiling iOSMcuManagerLibrary McuMgrBleROBWriteBuffer.swift
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:13: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:122: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                          `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  8 | import Foundation
  9 | import Dispatch
 10 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
 11 |
 12 | // MARK: - McuMgrBleROBWriteBuffer
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:150: warning: capture of 'characteristic' with non-sendable type 'CBCharacteristic' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                                                      `- warning: capture of 'characteristic' with non-sendable type 'CBCharacteristic' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBCharacteristic.h:57:28: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 55 |  */
 56 | NS_CLASS_AVAILABLE(10_7, 5_0)
 57 | CB_EXTERN_CLASS @interface CBCharacteristic : CBAttribute
    |                            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 58 |
 59 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:176: warning: capture of 'callback' with non-sendable type '(Data?, McuMgrTransportError?) -> Void' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                                                                                |- warning: capture of 'callback' with non-sendable type '(Data?, McuMgrTransportError?) -> Void' in a '@Sendable' closure
    |                                                                                                                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:89:71: warning: implicit capture of 'self' requires that 'McuMgrBleROBWriteBuffer' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
 87 |             window.sort(by: <)
 88 |             #if DEBUG
 89 |             log(msg: "↵ Enqueued [Seq. No: \(sequenceNumber)] {WR \(writeNumber)}.", atLevel: .debug)
    |                                                                     `- warning: implicit capture of 'self' requires that 'McuMgrBleROBWriteBuffer' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 90 |             #endif
 91 |             writeNumber = writeNumber == .max ? 0 : writeNumber + 1
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:102:19: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
100 |             // We only want to continue past this guard when a write was paused and
101 |             // thus added to `pausedWrites`.
102 |             guard pausedWritesWithoutResponse else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
103 |             pausedWritesWithoutResponse = false
104 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:109:43: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
107 |             let resumeWrite: Write! = window.first
108 |             unsafe_logResume(resumeWrite)
109 |             unsafe_writeThroughWindow(to: peripheral)
    |                                           `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
110 |         }
111 |     }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:125:31: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer?' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
123 |                 // If after 15ms we have not received peripheralIsReady(), override.
124 |                 lock.asyncAfter(deadline: .now() + .milliseconds(Self.CONNECTION_BUFFER_WAIT_TIME_MS)) { [weak self] in
125 |                     guard let self, pausedWritesWithoutResponse else { return }
    |                               `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer?' in a '@Sendable' closure
126 |                     log(msg: "! Override Peripheral Ready For Write Without Response", atLevel: .debug)
127 |                     overridePeripheralNotReadyForWriteWithoutResponse = true
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:128:51: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
126 |                     log(msg: "! Override Peripheral Ready For Write Without Response", atLevel: .debug)
127 |                     overridePeripheralNotReadyForWriteWithoutResponse = true
128 |                     unsafe_writeThroughWindow(to: peripheral)
    |                                                   `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
129 |                 }
130 |                 return
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:212:24: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a '@Sendable' closure
 35 | // MARK: - McuMgrBleTransport
 36 |
 37 | public class McuMgrBleTransport: NSObject {
    |              `- note: class 'McuMgrBleTransport' does not conform to the 'Sendable' protocol
 38 |
 39 |     /// The CBPeripheral for this transport to communicate with.
    :
210 |         operationQueue.addOperation {
211 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
212 |                 switch self._send(data: data, timeoutInSeconds: timeout) {
    |                        `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a '@Sendable' closure
213 |                 case .failure(McuMgrTransportError.waitAndRetry):
214 |                     let waitInterval = min(timeout, McuMgrBleTransportConstant.WAIT_AND_RETRY_INTERVAL)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:229:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a '@Sendable' closure
227 |                     self.log(msg: error.localizedDescription, atLevel: .error)
228 |                     DispatchQueue.main.async {
229 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
230 |                     }
231 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:75:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 73 |         didSet {
 74 |             DispatchQueue.main.async {
 75 |                 self.notifyPeripheralDelegate()
    |                 |- 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
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:109:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
107 |         didSet {
108 |             DispatchQueue.main.async {
109 |                 self.notifyPeripheralDelegate()
    |                 |- 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
110 |             }
111 |         }
[72/84] Compiling iOSMcuManagerLibrary McuMgrBleTransport+CBCentralManagerDelegate.swift
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:13: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:122: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                          `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  8 | import Foundation
  9 | import Dispatch
 10 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
 11 |
 12 | // MARK: - McuMgrBleROBWriteBuffer
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:150: warning: capture of 'characteristic' with non-sendable type 'CBCharacteristic' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                                                      `- warning: capture of 'characteristic' with non-sendable type 'CBCharacteristic' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBCharacteristic.h:57:28: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 55 |  */
 56 | NS_CLASS_AVAILABLE(10_7, 5_0)
 57 | CB_EXTERN_CLASS @interface CBCharacteristic : CBAttribute
    |                            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 58 |
 59 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:176: warning: capture of 'callback' with non-sendable type '(Data?, McuMgrTransportError?) -> Void' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                                                                                |- warning: capture of 'callback' with non-sendable type '(Data?, McuMgrTransportError?) -> Void' in a '@Sendable' closure
    |                                                                                                                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:89:71: warning: implicit capture of 'self' requires that 'McuMgrBleROBWriteBuffer' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
 87 |             window.sort(by: <)
 88 |             #if DEBUG
 89 |             log(msg: "↵ Enqueued [Seq. No: \(sequenceNumber)] {WR \(writeNumber)}.", atLevel: .debug)
    |                                                                     `- warning: implicit capture of 'self' requires that 'McuMgrBleROBWriteBuffer' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 90 |             #endif
 91 |             writeNumber = writeNumber == .max ? 0 : writeNumber + 1
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:102:19: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
100 |             // We only want to continue past this guard when a write was paused and
101 |             // thus added to `pausedWrites`.
102 |             guard pausedWritesWithoutResponse else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
103 |             pausedWritesWithoutResponse = false
104 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:109:43: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
107 |             let resumeWrite: Write! = window.first
108 |             unsafe_logResume(resumeWrite)
109 |             unsafe_writeThroughWindow(to: peripheral)
    |                                           `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
110 |         }
111 |     }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:125:31: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer?' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
123 |                 // If after 15ms we have not received peripheralIsReady(), override.
124 |                 lock.asyncAfter(deadline: .now() + .milliseconds(Self.CONNECTION_BUFFER_WAIT_TIME_MS)) { [weak self] in
125 |                     guard let self, pausedWritesWithoutResponse else { return }
    |                               `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer?' in a '@Sendable' closure
126 |                     log(msg: "! Override Peripheral Ready For Write Without Response", atLevel: .debug)
127 |                     overridePeripheralNotReadyForWriteWithoutResponse = true
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:128:51: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
126 |                     log(msg: "! Override Peripheral Ready For Write Without Response", atLevel: .debug)
127 |                     overridePeripheralNotReadyForWriteWithoutResponse = true
128 |                     unsafe_writeThroughWindow(to: peripheral)
    |                                                   `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
129 |                 }
130 |                 return
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:212:24: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a '@Sendable' closure
 35 | // MARK: - McuMgrBleTransport
 36 |
 37 | public class McuMgrBleTransport: NSObject {
    |              `- note: class 'McuMgrBleTransport' does not conform to the 'Sendable' protocol
 38 |
 39 |     /// The CBPeripheral for this transport to communicate with.
    :
210 |         operationQueue.addOperation {
211 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
212 |                 switch self._send(data: data, timeoutInSeconds: timeout) {
    |                        `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a '@Sendable' closure
213 |                 case .failure(McuMgrTransportError.waitAndRetry):
214 |                     let waitInterval = min(timeout, McuMgrBleTransportConstant.WAIT_AND_RETRY_INTERVAL)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:229:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a '@Sendable' closure
227 |                     self.log(msg: error.localizedDescription, atLevel: .error)
228 |                     DispatchQueue.main.async {
229 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
230 |                     }
231 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:75:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 73 |         didSet {
 74 |             DispatchQueue.main.async {
 75 |                 self.notifyPeripheralDelegate()
    |                 |- 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
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:109:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
107 |         didSet {
108 |             DispatchQueue.main.async {
109 |                 self.notifyPeripheralDelegate()
    |                 |- 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
110 |             }
111 |         }
[73/84] Compiling iOSMcuManagerLibrary McuMgrBleTransport+CBPeripheralDelegate.swift
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:13: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:122: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                          `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  8 | import Foundation
  9 | import Dispatch
 10 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
 11 |
 12 | // MARK: - McuMgrBleROBWriteBuffer
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:150: warning: capture of 'characteristic' with non-sendable type 'CBCharacteristic' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                                                      `- warning: capture of 'characteristic' with non-sendable type 'CBCharacteristic' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBCharacteristic.h:57:28: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 55 |  */
 56 | NS_CLASS_AVAILABLE(10_7, 5_0)
 57 | CB_EXTERN_CLASS @interface CBCharacteristic : CBAttribute
    |                            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 58 |
 59 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:176: warning: capture of 'callback' with non-sendable type '(Data?, McuMgrTransportError?) -> Void' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                                                                                |- warning: capture of 'callback' with non-sendable type '(Data?, McuMgrTransportError?) -> Void' in a '@Sendable' closure
    |                                                                                                                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:89:71: warning: implicit capture of 'self' requires that 'McuMgrBleROBWriteBuffer' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
 87 |             window.sort(by: <)
 88 |             #if DEBUG
 89 |             log(msg: "↵ Enqueued [Seq. No: \(sequenceNumber)] {WR \(writeNumber)}.", atLevel: .debug)
    |                                                                     `- warning: implicit capture of 'self' requires that 'McuMgrBleROBWriteBuffer' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 90 |             #endif
 91 |             writeNumber = writeNumber == .max ? 0 : writeNumber + 1
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:102:19: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
100 |             // We only want to continue past this guard when a write was paused and
101 |             // thus added to `pausedWrites`.
102 |             guard pausedWritesWithoutResponse else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
103 |             pausedWritesWithoutResponse = false
104 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:109:43: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
107 |             let resumeWrite: Write! = window.first
108 |             unsafe_logResume(resumeWrite)
109 |             unsafe_writeThroughWindow(to: peripheral)
    |                                           `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
110 |         }
111 |     }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:125:31: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer?' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
123 |                 // If after 15ms we have not received peripheralIsReady(), override.
124 |                 lock.asyncAfter(deadline: .now() + .milliseconds(Self.CONNECTION_BUFFER_WAIT_TIME_MS)) { [weak self] in
125 |                     guard let self, pausedWritesWithoutResponse else { return }
    |                               `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer?' in a '@Sendable' closure
126 |                     log(msg: "! Override Peripheral Ready For Write Without Response", atLevel: .debug)
127 |                     overridePeripheralNotReadyForWriteWithoutResponse = true
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:128:51: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
126 |                     log(msg: "! Override Peripheral Ready For Write Without Response", atLevel: .debug)
127 |                     overridePeripheralNotReadyForWriteWithoutResponse = true
128 |                     unsafe_writeThroughWindow(to: peripheral)
    |                                                   `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
129 |                 }
130 |                 return
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:212:24: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a '@Sendable' closure
 35 | // MARK: - McuMgrBleTransport
 36 |
 37 | public class McuMgrBleTransport: NSObject {
    |              `- note: class 'McuMgrBleTransport' does not conform to the 'Sendable' protocol
 38 |
 39 |     /// The CBPeripheral for this transport to communicate with.
    :
210 |         operationQueue.addOperation {
211 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
212 |                 switch self._send(data: data, timeoutInSeconds: timeout) {
    |                        `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a '@Sendable' closure
213 |                 case .failure(McuMgrTransportError.waitAndRetry):
214 |                     let waitInterval = min(timeout, McuMgrBleTransportConstant.WAIT_AND_RETRY_INTERVAL)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:229:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a '@Sendable' closure
227 |                     self.log(msg: error.localizedDescription, atLevel: .error)
228 |                     DispatchQueue.main.async {
229 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
230 |                     }
231 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:75:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 73 |         didSet {
 74 |             DispatchQueue.main.async {
 75 |                 self.notifyPeripheralDelegate()
    |                 |- 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
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:109:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
107 |         didSet {
108 |             DispatchQueue.main.async {
109 |                 self.notifyPeripheralDelegate()
    |                 |- 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
110 |             }
111 |         }
[74/84] Compiling iOSMcuManagerLibrary McuMgrBleTransport.swift
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:13: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:122: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                          `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  8 | import Foundation
  9 | import Dispatch
 10 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
 11 |
 12 | // MARK: - McuMgrBleROBWriteBuffer
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:150: warning: capture of 'characteristic' with non-sendable type 'CBCharacteristic' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                                                      `- warning: capture of 'characteristic' with non-sendable type 'CBCharacteristic' in a '@Sendable' closure
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBCharacteristic.h:57:28: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 55 |  */
 56 | NS_CLASS_AVAILABLE(10_7, 5_0)
 57 | CB_EXTERN_CLASS @interface CBCharacteristic : CBAttribute
    |                            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 58 |
 59 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:86:176: warning: capture of 'callback' with non-sendable type '(Data?, McuMgrTransportError?) -> Void' in a '@Sendable' closure
 84 |         // This lock guarantees parallel writes are not interleaved with each other.
 85 |         lock.async { [unowned self] in
 86 |             window.append(contentsOf: Write.split(writeNumber, sequenceNumber: sequenceNumber, chunks: data, peripheral: peripheral, characteristic: characteristic, callback: callback))
    |                                                                                                                                                                                |- warning: capture of 'callback' with non-sendable type '(Data?, McuMgrTransportError?) -> Void' in a '@Sendable' closure
    |                                                                                                                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 87 |             window.sort(by: <)
 88 |             #if DEBUG
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:89:71: warning: implicit capture of 'self' requires that 'McuMgrBleROBWriteBuffer' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
 87 |             window.sort(by: <)
 88 |             #if DEBUG
 89 |             log(msg: "↵ Enqueued [Seq. No: \(sequenceNumber)] {WR \(writeNumber)}.", atLevel: .debug)
    |                                                                     `- warning: implicit capture of 'self' requires that 'McuMgrBleROBWriteBuffer' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 90 |             #endif
 91 |             writeNumber = writeNumber == .max ? 0 : writeNumber + 1
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:102:19: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
100 |             // We only want to continue past this guard when a write was paused and
101 |             // thus added to `pausedWrites`.
102 |             guard pausedWritesWithoutResponse else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer' in a '@Sendable' closure
103 |             pausedWritesWithoutResponse = false
104 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:109:43: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
107 |             let resumeWrite: Write! = window.first
108 |             unsafe_logResume(resumeWrite)
109 |             unsafe_writeThroughWindow(to: peripheral)
    |                                           `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
110 |         }
111 |     }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:125:31: warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer?' in a '@Sendable' closure
 20 |  understand anything.
 21 |  */
 22 | internal final class McuMgrBleROBWriteBuffer {
    |                      `- note: class 'McuMgrBleROBWriteBuffer' does not conform to the 'Sendable' protocol
 23 |
 24 |     /**
    :
123 |                 // If after 15ms we have not received peripheralIsReady(), override.
124 |                 lock.asyncAfter(deadline: .now() + .milliseconds(Self.CONNECTION_BUFFER_WAIT_TIME_MS)) { [weak self] in
125 |                     guard let self, pausedWritesWithoutResponse else { return }
    |                               `- warning: capture of 'self' with non-sendable type 'McuMgrBleROBWriteBuffer?' in a '@Sendable' closure
126 |                     log(msg: "! Override Peripheral Ready For Write Without Response", atLevel: .debug)
127 |                     overridePeripheralNotReadyForWriteWithoutResponse = true
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleROBWriteBuffer.swift:128:51: warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
126 |                     log(msg: "! Override Peripheral Ready For Write Without Response", atLevel: .debug)
127 |                     overridePeripheralNotReadyForWriteWithoutResponse = true
128 |                     unsafe_writeThroughWindow(to: peripheral)
    |                                                   `- warning: capture of 'peripheral' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
129 |                 }
130 |                 return
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:212:24: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a '@Sendable' closure
 35 | // MARK: - McuMgrBleTransport
 36 |
 37 | public class McuMgrBleTransport: NSObject {
    |              `- note: class 'McuMgrBleTransport' does not conform to the 'Sendable' protocol
 38 |
 39 |     /// The CBPeripheral for this transport to communicate with.
    :
210 |         operationQueue.addOperation {
211 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
212 |                 switch self._send(data: data, timeoutInSeconds: timeout) {
    |                        `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a '@Sendable' closure
213 |                 case .failure(McuMgrTransportError.waitAndRetry):
214 |                     let waitInterval = min(timeout, McuMgrBleTransportConstant.WAIT_AND_RETRY_INTERVAL)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:229:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a '@Sendable' closure
227 |                     self.log(msg: error.localizedDescription, atLevel: .error)
228 |                     DispatchQueue.main.async {
229 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
230 |                     }
231 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:75:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 73 |         didSet {
 74 |             DispatchQueue.main.async {
 75 |                 self.notifyPeripheralDelegate()
    |                 |- 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
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:109:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
107 |         didSet {
108 |             DispatchQueue.main.async {
109 |                 self.notifyPeripheralDelegate()
    |                 |- 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
110 |             }
111 |         }
[75/84] Compiling iOSMcuManagerLibrary CBOR+String.swift
[76/84] Compiling iOSMcuManagerLibrary ResultLock.swift
[77/84] Compiling iOSMcuManagerLibrary UTI.swift
[78/84] Compiling iOSMcuManagerLibrary McuMgrPackage.swift
/Users/admin/builder/spi-builder-workspace/Source/McuMgrPackage.swift:94:14: warning: associated value 'resourceNotFound' of 'Sendable'-conforming enum 'Error' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
 92 |         case deniedAccessToScopedResource, notAValidDocument, unableToAccessCacheDirectory
 93 |         case manifestFileNotFound, manifestImageNotFound
 94 |         case resourceNotFound(_ resource: FirmwareUpgradeResource)
    |              `- warning: associated value 'resourceNotFound' of 'Sendable'-conforming enum 'Error' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
 95 |
 96 |         public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeController.swift:38:13: note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
36 | // MARK: FirmwareUpgradeResource
37 |
38 | public enum FirmwareUpgradeResource: CustomStringConvertible {
   |             `- note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
39 |     case file(name: String)
40 |
[79/84] Compiling iOSMcuManagerLibrary McuMgrResponse.swift
/Users/admin/builder/spi-builder-workspace/Source/McuMgrPackage.swift:94:14: warning: associated value 'resourceNotFound' of 'Sendable'-conforming enum 'Error' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
 92 |         case deniedAccessToScopedResource, notAValidDocument, unableToAccessCacheDirectory
 93 |         case manifestFileNotFound, manifestImageNotFound
 94 |         case resourceNotFound(_ resource: FirmwareUpgradeResource)
    |              `- warning: associated value 'resourceNotFound' of 'Sendable'-conforming enum 'Error' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
 95 |
 96 |         public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeController.swift:38:13: note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
36 | // MARK: FirmwareUpgradeResource
37 |
38 | public enum FirmwareUpgradeResource: CustomStringConvertible {
   |             `- note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
39 |     case file(name: String)
40 |
[80/84] Compiling iOSMcuManagerLibrary McuMgrSuitEnvelope.swift
/Users/admin/builder/spi-builder-workspace/Source/McuMgrPackage.swift:94:14: warning: associated value 'resourceNotFound' of 'Sendable'-conforming enum 'Error' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
 92 |         case deniedAccessToScopedResource, notAValidDocument, unableToAccessCacheDirectory
 93 |         case manifestFileNotFound, manifestImageNotFound
 94 |         case resourceNotFound(_ resource: FirmwareUpgradeResource)
    |              `- warning: associated value 'resourceNotFound' of 'Sendable'-conforming enum 'Error' has non-sendable type 'FirmwareUpgradeResource'; this is an error in the Swift 6 language mode
 95 |
 96 |         public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeController.swift:38:13: note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
36 | // MARK: FirmwareUpgradeResource
37 |
38 | public enum FirmwareUpgradeResource: CustomStringConvertible {
   |             `- note: consider making enum 'FirmwareUpgradeResource' conform to the 'Sendable' protocol
39 |     case file(name: String)
40 |
[81/84] Compiling iOSMcuManagerLibrary FirmwareUpgradeManager.swift
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1250:10: warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'FirmwareUpgradeError' has non-sendable type 'McuMgrResponse'; this is an error in the Swift 6 language mode
1248 | public enum FirmwareUpgradeError: Error, LocalizedError {
1249 |     case unknown(String)
1250 |     case invalidResponse(McuMgrResponse)
     |          `- warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'FirmwareUpgradeError' has non-sendable type 'McuMgrResponse'; this is an error in the Swift 6 language mode
1251 |     case connectionFailedAfterReset
1252 |     case untestedImageFound(image: Int, slot: Int)
/Users/admin/builder/spi-builder-workspace/Source/McuMgrResponse.swift:10:12: note: class 'McuMgrResponse' does not conform to the 'Sendable' protocol
   8 | import SwiftCBOR
   9 |
  10 | open class McuMgrResponse: CBORMappable {
     |            `- note: class 'McuMgrResponse' does not conform to the 'Sendable' protocol
  11 |
  12 |     //**************************************************************************
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                 |- 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
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:61: warning: sending 'previousState' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                             |- warning: sending 'previousState' risks causing data races; this is an error in the Swift 6 language mode
     |                                                             `- note: task-isolated 'previousState' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:80: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                                                |- warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                `- note: task-isolated 'state' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:328:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 326 |         paused = false
 327 |         DispatchQueue.main.async { [weak self] in
 328 |             self?.delegate?.upgradeDidComplete()
     |             |- 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
 329 |             // Release cyclic reference.
 330 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:241:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 239 |                 // Allow Library Apps to show 100% Progress in this case.
 240 |                 DispatchQueue.main.async { [weak self] in
 241 |                     self?.delegate?.uploadProgressDidChange(bytesSent: 100, imageSize: 100,
     |                     |- 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
 242 |                                                             timestamp: Date())
 243 |                 }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:352:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 350 |         paused = false
 351 |         DispatchQueue.main.async { [weak self] in
 352 |             self?.delegate?.upgradeDidFail(inState: tmp, with: errorOverride)
     |             |- 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
 353 |             // Release cyclic reference.
 354 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:352:53: warning: sending 'tmp' risks causing data races; this is an error in the Swift 6 language mode
 350 |         paused = false
 351 |         DispatchQueue.main.async { [weak self] in
 352 |             self?.delegate?.upgradeDidFail(inState: tmp, with: errorOverride)
     |                                                     |- warning: sending 'tmp' risks causing data races; this is an error in the Swift 6 language mode
     |                                                     `- note: task-isolated 'tmp' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 353 |             // Release cyclic reference.
 354 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:602:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 600 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
 601 |             // Validation successful, begin with image upload.
 602 |             self?.upload()
     |             |- 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
 603 |         }
 604 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1001:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 999 |         self.log(msg: "Waiting \(Int(configuration.estimatedSwapTime)) seconds reconnecting...", atLevel: .info)
1000 |         DispatchQueue.main.asyncAfter(deadline: .now() + remainingTime) { [weak self] in
1001 |             self?.log(msg: "Reconnecting...", atLevel: .info)
     |             |- 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
1002 |             self?.reconnect()
1003 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1140:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1138 |
1139 |         DispatchQueue.main.async { [weak self] in
1140 |             self?.delegate?.uploadProgressDidChange(bytesSent: bytesSent, imageSize: imageSize, timestamp: timestamp)
     |             |- 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
1141 |         }
1142 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1151:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1149 |     public func uploadDidCancel() {
1150 |         DispatchQueue.main.async { [weak self] in
1151 |             self?.delegate?.upgradeDidCancel(state: .none)
     |             |- 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
1152 |         }
1153 |         state = .none
[82/84] Compiling iOSMcuManagerLibrary DefaultManager.swift
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1250:10: warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'FirmwareUpgradeError' has non-sendable type 'McuMgrResponse'; this is an error in the Swift 6 language mode
1248 | public enum FirmwareUpgradeError: Error, LocalizedError {
1249 |     case unknown(String)
1250 |     case invalidResponse(McuMgrResponse)
     |          `- warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'FirmwareUpgradeError' has non-sendable type 'McuMgrResponse'; this is an error in the Swift 6 language mode
1251 |     case connectionFailedAfterReset
1252 |     case untestedImageFound(image: Int, slot: Int)
/Users/admin/builder/spi-builder-workspace/Source/McuMgrResponse.swift:10:12: note: class 'McuMgrResponse' does not conform to the 'Sendable' protocol
   8 | import SwiftCBOR
   9 |
  10 | open class McuMgrResponse: CBORMappable {
     |            `- note: class 'McuMgrResponse' does not conform to the 'Sendable' protocol
  11 |
  12 |     //**************************************************************************
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                 |- 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
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:61: warning: sending 'previousState' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                             |- warning: sending 'previousState' risks causing data races; this is an error in the Swift 6 language mode
     |                                                             `- note: task-isolated 'previousState' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:80: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                                                |- warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                `- note: task-isolated 'state' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:328:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 326 |         paused = false
 327 |         DispatchQueue.main.async { [weak self] in
 328 |             self?.delegate?.upgradeDidComplete()
     |             |- 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
 329 |             // Release cyclic reference.
 330 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:241:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 239 |                 // Allow Library Apps to show 100% Progress in this case.
 240 |                 DispatchQueue.main.async { [weak self] in
 241 |                     self?.delegate?.uploadProgressDidChange(bytesSent: 100, imageSize: 100,
     |                     |- 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
 242 |                                                             timestamp: Date())
 243 |                 }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:352:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 350 |         paused = false
 351 |         DispatchQueue.main.async { [weak self] in
 352 |             self?.delegate?.upgradeDidFail(inState: tmp, with: errorOverride)
     |             |- 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
 353 |             // Release cyclic reference.
 354 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:352:53: warning: sending 'tmp' risks causing data races; this is an error in the Swift 6 language mode
 350 |         paused = false
 351 |         DispatchQueue.main.async { [weak self] in
 352 |             self?.delegate?.upgradeDidFail(inState: tmp, with: errorOverride)
     |                                                     |- warning: sending 'tmp' risks causing data races; this is an error in the Swift 6 language mode
     |                                                     `- note: task-isolated 'tmp' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 353 |             // Release cyclic reference.
 354 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:602:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 600 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
 601 |             // Validation successful, begin with image upload.
 602 |             self?.upload()
     |             |- 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
 603 |         }
 604 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1001:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 999 |         self.log(msg: "Waiting \(Int(configuration.estimatedSwapTime)) seconds reconnecting...", atLevel: .info)
1000 |         DispatchQueue.main.asyncAfter(deadline: .now() + remainingTime) { [weak self] in
1001 |             self?.log(msg: "Reconnecting...", atLevel: .info)
     |             |- 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
1002 |             self?.reconnect()
1003 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1140:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1138 |
1139 |         DispatchQueue.main.async { [weak self] in
1140 |             self?.delegate?.uploadProgressDidChange(bytesSent: bytesSent, imageSize: imageSize, timestamp: timestamp)
     |             |- 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
1141 |         }
1142 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1151:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1149 |     public func uploadDidCancel() {
1150 |         DispatchQueue.main.async { [weak self] in
1151 |             self?.delegate?.upgradeDidCancel(state: .none)
     |             |- 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
1152 |         }
1153 |         state = .none
[83/84] Compiling iOSMcuManagerLibrary FileSystemManager.swift
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1250:10: warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'FirmwareUpgradeError' has non-sendable type 'McuMgrResponse'; this is an error in the Swift 6 language mode
1248 | public enum FirmwareUpgradeError: Error, LocalizedError {
1249 |     case unknown(String)
1250 |     case invalidResponse(McuMgrResponse)
     |          `- warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'FirmwareUpgradeError' has non-sendable type 'McuMgrResponse'; this is an error in the Swift 6 language mode
1251 |     case connectionFailedAfterReset
1252 |     case untestedImageFound(image: Int, slot: Int)
/Users/admin/builder/spi-builder-workspace/Source/McuMgrResponse.swift:10:12: note: class 'McuMgrResponse' does not conform to the 'Sendable' protocol
   8 | import SwiftCBOR
   9 |
  10 | open class McuMgrResponse: CBORMappable {
     |            `- note: class 'McuMgrResponse' does not conform to the 'Sendable' protocol
  11 |
  12 |     //**************************************************************************
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                 |- 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
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:61: warning: sending 'previousState' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                             |- warning: sending 'previousState' risks causing data races; this is an error in the Swift 6 language mode
     |                                                             `- note: task-isolated 'previousState' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:80: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                                                |- warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                `- note: task-isolated 'state' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:328:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 326 |         paused = false
 327 |         DispatchQueue.main.async { [weak self] in
 328 |             self?.delegate?.upgradeDidComplete()
     |             |- 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
 329 |             // Release cyclic reference.
 330 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:241:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 239 |                 // Allow Library Apps to show 100% Progress in this case.
 240 |                 DispatchQueue.main.async { [weak self] in
 241 |                     self?.delegate?.uploadProgressDidChange(bytesSent: 100, imageSize: 100,
     |                     |- 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
 242 |                                                             timestamp: Date())
 243 |                 }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:352:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 350 |         paused = false
 351 |         DispatchQueue.main.async { [weak self] in
 352 |             self?.delegate?.upgradeDidFail(inState: tmp, with: errorOverride)
     |             |- 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
 353 |             // Release cyclic reference.
 354 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:352:53: warning: sending 'tmp' risks causing data races; this is an error in the Swift 6 language mode
 350 |         paused = false
 351 |         DispatchQueue.main.async { [weak self] in
 352 |             self?.delegate?.upgradeDidFail(inState: tmp, with: errorOverride)
     |                                                     |- warning: sending 'tmp' risks causing data races; this is an error in the Swift 6 language mode
     |                                                     `- note: task-isolated 'tmp' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 353 |             // Release cyclic reference.
 354 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:602:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 600 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
 601 |             // Validation successful, begin with image upload.
 602 |             self?.upload()
     |             |- 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
 603 |         }
 604 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1001:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 999 |         self.log(msg: "Waiting \(Int(configuration.estimatedSwapTime)) seconds reconnecting...", atLevel: .info)
1000 |         DispatchQueue.main.asyncAfter(deadline: .now() + remainingTime) { [weak self] in
1001 |             self?.log(msg: "Reconnecting...", atLevel: .info)
     |             |- 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
1002 |             self?.reconnect()
1003 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1140:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1138 |
1139 |         DispatchQueue.main.async { [weak self] in
1140 |             self?.delegate?.uploadProgressDidChange(bytesSent: bytesSent, imageSize: imageSize, timestamp: timestamp)
     |             |- 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
1141 |         }
1142 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1151:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1149 |     public func uploadDidCancel() {
1150 |         DispatchQueue.main.async { [weak self] in
1151 |             self?.delegate?.upgradeDidCancel(state: .none)
     |             |- 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
1152 |         }
1153 |         state = .none
[84/84] Compiling iOSMcuManagerLibrary ImageManager.swift
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1250:10: warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'FirmwareUpgradeError' has non-sendable type 'McuMgrResponse'; this is an error in the Swift 6 language mode
1248 | public enum FirmwareUpgradeError: Error, LocalizedError {
1249 |     case unknown(String)
1250 |     case invalidResponse(McuMgrResponse)
     |          `- warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'FirmwareUpgradeError' has non-sendable type 'McuMgrResponse'; this is an error in the Swift 6 language mode
1251 |     case connectionFailedAfterReset
1252 |     case untestedImageFound(image: Int, slot: Int)
/Users/admin/builder/spi-builder-workspace/Source/McuMgrResponse.swift:10:12: note: class 'McuMgrResponse' does not conform to the 'Sendable' protocol
   8 | import SwiftCBOR
   9 |
  10 | open class McuMgrResponse: CBORMappable {
     |            `- note: class 'McuMgrResponse' does not conform to the 'Sendable' protocol
  11 |
  12 |     //**************************************************************************
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                 |- 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
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:61: warning: sending 'previousState' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                             |- warning: sending 'previousState' risks causing data races; this is an error in the Swift 6 language mode
     |                                                             `- note: task-isolated 'previousState' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:193:80: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
 191 |         if state != previousState {
 192 |             DispatchQueue.main.async { [weak self] in
 193 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                                                |- warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                `- note: task-isolated 'state' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 194 |             }
 195 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:328:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 326 |         paused = false
 327 |         DispatchQueue.main.async { [weak self] in
 328 |             self?.delegate?.upgradeDidComplete()
     |             |- 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
 329 |             // Release cyclic reference.
 330 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:241:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 239 |                 // Allow Library Apps to show 100% Progress in this case.
 240 |                 DispatchQueue.main.async { [weak self] in
 241 |                     self?.delegate?.uploadProgressDidChange(bytesSent: 100, imageSize: 100,
     |                     |- 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
 242 |                                                             timestamp: Date())
 243 |                 }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:352:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 350 |         paused = false
 351 |         DispatchQueue.main.async { [weak self] in
 352 |             self?.delegate?.upgradeDidFail(inState: tmp, with: errorOverride)
     |             |- 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
 353 |             // Release cyclic reference.
 354 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:352:53: warning: sending 'tmp' risks causing data races; this is an error in the Swift 6 language mode
 350 |         paused = false
 351 |         DispatchQueue.main.async { [weak self] in
 352 |             self?.delegate?.upgradeDidFail(inState: tmp, with: errorOverride)
     |                                                     |- warning: sending 'tmp' risks causing data races; this is an error in the Swift 6 language mode
     |                                                     `- note: task-isolated 'tmp' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 353 |             // Release cyclic reference.
 354 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:602:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 600 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
 601 |             // Validation successful, begin with image upload.
 602 |             self?.upload()
     |             |- 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
 603 |         }
 604 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1001:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 999 |         self.log(msg: "Waiting \(Int(configuration.estimatedSwapTime)) seconds reconnecting...", atLevel: .info)
1000 |         DispatchQueue.main.asyncAfter(deadline: .now() + remainingTime) { [weak self] in
1001 |             self?.log(msg: "Reconnecting...", atLevel: .info)
     |             |- 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
1002 |             self?.reconnect()
1003 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1140:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1138 |
1139 |         DispatchQueue.main.async { [weak self] in
1140 |             self?.delegate?.uploadProgressDidChange(bytesSent: bytesSent, imageSize: imageSize, timestamp: timestamp)
     |             |- 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
1141 |         }
1142 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1151:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1149 |     public func uploadDidCancel() {
1150 |         DispatchQueue.main.async { [weak self] in
1151 |             self?.delegate?.upgradeDidCancel(state: .none)
     |             |- 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
1152 |         }
1153 |         state = .none
Build complete! (11.53s)
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/Source/PrivacyInfo.xcprivacy
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swiftcbor",
      "requirement" : {
        "exact" : [
          "0.4.7"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/valpackett/SwiftCBOR.git"
    },
    {
      "identity" : "zipfoundation",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.9.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/weichsel/ZIPFoundation.git"
    }
  ],
  "manifest_display_name" : "iOSMcuManagerLibrary",
  "name" : "iOSMcuManagerLibrary",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    }
  ],
  "products" : [
    {
      "name" : "iOSMcuManagerLibrary",
      "targets" : [
        "iOSMcuManagerLibrary"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "iOSMcuManagerLibrary",
      "module_type" : "SwiftTarget",
      "name" : "iOSMcuManagerLibrary",
      "path" : "Source",
      "product_dependencies" : [
        "SwiftCBOR",
        "ZIPFoundation"
      ],
      "product_memberships" : [
        "iOSMcuManagerLibrary"
      ],
      "sources" : [
        "Bluetooth/McuMgrBleROBWriteBuffer.swift",
        "Bluetooth/McuMgrBleTransport+CBCentralManagerDelegate.swift",
        "Bluetooth/McuMgrBleTransport+CBPeripheralDelegate.swift",
        "Bluetooth/McuMgrBleTransport.swift",
        "Bluetooth/McuMgrBleTransportConfguration.swift",
        "Bluetooth/McuMgrBleTransportWriteState.swift",
        "Extensions/CBOR+McuManager.swift",
        "Extensions/Data+McuManager.swift",
        "Extensions/String+McuManager.swift",
        "Managers/BasicManager.swift",
        "Managers/CrashManager.swift",
        "Managers/DFU/FirmwareUpgradeController.swift",
        "Managers/DFU/FirmwareUpgradeManager.swift",
        "Managers/DefaultManager.swift",
        "Managers/FileSystemManager.swift",
        "Managers/ImageManager.swift",
        "Managers/LogManager.swift",
        "Managers/RunTestManager.swift",
        "Managers/SettingsManager.swift",
        "Managers/ShellManager.swift",
        "Managers/StatsManager.swift",
        "Managers/SuitManager.swift",
        "McuManager.swift",
        "McuMgrCallbackOoOBuffer.swift",
        "McuMgrHeader.swift",
        "McuMgrImage.swift",
        "McuMgrLogDelegate.swift",
        "McuMgrManifest.swift",
        "McuMgrPackage.swift",
        "McuMgrResponse.swift",
        "McuMgrSuitEnvelope.swift",
        "McuMgrSuitManifest.swift",
        "McuMgrTransport.swift",
        "McuMgrUploadPipeline.swift",
        "Utils/CBOR+String.swift",
        "Utils/ResultLock.swift",
        "Utils/UTI.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.