This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of Disruptive with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 5

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/vegather/Disruptive.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/vegather/Disruptive
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 0f8d9fa CI: Updated Swift documentation
Cloned https://github.com/vegather/Disruptive.git
Revision (git rev-parse @):
0f8d9fa4a2cd06c3586a7d112ae4899edae6ed26
SUCCESS checkout https://github.com/vegather/Disruptive.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/vegather/Disruptive.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-6F35C1178C84523A.txt
[3/24] Emitting module Disruptive
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Disruptive.swift:37:23: warning: static property 'loggingEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
35 |
36 |     /// Whether or not the DisruptiveAPI should log to the console. Defaults to `false`.
37 |     public static var loggingEnabled = false
   |                       |- warning: static property 'loggingEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'loggingEnabled' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'loggingEnabled' 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
38 |
39 |     /// The authentication mechanism used by `Disruptive`. This will be
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:96:25: warning: static property 'sseConfig' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 94 |
 95 |
 96 |     internal static var sseConfig: URLSessionConfiguration = {
    |                         |- warning: static property 'sseConfig' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                         |- note: convert 'sseConfig' to a 'let' constant to make 'Sendable' shared state immutable
    |                         |- note: annotate 'sseConfig' 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
 97 |         let config = URLSessionConfiguration.default
 98 |
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:27:14: warning: non-final class 'DeviceEventStream' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 25 |  ```
 26 |  */
 27 | public class DeviceEventStream: NSObject {
    |              `- warning: non-final class 'DeviceEventStream' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 28 |
 29 |     /// Used to specify that the `String` argument in the callbacks is the identifier of a device
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:37:16: warning: stored property 'onTouch' of 'Sendable'-conforming class 'DeviceEventStream' is mutable; this is an error in the Swift 6 language mode
 35 |
 36 |     /// Called with the device identifier and the event when a new `TouchEvent` is received
 37 |     public var onTouch              : ((DeviceID, TouchEvent) -> ())?
    |                `- warning: stored property 'onTouch' of 'Sendable'-conforming class 'DeviceEventStream' is mutable; this is an error in the Swift 6 language mode
 38 |
 39 |     /// Called with the device identifier and the event when a new `TemperatureEvent` is received
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:108:16: warning: static property 'defaultSession' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
106 | extension Request {
107 |     /// Creates a URL session with a 20 second timeout.
108 |     static var defaultSession: URLSession = {
    |                |- warning: static property 'defaultSession' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'defaultSession' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'defaultSession' 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
109 |         let config = URLSessionConfiguration.default
110 |         config.timeoutIntervalForRequest  = 20
[4/26] Compiling Disruptive Disruptive.swift
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Disruptive.swift:37:23: warning: static property 'loggingEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
35 |
36 |     /// Whether or not the DisruptiveAPI should log to the console. Defaults to `false`.
37 |     public static var loggingEnabled = false
   |                       |- warning: static property 'loggingEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'loggingEnabled' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'loggingEnabled' 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
38 |
39 |     /// The authentication mechanism used by `Disruptive`. This will be
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:305:29: warning: capture of 'self' with non-sendable type 'OAuth2Authenticator?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
224 |  ```
225 |  */
226 | public class OAuth2Authenticator: Authenticator {
    |              `- note: class 'OAuth2Authenticator' does not conform to the 'Sendable' protocol
227 |
228 |     /// The service account used to authenticate against the Disruptive Technologies' REST API.
    :
303 |                         Disruptive.log("OAuth2 authentication successful")
304 |                         DispatchQueue.main.async {
305 |                             self?.auth = Auth(
    |                             `- warning: capture of 'self' with non-sendable type 'OAuth2Authenticator?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
306 |                                 token: "Bearer \(response.accessToken)",
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:309:29: warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
308 |                             )
309 |                             completion(.success(()))
    |                             |- warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
310 |                         }
311 |                     case .failure(let e):
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:305:29: warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
303 |                         Disruptive.log("OAuth2 authentication successful")
304 |                         DispatchQueue.main.async {
305 |                             self?.auth = Auth(
    |                             `- warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
306 |                                 token: "Bearer \(response.accessToken)",
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:314:29: warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
312 |                         Disruptive.log("OAuth2 authentication failed with error: \(e)", level: .error)
313 |                         DispatchQueue.main.async {
314 |                             completion(.failure(e))
    |                             |- warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
315 |                         }
316 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:305:29: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
303 |                         Disruptive.log("OAuth2 authentication successful")
304 |                         DispatchQueue.main.async {
305 |                             self?.auth = Auth(
    |                             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
306 |                                 token: "Bearer \(response.accessToken)",
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:309:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
308 |                             )
309 |                             completion(.success(()))
    |                             |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
310 |                         }
311 |                     case .failure(let e):
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:314:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
312 |                         Disruptive.log("OAuth2 authentication failed with error: \(e)", level: .error)
313 |                         DispatchQueue.main.async {
314 |                             completion(.failure(e))
    |                             |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
315 |                         }
316 |                 }
[5/26] Compiling Disruptive Authentication.swift
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Disruptive.swift:37:23: warning: static property 'loggingEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
35 |
36 |     /// Whether or not the DisruptiveAPI should log to the console. Defaults to `false`.
37 |     public static var loggingEnabled = false
   |                       |- warning: static property 'loggingEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'loggingEnabled' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'loggingEnabled' 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
38 |
39 |     /// The authentication mechanism used by `Disruptive`. This will be
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:305:29: warning: capture of 'self' with non-sendable type 'OAuth2Authenticator?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
224 |  ```
225 |  */
226 | public class OAuth2Authenticator: Authenticator {
    |              `- note: class 'OAuth2Authenticator' does not conform to the 'Sendable' protocol
227 |
228 |     /// The service account used to authenticate against the Disruptive Technologies' REST API.
    :
303 |                         Disruptive.log("OAuth2 authentication successful")
304 |                         DispatchQueue.main.async {
305 |                             self?.auth = Auth(
    |                             `- warning: capture of 'self' with non-sendable type 'OAuth2Authenticator?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
306 |                                 token: "Bearer \(response.accessToken)",
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:309:29: warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
308 |                             )
309 |                             completion(.success(()))
    |                             |- warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
310 |                         }
311 |                     case .failure(let e):
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:305:29: warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
303 |                         Disruptive.log("OAuth2 authentication successful")
304 |                         DispatchQueue.main.async {
305 |                             self?.auth = Auth(
    |                             `- warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
306 |                                 token: "Bearer \(response.accessToken)",
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:314:29: warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
312 |                         Disruptive.log("OAuth2 authentication failed with error: \(e)", level: .error)
313 |                         DispatchQueue.main.async {
314 |                             completion(.failure(e))
    |                             |- warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
315 |                         }
316 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:305:29: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
303 |                         Disruptive.log("OAuth2 authentication successful")
304 |                         DispatchQueue.main.async {
305 |                             self?.auth = Auth(
    |                             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
306 |                                 token: "Bearer \(response.accessToken)",
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:309:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
308 |                             )
309 |                             completion(.success(()))
    |                             |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
310 |                         }
311 |                     case .failure(let e):
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:314:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
312 |                         Disruptive.log("OAuth2 authentication failed with error: \(e)", level: .error)
313 |                         DispatchQueue.main.async {
314 |                             completion(.failure(e))
    |                             |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
315 |                         }
316 |                 }
[6/26] Compiling Disruptive DTLog.swift
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Disruptive.swift:37:23: warning: static property 'loggingEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
35 |
36 |     /// Whether or not the DisruptiveAPI should log to the console. Defaults to `false`.
37 |     public static var loggingEnabled = false
   |                       |- warning: static property 'loggingEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'loggingEnabled' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'loggingEnabled' 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
38 |
39 |     /// The authentication mechanism used by `Disruptive`. This will be
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:305:29: warning: capture of 'self' with non-sendable type 'OAuth2Authenticator?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
224 |  ```
225 |  */
226 | public class OAuth2Authenticator: Authenticator {
    |              `- note: class 'OAuth2Authenticator' does not conform to the 'Sendable' protocol
227 |
228 |     /// The service account used to authenticate against the Disruptive Technologies' REST API.
    :
303 |                         Disruptive.log("OAuth2 authentication successful")
304 |                         DispatchQueue.main.async {
305 |                             self?.auth = Auth(
    |                             `- warning: capture of 'self' with non-sendable type 'OAuth2Authenticator?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
306 |                                 token: "Bearer \(response.accessToken)",
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:309:29: warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
308 |                             )
309 |                             completion(.success(()))
    |                             |- warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
310 |                         }
311 |                     case .failure(let e):
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:305:29: warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
303 |                         Disruptive.log("OAuth2 authentication successful")
304 |                         DispatchQueue.main.async {
305 |                             self?.auth = Auth(
    |                             `- warning: reference to captured var 'self' in concurrently-executing code; this is an error in the Swift 6 language mode
306 |                                 token: "Bearer \(response.accessToken)",
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:314:29: warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
312 |                         Disruptive.log("OAuth2 authentication failed with error: \(e)", level: .error)
313 |                         DispatchQueue.main.async {
314 |                             completion(.failure(e))
    |                             |- warning: capture of 'completion' with non-sendable type '(Result<Void, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
315 |                         }
316 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:305:29: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
303 |                         Disruptive.log("OAuth2 authentication successful")
304 |                         DispatchQueue.main.async {
305 |                             self?.auth = Auth(
    |                             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
306 |                                 token: "Bearer \(response.accessToken)",
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:309:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
307 |                                 expirationDate: Date(timeIntervalSinceNow: TimeInterval(response.expiresIn))
308 |                             )
309 |                             completion(.success(()))
    |                             |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
310 |                         }
311 |                     case .failure(let e):
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Authentication.swift:314:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
312 |                         Disruptive.log("OAuth2 authentication failed with error: \(e)", level: .error)
313 |                         DispatchQueue.main.async {
314 |                             completion(.failure(e))
    |                             |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
315 |                         }
316 |                 }
[7/26] Compiling Disruptive DeviceEventStream.swift
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:96:25: warning: static property 'sseConfig' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 94 |
 95 |
 96 |     internal static var sseConfig: URLSessionConfiguration = {
    |                         |- warning: static property 'sseConfig' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                         |- note: convert 'sseConfig' to a 'let' constant to make 'Sendable' shared state immutable
    |                         |- note: annotate 'sseConfig' 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
 97 |         let config = URLSessionConfiguration.default
 98 |
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:27:14: warning: non-final class 'DeviceEventStream' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 25 |  ```
 26 |  */
 27 | public class DeviceEventStream: NSObject {
    |              `- warning: non-final class 'DeviceEventStream' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 28 |
 29 |     /// Used to specify that the `String` argument in the callbacks is the identifier of a device
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:37:16: warning: stored property 'onTouch' of 'Sendable'-conforming class 'DeviceEventStream' is mutable; this is an error in the Swift 6 language mode
 35 |
 36 |     /// Called with the device identifier and the event when a new `TouchEvent` is received
 37 |     public var onTouch              : ((DeviceID, TouchEvent) -> ())?
    |                `- warning: stored property 'onTouch' of 'Sendable'-conforming class 'DeviceEventStream' is mutable; this is an error in the Swift 6 language mode
 38 |
 39 |     /// Called with the device identifier and the event when a new `TemperatureEvent` is received
[8/26] Compiling Disruptive Diagnostics.swift
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:96:25: warning: static property 'sseConfig' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 94 |
 95 |
 96 |     internal static var sseConfig: URLSessionConfiguration = {
    |                         |- warning: static property 'sseConfig' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                         |- note: convert 'sseConfig' to a 'let' constant to make 'Sendable' shared state immutable
    |                         |- note: annotate 'sseConfig' 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
 97 |         let config = URLSessionConfiguration.default
 98 |
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:27:14: warning: non-final class 'DeviceEventStream' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 25 |  ```
 26 |  */
 27 | public class DeviceEventStream: NSObject {
    |              `- warning: non-final class 'DeviceEventStream' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 28 |
 29 |     /// Used to specify that the `String` argument in the callbacks is the identifier of a device
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:37:16: warning: stored property 'onTouch' of 'Sendable'-conforming class 'DeviceEventStream' is mutable; this is an error in the Swift 6 language mode
 35 |
 36 |     /// Called with the device identifier and the event when a new `TouchEvent` is received
 37 |     public var onTouch              : ((DeviceID, TouchEvent) -> ())?
    |                `- warning: stored property 'onTouch' of 'Sendable'-conforming class 'DeviceEventStream' is mutable; this is an error in the Swift 6 language mode
 38 |
 39 |     /// Called with the device identifier and the event when a new `TemperatureEvent` is received
[9/26] Compiling Disruptive Errors.swift
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:96:25: warning: static property 'sseConfig' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 94 |
 95 |
 96 |     internal static var sseConfig: URLSessionConfiguration = {
    |                         |- warning: static property 'sseConfig' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                         |- note: convert 'sseConfig' to a 'let' constant to make 'Sendable' shared state immutable
    |                         |- note: annotate 'sseConfig' 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
 97 |         let config = URLSessionConfiguration.default
 98 |
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:27:14: warning: non-final class 'DeviceEventStream' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 25 |  ```
 26 |  */
 27 | public class DeviceEventStream: NSObject {
    |              `- warning: non-final class 'DeviceEventStream' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 28 |
 29 |     /// Used to specify that the `String` argument in the callbacks is the identifier of a device
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/DeviceEventStream.swift:37:16: warning: stored property 'onTouch' of 'Sendable'-conforming class 'DeviceEventStream' is mutable; this is an error in the Swift 6 language mode
 35 |
 36 |     /// Called with the device identifier and the event when a new `TouchEvent` is received
 37 |     public var onTouch              : ((DeviceID, TouchEvent) -> ())?
    |                `- warning: stored property 'onTouch' of 'Sendable'-conforming class 'DeviceEventStream' is mutable; this is an error in the Swift 6 language mode
 38 |
 39 |     /// Called with the device identifier and the event when a new `TemperatureEvent` is received
[10/26] Compiling Disruptive Utils.swift
[11/26] Compiling Disruptive DataConnector.swift
[12/26] Compiling Disruptive Project.swift
[13/26] Compiling Disruptive Role.swift
[14/26] Compiling Disruptive ServiceAccount.swift
[15/26] Compiling Disruptive Stream.swift
[16/26] Compiling Disruptive Requests.swift
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:108:16: warning: static property 'defaultSession' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
106 | extension Request {
107 |     /// Creates a URL session with a 20 second timeout.
108 |     static var defaultSession: URLSession = {
    |                |- warning: static property 'defaultSession' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'defaultSession' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'defaultSession' 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
109 |         let config = URLSessionConfiguration.default
110 |         config.timeoutIntervalForRequest  = 20
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:138:17: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
136 |             Disruptive.log("Failed to create URLRequest from request: \(self)", level: .error)
137 |             DispatchQueue.main.async {
138 |                 completion(.failure(.unknownError))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
139 |             }
140 |             return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:162:25: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |                     Disruptive.log("Request to \(urlString) resulted in error: \(dtErr)", level: .error)
161 |                     DispatchQueue.main.async {
162 |                         completion(.failure(dtErr))
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
163 |                     }
164 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:147:13: warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
145 |
146 |         let task = Request.defaultSession.dataTask(with: urlReq) { data, response, error in
147 |             diagnostics.setNetworkEnd()
    |             `- warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
148 |
149 |             let urlString = urlReq.url!.absoluteString
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:162:25: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |                     Disruptive.log("Request to \(urlString) resulted in error: \(dtErr)", level: .error)
161 |                     DispatchQueue.main.async {
162 |                         completion(.failure(dtErr))
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
163 |                     }
164 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:173:65: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
171 |                     // Dispatch the same request again after waiting
172 |                     DispatchQueue.global().asyncAfter(deadline: .now() + .seconds(retryAfter)) {
173 |                         self.send(decoder: decoder, completion: completion)
    |                                                                 |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
174 |                     }
175 |
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:185:21: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
183 |                 Disruptive.log("The internal error \(internalError) was not handled for \(urlString)", level: .error)
184 |                 DispatchQueue.main.async {
185 |                     completion(.failure(.unknownError))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
186 |                 }
187 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:195:17: warning: reference to captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
193 |             // to the `Decodable` protocol
194 |             if T.self == EmptyResponse.self {
195 |                 diagnostics.logDiagnostics(responseData: nil)
    |                 `- warning: reference to captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
196 |                 DispatchQueue.main.async {
197 |                     completion(.success(EmptyResponse() as! T))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:197:21: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
195 |                 diagnostics.logDiagnostics(responseData: nil)
196 |                 DispatchQueue.main.async {
197 |                     completion(.success(EmptyResponse() as! T))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
198 |                 }
199 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:202:13: warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
200 |             }
201 |
202 |             diagnostics.setParseStart()
    |             `- warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
203 |
204 |             // Parse the returned data
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:208:21: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 |                 DispatchQueue.main.async {
207 |                     Disruptive.log("Failed to parse the response JSON from \(urlString)", level: .error)
208 |                     completion(.failure(.unknownError))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 |                 }
210 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:213:13: warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
211 |             }
212 |
213 |             diagnostics.setParseEnd()
    |             `- warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
214 |             diagnostics.logDiagnostics(responseData: data)
215 |
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:214:13: warning: reference to captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
212 |
213 |             diagnostics.setParseEnd()
214 |             diagnostics.logDiagnostics(responseData: data)
    |             `- warning: reference to captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
215 |
216 |             DispatchQueue.main.async {
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:217:17: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
215 |
216 |             DispatchQueue.main.async {
217 |                 completion(.success(result))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
218 |             }
219 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:217:37: warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
131 |      - Parameter decoder: If some custom decoding is required (eg. pagination), this default decoder can be replaced with a custom one.
132 |      */
133 |     internal func send<T: Decodable>(decoder: JSONDecoder = JSONDecoder(), completion: @escaping (Result<T, DisruptiveError>) -> ()) {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
134 |
135 |         guard let urlReq = urlRequest() else {
    :
215 |
216 |             DispatchQueue.main.async {
217 |                 completion(.success(result))
    |                                     `- warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
218 |             }
219 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:487:37: warning: capture of 'completion' with non-sendable type '(Result<[T], DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
485 |                                 // This was the last page
486 |                                 DispatchQueue.main.async {
487 |                                     completion(.success(updatedResultsArray))
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<[T], DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
488 |                                 }
489 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:487:57: warning: capture of 'updatedResultsArray' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
435 |     /// the request before sending it. This expects a list of paginated items to be returned, and fetches
436 |     /// all the available pages before returning.
437 |     internal func sendRequest<T: Decodable>(
    |                               `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
438 |         _ request: Request,
439 |         pagingKey: String,
    :
485 |                                 // This was the last page
486 |                                 DispatchQueue.main.async {
487 |                                     completion(.success(updatedResultsArray))
    |                                                         `- warning: capture of 'updatedResultsArray' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
488 |                                 }
489 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:138:17: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
136 |             Disruptive.log("Failed to create URLRequest from request: \(self)", level: .error)
137 |             DispatchQueue.main.async {
138 |                 completion(.failure(.unknownError))
    |                 |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
139 |             }
140 |             return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:487:37: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
485 |                                 // This was the last page
486 |                                 DispatchQueue.main.async {
487 |                                     completion(.success(updatedResultsArray))
    |                                     |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
488 |                                 }
489 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:487:57: warning: sending 'updatedResultsArray' risks causing data races; this is an error in the Swift 6 language mode
485 |                                 // This was the last page
486 |                                 DispatchQueue.main.async {
487 |                                     completion(.success(updatedResultsArray))
    |                                                         |- warning: sending 'updatedResultsArray' risks causing data races; this is an error in the Swift 6 language mode
    |                                                         `- note: task-isolated 'updatedResultsArray' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
488 |                                 }
489 |                             }
[17/26] Compiling Disruptive RetryScheme.swift
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:108:16: warning: static property 'defaultSession' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
106 | extension Request {
107 |     /// Creates a URL session with a 20 second timeout.
108 |     static var defaultSession: URLSession = {
    |                |- warning: static property 'defaultSession' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'defaultSession' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'defaultSession' 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
109 |         let config = URLSessionConfiguration.default
110 |         config.timeoutIntervalForRequest  = 20
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:138:17: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
136 |             Disruptive.log("Failed to create URLRequest from request: \(self)", level: .error)
137 |             DispatchQueue.main.async {
138 |                 completion(.failure(.unknownError))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
139 |             }
140 |             return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:162:25: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |                     Disruptive.log("Request to \(urlString) resulted in error: \(dtErr)", level: .error)
161 |                     DispatchQueue.main.async {
162 |                         completion(.failure(dtErr))
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
163 |                     }
164 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:147:13: warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
145 |
146 |         let task = Request.defaultSession.dataTask(with: urlReq) { data, response, error in
147 |             diagnostics.setNetworkEnd()
    |             `- warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
148 |
149 |             let urlString = urlReq.url!.absoluteString
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:162:25: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |                     Disruptive.log("Request to \(urlString) resulted in error: \(dtErr)", level: .error)
161 |                     DispatchQueue.main.async {
162 |                         completion(.failure(dtErr))
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
163 |                     }
164 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:173:65: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
171 |                     // Dispatch the same request again after waiting
172 |                     DispatchQueue.global().asyncAfter(deadline: .now() + .seconds(retryAfter)) {
173 |                         self.send(decoder: decoder, completion: completion)
    |                                                                 |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
174 |                     }
175 |
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:185:21: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
183 |                 Disruptive.log("The internal error \(internalError) was not handled for \(urlString)", level: .error)
184 |                 DispatchQueue.main.async {
185 |                     completion(.failure(.unknownError))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
186 |                 }
187 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:195:17: warning: reference to captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
193 |             // to the `Decodable` protocol
194 |             if T.self == EmptyResponse.self {
195 |                 diagnostics.logDiagnostics(responseData: nil)
    |                 `- warning: reference to captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
196 |                 DispatchQueue.main.async {
197 |                     completion(.success(EmptyResponse() as! T))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:197:21: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
195 |                 diagnostics.logDiagnostics(responseData: nil)
196 |                 DispatchQueue.main.async {
197 |                     completion(.success(EmptyResponse() as! T))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
198 |                 }
199 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:202:13: warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
200 |             }
201 |
202 |             diagnostics.setParseStart()
    |             `- warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
203 |
204 |             // Parse the returned data
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:208:21: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 |                 DispatchQueue.main.async {
207 |                     Disruptive.log("Failed to parse the response JSON from \(urlString)", level: .error)
208 |                     completion(.failure(.unknownError))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 |                 }
210 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:213:13: warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
211 |             }
212 |
213 |             diagnostics.setParseEnd()
    |             `- warning: mutation of captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
214 |             diagnostics.logDiagnostics(responseData: data)
215 |
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:214:13: warning: reference to captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
212 |
213 |             diagnostics.setParseEnd()
214 |             diagnostics.logDiagnostics(responseData: data)
    |             `- warning: reference to captured var 'diagnostics' in concurrently-executing code; this is an error in the Swift 6 language mode
215 |
216 |             DispatchQueue.main.async {
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:217:17: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
215 |
216 |             DispatchQueue.main.async {
217 |                 completion(.success(result))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
218 |             }
219 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:217:37: warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
131 |      - Parameter decoder: If some custom decoding is required (eg. pagination), this default decoder can be replaced with a custom one.
132 |      */
133 |     internal func send<T: Decodable>(decoder: JSONDecoder = JSONDecoder(), completion: @escaping (Result<T, DisruptiveError>) -> ()) {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
134 |
135 |         guard let urlReq = urlRequest() else {
    :
215 |
216 |             DispatchQueue.main.async {
217 |                 completion(.success(result))
    |                                     `- warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
218 |             }
219 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:487:37: warning: capture of 'completion' with non-sendable type '(Result<[T], DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
485 |                                 // This was the last page
486 |                                 DispatchQueue.main.async {
487 |                                     completion(.success(updatedResultsArray))
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<[T], DisruptiveError>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
488 |                                 }
489 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:487:57: warning: capture of 'updatedResultsArray' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
435 |     /// the request before sending it. This expects a list of paginated items to be returned, and fetches
436 |     /// all the available pages before returning.
437 |     internal func sendRequest<T: Decodable>(
    |                               `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
438 |         _ request: Request,
439 |         pagingKey: String,
    :
485 |                                 // This was the last page
486 |                                 DispatchQueue.main.async {
487 |                                     completion(.success(updatedResultsArray))
    |                                                         `- warning: capture of 'updatedResultsArray' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
488 |                                 }
489 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:138:17: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
136 |             Disruptive.log("Failed to create URLRequest from request: \(self)", level: .error)
137 |             DispatchQueue.main.async {
138 |                 completion(.failure(.unknownError))
    |                 |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
139 |             }
140 |             return
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:487:37: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
485 |                                 // This was the last page
486 |                                 DispatchQueue.main.async {
487 |                                     completion(.success(updatedResultsArray))
    |                                     |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                                     `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
488 |                                 }
489 |                             }
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:487:57: warning: sending 'updatedResultsArray' risks causing data races; this is an error in the Swift 6 language mode
485 |                                 // This was the last page
486 |                                 DispatchQueue.main.async {
487 |                                     completion(.success(updatedResultsArray))
    |                                                         |- warning: sending 'updatedResultsArray' risks causing data races; this is an error in the Swift 6 language mode
    |                                                         `- note: task-isolated 'updatedResultsArray' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
488 |                                 }
489 |                             }
[18/26] Compiling Disruptive Organization.swift
[19/26] Compiling Disruptive Permissions.swift
[20/26] Compiling Disruptive Device.swift
[21/26] Compiling Disruptive Emulator.swift
[22/26] Compiling Disruptive Event.swift
[23/26] Compiling Disruptive Member.swift
[24/26] Compiling Disruptive EventTypes.swift
[25/26] Compiling Disruptive JWT.swift
[26/26] Compiling Disruptive NetworkTypes.swift
Build complete! (25.15s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Disruptive",
  "name" : "Disruptive",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "Disruptive",
      "targets" : [
        "Disruptive"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "DisruptiveTests",
      "module_type" : "SwiftTarget",
      "name" : "DisruptiveTests",
      "path" : "Tests/DisruptiveTests",
      "sources" : [
        "DisruptiveTests.swift",
        "MockStreamURLProtocol.swift",
        "MockURLProtocol.swift",
        "TestUtils.swift",
        "Tests/AuthenticationTests.swift",
        "Tests/DataConnectorTests.swift",
        "Tests/DeviceEventStreamTests.swift",
        "Tests/DeviceTests.swift",
        "Tests/EmulatorTests.swift",
        "Tests/EventTypesTests.swift",
        "Tests/EventsTests.swift",
        "Tests/MemberTests.swift",
        "Tests/NetworkingTests.swift",
        "Tests/OrganizationTests.swift",
        "Tests/PermissionsTests.swift",
        "Tests/ProjectTests.swift",
        "Tests/RequestTests.swift",
        "Tests/RetrySchemeTests.swift",
        "Tests/RoleTests.swift",
        "Tests/ServiceAccountTests.swift",
        "Tests/StreamTests.swift",
        "Tests/UtilsTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "Disruptive"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Disruptive",
      "module_type" : "SwiftTarget",
      "name" : "Disruptive",
      "path" : "Sources/Disruptive",
      "product_memberships" : [
        "Disruptive"
      ],
      "sources" : [
        "Disruptive.swift",
        "Helpers/Authentication.swift",
        "Helpers/DTLog.swift",
        "Helpers/DeviceEventStream.swift",
        "Helpers/Diagnostics.swift",
        "Helpers/Errors.swift",
        "Helpers/EventTypes.swift",
        "Helpers/JWT.swift",
        "Helpers/NetworkTypes.swift",
        "Helpers/Requests.swift",
        "Helpers/RetryScheme.swift",
        "Helpers/Utils.swift",
        "Resources/DataConnector.swift",
        "Resources/Device.swift",
        "Resources/Emulator.swift",
        "Resources/Event.swift",
        "Resources/Member.swift",
        "Resources/Organization.swift",
        "Resources/Permissions.swift",
        "Resources/Project.swift",
        "Resources/Role.swift",
        "Resources/ServiceAccount.swift",
        "Resources/Stream.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.