Build Information
Successful build of SignalRClient, reference dev (e9a4d8), with Swift 6.3 for Linux on 17 Apr 2026 16:49:09 UTC.
Swift 6 data race errors: 0
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:basic-6.3-latest swift build --triple x86_64-unknown-linux-gnu 2>&1Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dotnet/signalr-client-swift.git
Reference: dev
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/dotnet/signalr-client-swift
* branch dev -> FETCH_HEAD
* [new branch] dev -> origin/dev
HEAD is now at e9a4d8f merge from main branch
Cloned https://github.com/dotnet/signalr-client-swift.git
Revision (git rev-parse @):
e9a4d8f9926d595e6c6585074e5281a80fb28e9a
SUCCESS checkout https://github.com/dotnet/signalr-client-swift.git at dev
========================================
Build
========================================
Selected platform: linux
Swift version: 6.3
Building package at path: $PWD
https://github.com/dotnet/signalr-client-swift.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:basic-6.3-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.3-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:5a7d791d2ead8a924b1292cb31bf3288eabcfe8880e0b005b00b45b71a5bc36a
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:basic-6.3-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/36] Emitting module SignalRClient
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:17:7: warning: non-final class 'EventSource' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
15 | // 1. Reconnect, last Id
16 | // 2. event name, event handlers
17 | class EventSource: NSObject, URLSessionDataDelegate {
| `- warning: non-final class 'EventSource' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
18 | private let url: URL
19 | private let headers: [String: String]
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:20:17: warning: stored property 'parser' of 'Sendable'-conforming class 'EventSource' has non-Sendable type 'EventParser'; this is an error in the Swift 6 language mode
18 | private let url: URL
19 | private let headers: [String: String]
20 | private let parser: EventParser
| `- warning: stored property 'parser' of 'Sendable'-conforming class 'EventSource' has non-Sendable type 'EventParser'; this is an error in the Swift 6 language mode
21 | private var openHandler: (() -> Void)?
22 | private var completeHandler: ((Int?, Error?) -> Void)?
:
114 | // The parser supports both "\n" and "\r\n" as field separator. "\r" is rarely used practically thus not supported for simplicity.
115 | // Comments and fields other than "data" are silently dropped.
116 | class EventParser {
| `- note: class 'EventParser' does not conform to the 'Sendable' protocol
117 | static let cr = Character("\r").asciiValue!
118 | static let ln = Character("\n").asciiValue!
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:21:17: warning: stored property 'openHandler' of 'Sendable'-conforming class 'EventSource' is mutable; this is an error in the Swift 6 language mode
19 | private let headers: [String: String]
20 | private let parser: EventParser
21 | private var openHandler: (() -> Void)?
| `- warning: stored property 'openHandler' of 'Sendable'-conforming class 'EventSource' is mutable; this is an error in the Swift 6 language mode
22 | private var completeHandler: ((Int?, Error?) -> Void)?
23 | private var messageHandler: ((String) -> Void)?
[4/40] Compiling SignalRClient StatefulReconnectOptions.swift
[5/40] Compiling SignalRClient StreamResult.swift
[6/40] Compiling SignalRClient TaskCompletionSource.swift
[7/40] Compiling SignalRClient TimeScheduler.swift
[8/40] Compiling SignalRClient MsgpackDecoder.swift
[9/40] Compiling SignalRClient MsgpackEncoder.swift
[10/40] Compiling SignalRClient TextMessageFormat.swift
[11/40] Compiling SignalRClient RetryPolicy.swift
[12/40] Compiling SignalRClient SignalRError.swift
[13/40] Compiling SignalRClient Transport.swift
[14/40] Compiling SignalRClient WebSocketTransport.swift
[15/40] Compiling SignalRClient Utils.swift
[16/40] Compiling SignalRClient Version.swift
[17/40] Compiling SignalRClient InvocationBinder.swift
[18/40] Compiling SignalRClient Logger.swift
[19/40] Compiling SignalRClient MessageBuffer.swift
[20/40] Compiling SignalRClient BinaryMessageFormat.swift
[21/40] Compiling SignalRClient HubMessage.swift
[22/40] Compiling SignalRClient HubProtocol.swift
[23/40] Compiling SignalRClient JsonHubProtocol.swift
[24/40] Compiling SignalRClient MessagePackHubProtocol.swift
[25/40] Compiling SignalRClient MessageType.swift
[26/40] Compiling SignalRClient MsgpackCommon.swift
[27/40] Compiling SignalRClient TransferFormat.swift
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:17:7: warning: non-final class 'EventSource' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
15 | // 1. Reconnect, last Id
16 | // 2. event name, event handlers
17 | class EventSource: NSObject, URLSessionDataDelegate {
| `- warning: non-final class 'EventSource' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
18 | private let url: URL
19 | private let headers: [String: String]
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:20:17: warning: stored property 'parser' of 'Sendable'-conforming class 'EventSource' has non-Sendable type 'EventParser'; this is an error in the Swift 6 language mode
18 | private let url: URL
19 | private let headers: [String: String]
20 | private let parser: EventParser
| `- warning: stored property 'parser' of 'Sendable'-conforming class 'EventSource' has non-Sendable type 'EventParser'; this is an error in the Swift 6 language mode
21 | private var openHandler: (() -> Void)?
22 | private var completeHandler: ((Int?, Error?) -> Void)?
:
114 | // The parser supports both "\n" and "\r\n" as field separator. "\r" is rarely used practically thus not supported for simplicity.
115 | // Comments and fields other than "data" are silently dropped.
116 | class EventParser {
| `- note: class 'EventParser' does not conform to the 'Sendable' protocol
117 | static let cr = Character("\r").asciiValue!
118 | static let ln = Character("\n").asciiValue!
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:21:17: warning: stored property 'openHandler' of 'Sendable'-conforming class 'EventSource' is mutable; this is an error in the Swift 6 language mode
19 | private let headers: [String: String]
20 | private let parser: EventParser
21 | private var openHandler: (() -> Void)?
| `- warning: stored property 'openHandler' of 'Sendable'-conforming class 'EventSource' is mutable; this is an error in the Swift 6 language mode
22 | private var completeHandler: ((Int?, Error?) -> Void)?
23 | private var messageHandler: ((String) -> Void)?
[28/40] Compiling SignalRClient EventSource.swift
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:17:7: warning: non-final class 'EventSource' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
15 | // 1. Reconnect, last Id
16 | // 2. event name, event handlers
17 | class EventSource: NSObject, URLSessionDataDelegate {
| `- warning: non-final class 'EventSource' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
18 | private let url: URL
19 | private let headers: [String: String]
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:20:17: warning: stored property 'parser' of 'Sendable'-conforming class 'EventSource' has non-Sendable type 'EventParser'; this is an error in the Swift 6 language mode
18 | private let url: URL
19 | private let headers: [String: String]
20 | private let parser: EventParser
| `- warning: stored property 'parser' of 'Sendable'-conforming class 'EventSource' has non-Sendable type 'EventParser'; this is an error in the Swift 6 language mode
21 | private var openHandler: (() -> Void)?
22 | private var completeHandler: ((Int?, Error?) -> Void)?
:
114 | // The parser supports both "\n" and "\r\n" as field separator. "\r" is rarely used practically thus not supported for simplicity.
115 | // Comments and fields other than "data" are silently dropped.
116 | class EventParser {
| `- note: class 'EventParser' does not conform to the 'Sendable' protocol
117 | static let cr = Character("\r").asciiValue!
118 | static let ln = Character("\n").asciiValue!
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:21:17: warning: stored property 'openHandler' of 'Sendable'-conforming class 'EventSource' is mutable; this is an error in the Swift 6 language mode
19 | private let headers: [String: String]
20 | private let parser: EventParser
21 | private var openHandler: (() -> Void)?
| `- warning: stored property 'openHandler' of 'Sendable'-conforming class 'EventSource' is mutable; this is an error in the Swift 6 language mode
22 | private var completeHandler: ((Int?, Error?) -> Void)?
23 | private var messageHandler: ((String) -> Void)?
[29/40] Compiling SignalRClient LongPollingTransport.swift
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:17:7: warning: non-final class 'EventSource' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
15 | // 1. Reconnect, last Id
16 | // 2. event name, event handlers
17 | class EventSource: NSObject, URLSessionDataDelegate {
| `- warning: non-final class 'EventSource' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
18 | private let url: URL
19 | private let headers: [String: String]
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:20:17: warning: stored property 'parser' of 'Sendable'-conforming class 'EventSource' has non-Sendable type 'EventParser'; this is an error in the Swift 6 language mode
18 | private let url: URL
19 | private let headers: [String: String]
20 | private let parser: EventParser
| `- warning: stored property 'parser' of 'Sendable'-conforming class 'EventSource' has non-Sendable type 'EventParser'; this is an error in the Swift 6 language mode
21 | private var openHandler: (() -> Void)?
22 | private var completeHandler: ((Int?, Error?) -> Void)?
:
114 | // The parser supports both "\n" and "\r\n" as field separator. "\r" is rarely used practically thus not supported for simplicity.
115 | // Comments and fields other than "data" are silently dropped.
116 | class EventParser {
| `- note: class 'EventParser' does not conform to the 'Sendable' protocol
117 | static let cr = Character("\r").asciiValue!
118 | static let ln = Character("\n").asciiValue!
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:21:17: warning: stored property 'openHandler' of 'Sendable'-conforming class 'EventSource' is mutable; this is an error in the Swift 6 language mode
19 | private let headers: [String: String]
20 | private let parser: EventParser
21 | private var openHandler: (() -> Void)?
| `- warning: stored property 'openHandler' of 'Sendable'-conforming class 'EventSource' is mutable; this is an error in the Swift 6 language mode
22 | private var completeHandler: ((Int?, Error?) -> Void)?
23 | private var messageHandler: ((String) -> Void)?
[30/40] Compiling SignalRClient ServerSentEventTransport.swift
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:17:7: warning: non-final class 'EventSource' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
15 | // 1. Reconnect, last Id
16 | // 2. event name, event handlers
17 | class EventSource: NSObject, URLSessionDataDelegate {
| `- warning: non-final class 'EventSource' cannot conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
18 | private let url: URL
19 | private let headers: [String: String]
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:20:17: warning: stored property 'parser' of 'Sendable'-conforming class 'EventSource' has non-Sendable type 'EventParser'; this is an error in the Swift 6 language mode
18 | private let url: URL
19 | private let headers: [String: String]
20 | private let parser: EventParser
| `- warning: stored property 'parser' of 'Sendable'-conforming class 'EventSource' has non-Sendable type 'EventParser'; this is an error in the Swift 6 language mode
21 | private var openHandler: (() -> Void)?
22 | private var completeHandler: ((Int?, Error?) -> Void)?
:
114 | // The parser supports both "\n" and "\r\n" as field separator. "\r" is rarely used practically thus not supported for simplicity.
115 | // Comments and fields other than "data" are silently dropped.
116 | class EventParser {
| `- note: class 'EventParser' does not conform to the 'Sendable' protocol
117 | static let cr = Character("\r").asciiValue!
118 | static let ln = Character("\n").asciiValue!
/host/spi-builder-workspace/Sources/SignalRClient/Transport/EventSource.swift:21:17: warning: stored property 'openHandler' of 'Sendable'-conforming class 'EventSource' is mutable; this is an error in the Swift 6 language mode
19 | private let headers: [String: String]
20 | private let parser: EventParser
21 | private var openHandler: (() -> Void)?
| `- warning: stored property 'openHandler' of 'Sendable'-conforming class 'EventSource' is mutable; this is an error in the Swift 6 language mode
22 | private var completeHandler: ((Int?, Error?) -> Void)?
23 | private var messageHandler: ((String) -> Void)?
[31/40] Compiling SignalRClient AsyncLock.swift
[32/40] Compiling SignalRClient AtomicState.swift
[33/40] Compiling SignalRClient ConnectionProtocol.swift
[34/40] Compiling SignalRClient HandshakeProtocol.swift
[35/40] Compiling SignalRClient HttpClient.swift
[36/40] Compiling SignalRClient HttpConnection.swift
/host/spi-builder-workspace/Sources/SignalRClient/HubConnection.swift:541:50: warning: expression implicitly coerced from '[Any?]' to '[Any]'
539 | let expectResponse = message.invocationId != nil
540 | if (expectResponse) {
541 | var result: Any? = try await handler(message.arguments.value ?? [])
| | `- note: explicitly cast to '[Any]' with 'as [Any]' to silence this warning
| `- warning: expression implicitly coerced from '[Any?]' to '[Any]'
542 | if (result is Void) {
543 | // Void is not encodeable
/host/spi-builder-workspace/Sources/SignalRClient/HubConnection.swift:549:35: warning: expression implicitly coerced from '[Any?]' to '[Any]'
547 | try await sendWithProtocol(completionMessage)
548 | } else {
549 | _ = try await handler(message.arguments.value ?? [])
| | `- note: explicitly cast to '[Any]' with 'as [Any]' to silence this warning
| `- warning: expression implicitly coerced from '[Any?]' to '[Any]'
550 | }
551 | }
[37/40] Compiling SignalRClient HubConnection+On.swift
/host/spi-builder-workspace/Sources/SignalRClient/HubConnection.swift:541:50: warning: expression implicitly coerced from '[Any?]' to '[Any]'
539 | let expectResponse = message.invocationId != nil
540 | if (expectResponse) {
541 | var result: Any? = try await handler(message.arguments.value ?? [])
| | `- note: explicitly cast to '[Any]' with 'as [Any]' to silence this warning
| `- warning: expression implicitly coerced from '[Any?]' to '[Any]'
542 | if (result is Void) {
543 | // Void is not encodeable
/host/spi-builder-workspace/Sources/SignalRClient/HubConnection.swift:549:35: warning: expression implicitly coerced from '[Any?]' to '[Any]'
547 | try await sendWithProtocol(completionMessage)
548 | } else {
549 | _ = try await handler(message.arguments.value ?? [])
| | `- note: explicitly cast to '[Any]' with 'as [Any]' to silence this warning
| `- warning: expression implicitly coerced from '[Any?]' to '[Any]'
550 | }
551 | }
[38/40] Compiling SignalRClient HubConnection+OnResult.swift
/host/spi-builder-workspace/Sources/SignalRClient/HubConnection.swift:541:50: warning: expression implicitly coerced from '[Any?]' to '[Any]'
539 | let expectResponse = message.invocationId != nil
540 | if (expectResponse) {
541 | var result: Any? = try await handler(message.arguments.value ?? [])
| | `- note: explicitly cast to '[Any]' with 'as [Any]' to silence this warning
| `- warning: expression implicitly coerced from '[Any?]' to '[Any]'
542 | if (result is Void) {
543 | // Void is not encodeable
/host/spi-builder-workspace/Sources/SignalRClient/HubConnection.swift:549:35: warning: expression implicitly coerced from '[Any?]' to '[Any]'
547 | try await sendWithProtocol(completionMessage)
548 | } else {
549 | _ = try await handler(message.arguments.value ?? [])
| | `- note: explicitly cast to '[Any]' with 'as [Any]' to silence this warning
| `- warning: expression implicitly coerced from '[Any?]' to '[Any]'
550 | }
551 | }
[39/40] Compiling SignalRClient HubConnection.swift
/host/spi-builder-workspace/Sources/SignalRClient/HubConnection.swift:541:50: warning: expression implicitly coerced from '[Any?]' to '[Any]'
539 | let expectResponse = message.invocationId != nil
540 | if (expectResponse) {
541 | var result: Any? = try await handler(message.arguments.value ?? [])
| | `- note: explicitly cast to '[Any]' with 'as [Any]' to silence this warning
| `- warning: expression implicitly coerced from '[Any?]' to '[Any]'
542 | if (result is Void) {
543 | // Void is not encodeable
/host/spi-builder-workspace/Sources/SignalRClient/HubConnection.swift:549:35: warning: expression implicitly coerced from '[Any?]' to '[Any]'
547 | try await sendWithProtocol(completionMessage)
548 | } else {
549 | _ = try await handler(message.arguments.value ?? [])
| | `- note: explicitly cast to '[Any]' with 'as [Any]' to silence this warning
| `- warning: expression implicitly coerced from '[Any?]' to '[Any]'
550 | }
551 | }
[40/40] Compiling SignalRClient HubConnectionBuilder.swift
/host/spi-builder-workspace/Sources/SignalRClient/HubConnection.swift:541:50: warning: expression implicitly coerced from '[Any?]' to '[Any]'
539 | let expectResponse = message.invocationId != nil
540 | if (expectResponse) {
541 | var result: Any? = try await handler(message.arguments.value ?? [])
| | `- note: explicitly cast to '[Any]' with 'as [Any]' to silence this warning
| `- warning: expression implicitly coerced from '[Any?]' to '[Any]'
542 | if (result is Void) {
543 | // Void is not encodeable
/host/spi-builder-workspace/Sources/SignalRClient/HubConnection.swift:549:35: warning: expression implicitly coerced from '[Any?]' to '[Any]'
547 | try await sendWithProtocol(completionMessage)
548 | } else {
549 | _ = try await handler(message.arguments.value ?? [])
| | `- note: explicitly cast to '[Any]' with 'as [Any]' to silence this warning
| `- warning: expression implicitly coerced from '[Any?]' to '[Any]'
550 | }
551 | }
Build complete! (16.34s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SignalRClient",
"name" : "SignalRClient",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "11.0"
},
{
"name" : "ios",
"version" : "14.0"
}
],
"products" : [
{
"name" : "SignalRClient",
"targets" : [
"SignalRClient"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SignalRClientTests",
"module_type" : "SwiftTarget",
"name" : "SignalRClientTests",
"path" : "Tests/SignalRClientTests",
"sources" : [
"AsyncLockTest.swift",
"BinaryMessageFormatTests.swift",
"EventSourceTests.swift",
"HandshakeProtocolTests.swift",
"HttpClientTests.swift",
"HubConnection+OnResultTests.swift",
"HubConnection+OnTests.swift",
"HubConnectionTests.swift",
"JsonHubProtocolTests.swift",
"LoggerTests.swift",
"LongPollingTransportTests.swift",
"MessageBufferTests.swift",
"MessagePackHubProtocolTests.swift",
"Msgpack/MsgpackDecoderTests.swift",
"Msgpack/MsgpackEncoderTests.swift",
"ServerSentEventTransportTests.swift",
"TaskCompletionSourceTests.swift",
"TextMessageFormatTests.swift",
"TimeSchedulerTests.swift",
"Utils.swift",
"UtilsTest.swift",
"WebSocketTransportTests.swift"
],
"target_dependencies" : [
"SignalRClient"
],
"type" : "test"
},
{
"c99name" : "SignalRClientIntegrationTests",
"module_type" : "SwiftTarget",
"name" : "SignalRClientIntegrationTests",
"path" : "Tests/SignalRClientIntegrationTests",
"sources" : [
"IntegrationTests.swift"
],
"target_dependencies" : [
"SignalRClient"
],
"type" : "test"
},
{
"c99name" : "SignalRClient",
"module_type" : "SwiftTarget",
"name" : "SignalRClient",
"path" : "Sources/SignalRClient",
"product_memberships" : [
"SignalRClient"
],
"sources" : [
"AsyncLock.swift",
"AtomicState.swift",
"ConnectionProtocol.swift",
"HandshakeProtocol.swift",
"HttpClient.swift",
"HttpConnection.swift",
"HubConnection+On.swift",
"HubConnection+OnResult.swift",
"HubConnection.swift",
"HubConnectionBuilder.swift",
"InvocationBinder.swift",
"Logger.swift",
"MessageBuffer.swift",
"Protocols/BinaryMessageFormat.swift",
"Protocols/HubMessage.swift",
"Protocols/HubProtocol.swift",
"Protocols/JsonHubProtocol.swift",
"Protocols/MessagePackHubProtocol.swift",
"Protocols/MessageType.swift",
"Protocols/Msgpack/MsgpackCommon.swift",
"Protocols/Msgpack/MsgpackDecoder.swift",
"Protocols/Msgpack/MsgpackEncoder.swift",
"Protocols/TextMessageFormat.swift",
"RetryPolicy.swift",
"SignalRError.swift",
"StatefulReconnectOptions.swift",
"StreamResult.swift",
"TaskCompletionSource.swift",
"TimeScheduler.swift",
"TransferFormat.swift",
"Transport/EventSource.swift",
"Transport/LongPollingTransport.swift",
"Transport/ServerSentEventTransport.swift",
"Transport/Transport.swift",
"Transport/WebSocketTransport.swift",
"Utils.swift",
"Version.swift"
],
"type" : "library"
}
],
"tools_version" : "5.10"
}
basic-6.3-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:5a7d791d2ead8a924b1292cb31bf3288eabcfe8880e0b005b00b45b71a5bc36a
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:basic-6.3-latest
Done.