The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of VanMoofKit, reference main (d258b2), with Swift 6.0 for macOS (SPM) on 1 Dec 2024 13:33:32 UTC.

Swift 6 data race errors: 7

Build Command

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

Build Log

/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 |         return try await self.withTimeout(seconds: timeoutInterval) {
288 |             // For each bluetooth event
289 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 |                 // Check central state
291 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |         return try await self.withTimeout(seconds: timeoutInterval) {
343 |             // For each bluetooth event
344 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 |                 // Check central state
346 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                     let updatedCoreBluetoothCharacteristic,
352 |                     let error
353 |                 ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
    |                                                               `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     // Check if an error is available
355 |                     // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Combine
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Foundation
  4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |         try await self.withTimeout(seconds: timeoutInterval) {
441 |             // For each bluetooth event
442 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                 // Check central state
444 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 |                     let updatedCoreBluetoothCharacterstic,
450 |                     let error
451 |                 ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
    |                                                                   `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 |                     // Check if an error is available
453 |                     if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
566 |     ) async throws -> R {
567 |         try await withThrowingTaskGroup(of: R.self) { group in
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 |             // Initialize deadline
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
570 |             // Add operation Task
571 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 |                 // Execute operation
573 |                 return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
574 |             }
575 |             // Add timeout Task
576 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 |                 // Initialize interval
578 |                 let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
590 |             }
591 |             // Await first result
592 |             let result = try await group.next()
    |                                          `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 |             // Cancel all other tasks
594 |             group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
592 |             let result = try await group.next()
593 |             // Cancel all other tasks
594 |             group.cancelAll()
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 |             // Verify result is available
596 |             guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 |                     return
119 |                 }
120 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 |                     guard let signalStrength = try? await self.signalStrength else {
    |                                                           `- note: closure captures non-Sendable 'self'
122 |                         return
123 |                     }
124 |                     promise(.success(signalStrength))
    |                     `- note: closure captures non-Sendable 'promise'
125 |                 }
126 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 |                         DispatchQueue.main.asyncAfter(
461 |                             deadline: .now() + 1
462 |                         ) { [weak self] in
    |                           `- note: access can happen concurrently
