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.