The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of iOSMcuManagerLibrary, reference main (8f94fd), with Swift 6.0 for macOS (SPM) on 4 Nov 2024 17:40:45 UTC.

Swift 6 data race errors: 18

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:80: warning: capture of 'state' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                                                `- warning: capture of 'state' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 188 |             }
 189 |         }
     :
1215 | //******************************************************************************
1216 |
1217 | public enum FirmwareUpgradeState {
     |             `- note: consider making enum 'FirmwareUpgradeState' conform to the 'Sendable' protocol
1218 |     case none
1219 |     case requestMcuMgrParameters, bootloaderInfo, eraseAppSettings
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:235:21: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 233 |                 // Allow Library Apps to show 100% Progress in this case.
 234 |                 DispatchQueue.main.async { [weak self] in
 235 |                     self?.delegate?.uploadProgressDidChange(bytesSent: 100, imageSize: 100,
     |                     `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 236 |                                                             timestamp: Date())
 237 |                 }
/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: annotate 'prepend0x' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: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: annotate 'upperCase' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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/Managers/DFU/FirmwareUpgradeManager.swift:322:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 320 |         paused = false
 321 |         DispatchQueue.main.async { [weak self] in
 322 |             self?.delegate?.upgradeDidComplete()
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 323 |             // Release cyclic reference.
 324 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:53: warning: capture of 'tmp' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |                                                     `- warning: capture of 'tmp' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
     :
1215 | //******************************************************************************
1216 |
1217 | public enum FirmwareUpgradeState {
     |             `- note: consider making enum 'FirmwareUpgradeState' conform to the 'Sendable' protocol
1218 |     case none
1219 |     case requestMcuMgrParameters, bootloaderInfo, eraseAppSettings
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:951:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 949 |         self.log(msg: "Waiting \(Int(configuration.estimatedSwapTime)) seconds reconnecting...", atLevel: .info)
 950 |         DispatchQueue.main.asyncAfter(deadline: .now() + remainingTime) { [weak self] in
 951 |             self?.log(msg: "Reconnecting...", atLevel: .info)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 952 |             self?.reconnect()
 953 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1090:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
1088 |
1089 |         DispatchQueue.main.async { [weak self] in
1090 |             self?.delegate?.uploadProgressDidChange(bytesSent: bytesSent, imageSize: imageSize, timestamp: timestamp)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1091 |         }
1092 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1101:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
1099 |     public func uploadDidCancel() {
1100 |         DispatchQueue.main.async { [weak self] in
1101 |             self?.delegate?.upgradeDidCancel(state: .none)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1102 |         }
1103 |         state = .none
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 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
 188 |             }
 189 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:61: warning: sending 'previousState' risks causing data races; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 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
 188 |             }
 189 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:80: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 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
 188 |             }
 189 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:322:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 320 |         paused = false
 321 |         DispatchQueue.main.async { [weak self] in
 322 |             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
 323 |             // Release cyclic reference.
 324 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:235:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 233 |                 // Allow Library Apps to show 100% Progress in this case.
 234 |                 DispatchQueue.main.async { [weak self] in
 235 |                     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
 236 |                                                             timestamp: Date())
 237 |                 }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |             |- 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
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:53: warning: sending 'tmp' risks causing data races; this is an error in the Swift 6 language mode
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |                                                     |- 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
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:951:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 949 |         self.log(msg: "Waiting \(Int(configuration.estimatedSwapTime)) seconds reconnecting...", atLevel: .info)
 950 |         DispatchQueue.main.asyncAfter(deadline: .now() + remainingTime) { [weak self] in
 951 |             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
 952 |             self?.reconnect()
 953 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1090:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1088 |
1089 |         DispatchQueue.main.async { [weak self] in
1090 |             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
1091 |         }
1092 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1101:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1099 |     public func uploadDidCancel() {
1100 |         DispatchQueue.main.async { [weak self] in
1101 |             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
1102 |         }
1103 |         state = .none
[70/82] Compiling iOSMcuManagerLibrary FirmwareUpgradeManager.swift
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1195: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
1193 | public enum FirmwareUpgradeError: Error, LocalizedError {
1194 |     case unknown(String)
1195 |     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
1196 |     case connectionFailedAfterReset
1197 |     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:187:17: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                 `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 188 |             }
 189 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:61: warning: capture of 'previousState' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                             `- warning: capture of 'previousState' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 188 |             }
 189 |         }
     :
1215 | //******************************************************************************
1216 |
1217 | public enum FirmwareUpgradeState {
     |             `- note: consider making enum 'FirmwareUpgradeState' conform to the 'Sendable' protocol
1218 |     case none
1219 |     case requestMcuMgrParameters, bootloaderInfo, eraseAppSettings
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:80: warning: capture of 'state' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                                                `- warning: capture of 'state' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 188 |             }
 189 |         }
     :
1215 | //******************************************************************************
1216 |
1217 | public enum FirmwareUpgradeState {
     |             `- note: consider making enum 'FirmwareUpgradeState' conform to the 'Sendable' protocol
1218 |     case none
1219 |     case requestMcuMgrParameters, bootloaderInfo, eraseAppSettings
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:235:21: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 233 |                 // Allow Library Apps to show 100% Progress in this case.
 234 |                 DispatchQueue.main.async { [weak self] in
 235 |                     self?.delegate?.uploadProgressDidChange(bytesSent: 100, imageSize: 100,
     |                     `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 236 |                                                             timestamp: Date())
 237 |                 }
/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: annotate 'prepend0x' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: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: annotate 'upperCase' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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/Managers/DFU/FirmwareUpgradeManager.swift:322:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 320 |         paused = false
 321 |         DispatchQueue.main.async { [weak self] in
 322 |             self?.delegate?.upgradeDidComplete()
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 323 |             // Release cyclic reference.
 324 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:53: warning: capture of 'tmp' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |                                                     `- warning: capture of 'tmp' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
     :
1215 | //******************************************************************************
1216 |
1217 | public enum FirmwareUpgradeState {
     |             `- note: consider making enum 'FirmwareUpgradeState' conform to the 'Sendable' protocol
1218 |     case none
1219 |     case requestMcuMgrParameters, bootloaderInfo, eraseAppSettings
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:951:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 949 |         self.log(msg: "Waiting \(Int(configuration.estimatedSwapTime)) seconds reconnecting...", atLevel: .info)
 950 |         DispatchQueue.main.asyncAfter(deadline: .now() + remainingTime) { [weak self] in
 951 |             self?.log(msg: "Reconnecting...", atLevel: .info)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 952 |             self?.reconnect()
 953 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1090:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
1088 |
1089 |         DispatchQueue.main.async { [weak self] in
1090 |             self?.delegate?.uploadProgressDidChange(bytesSent: bytesSent, imageSize: imageSize, timestamp: timestamp)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1091 |         }
1092 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1101:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
1099 |     public func uploadDidCancel() {
1100 |         DispatchQueue.main.async { [weak self] in
1101 |             self?.delegate?.upgradeDidCancel(state: .none)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1102 |         }
1103 |         state = .none
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 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
 188 |             }
 189 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:61: warning: sending 'previousState' risks causing data races; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 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
 188 |             }
 189 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:80: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 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
 188 |             }
 189 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:322:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 320 |         paused = false
 321 |         DispatchQueue.main.async { [weak self] in
 322 |             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
 323 |             // Release cyclic reference.
 324 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:235:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 233 |                 // Allow Library Apps to show 100% Progress in this case.
 234 |                 DispatchQueue.main.async { [weak self] in
 235 |                     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
 236 |                                                             timestamp: Date())
 237 |                 }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |             |- 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
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:53: warning: sending 'tmp' risks causing data races; this is an error in the Swift 6 language mode
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |                                                     |- 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
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:951:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 949 |         self.log(msg: "Waiting \(Int(configuration.estimatedSwapTime)) seconds reconnecting...", atLevel: .info)
 950 |         DispatchQueue.main.asyncAfter(deadline: .now() + remainingTime) { [weak self] in
 951 |             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
 952 |             self?.reconnect()
 953 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1090:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1088 |
1089 |         DispatchQueue.main.async { [weak self] in
1090 |             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
1091 |         }
1092 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1101:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1099 |     public func uploadDidCancel() {
1100 |         DispatchQueue.main.async { [weak self] in
1101 |             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
1102 |         }
1103 |         state = .none
[71/82] Compiling iOSMcuManagerLibrary DefaultManager.swift
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1195: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
1193 | public enum FirmwareUpgradeError: Error, LocalizedError {
1194 |     case unknown(String)
1195 |     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
1196 |     case connectionFailedAfterReset
1197 |     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:187:17: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                 `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 188 |             }
 189 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:61: warning: capture of 'previousState' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                             `- warning: capture of 'previousState' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 188 |             }
 189 |         }
     :
1215 | //******************************************************************************
1216 |
1217 | public enum FirmwareUpgradeState {
     |             `- note: consider making enum 'FirmwareUpgradeState' conform to the 'Sendable' protocol
1218 |     case none
1219 |     case requestMcuMgrParameters, bootloaderInfo, eraseAppSettings
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:80: warning: capture of 'state' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 self?.delegate?.upgradeStateDidChange(from: previousState, to: state)
     |                                                                                `- warning: capture of 'state' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 188 |             }
 189 |         }
     :
1215 | //******************************************************************************
1216 |
1217 | public enum FirmwareUpgradeState {
     |             `- note: consider making enum 'FirmwareUpgradeState' conform to the 'Sendable' protocol
1218 |     case none
1219 |     case requestMcuMgrParameters, bootloaderInfo, eraseAppSettings
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:235:21: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 233 |                 // Allow Library Apps to show 100% Progress in this case.
 234 |                 DispatchQueue.main.async { [weak self] in
 235 |                     self?.delegate?.uploadProgressDidChange(bytesSent: 100, imageSize: 100,
     |                     `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 236 |                                                             timestamp: Date())
 237 |                 }
/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: annotate 'prepend0x' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: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: annotate 'upperCase' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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/Managers/DFU/FirmwareUpgradeManager.swift:322:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 320 |         paused = false
 321 |         DispatchQueue.main.async { [weak self] in
 322 |             self?.delegate?.upgradeDidComplete()
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 323 |             // Release cyclic reference.
 324 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:53: warning: capture of 'tmp' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |                                                     `- warning: capture of 'tmp' with non-sendable type 'FirmwareUpgradeState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
     :
1215 | //******************************************************************************
1216 |
1217 | public enum FirmwareUpgradeState {
     |             `- note: consider making enum 'FirmwareUpgradeState' conform to the 'Sendable' protocol
1218 |     case none
1219 |     case requestMcuMgrParameters, bootloaderInfo, eraseAppSettings
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:951:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
 949 |         self.log(msg: "Waiting \(Int(configuration.estimatedSwapTime)) seconds reconnecting...", atLevel: .info)
 950 |         DispatchQueue.main.asyncAfter(deadline: .now() + remainingTime) { [weak self] in
 951 |             self?.log(msg: "Reconnecting...", atLevel: .info)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 952 |             self?.reconnect()
 953 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1090:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
1088 |
1089 |         DispatchQueue.main.async { [weak self] in
1090 |             self?.delegate?.uploadProgressDidChange(bytesSent: bytesSent, imageSize: imageSize, timestamp: timestamp)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1091 |         }
1092 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1101:13: warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  10 | // MARK: - FirmwareUpgradeManager
  11 |
  12 | public class FirmwareUpgradeManager: FirmwareUpgradeController, ConnectionObserver {
     |              `- note: class 'FirmwareUpgradeManager' does not conform to the 'Sendable' protocol
  13 |
  14 |     // MARK: Private Properties
     :
1099 |     public func uploadDidCancel() {
1100 |         DispatchQueue.main.async { [weak self] in
1101 |             self?.delegate?.upgradeDidCancel(state: .none)
     |             `- warning: capture of 'self' with non-sendable type 'FirmwareUpgradeManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1102 |         }
1103 |         state = .none
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 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
 188 |             }
 189 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:61: warning: sending 'previousState' risks causing data races; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 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
 188 |             }
 189 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:187:80: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
 185 |         if state != previousState {
 186 |             DispatchQueue.main.async { [weak self] in
 187 |                 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
 188 |             }
 189 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:322:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 320 |         paused = false
 321 |         DispatchQueue.main.async { [weak self] in
 322 |             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
 323 |             // Release cyclic reference.
 324 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:235:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 233 |                 // Allow Library Apps to show 100% Progress in this case.
 234 |                 DispatchQueue.main.async { [weak self] in
 235 |                     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
 236 |                                                             timestamp: Date())
 237 |                 }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |             |- 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
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:339:53: warning: sending 'tmp' risks causing data races; this is an error in the Swift 6 language mode
 337 |         paused = false
 338 |         DispatchQueue.main.async { [weak self] in
 339 |             self?.delegate?.upgradeDidFail(inState: tmp, with: error)
     |                                                     |- 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
 340 |             // Release cyclic reference.
 341 |             self?.cyclicReferenceHolder = nil
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:951:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 949 |         self.log(msg: "Waiting \(Int(configuration.estimatedSwapTime)) seconds reconnecting...", atLevel: .info)
 950 |         DispatchQueue.main.asyncAfter(deadline: .now() + remainingTime) { [weak self] in
 951 |             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
 952 |             self?.reconnect()
 953 |         }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1090:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1088 |
1089 |         DispatchQueue.main.async { [weak self] in
1090 |             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
1091 |         }
1092 |     }
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1101:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
1099 |     public func uploadDidCancel() {
1100 |         DispatchQueue.main.async { [weak self] in
1101 |             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
1102 |         }
1103 |         state = .none
[72/82] Compiling iOSMcuManagerLibrary McuMgrROBBuffer.swift
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.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> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<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/McuMgrROBBuffer.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> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<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/McuMgrROBBuffer.swift:123:21: warning: capture of 'callback' with non-sendable type '(Key, Value) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     callback(key, value)
    |                     |- warning: capture of 'callback' with non-sendable type '(Key, Value) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:30: warning: capture of 'key' with non-sendable type 'Dictionary<Key, Value>.Keys.Element' (aka 'Key') in a `@Sendable` closure; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<Key: Hashable & Comparable, Value> {
    |                               `- note: consider making generic parameter 'Dictionary<Key, Value>.Keys.Element' (aka 'Key') conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
121 |
122 |                 DispatchQueue.main.async {
123 |                     callback(key, value)
    |                              `- warning: capture of 'key' with non-sendable type 'Dictionary<Key, Value>.Keys.Element' (aka 'Key') in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:35: warning: capture of 'value' with non-sendable type 'Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<Key: Hashable & Comparable, Value> {
    |                                                           `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
121 |
122 |                 DispatchQueue.main.async {
123 |                     callback(key, value)
    |                                   `- warning: capture of 'value' with non-sendable type 'Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 |                 }
125 |             }
/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: annotate 'upperCase' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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/McuMgrROBBuffer.swift:123:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     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
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:30: warning: sending 'key' risks causing data races; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     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
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:35: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     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
124 |                 }
125 |             }
[73/82] Compiling iOSMcuManagerLibrary McuMgrResponse.swift
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.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> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<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/McuMgrROBBuffer.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> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<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/McuMgrROBBuffer.swift:123:21: warning: capture of 'callback' with non-sendable type '(Key, Value) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     callback(key, value)
    |                     |- warning: capture of 'callback' with non-sendable type '(Key, Value) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:30: warning: capture of 'key' with non-sendable type 'Dictionary<Key, Value>.Keys.Element' (aka 'Key') in a `@Sendable` closure; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<Key: Hashable & Comparable, Value> {
    |                               `- note: consider making generic parameter 'Dictionary<Key, Value>.Keys.Element' (aka 'Key') conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
121 |
122 |                 DispatchQueue.main.async {
123 |                     callback(key, value)
    |                              `- warning: capture of 'key' with non-sendable type 'Dictionary<Key, Value>.Keys.Element' (aka 'Key') in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:35: warning: capture of 'value' with non-sendable type 'Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<Key: Hashable & Comparable, Value> {
    |                                                           `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
121 |
122 |                 DispatchQueue.main.async {
123 |                     callback(key, value)
    |                                   `- warning: capture of 'value' with non-sendable type 'Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 |                 }
125 |             }
/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: annotate 'upperCase' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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/McuMgrROBBuffer.swift:123:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     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
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:30: warning: sending 'key' risks causing data races; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     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
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:35: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     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
124 |                 }
125 |             }
[74/82] Compiling iOSMcuManagerLibrary McuMgrSuitEnvelope.swift
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.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> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<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/McuMgrROBBuffer.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> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<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/McuMgrROBBuffer.swift:123:21: warning: capture of 'callback' with non-sendable type '(Key, Value) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     callback(key, value)
    |                     |- warning: capture of 'callback' with non-sendable type '(Key, Value) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:30: warning: capture of 'key' with non-sendable type 'Dictionary<Key, Value>.Keys.Element' (aka 'Key') in a `@Sendable` closure; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<Key: Hashable & Comparable, Value> {
    |                               `- note: consider making generic parameter 'Dictionary<Key, Value>.Keys.Element' (aka 'Key') conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
121 |
122 |                 DispatchQueue.main.async {
123 |                     callback(key, value)
    |                              `- warning: capture of 'key' with non-sendable type 'Dictionary<Key, Value>.Keys.Element' (aka 'Key') in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:35: warning: capture of 'value' with non-sendable type 'Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 15 |  <Key, Value> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<Key: Hashable & Comparable, Value> {
    |                                                           `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 18 |
 19 |     // MARK: BufferError
    :
121 |
122 |                 DispatchQueue.main.async {
123 |                     callback(key, value)
    |                                   `- warning: capture of 'value' with non-sendable type 'Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 |                 }
125 |             }
/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: annotate 'upperCase' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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/McuMgrROBBuffer.swift:123:21: warning: sending 'callback' risks causing data races; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     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
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:30: warning: sending 'key' risks causing data races; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     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
124 |                 }
125 |             }
/Users/admin/builder/spi-builder-workspace/Source/McuMgrROBBuffer.swift:123:35: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
121 |
122 |                 DispatchQueue.main.async {
123 |                     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
124 |                 }
125 |             }
[75/82] Compiling iOSMcuManagerLibrary McuMgrBleTransport+CBCentralManagerDelegate.swift
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:448:23: warning: static property 'SMP_SERVICE' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
446 | public enum McuMgrBleTransportConstant {
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
    |                       `- warning: static property 'SMP_SERVICE' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
450 |
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  6 |
  7 | import Foundation
  8 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  9 |
 10 | // MARK: - PeripheralState
    :
446 | public enum McuMgrBleTransportConstant {
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
    |                       |- note: annotate 'SMP_SERVICE' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
450 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:449:23: warning: static property 'SMP_CHARACTERISTIC' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
    |                       |- warning: static property 'SMP_CHARACTERISTIC' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'SMP_CHARACTERISTIC' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
450 |
451 |     /// Max number of retries until the transaction is failed.
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:65:17: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
 63 |         didSet {
 64 |             DispatchQueue.main.async {
 65 |                 self.notifyPeripheralDelegate()
    |                 `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 66 |             }
 67 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:99:17: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
 97 |         didSet {
 98 |             DispatchQueue.main.async {
 99 |                 self.notifyPeripheralDelegate()
    |                 `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
100 |             }
101 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:172:24: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
170 |         operationQueue.addOperation {
171 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
172 |                 switch self._send(data: data, timeoutInSeconds: timeout) {
    |                        `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
173 |                 case .failure(McuMgrTransportError.waitAndRetry):
174 |                     let waitInterval = min(timeout, McuMgrBleTransportConstant.WAIT_AND_RETRY_INTERVAL)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:184:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |                     self.log(msg: error.localizedDescription, atLevel: .error)
183 |                     DispatchQueue.main.async {
184 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
185 |                     }
186 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:184:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |                     self.log(msg: error.localizedDescription, atLevel: .error)
183 |                     DispatchQueue.main.async {
184 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
185 |                     }
186 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:191:29: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
189 |                         let response: T = try McuMgrResponse.buildResponse(scheme: .ble, data: responseData)
190 |                         DispatchQueue.main.async {
191 |                             callback(response, nil)
    |                             |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
192 |                         }
193 |                     } catch {
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:191:38: warning: capture of 'response' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
167 |     }
168 |
169 |     public func send<T: McuMgrResponse>(data: Data, timeout: Int, callback: @escaping McuMgrCallback<T>) {
    |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
170 |         operationQueue.addOperation {
171 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
    :
189 |                         let response: T = try McuMgrResponse.buildResponse(scheme: .ble, data: responseData)
190 |                         DispatchQueue.main.async {
191 |                             callback(response, nil)
    |                                      `- warning: capture of 'response' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
192 |                         }
193 |                     } catch {
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:196:29: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
194 |                         self.log(msg: error.localizedDescription, atLevel: .error)
195 |                         DispatchQueue.main.async {
196 |                             callback(nil, error)
    |                             |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 |                         }
198 |                     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:206:17: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
204 |             // If we made it here, all retries failed.
205 |             DispatchQueue.main.async {
206 |                 callback(nil, McuMgrTransportError.sendFailed)
    |                 |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
207 |             }
208 |         }
/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: annotate 'upperCase' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: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: annotate 'twoByteSpacing' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
44 |
/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; 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: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; 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:39:86: warning: capture of 'lock' with non-sendable type 'ResultLock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 42 |
 43 |     func sharedLock(_ writeClosure: @escaping () -> Void) {
 44 |         lockingQueue.async { writeClosure() }
    |                              |- warning: capture of 'writeClosure' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                              `- 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; 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
    :
 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; this is an error in the Swift 6 language mode
 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; 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
    :
 87 |     func completedWrite(sequenceNumber: McuSequenceNumber) {
 88 |         lockingQueue.async {
 89 |             self.state[sequenceNumber] = nil
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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; 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
    :
 93 |     func onError(_ error: Error) {
 94 |         lockingQueue.async {
 95 |             self.state.forEach { _, value in
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 96 |                 value.writeLock.open(error)
 97 |             }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:103:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; 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
    :
101 |     func onWriteError(sequenceNumber: McuSequenceNumber, error: Error) {
102 |         lockingQueue.async {
103 |             self.state[sequenceNumber]?.writeLock.open(error)
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
104 |         }
105 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:65:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 63 |         didSet {
 64 |             DispatchQueue.main.async {
 65 |                 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
 66 |             }
 67 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:99:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 97 |         didSet {
 98 |             DispatchQueue.main.async {
 99 |                 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
100 |             }
101 |         }
[76/82] Compiling iOSMcuManagerLibrary McuMgrBleTransport+CBPeripheralDelegate.swift
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:448:23: warning: static property 'SMP_SERVICE' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
446 | public enum McuMgrBleTransportConstant {
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
    |                       `- warning: static property 'SMP_SERVICE' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
450 |
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  6 |
  7 | import Foundation
  8 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  9 |
 10 | // MARK: - PeripheralState
    :
446 | public enum McuMgrBleTransportConstant {
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
    |                       |- note: annotate 'SMP_SERVICE' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
450 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:449:23: warning: static property 'SMP_CHARACTERISTIC' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
    |                       |- warning: static property 'SMP_CHARACTERISTIC' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'SMP_CHARACTERISTIC' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
450 |
451 |     /// Max number of retries until the transaction is failed.
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:65:17: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
 63 |         didSet {
 64 |             DispatchQueue.main.async {
 65 |                 self.notifyPeripheralDelegate()
    |                 `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 66 |             }
 67 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:99:17: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
 97 |         didSet {
 98 |             DispatchQueue.main.async {
 99 |                 self.notifyPeripheralDelegate()
    |                 `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
100 |             }
101 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:172:24: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
170 |         operationQueue.addOperation {
171 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
172 |                 switch self._send(data: data, timeoutInSeconds: timeout) {
    |                        `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
173 |                 case .failure(McuMgrTransportError.waitAndRetry):
174 |                     let waitInterval = min(timeout, McuMgrBleTransportConstant.WAIT_AND_RETRY_INTERVAL)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:184:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |                     self.log(msg: error.localizedDescription, atLevel: .error)
183 |                     DispatchQueue.main.async {
184 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
185 |                     }
186 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:184:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |                     self.log(msg: error.localizedDescription, atLevel: .error)
183 |                     DispatchQueue.main.async {
184 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
185 |                     }
186 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:191:29: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
189 |                         let response: T = try McuMgrResponse.buildResponse(scheme: .ble, data: responseData)
190 |                         DispatchQueue.main.async {
191 |                             callback(response, nil)
    |                             |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
192 |                         }
193 |                     } catch {
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:191:38: warning: capture of 'response' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
167 |     }
168 |
169 |     public func send<T: McuMgrResponse>(data: Data, timeout: Int, callback: @escaping McuMgrCallback<T>) {
    |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
170 |         operationQueue.addOperation {
171 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
    :
189 |                         let response: T = try McuMgrResponse.buildResponse(scheme: .ble, data: responseData)
190 |                         DispatchQueue.main.async {
191 |                             callback(response, nil)
    |                                      `- warning: capture of 'response' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
192 |                         }
193 |                     } catch {
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:196:29: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
194 |                         self.log(msg: error.localizedDescription, atLevel: .error)
195 |                         DispatchQueue.main.async {
196 |                             callback(nil, error)
    |                             |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 |                         }
198 |                     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:206:17: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
204 |             // If we made it here, all retries failed.
205 |             DispatchQueue.main.async {
206 |                 callback(nil, McuMgrTransportError.sendFailed)
    |                 |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
207 |             }
208 |         }
/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: annotate 'upperCase' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: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: annotate 'twoByteSpacing' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
44 |
/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; 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: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; 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:39:86: warning: capture of 'lock' with non-sendable type 'ResultLock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 42 |
 43 |     func sharedLock(_ writeClosure: @escaping () -> Void) {
 44 |         lockingQueue.async { writeClosure() }
    |                              |- warning: capture of 'writeClosure' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                              `- 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; 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
    :
 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; this is an error in the Swift 6 language mode
 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; 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
    :
 87 |     func completedWrite(sequenceNumber: McuSequenceNumber) {
 88 |         lockingQueue.async {
 89 |             self.state[sequenceNumber] = nil
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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; 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
    :
 93 |     func onError(_ error: Error) {
 94 |         lockingQueue.async {
 95 |             self.state.forEach { _, value in
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 96 |                 value.writeLock.open(error)
 97 |             }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:103:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; 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
    :
101 |     func onWriteError(sequenceNumber: McuSequenceNumber, error: Error) {
102 |         lockingQueue.async {
103 |             self.state[sequenceNumber]?.writeLock.open(error)
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
104 |         }
105 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:65:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 63 |         didSet {
 64 |             DispatchQueue.main.async {
 65 |                 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
 66 |             }
 67 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:99:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 97 |         didSet {
 98 |             DispatchQueue.main.async {
 99 |                 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
100 |             }
101 |         }
[77/82] Compiling iOSMcuManagerLibrary McuMgrBleTransport.swift
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:448:23: warning: static property 'SMP_SERVICE' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
446 | public enum McuMgrBleTransportConstant {
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
    |                       `- warning: static property 'SMP_SERVICE' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
450 |
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  6 |
  7 | import Foundation
  8 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  9 |
 10 | // MARK: - PeripheralState
    :
446 | public enum McuMgrBleTransportConstant {
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
    |                       |- note: annotate 'SMP_SERVICE' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
450 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:449:23: warning: static property 'SMP_CHARACTERISTIC' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
    |                       |- warning: static property 'SMP_CHARACTERISTIC' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'SMP_CHARACTERISTIC' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
450 |
451 |     /// Max number of retries until the transaction is failed.
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:65:17: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
 63 |         didSet {
 64 |             DispatchQueue.main.async {
 65 |                 self.notifyPeripheralDelegate()
    |                 `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 66 |             }
 67 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:99:17: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
 97 |         didSet {
 98 |             DispatchQueue.main.async {
 99 |                 self.notifyPeripheralDelegate()
    |                 `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
100 |             }
101 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:172:24: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
170 |         operationQueue.addOperation {
171 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
172 |                 switch self._send(data: data, timeoutInSeconds: timeout) {
    |                        `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
173 |                 case .failure(McuMgrTransportError.waitAndRetry):
174 |                     let waitInterval = min(timeout, McuMgrBleTransportConstant.WAIT_AND_RETRY_INTERVAL)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:184:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |                     self.log(msg: error.localizedDescription, atLevel: .error)
183 |                     DispatchQueue.main.async {
184 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
185 |                     }
186 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:184:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |                     self.log(msg: error.localizedDescription, atLevel: .error)
183 |                     DispatchQueue.main.async {
184 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
185 |                     }
186 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:191:29: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
189 |                         let response: T = try McuMgrResponse.buildResponse(scheme: .ble, data: responseData)
190 |                         DispatchQueue.main.async {
191 |                             callback(response, nil)
    |                             |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
192 |                         }
193 |                     } catch {
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:191:38: warning: capture of 'response' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
167 |     }
168 |
169 |     public func send<T: McuMgrResponse>(data: Data, timeout: Int, callback: @escaping McuMgrCallback<T>) {
    |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
170 |         operationQueue.addOperation {
171 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
    :
189 |                         let response: T = try McuMgrResponse.buildResponse(scheme: .ble, data: responseData)
190 |                         DispatchQueue.main.async {
191 |                             callback(response, nil)
    |                                      `- warning: capture of 'response' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
192 |                         }
193 |                     } catch {
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:196:29: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
194 |                         self.log(msg: error.localizedDescription, atLevel: .error)
195 |                         DispatchQueue.main.async {
196 |                             callback(nil, error)
    |                             |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 |                         }
198 |                     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:206:17: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
204 |             // If we made it here, all retries failed.
205 |             DispatchQueue.main.async {
206 |                 callback(nil, McuMgrTransportError.sendFailed)
    |                 |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
207 |             }
208 |         }
/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: annotate 'upperCase' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: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: annotate 'twoByteSpacing' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
44 |
/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; 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: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; 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:39:86: warning: capture of 'lock' with non-sendable type 'ResultLock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 42 |
 43 |     func sharedLock(_ writeClosure: @escaping () -> Void) {
 44 |         lockingQueue.async { writeClosure() }
    |                              |- warning: capture of 'writeClosure' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                              `- 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; 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
    :
 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; this is an error in the Swift 6 language mode
 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; 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
    :
 87 |     func completedWrite(sequenceNumber: McuSequenceNumber) {
 88 |         lockingQueue.async {
 89 |             self.state[sequenceNumber] = nil
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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; 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
    :
 93 |     func onError(_ error: Error) {
 94 |         lockingQueue.async {
 95 |             self.state.forEach { _, value in
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 96 |                 value.writeLock.open(error)
 97 |             }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:103:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; 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
    :
101 |     func onWriteError(sequenceNumber: McuSequenceNumber, error: Error) {
102 |         lockingQueue.async {
103 |             self.state[sequenceNumber]?.writeLock.open(error)
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
104 |         }
105 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:65:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 63 |         didSet {
 64 |             DispatchQueue.main.async {
 65 |                 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
 66 |             }
 67 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:99:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 97 |         didSet {
 98 |             DispatchQueue.main.async {
 99 |                 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
100 |             }
101 |         }
[78/82] Compiling iOSMcuManagerLibrary McuMgrBleTransportWriteState.swift
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:448:23: warning: static property 'SMP_SERVICE' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
446 | public enum McuMgrBleTransportConstant {
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
    |                       `- warning: static property 'SMP_SERVICE' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
450 |
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  6 |
  7 | import Foundation
  8 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  9 |
 10 | // MARK: - PeripheralState
    :
446 | public enum McuMgrBleTransportConstant {
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
    |                       |- note: annotate 'SMP_SERVICE' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
450 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:449:23: warning: static property 'SMP_CHARACTERISTIC' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
    |                       |- warning: static property 'SMP_CHARACTERISTIC' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'SMP_CHARACTERISTIC' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
450 |
451 |     /// Max number of retries until the transaction is failed.
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:65:17: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
 63 |         didSet {
 64 |             DispatchQueue.main.async {
 65 |                 self.notifyPeripheralDelegate()
    |                 `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 66 |             }
 67 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:99:17: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
 97 |         didSet {
 98 |             DispatchQueue.main.async {
 99 |                 self.notifyPeripheralDelegate()
    |                 `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
100 |             }
101 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:172:24: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
170 |         operationQueue.addOperation {
171 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
172 |                 switch self._send(data: data, timeoutInSeconds: timeout) {
    |                        `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
173 |                 case .failure(McuMgrTransportError.waitAndRetry):
174 |                     let waitInterval = min(timeout, McuMgrBleTransportConstant.WAIT_AND_RETRY_INTERVAL)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:184:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |                     self.log(msg: error.localizedDescription, atLevel: .error)
183 |                     DispatchQueue.main.async {
184 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
185 |                     }
186 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:184:25: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |                     self.log(msg: error.localizedDescription, atLevel: .error)
183 |                     DispatchQueue.main.async {
184 |                         callback(nil, error)
    |                         |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
185 |                     }
186 |                     return
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:191:29: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
189 |                         let response: T = try McuMgrResponse.buildResponse(scheme: .ble, data: responseData)
190 |                         DispatchQueue.main.async {
191 |                             callback(response, nil)
    |                             |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
192 |                         }
193 |                     } catch {
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:191:38: warning: capture of 'response' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
167 |     }
168 |
169 |     public func send<T: McuMgrResponse>(data: Data, timeout: Int, callback: @escaping McuMgrCallback<T>) {
    |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
170 |         operationQueue.addOperation {
171 |             for i in 0..<McuMgrBleTransportConstant.MAX_RETRIES {
    :
189 |                         let response: T = try McuMgrResponse.buildResponse(scheme: .ble, data: responseData)
190 |                         DispatchQueue.main.async {
191 |                             callback(response, nil)
    |                                      `- warning: capture of 'response' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
192 |                         }
193 |                     } catch {
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:196:29: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
194 |                         self.log(msg: error.localizedDescription, atLevel: .error)
195 |                         DispatchQueue.main.async {
196 |                             callback(nil, error)
    |                             |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 |                         }
198 |                     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:206:17: warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
204 |             // If we made it here, all retries failed.
205 |             DispatchQueue.main.async {
206 |                 callback(nil, McuMgrTransportError.sendFailed)
    |                 |- warning: capture of 'callback' with non-sendable type 'McuMgrCallback<T>' (aka '(Optional<T>, Optional<any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
207 |             }
208 |         }
/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: annotate 'upperCase' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: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: annotate 'twoByteSpacing' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 |         public static let reverseEndianness = HexEncodingOptions(rawValue: 1 << 4)
44 |
/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; 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: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; 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:39:86: warning: capture of 'lock' with non-sendable type 'ResultLock' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 42 |
 43 |     func sharedLock(_ writeClosure: @escaping () -> Void) {
 44 |         lockingQueue.async { writeClosure() }
    |                              |- warning: capture of 'writeClosure' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                              `- 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; 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
    :
 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; this is an error in the Swift 6 language mode
 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; 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
    :
 87 |     func completedWrite(sequenceNumber: McuSequenceNumber) {
 88 |         lockingQueue.async {
 89 |             self.state[sequenceNumber] = nil
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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; 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
    :
 93 |     func onError(_ error: Error) {
 94 |         lockingQueue.async {
 95 |             self.state.forEach { _, value in
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 96 |                 value.writeLock.open(error)
 97 |             }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransportWriteState.swift:103:13: warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; 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
    :
101 |     func onWriteError(sequenceNumber: McuSequenceNumber, error: Error) {
102 |         lockingQueue.async {
103 |             self.state[sequenceNumber]?.writeLock.open(error)
    |             `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransportWriteState' in a `@Sendable` closure; this is an error in the Swift 6 language mode
104 |         }
105 |     }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:65:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 63 |         didSet {
 64 |             DispatchQueue.main.async {
 65 |                 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
 66 |             }
 67 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:99:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 97 |         didSet {
 98 |             DispatchQueue.main.async {
 99 |                 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
100 |             }
101 |         }
[79/82] Emitting module iOSMcuManagerLibrary
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:65:17: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
 63 |         didSet {
 64 |             DispatchQueue.main.async {
 65 |                 self.notifyPeripheralDelegate()
    |                 `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 66 |             }
 67 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:99:17: warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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.
    :
 97 |         didSet {
 98 |             DispatchQueue.main.async {
 99 |                 self.notifyPeripheralDelegate()
    |                 `- warning: capture of 'self' with non-sendable type 'McuMgrBleTransport' in a `@Sendable` closure; this is an error in the Swift 6 language mode
100 |             }
101 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:448:23: warning: static property 'SMP_SERVICE' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
446 | public enum McuMgrBleTransportConstant {
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
    |                       `- warning: static property 'SMP_SERVICE' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
450 |
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  6 |
  7 | import Foundation
  8 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  9 |
 10 | // MARK: - PeripheralState
    :
446 | public enum McuMgrBleTransportConstant {
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
    |                       |- note: annotate 'SMP_SERVICE' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
450 |
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:449:23: warning: static property 'SMP_CHARACTERISTIC' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
447 |
448 |     public static let SMP_SERVICE = CBUUID(string: "8D53DC1D-1DB7-4CD3-868B-8A527460AA84")
449 |     public static let SMP_CHARACTERISTIC = CBUUID(string: "DA2E7828-FBCE-4E01-AE9E-261174997C48")
    |                       |- warning: static property 'SMP_CHARACTERISTIC' is not concurrency-safe because non-'Sendable' type 'CBUUID' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'SMP_CHARACTERISTIC' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
450 |
451 |     /// Max number of retries until the transaction is failed.
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/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: annotate 'upperCase' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'byteSpacing' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'prepend0x' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'twoByteSpacing' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'reverseEndianness' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 |
45 |         public let rawValue: Int
/Users/admin/builder/spi-builder-workspace/Source/Managers/DFU/FirmwareUpgradeManager.swift:1195: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
1193 | public enum FirmwareUpgradeError: Error, LocalizedError {
1194 |     case unknown(String)
1195 |     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
1196 |     case connectionFailedAfterReset
1197 |     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:453:21: warning: capture of 'self' with non-sendable type 'SuitManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 11 | // MARK: - SuitManager
 12 |
 13 | public class SuitManager: McuManager {
    |              `- note: class 'SuitManager' does not conform to the 'Sendable' protocol
 14 |
 15 |     // MARK: Constants
    :
451 |                 let waitTime: DispatchTimeInterval = .milliseconds(Self.POLLING_INTERVAL_MS)
452 |                 DispatchQueue.main.asyncAfter(deadline: .now() + waitTime) { [unowned self] in
453 |                     self.pollAttempts += 1
    |                     `- warning: capture of 'self' with non-sendable type 'SuitManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
454 |                     self.poll(callback: self.pollingCallback)
455 |                 }
/Users/admin/builder/spi-builder-workspace/Source/Managers/SuitManager.swift:572: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
570 |
571 | public enum SuitManagerError: Error, LocalizedError {
572 |     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
573 |     case listRoleResponseMismatch(roleCount: Int, responseCount: Int)
574 |
/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:374: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
372 | public enum McuMgrError: Error, LocalizedError {
373 |     case returnCode(_ rc: McuMgrReturnCode)
374 |     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
375 |
376 |     public var errorDescription: String? {
    :
386 | // MARK: - McuMgrGroupReturnCode
387 |
388 | public class McuMgrGroupReturnCode: CBORMappable {
    |              `- note: class 'McuMgrGroupReturnCode' does not conform to the 'Sendable' protocol
389 |
390 |     public var group: UInt64 = 0
/Users/admin/builder/spi-builder-workspace/Source/McuMgrPackage.swift:91: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
 89 |         case deniedAccessToScopedResource, notAValidDocument, unableToAccessCacheDirectory
 90 |         case manifestFileNotFound, manifestImageNotFound
 91 |         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
 92 |
 93 |         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/McuMgrROBBuffer.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> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<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/McuMgrROBBuffer.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> Re-Order Buffer.
 16 |  */
 17 | public struct McuMgrROBBuffer<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/Bluetooth/McuMgrBleTransport.swift:65:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 63 |         didSet {
 64 |             DispatchQueue.main.async {
 65 |                 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
 66 |             }
 67 |         }
/Users/admin/builder/spi-builder-workspace/Source/Bluetooth/McuMgrBleTransport.swift:99:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 97 |         didSet {
 98 |             DispatchQueue.main.async {
 99 |                 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
100 |             }
101 |         }
[80/82] Compiling iOSMcuManagerLibrary CBOR+String.swift
[81/82] Compiling iOSMcuManagerLibrary ResultLock.swift
[82/82] Compiling iOSMcuManagerLibrary UTI.swift
Build complete! (31.37s)
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/unrelentingtech/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/McuMgrBleTransport+CBCentralManagerDelegate.swift",
        "Bluetooth/McuMgrBleTransport+CBPeripheralDelegate.swift",
        "Bluetooth/McuMgrBleTransport.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",
        "McuMgrHeader.swift",
        "McuMgrImage.swift",
        "McuMgrLogDelegate.swift",
        "McuMgrManifest.swift",
        "McuMgrPackage.swift",
        "McuMgrROBBuffer.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.