463 |                             // Read value
464 |                             try? self?.connectedPeripheral
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 |                                 .readValue(
466 |                                     for: updatedCoreBluetoothCharacterstic
[105/117] Compiling VanMoofKit VanMoof+Bike+SignalStrength.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 |     /// The default timeout interval in seconds. Default value `30`
17 |     static var timeoutInterval: TimeInterval = 30
   |                |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'timeoutInterval' 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
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 43 |         try await self.withTimeout(seconds: timeoutInterval) {
 44 |             // For each bluetooth event
 45 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 // Check central state
 47 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 |         try await self.withTimeout(seconds: timeoutInterval) {
229 |             // For each bluetooth event
230 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |                 // Switch on event
232 |                 switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 |         return try await self.withTimeout(seconds: timeoutInterval) {
288 |             // For each bluetooth event
289 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 |                 // Check central state
291 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |         return try await self.withTimeout(seconds: timeoutInterval) {
343 |             // For each bluetooth event
344 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 |                 // Check central state
346 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                     let updatedCoreBluetoothCharacteristic,
352 |                     let error
353 |                 ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
    |                                                               `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     // Check if an error is available
355 |                     // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Combine
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Foundation
  4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |         try await self.withTimeout(seconds: timeoutInterval) {
441 |             // For each bluetooth event
442 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                 // Check central state
444 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 |                     let updatedCoreBluetoothCharacterstic,
450 |                     let error
451 |                 ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
    |                                                                   `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 |                     // Check if an error is available
453 |                     if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
566 |     ) async throws -> R {
567 |         try await withThrowingTaskGroup(of: R.self) { group in
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 |             // Initialize deadline
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
570 |             // Add operation Task
571 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 |                 // Execute operation
573 |                 return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
574 |             }
575 |             // Add timeout Task
576 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 |                 // Initialize interval
578 |                 let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
590 |             }
591 |             // Await first result
592 |             let result = try await group.next()
    |                                          `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 |             // Cancel all other tasks
594 |             group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
592 |             let result = try await group.next()
593 |             // Cancel all other tasks
594 |             group.cancelAll()
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 |             // Verify result is available
596 |             guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 |                     return
119 |                 }
120 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 |                     guard let signalStrength = try? await self.signalStrength else {
    |                                                           `- note: closure captures non-Sendable 'self'
122 |                         return
123 |                     }
124 |                     promise(.success(signalStrength))
    |                     `- note: closure captures non-Sendable 'promise'
125 |                 }
126 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 |                         DispatchQueue.main.asyncAfter(
461 |                             deadline: .now() + 1
462 |                         ) { [weak self] in
    |                           `- note: access can happen concurrently
463 |                             // Read value
464 |                             try? self?.connectedPeripheral
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 |                                 .readValue(
466 |                                     for: updatedCoreBluetoothCharacterstic
[106/117] Compiling VanMoofKit VanMoof+Bike+SoundVolume.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 |     /// The default timeout interval in seconds. Default value `30`
17 |     static var timeoutInterval: TimeInterval = 30
   |                |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'timeoutInterval' 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
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 43 |         try await self.withTimeout(seconds: timeoutInterval) {
 44 |             // For each bluetooth event
 45 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 // Check central state
 47 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 |         try await self.withTimeout(seconds: timeoutInterval) {
229 |             // For each bluetooth event
230 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |                 // Switch on event
232 |                 switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 |         return try await self.withTimeout(seconds: timeoutInterval) {
288 |             // For each bluetooth event
289 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 |                 // Check central state
291 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |         return try await self.withTimeout(seconds: timeoutInterval) {
343 |             // For each bluetooth event
344 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 |                 // Check central state
346 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                     let updatedCoreBluetoothCharacteristic,
352 |                     let error
353 |                 ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
    |                                                               `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     // Check if an error is available
355 |                     // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Combine
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Foundation
  4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |         try await self.withTimeout(seconds: timeoutInterval) {
441 |             // For each bluetooth event
442 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                 // Check central state
444 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 |                     let updatedCoreBluetoothCharacterstic,
450 |                     let error
451 |                 ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
    |                                                                   `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 |                     // Check if an error is available
453 |                     if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
566 |     ) async throws -> R {
567 |         try await withThrowingTaskGroup(of: R.self) { group in
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 |             // Initialize deadline
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
570 |             // Add operation Task
571 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 |                 // Execute operation
573 |                 return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
574 |             }
575 |             // Add timeout Task
576 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 |                 // Initialize interval
578 |                 let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
590 |             }
591 |             // Await first result
592 |             let result = try await group.next()
    |                                          `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 |             // Cancel all other tasks
594 |             group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
592 |             let result = try await group.next()
593 |             // Cancel all other tasks
594 |             group.cancelAll()
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 |             // Verify result is available
596 |             guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 |                     return
119 |                 }
120 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 |                     guard let signalStrength = try? await self.signalStrength else {
    |                                                           `- note: closure captures non-Sendable 'self'
122 |                         return
123 |                     }
124 |                     promise(.success(signalStrength))
    |                     `- note: closure captures non-Sendable 'promise'
125 |                 }
126 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 |                         DispatchQueue.main.asyncAfter(
461 |                             deadline: .now() + 1
462 |                         ) { [weak self] in
    |                           `- note: access can happen concurrently
463 |                             // Read value
464 |                             try? self?.connectedPeripheral
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 |                                 .readValue(
466 |                                     for: updatedCoreBluetoothCharacterstic
[107/117] Compiling VanMoofKit VanMoof+Bike+Speed.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 |     /// The default timeout interval in seconds. Default value `30`
17 |     static var timeoutInterval: TimeInterval = 30
   |                |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'timeoutInterval' 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
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 43 |         try await self.withTimeout(seconds: timeoutInterval) {
 44 |             // For each bluetooth event
 45 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 // Check central state
 47 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 |         try await self.withTimeout(seconds: timeoutInterval) {
229 |             // For each bluetooth event
230 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |                 // Switch on event
232 |                 switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 |         return try await self.withTimeout(seconds: timeoutInterval) {
288 |             // For each bluetooth event
289 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 |                 // Check central state
291 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |         return try await self.withTimeout(seconds: timeoutInterval) {
343 |             // For each bluetooth event
344 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 |                 // Check central state
346 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                     let updatedCoreBluetoothCharacteristic,
352 |                     let error
353 |                 ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
    |                                                               `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     // Check if an error is available
355 |                     // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Combine
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Foundation
  4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |         try await self.withTimeout(seconds: timeoutInterval) {
441 |             // For each bluetooth event
442 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                 // Check central state
444 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 |                     let updatedCoreBluetoothCharacterstic,
450 |                     let error
451 |                 ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
    |                                                                   `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 |                     // Check if an error is available
453 |                     if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
566 |     ) async throws -> R {
567 |         try await withThrowingTaskGroup(of: R.self) { group in
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 |             // Initialize deadline
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
570 |             // Add operation Task
571 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 |                 // Execute operation
573 |                 return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
574 |             }
575 |             // Add timeout Task
576 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 |                 // Initialize interval
578 |                 let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
590 |             }
591 |             // Await first result
592 |             let result = try await group.next()
    |                                          `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 |             // Cancel all other tasks
594 |             group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
592 |             let result = try await group.next()
593 |             // Cancel all other tasks
594 |             group.cancelAll()
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 |             // Verify result is available
596 |             guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 |                     return
119 |                 }
120 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 |                     guard let signalStrength = try? await self.signalStrength else {
    |                                                           `- note: closure captures non-Sendable 'self'
122 |                         return
123 |                     }
124 |                     promise(.success(signalStrength))
    |                     `- note: closure captures non-Sendable 'promise'
125 |                 }
126 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 |                         DispatchQueue.main.asyncAfter(
461 |                             deadline: .now() + 1
462 |                         ) { [weak self] in
    |                           `- note: access can happen concurrently
463 |                             // Read value
464 |                             try? self?.connectedPeripheral
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 |                                 .readValue(
466 |                                     for: updatedCoreBluetoothCharacterstic
[108/117] Compiling VanMoofKit VanMoof+Bike+SpeedLimit.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 |     /// The default timeout interval in seconds. Default value `30`
17 |     static var timeoutInterval: TimeInterval = 30
   |                |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'timeoutInterval' 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
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 43 |         try await self.withTimeout(seconds: timeoutInterval) {
 44 |             // For each bluetooth event
 45 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 // Check central state
 47 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 |         try await self.withTimeout(seconds: timeoutInterval) {
229 |             // For each bluetooth event
230 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |                 // Switch on event
232 |                 switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 |         return try await self.withTimeout(seconds: timeoutInterval) {
288 |             // For each bluetooth event
289 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 |                 // Check central state
291 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |         return try await self.withTimeout(seconds: timeoutInterval) {
343 |             // For each bluetooth event
344 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 |                 // Check central state
346 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                     let updatedCoreBluetoothCharacteristic,
352 |                     let error
353 |                 ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
    |                                                               `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     // Check if an error is available
355 |                     // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Combine
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Foundation
  4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |         try await self.withTimeout(seconds: timeoutInterval) {
441 |             // For each bluetooth event
442 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                 // Check central state
444 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 |                     let updatedCoreBluetoothCharacterstic,
450 |                     let error
451 |                 ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
    |                                                                   `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 |                     // Check if an error is available
453 |                     if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
566 |     ) async throws -> R {
567 |         try await withThrowingTaskGroup(of: R.self) { group in
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 |             // Initialize deadline
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
570 |             // Add operation Task
571 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 |                 // Execute operation
573 |                 return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
574 |             }
575 |             // Add timeout Task
576 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 |                 // Initialize interval
578 |                 let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
590 |             }
591 |             // Await first result
592 |             let result = try await group.next()
    |                                          `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 |             // Cancel all other tasks
594 |             group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
592 |             let result = try await group.next()
593 |             // Cancel all other tasks
594 |             group.cancelAll()
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 |             // Verify result is available
596 |             guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 |                     return
119 |                 }
120 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 |                     guard let signalStrength = try? await self.signalStrength else {
    |                                                           `- note: closure captures non-Sendable 'self'
122 |                         return
123 |                     }
124 |                     promise(.success(signalStrength))
    |                     `- note: closure captures non-Sendable 'promise'
125 |                 }
126 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 |                         DispatchQueue.main.asyncAfter(
461 |                             deadline: .now() + 1
462 |                         ) { [weak self] in
    |                           `- note: access can happen concurrently
463 |                             // Read value
464 |                             try? self?.connectedPeripheral
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 |                                 .readValue(
466 |                                     for: updatedCoreBluetoothCharacterstic
[109/117] Compiling VanMoofKit VanMoof+Bike+TotalDistance.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 |     /// The default timeout interval in seconds. Default value `30`
17 |     static var timeoutInterval: TimeInterval = 30
   |                |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'timeoutInterval' 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
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 43 |         try await self.withTimeout(seconds: timeoutInterval) {
 44 |             // For each bluetooth event
 45 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 // Check central state
 47 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 |         try await self.withTimeout(seconds: timeoutInterval) {
229 |             // For each bluetooth event
230 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |                 // Switch on event
232 |                 switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 |         return try await self.withTimeout(seconds: timeoutInterval) {
288 |             // For each bluetooth event
289 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 |                 // Check central state
291 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |         return try await self.withTimeout(seconds: timeoutInterval) {
343 |             // For each bluetooth event
344 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 |                 // Check central state
346 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                     let updatedCoreBluetoothCharacteristic,
352 |                     let error
353 |                 ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
    |                                                               `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     // Check if an error is available
355 |                     // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Combine
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Foundation
  4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |         try await self.withTimeout(seconds: timeoutInterval) {
441 |             // For each bluetooth event
442 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                 // Check central state
444 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 |                     let updatedCoreBluetoothCharacterstic,
450 |                     let error
451 |                 ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
    |                                                                   `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 |                     // Check if an error is available
453 |                     if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
566 |     ) async throws -> R {
567 |         try await withThrowingTaskGroup(of: R.self) { group in
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 |             // Initialize deadline
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
570 |             // Add operation Task
571 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 |                 // Execute operation
573 |                 return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
574 |             }
575 |             // Add timeout Task
576 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 |                 // Initialize interval
578 |                 let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
590 |             }
591 |             // Await first result
592 |             let result = try await group.next()
    |                                          `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 |             // Cancel all other tasks
594 |             group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
592 |             let result = try await group.next()
593 |             // Cancel all other tasks
594 |             group.cancelAll()
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 |             // Verify result is available
596 |             guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 |                     return
119 |                 }
120 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 |                     guard let signalStrength = try? await self.signalStrength else {
    |                                                           `- note: closure captures non-Sendable 'self'
122 |                         return
123 |                     }
124 |                     promise(.success(signalStrength))
    |                     `- note: closure captures non-Sendable 'promise'
125 |                 }
126 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 |                         DispatchQueue.main.asyncAfter(
461 |                             deadline: .now() + 1
462 |                         ) { [weak self] in
    |                           `- note: access can happen concurrently
463 |                             // Read value
464 |                             try? self?.connectedPeripheral
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 |                                 .readValue(
466 |                                     for: updatedCoreBluetoothCharacterstic
[110/117] Compiling VanMoofKit VanMoof+Bike+UnitSystem.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 |     /// The default timeout interval in seconds. Default value `30`
17 |     static var timeoutInterval: TimeInterval = 30
   |                |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'timeoutInterval' 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
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 43 |         try await self.withTimeout(seconds: timeoutInterval) {
 44 |             // For each bluetooth event
 45 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 // Check central state
 47 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 |         try await self.withTimeout(seconds: timeoutInterval) {
229 |             // For each bluetooth event
230 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |                 // Switch on event
232 |                 switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 |         return try await self.withTimeout(seconds: timeoutInterval) {
288 |             // For each bluetooth event
289 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 |                 // Check central state
291 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |         return try await self.withTimeout(seconds: timeoutInterval) {
343 |             // For each bluetooth event
344 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 |                 // Check central state
346 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                     let updatedCoreBluetoothCharacteristic,
352 |                     let error
353 |                 ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
    |                                                               `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     // Check if an error is available
355 |                     // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Combine
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Foundation
  4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |         try await self.withTimeout(seconds: timeoutInterval) {
441 |             // For each bluetooth event
442 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                 // Check central state
444 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 |                     let updatedCoreBluetoothCharacterstic,
450 |                     let error
451 |                 ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
    |                                                                   `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 |                     // Check if an error is available
453 |                     if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
566 |     ) async throws -> R {
567 |         try await withThrowingTaskGroup(of: R.self) { group in
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 |             // Initialize deadline
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
570 |             // Add operation Task
571 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 |                 // Execute operation
573 |                 return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
574 |             }
575 |             // Add timeout Task
576 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 |                 // Initialize interval
578 |                 let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
590 |             }
591 |             // Await first result
592 |             let result = try await group.next()
    |                                          `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 |             // Cancel all other tasks
594 |             group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
592 |             let result = try await group.next()
593 |             // Cancel all other tasks
594 |             group.cancelAll()
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 |             // Verify result is available
596 |             guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 |                     return
119 |                 }
120 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 |                     guard let signalStrength = try? await self.signalStrength else {
    |                                                           `- note: closure captures non-Sendable 'self'
122 |                         return
123 |                     }
124 |                     promise(.success(signalStrength))
    |                     `- note: closure captures non-Sendable 'promise'
125 |                 }
126 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 |                         DispatchQueue.main.asyncAfter(
461 |                             deadline: .now() + 1
462 |                         ) { [weak self] in
    |                           `- note: access can happen concurrently
463 |                             // Read value
464 |                             try? self?.connectedPeripheral
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 |                                 .readValue(
466 |                                     for: updatedCoreBluetoothCharacterstic
[111/117] Compiling VanMoofKit VanMoof+Bike+BluetoothCrypto.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 |     /// The default timeout interval in seconds. Default value `30`
17 |     static var timeoutInterval: TimeInterval = 30
   |                |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'timeoutInterval' 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
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 43 |         try await self.withTimeout(seconds: timeoutInterval) {
 44 |             // For each bluetooth event
 45 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 // Check central state
 47 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 |         try await self.withTimeout(seconds: timeoutInterval) {
229 |             // For each bluetooth event
230 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |                 // Switch on event
232 |                 switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 |         return try await self.withTimeout(seconds: timeoutInterval) {
288 |             // For each bluetooth event
289 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 |                 // Check central state
291 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |         return try await self.withTimeout(seconds: timeoutInterval) {
343 |             // For each bluetooth event
344 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 |                 // Check central state
346 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                     let updatedCoreBluetoothCharacteristic,
352 |                     let error
353 |                 ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
    |                                                               `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     // Check if an error is available
355 |                     // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Combine
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Foundation
  4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |         try await self.withTimeout(seconds: timeoutInterval) {
441 |             // For each bluetooth event
442 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                 // Check central state
444 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 |                     let updatedCoreBluetoothCharacterstic,
450 |                     let error
451 |                 ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
    |                                                                   `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 |                     // Check if an error is available
453 |                     if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
566 |     ) async throws -> R {
567 |         try await withThrowingTaskGroup(of: R.self) { group in
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 |             // Initialize deadline
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
570 |             // Add operation Task
571 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 |                 // Execute operation
573 |                 return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
574 |             }
575 |             // Add timeout Task
576 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 |                 // Initialize interval
578 |                 let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
590 |             }
591 |             // Await first result
592 |             let result = try await group.next()
    |                                          `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 |             // Cancel all other tasks
594 |             group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
592 |             let result = try await group.next()
593 |             // Cancel all other tasks
594 |             group.cancelAll()
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 |             // Verify result is available
596 |             guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 |                     return
119 |                 }
120 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 |                     guard let signalStrength = try? await self.signalStrength else {
    |                                                           `- note: closure captures non-Sendable 'self'
122 |                         return
123 |                     }
124 |                     promise(.success(signalStrength))
    |                     `- note: closure captures non-Sendable 'promise'
125 |                 }
126 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 |                         DispatchQueue.main.asyncAfter(
461 |                             deadline: .now() + 1
462 |                         ) { [weak self] in
    |                           `- note: access can happen concurrently
463 |                             // Read value
464 |                             try? self?.connectedPeripheral
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 |                                 .readValue(
466 |                                     for: updatedCoreBluetoothCharacterstic
[112/117] Compiling VanMoofKit VanMoof+Bike+BluetoothData.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 |     /// The default timeout interval in seconds. Default value `30`
17 |     static var timeoutInterval: TimeInterval = 30
   |                |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'timeoutInterval' 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
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 43 |         try await self.withTimeout(seconds: timeoutInterval) {
 44 |             // For each bluetooth event
 45 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 // Check central state
 47 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 |         try await self.withTimeout(seconds: timeoutInterval) {
229 |             // For each bluetooth event
230 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |                 // Switch on event
232 |                 switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 |         return try await self.withTimeout(seconds: timeoutInterval) {
288 |             // For each bluetooth event
289 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 |                 // Check central state
291 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |         return try await self.withTimeout(seconds: timeoutInterval) {
343 |             // For each bluetooth event
344 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 |                 // Check central state
346 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                     let updatedCoreBluetoothCharacteristic,
352 |                     let error
353 |                 ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
    |                                                               `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     // Check if an error is available
355 |                     // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Combine
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Foundation
  4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |         try await self.withTimeout(seconds: timeoutInterval) {
441 |             // For each bluetooth event
442 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                 // Check central state
444 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 |                     let updatedCoreBluetoothCharacterstic,
450 |                     let error
451 |                 ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
    |                                                                   `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 |                     // Check if an error is available
453 |                     if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
566 |     ) async throws -> R {
567 |         try await withThrowingTaskGroup(of: R.self) { group in
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 |             // Initialize deadline
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
570 |             // Add operation Task
571 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 |                 // Execute operation
573 |                 return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
574 |             }
575 |             // Add timeout Task
576 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 |                 // Initialize interval
578 |                 let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
590 |             }
591 |             // Await first result
592 |             let result = try await group.next()
    |                                          `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 |             // Cancel all other tasks
594 |             group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
592 |             let result = try await group.next()
593 |             // Cancel all other tasks
594 |             group.cancelAll()
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 |             // Verify result is available
596 |             guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 |                     return
119 |                 }
120 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 |                     guard let signalStrength = try? await self.signalStrength else {
    |                                                           `- note: closure captures non-Sendable 'self'
122 |                         return
123 |                     }
124 |                     promise(.success(signalStrength))
    |                     `- note: closure captures non-Sendable 'promise'
125 |                 }
126 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 |                         DispatchQueue.main.asyncAfter(
461 |                             deadline: .now() + 1
462 |                         ) { [weak self] in
    |                           `- note: access can happen concurrently
463 |                             // Read value
464 |                             try? self?.connectedPeripheral
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 |                                 .readValue(
466 |                                     for: updatedCoreBluetoothCharacterstic
[113/117] Compiling VanMoofKit VanMoof+Bike+BluetoothManager+API.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 |     /// The default timeout interval in seconds. Default value `30`
17 |     static var timeoutInterval: TimeInterval = 30
   |                |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'timeoutInterval' 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
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 43 |         try await self.withTimeout(seconds: timeoutInterval) {
 44 |             // For each bluetooth event
 45 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 // Check central state
 47 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 |         try await self.withTimeout(seconds: timeoutInterval) {
229 |             // For each bluetooth event
230 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |                 // Switch on event
232 |                 switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 |         return try await self.withTimeout(seconds: timeoutInterval) {
288 |             // For each bluetooth event
289 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 |                 // Check central state
291 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |         return try await self.withTimeout(seconds: timeoutInterval) {
343 |             // For each bluetooth event
344 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 |                 // Check central state
346 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                     let updatedCoreBluetoothCharacteristic,
352 |                     let error
353 |                 ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
    |                                                               `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     // Check if an error is available
355 |                     // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Combine
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Foundation
  4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |         try await self.withTimeout(seconds: timeoutInterval) {
441 |             // For each bluetooth event
442 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                 // Check central state
444 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 |                     let updatedCoreBluetoothCharacterstic,
450 |                     let error
451 |                 ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
    |                                                                   `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 |                     // Check if an error is available
453 |                     if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
566 |     ) async throws -> R {
567 |         try await withThrowingTaskGroup(of: R.self) { group in
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 |             // Initialize deadline
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
570 |             // Add operation Task
571 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 |                 // Execute operation
573 |                 return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
574 |             }
575 |             // Add timeout Task
576 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 |                 // Initialize interval
578 |                 let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
590 |             }
591 |             // Await first result
592 |             let result = try await group.next()
    |                                          `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 |             // Cancel all other tasks
594 |             group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
592 |             let result = try await group.next()
593 |             // Cancel all other tasks
594 |             group.cancelAll()
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 |             // Verify result is available
596 |             guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 |                     return
119 |                 }
120 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 |                     guard let signalStrength = try? await self.signalStrength else {
    |                                                           `- note: closure captures non-Sendable 'self'
122 |                         return
123 |                     }
124 |                     promise(.success(signalStrength))
    |                     `- note: closure captures non-Sendable 'promise'
125 |                 }
126 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 |                         DispatchQueue.main.asyncAfter(
461 |                             deadline: .now() + 1
462 |                         ) { [weak self] in
    |                           `- note: access can happen concurrently
463 |                             // Read value
464 |                             try? self?.connectedPeripheral
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 |                                 .readValue(
466 |                                     for: updatedCoreBluetoothCharacterstic
[114/117] Compiling VanMoofKit VanMoof+Bike+BluetoothManager+CBCentralManagerDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Configuration/VanMoof+Bike+Configuration.swift:17:16: warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 |
16 |     /// The default timeout interval in seconds. Default value `30`
17 |     static var timeoutInterval: TimeInterval = 30
   |                |- warning: static property 'timeoutInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'timeoutInterval' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'timeoutInterval' 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
18 |
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:45:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 43 |         try await self.withTimeout(seconds: timeoutInterval) {
 44 |             // For each bluetooth event
 45 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 46 |                 // Check central state
 47 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:230:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
228 |         try await self.withTimeout(seconds: timeoutInterval) {
229 |             // For each bluetooth event
230 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |                 // Switch on event
232 |                 switch event {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:289:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
287 |         return try await self.withTimeout(seconds: timeoutInterval) {
288 |             // For each bluetooth event
289 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 |                 // Check central state
291 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:344:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
342 |         return try await self.withTimeout(seconds: timeoutInterval) {
343 |             // For each bluetooth event
344 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
345 |                 // Check central state
346 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:353:63: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |                     let updatedCoreBluetoothCharacteristic,
352 |                     let error
353 |                 ) where updatedCoreBluetoothCharacteristic == coreBluetoothCharacteristic:
    |                                                               `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 |                     // Check if an error is available
355 |                     // which is not instance of `CBATTError.unlikelyError`
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Combine
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Foundation
  4 |
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:442:36: warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |         try await self.withTimeout(seconds: timeoutInterval) {
441 |             // For each bluetooth event
442 |             for try await event in self.values {
    |                                    `- warning: capture of 'self' with non-sendable type 'VanMoof.Bike.BluetoothManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                 // Check central state
444 |                 try self.central.checkState()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift:10:17: note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
  8 |
  9 |     /// A VanMoof Bike BluetoothManager.
 10 |     final class BluetoothManager: NSObject {
    |                 `- note: class 'BluetoothManager' does not conform to the 'Sendable' protocol
 11 |
 12 |         // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:451:67: warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
449 |                     let updatedCoreBluetoothCharacterstic,
450 |                     let error
451 |                 ) where updatedCoreBluetoothCharacterstic.uuid == coreBluetoothCharacteristic.uuid:
    |                                                                   `- warning: capture of 'coreBluetoothCharacteristic' with non-sendable type 'CBCharacteristic' in a `@Sendable` closure; this is an error in the Swift 6 language mode
452 |                     // Check if an error is available
453 |                     if let error = error {
CoreBluetooth.CBCharacteristic:2:12: note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBCharacteristic : CBAttribute {
   |            `- note: class 'CBCharacteristic' does not conform to the 'Sendable' protocol
 3 |     weak open var service: CBService? { get }
 4 |     open var properties: CBCharacteristicProperties { get }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:567:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
566 |     ) async throws -> R {
567 |         try await withThrowingTaskGroup(of: R.self) { group in
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
568 |             // Initialize deadline
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:571:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
569 |             let deadline = Date(timeIntervalSinceNow: seconds)
570 |             // Add operation Task
571 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
572 |                 // Execute operation
573 |                 return try await operation()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:576:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
574 |             }
575 |             // Add timeout Task
576 |             group.addTask {
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
577 |                 // Initialize interval
578 |                 let interval = deadline.timeIntervalSinceNow
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:592:42: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
590 |             }
591 |             // Await first result
592 |             let result = try await group.next()
    |                                          `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
593 |             // Cancel all other tasks
594 |             group.cancelAll()
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:594:19: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
561 |     /// - Throws: Throws `VanMoof.Bike.Error` if the timeout expires before `operation` completes.
562 |     ///   If `operation` throws an error before the timeout expires, that error is propagated to the caller.
563 |     func withTimeout<R>(
    |                      `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
564 |         seconds: TimeInterval,
565 |         operation: @escaping @Sendable () async throws -> R
    :
592 |             let result = try await group.next()
593 |             // Cancel all other tasks
594 |             group.cancelAll()
    |                   `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
595 |             // Verify result is available
596 |             guard let result = result else {
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/API/VanMoof+Bike+SignalStrength.swift:120:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
118 |                     return
119 |                 }
120 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
121 |                     guard let signalStrength = try? await self.signalStrength else {
    |                                                           `- note: closure captures non-Sendable 'self'
122 |                         return
123 |                     }
124 |                     promise(.success(signalStrength))
    |                     `- note: closure captures non-Sendable 'promise'
125 |                 }
126 |             }
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofKit/Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift:464:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
460 |                         DispatchQueue.main.asyncAfter(
461 |                             deadline: .now() + 1
462 |                         ) { [weak self] in
    |                           `- note: access can happen concurrently
463 |                             // Read value
464 |                             try? self?.connectedPeripheral
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
465 |                                 .readValue(
466 |                                     for: updatedCoreBluetoothCharacterstic
[115/119] Compiling VanMoofCLI VanMoofCLI.swift
/Users/admin/builder/spi-builder-workspace/Sources/VanMoofCLI/VanMoofCLI.swift:36:22: warning: sending 'cli' risks causing data races; this is an error in the Swift 6 language mode
 34 |         }
 35 |         // Execute CLI
 36 |         try await cli()
    |                      |- warning: sending 'cli' risks causing data races; this is an error in the Swift 6 language mode
    |                      `- note: sending main actor-isolated 'cli' to nonisolated instance method 'callAsFunction()' risks causing data races between nonisolated and main actor-isolated uses
 37 |     }
 38 |
[116/119] Emitting module VanMoofCLI
[116/119] Write Objects.LinkFileList
[117/119] Linking vanmoof
[118/119] Applying vanmoof
Build complete! (19.39s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "VanMoofKit",
  "name" : "VanMoofKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "9.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "VanMoofKit",
      "targets" : [
        "VanMoofKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "vanmoof",
      "targets" : [
        "VanMoofCLI"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "VanMoofKitTests",
      "module_type" : "SwiftTarget",
      "name" : "VanMoofKitTests",
      "path" : "Tests/VanMoofKitTests",
      "sources" : [
        "VanMoofTests.swift"
      ],
      "target_dependencies" : [
        "VanMoofKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "VanMoofKit",
      "module_type" : "SwiftTarget",
      "name" : "VanMoofKit",
      "path" : "Sources/VanMoofKit",
      "product_memberships" : [
        "VanMoofKit",
        "vanmoof"
      ],
      "sources" : [
        "Authentication/VanMoof+AuthenticationState.swift",
        "Authentication/VanMoof+Credentials.swift",
        "Authentication/VanMoof+Token+Key.swift",
        "Authentication/VanMoof+Token+MissingError.swift",
        "Authentication/VanMoof+Token.swift",
        "Bike/API/VanMoof+Bike+AlarmMode.swift",
        "Bike/API/VanMoof+Bike+AlarmState.swift",
        "Bike/API/VanMoof+Bike+BatteryLevel.swift",
        "Bike/API/VanMoof+Bike+BatteryState.swift",
        "Bike/API/VanMoof+Bike+BellSound.swift",
        "Bike/API/VanMoof+Bike+ClockDate.swift",
        "Bike/API/VanMoof+Bike+CommunicationError.swift",
        "Bike/API/VanMoof+Bike+Connect.swift",
        "Bike/API/VanMoof+Bike+ConnectionState.swift",
        "Bike/API/VanMoof+Bike+Disconnect.swift",
        "Bike/API/VanMoof+Bike+ErrorCode.swift",
        "Bike/API/VanMoof+Bike+Execute.swift",
        "Bike/API/VanMoof+Bike+FirmwareVersions.swift",
        "Bike/API/VanMoof+Bike+LightMode.swift",
        "Bike/API/VanMoof+Bike+LockState.swift",
        "Bike/API/VanMoof+Bike+ModuleState.swift",
        "Bike/API/VanMoof+Bike+PlaySound.swift",
        "Bike/API/VanMoof+Bike+PowerLevel.swift",
        "Bike/API/VanMoof+Bike+SignalStrength.swift",
        "Bike/API/VanMoof+Bike+SoundVolume.swift",
        "Bike/API/VanMoof+Bike+Speed.swift",
        "Bike/API/VanMoof+Bike+SpeedLimit.swift",
        "Bike/API/VanMoof+Bike+TotalDistance.swift",
        "Bike/API/VanMoof+Bike+UnitSystem.swift",
        "Bike/Bluetooth/Crypto/VanMoof+Bike+BluetoothCrypto.swift",
        "Bike/Bluetooth/Data/VanMoof+Bike+BluetoothData.swift",
        "Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+API.swift",
        "Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+CBCentralManagerDelegate.swift",
        "Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+CBPeripheralDelegate.swift",
        "Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager+Event.swift",
        "Bike/Bluetooth/Manager/VanMoof+Bike+BluetoothManager.swift",
        "Bike/Bluetooth/Services/Defence/VanMoof+Bike+BluetoothServices+Defence+AlarmModeCharacteristic.swift",
        "Bike/Bluetooth/Services/Defence/VanMoof+Bike+BluetoothServices+Defence+AlarmStateCharacteristic.swift",
        "Bike/Bluetooth/Services/Defence/VanMoof+Bike+BluetoothServices+Defence+LockStateCharacteristic.swift",
        "Bike/Bluetooth/Services/Defence/VanMoof+Bike+BluetoothServices+Defence+UnlockRequestCharacteristic.swift",
        "Bike/Bluetooth/Services/Defence/VanMoof+Bike+BluetoothServices+Defence.swift",
        "Bike/Bluetooth/Services/Firmware/VanMoof+Bike+BluetoothServices+Firmware+BlockCharacteristic.swift",
        "Bike/Bluetooth/Services/Firmware/VanMoof+Bike+BluetoothServices+Firmware+MetadataCharacteristic.swift",
        "Bike/Bluetooth/Services/Firmware/VanMoof+Bike+BluetoothServices+Firmware.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+BLEChipFirmwareVersionCharacteristic.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+BatteryFirmwareVersionCharacteristic.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+BikeFirmwareVersionCharacteristic.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+ControllerFirmwareVersionCharacteristic.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+EShifterFirmwareVersionCharacteristic.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+GSMFirmwareVersionCharacteristic.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+ModuleBatteryLevelCharacteristic.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+ModuleBatteryStateCharacteristic.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+MotorBatteryLevelCharacteristic.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+MotorBatteryStateCharacteristic.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info+PCBAHardwareVersionCharacteristic.swift",
        "Bike/Bluetooth/Services/Info/VanMoof+Bike+BluetoothServices+Info.swift",
        "Bike/Bluetooth/Services/Light/VanMoof+Bike+BluetoothServices+Light+ModeCharacteristic.swift",
        "Bike/Bluetooth/Services/Light/VanMoof+Bike+BluetoothServices+Light.swift",
        "Bike/Bluetooth/Services/Maintenance/VanMoof+Bike+BluetoothServices+Maintenance+LogBlockCharacteristic.swift",
        "Bike/Bluetooth/Services/Maintenance/VanMoof+Bike+BluetoothServices+Maintenance+LogModeCharacteristic.swift",
        "Bike/Bluetooth/Services/Maintenance/VanMoof+Bike+BluetoothServices+Maintenance+LogSizeCharacteristic.swift",
        "Bike/Bluetooth/Services/Maintenance/VanMoof+Bike+BluetoothServices+Maintenance.swift",
        "Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+DistanceCharacteristic.swift",
        "Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+EShifterGearCharacteristic.swift",
        "Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+EShifterModeCharacteristic.swift",
        "Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+EShiftingPointsCharacteristic.swift",
        "Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+PowerLevelCharacteristic.swift",
        "Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+SpeedCharacteristic.swift",
        "Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+SpeedLimitCharacteristic.swift",
        "Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement+UnitSystemCharacteristic.swift",
        "Bike/Bluetooth/Services/Movement/VanMoof+Bike+BluetoothServices+Movement.swift",
        "Bike/Bluetooth/Services/Security/VanMoof+Bike+BluetoothServices+Security+BackupCodeCharacteristic.swift",
        "Bike/Bluetooth/Services/Security/VanMoof+Bike+BluetoothServices+Security+BikeMessageCharacteristic.swift",
        "Bike/Bluetooth/Services/Security/VanMoof+Bike+BluetoothServices+Security+ChallengeCharacteristic.swift",
        "Bike/Bluetooth/Services/Security/VanMoof+Bike+BluetoothServices+Security+KeyIndexCharacteristic.swift",
        "Bike/Bluetooth/Services/Security/VanMoof+Bike+BluetoothServices+Security.swift",
        "Bike/Bluetooth/Services/Sound/VanMoof+Bike+BluetoothServices+Sound+BellSoundCharacteristic.swift",
        "Bike/Bluetooth/Services/Sound/VanMoof+Bike+BluetoothServices+Sound+PlaySoundCharacteristic.swift",
        "Bike/Bluetooth/Services/Sound/VanMoof+Bike+BluetoothServices+Sound+SoundVolumeCharacteristic.swift",
        "Bike/Bluetooth/Services/Sound/VanMoof+Bike+BluetoothServices+Sound.swift",
        "Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State+ClockCharacteristic.swift",
        "Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State+ErrorsCharacteristic.swift",
        "Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State+ModuleModeCharacteristic.swift",
        "Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State+ModuleStateCharacteristic.swift",
        "Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State+WheelSizeCharacteristic.swift",
        "Bike/Bluetooth/Services/State/VanMoof+Bike+BluetoothServices+State.swift",
        "Bike/Bluetooth/Services/VanMoof+Bike+BluetoothServices.swift",
        "Bike/Bluetooth/Services/VanMoofBikeBluetoothCharacteristic.swift",
        "Bike/Bluetooth/Services/VanMoofBikeBluetoothService.swift",
        "Bike/Configuration/VanMoof+Bike+Configuration.swift",
        "Bike/Details/VanMoof+Bike+Details+CustomerRole.swift",
        "Bike/Details/VanMoof+Bike+Details+Key.swift",
        "Bike/Details/VanMoof+Bike+Details+Links.swift",
        "Bike/Details/VanMoof+Bike+Details+ModelColor.swift",
        "Bike/Details/VanMoof+Bike+Details+ModelDetails.swift",
        "Bike/Details/VanMoof+Bike+Details+Permission.swift",
        "Bike/Details/VanMoof+Bike+Details.swift",
        "Bike/Error/VanMoof+Bike+Error.swift",
        "Bike/Log/VanMoof+Bike+Log.swift",
        "Bike/VanMoof+Bike.swift",
        "TokenStore/InMemoryVanMoofTokenStore.swift",
        "TokenStore/KeychainVanMoofTokenStore.swift",
        "TokenStore/LARightVanMoofTokenStore.swift",
        "TokenStore/NSUbiquitousVanMoofTokenStore.swift",
        "TokenStore/ObservableObjectVanMoofTokenMediator.swift",
        "TokenStore/UserDefaultsVanMoofTokenStore.swift",
        "TokenStore/VanMoofTokenStore.swift",
        "User/VanMoof+User.swift",
        "VanMoof.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "VanMoofCLI",
      "module_type" : "SwiftTarget",
      "name" : "VanMoofCLI",
      "path" : "Sources/VanMoofCLI",
      "product_memberships" : [
        "vanmoof"
      ],
      "sources" : [
        "VanMoofCLI.swift"
      ],
      "target_dependencies" : [
        "VanMoofKit"
      ],
      "type" : "executable"
    }
  ],
  "tools_version" : "5.9"
}
Done.