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, reference master (0f8d9f), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 14:28:43 UTC.

Swift 6 data race errors: 5

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/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
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "disruptive",
      "name": "Disruptive",
      "url": "https://github.com/vegather/Disruptive.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Disruptive",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/vegather/Disruptive.git
[1/6130] Fetching disruptive
Fetched https://github.com/vegather/Disruptive.git from cache (1.11s)
Creating working copy for https://github.com/vegather/Disruptive.git
Working copy of https://github.com/vegather/Disruptive.git resolved at master (0f8d9fa)
warning: '.resolve-product-dependencies': dependency 'disruptive' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/vegather/Disruptive.git
https://github.com/vegather/Disruptive.git
{
  "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"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.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 nonisolated 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 nonisolated 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: add '@MainActor' to make static property 'loggingEnabled' part of global actor 'MainActor'
   |                       `- 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 nonisolated 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 nonisolated 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: add '@MainActor' to make static property 'sseConfig' part of global actor 'MainActor'
    |                         `- 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 nonisolated 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 nonisolated 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: add '@MainActor' to make static property 'defaultSession' part of global actor 'MainActor'
    |                `- 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 ServiceAccount.swift
[5/26] Compiling Disruptive Stream.swift
[6/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 nonisolated 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 nonisolated 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: add '@MainActor' to make static property 'defaultSession' part of global actor 'MainActor'
    |                `- 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:162:25: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a '@Sendable' closure
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
    |                         `- 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
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
148 |
149 |             let urlString = urlReq.url!.absoluteString
/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
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
    |                                                                 `- 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:195:17: warning: reference to captured var 'diagnostics' in concurrently-executing code
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
196 |                 DispatchQueue.main.async {
197 |                     completion(.success(EmptyResponse() as! T))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:202:13: warning: mutation of captured var 'diagnostics' in concurrently-executing code
200 |             }
201 |
202 |             diagnostics.setParseStart()
    |             `- warning: mutation of captured var 'diagnostics' in concurrently-executing code
203 |
204 |             // Parse the returned data
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:213:13: warning: mutation of captured var 'diagnostics' in concurrently-executing code
211 |             }
212 |
213 |             diagnostics.setParseEnd()
    |             `- warning: mutation of captured var 'diagnostics' in concurrently-executing code
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
212 |
213 |             diagnostics.setParseEnd()
214 |             diagnostics.logDiagnostics(responseData: data)
    |             `- warning: reference to captured var 'diagnostics' in concurrently-executing code
215 |
216 |             DispatchQueue.main.async {
/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 |                             }
[7/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 nonisolated 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 nonisolated 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: add '@MainActor' to make static property 'defaultSession' part of global actor 'MainActor'
    |                `- 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:162:25: warning: capture of 'completion' with non-sendable type '(Result<T, DisruptiveError>) -> ()' in a '@Sendable' closure
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
    |                         `- 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
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
148 |
149 |             let urlString = urlReq.url!.absoluteString
/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
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
    |                                                                 `- 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:195:17: warning: reference to captured var 'diagnostics' in concurrently-executing code
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
196 |                 DispatchQueue.main.async {
197 |                     completion(.success(EmptyResponse() as! T))
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:202:13: warning: mutation of captured var 'diagnostics' in concurrently-executing code
200 |             }
201 |
202 |             diagnostics.setParseStart()
    |             `- warning: mutation of captured var 'diagnostics' in concurrently-executing code
203 |
204 |             // Parse the returned data
/Users/admin/builder/spi-builder-workspace/Sources/Disruptive/Helpers/Requests.swift:213:13: warning: mutation of captured var 'diagnostics' in concurrently-executing code
211 |             }
212 |
213 |             diagnostics.setParseEnd()
    |             `- warning: mutation of captured var 'diagnostics' in concurrently-executing code
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
212 |
213 |             diagnostics.setParseEnd()
214 |             diagnostics.logDiagnostics(responseData: data)
    |             `- warning: reference to captured var 'diagnostics' in concurrently-executing code
215 |
216 |             DispatchQueue.main.async {
/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 |                             }
[8/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 nonisolated 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 nonisolated 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: add '@MainActor' to make static property 'loggingEnabled' part of global actor 'MainActor'
   |                       `- 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: 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 |                 }
[9/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 nonisolated 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 nonisolated 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: add '@MainActor' to make static property 'loggingEnabled' part of global actor 'MainActor'
   |                       `- 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: 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 |                 }
[10/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 nonisolated 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 nonisolated 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: add '@MainActor' to make static property 'loggingEnabled' part of global actor 'MainActor'
   |                       `- 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: 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 |                 }
[11/26] Compiling Disruptive Device.swift
[12/26] Compiling Disruptive Emulator.swift
[13/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 nonisolated 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 nonisolated 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: add '@MainActor' to make static property 'sseConfig' part of global actor 'MainActor'
    |                         `- 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
[14/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 nonisolated 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 nonisolated 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: add '@MainActor' to make static property 'sseConfig' part of global actor 'MainActor'
    |                         `- 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
[15/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 nonisolated 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 nonisolated 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: add '@MainActor' to make static property 'sseConfig' part of global actor 'MainActor'
    |                         `- 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
[16/26] Compiling Disruptive Organization.swift
[17/26] Compiling Disruptive Permissions.swift
[18/26] Compiling Disruptive EventTypes.swift
[19/26] Compiling Disruptive JWT.swift
[20/26] Compiling Disruptive NetworkTypes.swift
[21/26] Compiling Disruptive Project.swift
[22/26] Compiling Disruptive Role.swift
[23/26] Compiling Disruptive Event.swift
[24/26] Compiling Disruptive Member.swift
[25/26] Compiling Disruptive Utils.swift
[26/26] Compiling Disruptive DataConnector.swift
Build complete! (5.87s)
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.