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

The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of Kitura-WebSocket with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 1

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Kitura/Kitura-WebSocket.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Kitura/Kitura-WebSocket
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at e79d57c Misc org update (#106)
Cloned https://github.com/Kitura/Kitura-WebSocket.git
Revision (git rev-parse @):
e79d57cc575e9df309e3c207ec1aa93d7aa61520
SUCCESS checkout https://github.com/Kitura/Kitura-WebSocket.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/Kitura/Kitura-WebSocket.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/10] Write sources
[7/10] Write swift-version-6F35C1178C84523A.txt
[8/30] Compiling CHTTPParser utils.c
[9/30] Compiling CHTTPParser http_parser.c
[11/30] Compiling Logging Locks.swift
[12/30] Compiling Logging LogHandler.swift
[13/30] Emitting module Logging
[14/30] Compiling Logging Logging.swift
[15/30] Compiling Logging MetadataProvider.swift
[16/32] Emitting module Cryptor
[17/33] Compiling Socket SocketUtils.swift
[18/33] Emitting module LoggerAPI
[19/33] Compiling LoggerAPI Logger.swift
[20/33] Compiling Cryptor StreamCryptor.swift
[21/33] Compiling Cryptor SSLPointerTricks.swift
[22/33] Compiling Cryptor Updatable.swift
[23/33] Compiling Cryptor Random.swift
[24/33] Compiling Cryptor Status.swift
[25/33] Compiling Cryptor KeyDerivation.swift
[26/33] Compiling Cryptor HMAC.swift
[27/33] Compiling Cryptor Digest.swift
[28/33] Compiling Cryptor Crypto.swift
[29/33] Compiling Cryptor Cryptor.swift
[30/33] Compiling Socket Socket.swift
[31/33] Compiling Socket SocketProtocols.swift
[32/33] Emitting module Socket
[33/33] Compiling Cryptor Utilities.swift
[34/36] Emitting module SSLService
[35/36] Compiling SSLService SSLPointerTricks.swift
[36/36] Compiling SSLService SSLService.swift
[37/71] Compiling KituraNet ServerLifecycleListener.swift
[38/71] Compiling KituraNet ServerMonitor.swift
[39/71] Compiling KituraNet ServerState.swift
[40/74] Compiling KituraNet ServerOptions.swift
[41/74] Compiling KituraNet ServerRequest.swift
[42/74] Compiling KituraNet ServerResponse.swift
[43/74] Compiling KituraNet IncomingSocketManager.swift
[44/74] Compiling KituraNet IncomingSocketProcessor.swift
[45/74] Compiling KituraNet IncomingSocketProcessorCreator.swift
[46/74] Compiling KituraNet ListenerGroup.swift
[47/74] Compiling KituraNet ConnectionUpgrader.swift
[48/74] Compiling KituraNet Error.swift
[49/74] Compiling KituraNet FastCGI.swift
[50/74] Compiling KituraNet FastCGIRecordCreate.swift
[51/74] Emitting module KituraNet
[52/74] Compiling KituraNet BufferList.swift
[53/74] Compiling KituraNet ClientRequest.swift
[54/74] Compiling KituraNet ClientResponse.swift
[55/74] Compiling KituraNet ConnectionUpgradeFactory.swift
[56/74] Compiling KituraNet ParseResults.swift
[57/74] Compiling KituraNet URLParser.swift
[58/74] Compiling KituraNet HeadersContainer.swift
[59/74] Compiling KituraNet IncomingSocketHandler.swift
[60/74] Compiling KituraNet IncomingHTTPSocketProcessor.swift
[61/74] Compiling KituraNet KeepAliveState.swift
[62/74] Compiling KituraNet HTTPParser.swift
[63/74] Compiling KituraNet HTTPParserStatus.swift
[64/74] Compiling KituraNet SPIUtils.swift
[65/74] Compiling KituraNet Server.swift
[66/74] Compiling KituraNet ServerDelegate.swift
[67/74] Compiling KituraNet HTTP.swift
[68/74] Compiling KituraNet HTTPServer.swift
[69/74] Compiling KituraNet HTTPServerRequest.swift
[70/74] Compiling KituraNet HTTPServerResponse.swift
[71/74] Compiling KituraNet FastCGIRecordParser.swift
[72/74] Compiling KituraNet FastCGIServer.swift
[73/74] Compiling KituraNet FastCGIServerRequest.swift
[74/74] Compiling KituraNet FastCGIServerResponse.swift
[75/84] Compiling KituraWebSocket WebSocketCloseReasonCode.swift
[76/84] Compiling KituraWebSocket WebSocketError.swift
[77/85] Compiling KituraWebSocket WebSocketService.swift
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketService.swift:23:35: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
21 | /// There can be many WebSocket connections connected to a single `WebSocketService` protocol instance.
22 | /// The protocol is a set of callbacks that are invoked when various events occur.
23 | public protocol WebSocketService: class {
   |                                   `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
24 |
25 |     /// Called when a WebSocket client connects to the server and is connected to a specific
[78/85] Compiling KituraWebSocket WSFrame.swift
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WSFrame.swift:52:27: warning: initialization of 'UnsafeMutablePointer<UInt16>' results in a dangling pointer
50 |                 payloadLengthUInt16 = CFSwapInt16HostToBig(tempPayloadLengh)
51 |             #endif
52 |             let asBytes = UnsafeMutablePointer(&payloadLengthUInt16)
   |                           |                    |- note: implicit argument conversion from 'UInt16' to 'UnsafeMutablePointer<UInt16>' produces a pointer valid only for the duration of the call to 'init(_:)'
   |                           |                    `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
   |                           `- warning: initialization of 'UnsafeMutablePointer<UInt16>' results in a dangling pointer
53 |             #if swift(>=4.1)
54 |                 (UnsafeMutableRawPointer(mutating: bytes)+length+1).copyMemory(from: asBytes, byteCount: 2)
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WSFrame.swift:54:18: warning: initialization of 'UnsafeMutableRawPointer' results in a dangling pointer
52 |             let asBytes = UnsafeMutablePointer(&payloadLengthUInt16)
53 |             #if swift(>=4.1)
54 |                 (UnsafeMutableRawPointer(mutating: bytes)+length+1).copyMemory(from: asBytes, byteCount: 2)
   |                  |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeRawPointer' produces a pointer valid only for the duration of the call to 'init(mutating:)'
   |                  |                                 `- note: use the 'withUnsafeBytes' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
   |                  `- warning: initialization of 'UnsafeMutableRawPointer' results in a dangling pointer
55 |             #else
56 |                 (UnsafeMutableRawPointer(mutating: bytes)+length+1).copyBytes(from: asBytes, count: 2)
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WSFrame.swift:68:27: warning: initialization of 'UnsafeMutablePointer<UInt32>' results in a dangling pointer
66 |                 payloadLengthUInt32 = CFSwapInt32HostToBig(tempPayloadLengh)
67 |             #endif
68 |             let asBytes = UnsafeMutablePointer(&payloadLengthUInt32)
   |                           |                    |- note: implicit argument conversion from 'UInt32' to 'UnsafeMutablePointer<UInt32>' produces a pointer valid only for the duration of the call to 'init(_:)'
   |                           |                    `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
   |                           `- warning: initialization of 'UnsafeMutablePointer<UInt32>' results in a dangling pointer
69 |             #if swift(>=4.1)
70 |                 (UnsafeMutableRawPointer(mutating: bytes)+length+5).copyMemory(from: asBytes, byteCount: 4)
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WSFrame.swift:70:18: warning: initialization of 'UnsafeMutableRawPointer' results in a dangling pointer
68 |             let asBytes = UnsafeMutablePointer(&payloadLengthUInt32)
69 |             #if swift(>=4.1)
70 |                 (UnsafeMutableRawPointer(mutating: bytes)+length+5).copyMemory(from: asBytes, byteCount: 4)
   |                  |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeRawPointer' produces a pointer valid only for the duration of the call to 'init(mutating:)'
   |                  |                                 `- note: use the 'withUnsafeBytes' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
   |                  `- warning: initialization of 'UnsafeMutableRawPointer' results in a dangling pointer
71 |             #else
72 |                 (UnsafeMutableRawPointer(mutating: bytes)+length+5).copyBytes(from: asBytes, count: 4)
[79/85] Compiling KituraWebSocket WebSocket.swift
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocket.swift:22:16: warning: static property 'factory' is not concurrency-safe because non-'Sendable' type 'WSConnectionUpgradeFactory' may have shared mutable state; this is an error in the Swift 6 language mode
20 | /// that will handle WebSocket connections for specific paths.
21 | public class WebSocket {
22 |     static let factory = WSConnectionUpgradeFactory()
   |                |- warning: static property 'factory' is not concurrency-safe because non-'Sendable' type 'WSConnectionUpgradeFactory' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'factory' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 |
24 |     /// Register a `WebSocketService` for a specific path
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WSConnectionUpgradeFactory.swift:24:14: note: class 'WSConnectionUpgradeFactory' does not conform to the 'Sendable' protocol
 22 | /// The implementation of the ConnectionUpgradeFactory protocol for the WebSocket protocol.
 23 | /// Participates in the HTTP protocol upgrade process when upgarding to the WebSocket protocol.
 24 | public class WSConnectionUpgradeFactory: ConnectionUpgradeFactory {
    |              `- note: class 'WSConnectionUpgradeFactory' does not conform to the 'Sendable' protocol
 25 |     private var registry = Dictionary<String, WebSocketService>()
 26 |
[80/85] Compiling KituraWebSocket WSServerRequest.swift
[81/85] Compiling KituraWebSocket WSSocketProcessor.swift
[82/85] Compiling KituraWebSocket WSConnectionUpgradeFactory.swift
[83/85] Emitting module KituraWebSocket
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocket.swift:22:16: warning: static property 'factory' is not concurrency-safe because non-'Sendable' type 'WSConnectionUpgradeFactory' may have shared mutable state; this is an error in the Swift 6 language mode
20 | /// that will handle WebSocket connections for specific paths.
21 | public class WebSocket {
22 |     static let factory = WSConnectionUpgradeFactory()
   |                |- warning: static property 'factory' is not concurrency-safe because non-'Sendable' type 'WSConnectionUpgradeFactory' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'factory' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 |
24 |     /// Register a `WebSocketService` for a specific path
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WSConnectionUpgradeFactory.swift:24:14: note: class 'WSConnectionUpgradeFactory' does not conform to the 'Sendable' protocol
 22 | /// The implementation of the ConnectionUpgradeFactory protocol for the WebSocket protocol.
 23 | /// Participates in the HTTP protocol upgrade process when upgarding to the WebSocket protocol.
 24 | public class WSConnectionUpgradeFactory: ConnectionUpgradeFactory {
    |              `- note: class 'WSConnectionUpgradeFactory' does not conform to the 'Sendable' protocol
 25 |     private var registry = Dictionary<String, WebSocketService>()
 26 |
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketService.swift:23:35: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
21 | /// There can be many WebSocket connections connected to a single `WebSocketService` protocol instance.
22 | /// The protocol is a set of callbacks that are invoked when various events occur.
23 | public protocol WebSocketService: class {
   |                                   `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
24 |
25 |     /// Called when a WebSocket client connects to the server and is connected to a specific
[84/85] Compiling KituraWebSocket WSFrameParser.swift
[85/85] Compiling KituraWebSocket WebSocketConnection.swift
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:115:45: warning: initialization of 'UnsafePointer<CChar>' (aka 'UnsafePointer<Int8>') results in a dangling pointer
113 |                 // throw something?
114 |             }
115 |             let rawBytes = UnsafeRawPointer(UnsafePointer(utf8))
    |                                             |             |- note: implicit argument conversion from '[CChar]' (aka 'Array<Int8>') to 'UnsafePointer<CChar>' (aka 'UnsafePointer<Int8>') produces a pointer valid only for the duration of the call to 'init(_:)'
    |                                             |             `- note: use the 'withUnsafeBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                                             `- warning: initialization of 'UnsafePointer<CChar>' (aka 'UnsafePointer<Int8>') results in a dangling pointer
116 |             sendMessage(withOpCode: .ping, payload: rawBytes, payloadLength: count)
117 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:149:41: warning: initialization of 'UnsafePointer<CChar>' (aka 'UnsafePointer<Int8>') results in a dangling pointer
147 |             // throw something?
148 |         }
149 |         let rawBytes = UnsafeRawPointer(UnsafePointer(utf8))
    |                                         |             |- note: implicit argument conversion from '[CChar]' (aka 'Array<Int8>') to 'UnsafePointer<CChar>' (aka 'UnsafePointer<Int8>') produces a pointer valid only for the duration of the call to 'init(_:)'
    |                                         |             `- note: use the 'withUnsafeBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                                         `- warning: initialization of 'UnsafePointer<CChar>' (aka 'UnsafePointer<Int8>') results in a dangling pointer
150 |         sendMessage(withOpCode: .text, payload: rawBytes, payloadLength: count)
151 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:163:23: warning: initialization of 'UnsafeMutablePointer<UInt16>' results in a dangling pointer
161 |
162 |         let payload = NSMutableData()
163 |         let asBytes = UnsafeMutablePointer(&reasonCodeToSend)
    |                       |                    |- note: implicit argument conversion from 'UInt16' to 'UnsafeMutablePointer<UInt16>' produces a pointer valid only for the duration of the call to 'init(_:)'
    |                       |                    `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
    |                       `- warning: initialization of 'UnsafeMutablePointer<UInt16>' results in a dangling pointer
164 |         payload.append(asBytes, length: 2)
165 |
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:173:28: warning: initialization of 'UnsafePointer<CChar>' (aka 'UnsafePointer<Int8>') results in a dangling pointer
171 |                 // throw something?
172 |             }
173 |             payload.append(UnsafePointer(utf8), length: count)
    |                            |             |- note: implicit argument conversion from '[CChar]' (aka 'Array<Int8>') to 'UnsafePointer<CChar>' (aka 'UnsafePointer<Int8>') produces a pointer valid only for the duration of the call to 'init(_:)'
    |                            |             `- note: use the 'withUnsafeBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                            `- warning: initialization of 'UnsafePointer<CChar>' (aka 'UnsafePointer<Int8>') results in a dangling pointer
174 |         }
175 |
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:190:37: warning: capture of 'self' with non-sendable type 'WebSocketConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 29 | /// the connection and APIs to send messages and control commands to the client
 30 | /// at the other end of the connection.
 31 | public class WebSocketConnection {
    |              `- note: class 'WebSocketConnection' does not conform to the 'Sendable' protocol
 32 |     weak var processor: WSSocketProcessor?
 33 |
    :
188 |
189 |             callbackQueue.async { [weak self] in
190 |                 if let strongSelf = self {
    |                                     `- warning: capture of 'self' with non-sendable type 'WebSocketConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
191 |                     strongSelf.service?.disconnected(connection: strongSelf, reason: reason)
192 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:191:86: warning: capture of 'reason' with non-sendable type 'WebSocketCloseReasonCode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
189 |             callbackQueue.async { [weak self] in
190 |                 if let strongSelf = self {
191 |                     strongSelf.service?.disconnected(connection: strongSelf, reason: reason)
    |                                                                                      `- warning: capture of 'reason' with non-sendable type 'WebSocketCloseReasonCode' in a `@Sendable` closure; this is an error in the Swift 6 language mode
192 |                 }
193 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketCloseReasonCode.swift:19:13: note: consider making enum 'WebSocketCloseReasonCode' conform to the 'Sendable' protocol
17 | /// The `WebSocketCloseReasonCode` enum defines the set of reason codes that a
18 | /// WebSocket application can send/receive when a connection is closed.
19 | public enum WebSocketCloseReasonCode {
   |             `- note: consider making enum 'WebSocketCloseReasonCode' conform to the 'Sendable' protocol
20 |     /// Closed abnormally (1006)
21 |     case closedAbnormally
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:204:33: warning: capture of 'self' with non-sendable type 'WebSocketConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 29 | /// the connection and APIs to send messages and control commands to the client
 30 | /// at the other end of the connection.
 31 | public class WebSocketConnection {
    |              `- note: class 'WebSocketConnection' does not conform to the 'Sendable' protocol
 32 |     weak var processor: WSSocketProcessor?
 33 |
    :
202 |
203 |         callbackQueue.async { [weak self] in
204 |             if let strongSelf = self {
    |                                 `- warning: capture of 'self' with non-sendable type 'WebSocketConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
205 |                 service.connected(connection: strongSelf)
206 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:205:17: warning: capture of 'service' with non-sendable type 'any WebSocketService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 |         callbackQueue.async { [weak self] in
204 |             if let strongSelf = self {
205 |                 service.connected(connection: strongSelf)
    |                 `- warning: capture of 'service' with non-sendable type 'any WebSocketService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 |             }
207 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketService.swift:23:17: note: protocol 'WebSocketService' does not conform to the 'Sendable' protocol
21 | /// There can be many WebSocket connections connected to a single `WebSocketService` protocol instance.
22 | /// The protocol is a set of callbacks that are invoked when various events occur.
23 | public protocol WebSocketService: class {
   |                 `- note: protocol 'WebSocketService' does not conform to the 'Sendable' protocol
24 |
25 |     /// Called when a WebSocket client connects to the server and is connected to a specific
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:250:21: warning: using '_' to ignore the result of a Void-returning function is redundant
248 |
249 |                     var closeMessage = Data(referencing: frame.payload)
250 |                     _ = closeMessage.removeFirst(2)
    |                     `- warning: using '_' to ignore the result of a Void-returning function is redundant
251 |                     description = String(data: closeMessage, encoding: .utf8)
252 |                     if description == nil {
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:224:41: warning: capture of 'self' with non-sendable type 'WebSocketConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 29 | /// the connection and APIs to send messages and control commands to the client
 30 | /// at the other end of the connection.
 31 | public class WebSocketConnection {
    |              `- note: class 'WebSocketConnection' does not conform to the 'Sendable' protocol
 32 |     weak var processor: WSSocketProcessor?
 33 |
    :
222 |                 let data = Data(bytes: frame.payload.bytes, count: frame.payload.length)
223 |                 callbackQueue.async { [weak self] in
224 |                     if let strongSelf = self {
    |                                         `- warning: capture of 'self' with non-sendable type 'WebSocketConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
225 |                         strongSelf.service?.received(message: data, from: strongSelf)
226 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:278:45: warning: capture of 'self' with non-sendable type 'WebSocketConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 29 | /// the connection and APIs to send messages and control commands to the client
 30 | /// at the other end of the connection.
 31 | public class WebSocketConnection {
    |              `- note: class 'WebSocketConnection' does not conform to the 'Sendable' protocol
 32 |     weak var processor: WSSocketProcessor?
 33 |
    :
276 |                     let data = Data(bytes: message.bytes, count: message.length)
277 |                     callbackQueue.async { [weak self] in
278 |                         if let strongSelf = self {
    |                                             `- warning: capture of 'self' with non-sendable type 'WebSocketConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
279 |                             strongSelf.service?.received(message: data, from: strongSelf)
280 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/KituraWebSocket/WebSocketConnection.swift:328:33: warning: capture of 'self' with non-sendable type 'WebSocketConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 29 | /// the connection and APIs to send messages and control commands to the client
 30 | /// at the other end of the connection.
 31 | public class WebSocketConnection {
    |              `- note: class 'WebSocketConnection' does not conform to the 'Sendable' protocol
 32 |     weak var processor: WSSocketProcessor?
 33 |
    :
326 |         }
327 |         callbackQueue.async { [weak self] in
328 |             if let strongSelf = self {
    |                                 `- warning: capture of 'self' with non-sendable type 'WebSocketConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
329 |                 strongSelf.service?.received(message: text, from: strongSelf)
330 |             }
Build complete! (35.44s)
Fetching https://github.com/Kitura/Kitura-net.git
Fetching https://github.com/Kitura/BlueCryptor.git
[1/1652] Fetching bluecryptor
[861/11196] Fetching bluecryptor, kitura-net
Fetched https://github.com/Kitura/BlueCryptor.git from cache (1.70s)
Fetched https://github.com/Kitura/Kitura-net.git from cache (1.70s)
Computing version for https://github.com/Kitura/BlueCryptor.git
Computed https://github.com/Kitura/BlueCryptor.git at 1.0.200 (0.67s)
Computing version for https://github.com/Kitura/Kitura-net.git
Computed https://github.com/Kitura/Kitura-net.git at 2.4.200 (0.66s)
Fetching https://github.com/Kitura/BlueSSLService.git
Fetching https://github.com/Kitura/LoggerAPI.git
Fetching https://github.com/Kitura/BlueSocket.git
[1/771] Fetching loggerapi
[163/2859] Fetching loggerapi, bluesslservice
[660/5801] Fetching loggerapi, bluesslservice, bluesocket
Fetched https://github.com/Kitura/LoggerAPI.git from cache (1.21s)
Fetched https://github.com/Kitura/BlueSocket.git from cache (1.21s)
Fetched https://github.com/Kitura/BlueSSLService.git from cache (1.21s)
Computing version for https://github.com/Kitura/BlueSSLService.git
Computed https://github.com/Kitura/BlueSSLService.git at 1.0.200 (0.69s)
Computing version for https://github.com/Kitura/BlueSocket.git
Computed https://github.com/Kitura/BlueSocket.git at 1.0.200 (0.66s)
Computing version for https://github.com/Kitura/LoggerAPI.git
Computed https://github.com/Kitura/LoggerAPI.git at 1.9.200 (0.66s)
Fetching https://github.com/apple/swift-log.git
[1/3361] Fetching swift-log
Fetched https://github.com/apple/swift-log.git from cache (1.08s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.5.4 (0.65s)
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.5.4
Creating working copy for https://github.com/Kitura/LoggerAPI.git
Working copy of https://github.com/Kitura/LoggerAPI.git resolved at 1.9.200
Creating working copy for https://github.com/Kitura/Kitura-net.git
Working copy of https://github.com/Kitura/Kitura-net.git resolved at 2.4.200
Creating working copy for https://github.com/Kitura/BlueCryptor.git
Working copy of https://github.com/Kitura/BlueCryptor.git resolved at 1.0.200
Creating working copy for https://github.com/Kitura/BlueSSLService.git
Working copy of https://github.com/Kitura/BlueSSLService.git resolved at 1.0.200
Creating working copy for https://github.com/Kitura/BlueSocket.git
Working copy of https://github.com/Kitura/BlueSocket.git resolved at 1.0.200
Build complete.
{
  "dependencies" : [
    {
      "identity" : "kitura-net",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.4.200",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Kitura/Kitura-net.git"
    },
    {
      "identity" : "bluecryptor",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.200",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Kitura/BlueCryptor.git"
    }
  ],
  "manifest_display_name" : "Kitura-WebSocket",
  "name" : "Kitura-WebSocket",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Kitura-WebSocket",
      "targets" : [
        "KituraWebSocket"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "KituraWebSocketTests",
      "module_type" : "SwiftTarget",
      "name" : "KituraWebSocketTests",
      "path" : "Tests/KituraWebSocketTests",
      "sources" : [
        "BasicTests.swift",
        "ComplexTests.swift",
        "ConnectionCleanupTests.swift",
        "KituraTest+Frames.swift",
        "KituraTest.swift",
        "PrintLogger.swift",
        "ProtocolErrorTests.swift",
        "TestLinuxSafeguard.swift",
        "TestWebSocketService.swift",
        "UpgradeErrors.swift"
      ],
      "target_dependencies" : [
        "KituraWebSocket"
      ],
      "type" : "test"
    },
    {
      "c99name" : "KituraWebSocket",
      "module_type" : "SwiftTarget",
      "name" : "KituraWebSocket",
      "path" : "Sources/KituraWebSocket",
      "product_dependencies" : [
        "KituraNet",
        "Cryptor"
      ],
      "product_memberships" : [
        "Kitura-WebSocket"
      ],
      "sources" : [
        "WSConnectionUpgradeFactory.swift",
        "WSFrame.swift",
        "WSFrameParser.swift",
        "WSServerRequest.swift",
        "WSSocketProcessor.swift",
        "WebSocket.swift",
        "WebSocketCloseReasonCode.swift",
        "WebSocketConnection.swift",
        "WebSocketError.swift",
        "WebSocketService.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.