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 SwiftWebSocketManager, reference main (5d27e7), with Swift 6.0 for macOS (SPM) on 14 Sep 2024 19:27:00 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.0.0-Release.Candidate.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.53.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/calmdocs/SwiftWebSocketManager.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/calmdocs/SwiftWebSocketManager
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 5d27e78 fix: rsolve package versions
Cloned https://github.com/calmdocs/SwiftWebSocketManager.git
Revision (git rev-parse @):
5d27e7860fc009462c271b74d174f5847ae4614a
SUCCESS checkout https://github.com/calmdocs/SwiftWebSocketManager.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/calmdocs/SwiftWebSocketManager.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.0.0-Release.Candidate.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-117DEE11B69C53C9.txt
[4/8] Compiling SwiftProcessManager SystemArchitecture.swift
[5/8] Compiling SwiftProcessManager ExitAppIfAlreadyOpen.swift
[6/8] Emitting module SwiftProcessManager
[7/8] Compiling SwiftProcessManager Port.swift
[8/8] Compiling SwiftProcessManager ProcessManager.swift
[9/17] Compiling SwiftWebSocketManager WebsocketTypeIDAndData.swift
[10/17] Compiling SwiftWebSocketManager WebSocketStream.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftWebSocketManager/WebSocketStream.swift:56:17: warning: capture of 'errors' with non-sendable type '((any Error)?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 54 |             self.continuation = continuation
 55 |             self.continuation?.onTermination = { @Sendable [self, webSocketTask] _ in
 56 |                 errors(WebSocketError.streamTerminated)
    |                 |- warning: capture of 'errors' with non-sendable type '((any Error)?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 57 |                 webSocketTask.cancel()
 58 |                 streamRestarter(
/Users/admin/builder/spi-builder-workspace/Sources/SwiftWebSocketManager/WebSocketStream.swift:58:17: warning: capture of 'self' with non-sendable type 'WebSocketStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 11 | /// Connect to a websocket server.
 12 | @available(iOS 13, macOS 10.15, *)
 13 | public class WebSocketStream: AsyncSequence {
    |              `- note: class 'WebSocketStream' does not conform to the 'Sendable' protocol
 14 |     public var isDone: Bool = false
 15 |
    :
 56 |                 errors(WebSocketError.streamTerminated)
 57 |                 webSocketTask.cancel()
 58 |                 streamRestarter(
    |                 `- warning: capture of 'self' with non-sendable type 'WebSocketStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 59 |                     urlRequest: urlRequest,
 60 |                     errors: errors
/Users/admin/builder/spi-builder-workspace/Sources/SwiftWebSocketManager/WebSocketStream.swift:106:17: warning: capture of 'self' with non-sendable type 'WebSocketStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 11 | /// Connect to a websocket server.
 12 | @available(iOS 13, macOS 10.15, *)
 13 | public class WebSocketStream: AsyncSequence {
    |              `- note: class 'WebSocketStream' does not conform to the 'Sendable' protocol
 14 |     public var isDone: Bool = false
 15 |
    :
104 |             switch result {
105 |             case .success(let message):
106 |                 continuation?.yield(message)
    |                 `- warning: capture of 'self' with non-sendable type 'WebSocketStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
107 |                 listenForMessages()
108 |             case .failure(let error):
[11/17] Compiling SwiftWebSocketManager URLSessionWebSocketTask.Message.swift
[12/17] Compiling SwiftWebSocketManager WebsocketError.swift
[13/17] Emitting module SwiftWebSocketManager
[14/17] Compiling SwiftWebSocketManager WebSocketManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftWebSocketManager/WebSocketManager.swift:271:17: warning: capture of 'self' with non-sendable type 'WebSocketManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 14 | /// Connect to a websocket server using a WebSocketStream.
 15 | @available(macOS 10.15, *)
 16 | public class WebSocketManager: ObservableObject {
    |              `- note: class 'WebSocketManager' does not conform to the 'Sendable' protocol
 17 |
 18 |     /// Base URL for each WebSocketStraem created by this manager.
    :
269 |                 repeats: true
270 |             ) { timer in
271 |                 self.pingCount += 1
    |                 `- warning: capture of 'self' with non-sendable type 'WebSocketManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
272 |                 if self.pingCount >= 5 {
273 |                     self.pingCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/SwiftWebSocketManager/WebSocketManager.swift:274:21: warning: capture of 'pingTimeout' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
272 |                 if self.pingCount >= 5 {
273 |                     self.pingCount = 0
274 |                     pingTimeout()
    |                     |- warning: capture of 'pingTimeout' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
275 |                 }
276 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftWebSocketManager/WebSocketManager.swift:291:33: warning: capture of 'self' with non-sendable type 'WebSocketManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 14 | /// Connect to a websocket server using a WebSocketStream.
 15 | @available(macOS 10.15, *)
 16 | public class WebSocketManager: ObservableObject {
    |              `- note: class 'WebSocketManager' does not conform to the 'Sendable' protocol
 17 |
 18 |     /// Base URL for each WebSocketStraem created by this manager.
    :
289 |                         messages: { message in
290 |                             DispatchQueue.main.async {
291 |                                 self.pong()
    |                                 `- warning: capture of 'self' with non-sendable type 'WebSocketManager' in a `@Sendable` closure; this is an error in the Swift 6 language mode
292 |                             }
293 |                             messages(message)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftWebSocketManager/WebSocketManager.swift:87:9: warning: task-isolated value of type '() async -> ()' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
 85 |         errors:@escaping (Error) -> Void = { _ in }
 86 |     ) {
 87 |         Task(priority: .medium) {
    |         `- warning: task-isolated value of type '() async -> ()' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
 88 |             await startAsync(stream: stream, messages: messages, errors: errors)
 89 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftWebSocketManager/WebSocketManager.swift:131:9: warning: task-isolated value of type '() async -> ()' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
129 |         errors:@escaping (Error?) -> Void  = { _ in }
130 |     ) {
131 |         Task {
    |         `- warning: task-isolated value of type '() async -> ()' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
132 |             await WebSocketTypeIDAndData(
133 |                 type: type,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftWebSocketManager/WebSocketManager.swift:155:9: warning: task-isolated value of type '() async -> ()' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
153 |         errors:@escaping (Error?) -> Void = { _ in }
154 |     ) where T : Encodable {
155 |         Task {
    |         `- warning: task-isolated value of type '() async -> ()' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
156 |             do {
157 |                 try await WebSocketPublishToJSON(
/Users/admin/builder/spi-builder-workspace/Sources/SwiftWebSocketManager/WebSocketManager.swift:291:33: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
289 |                         messages: { message in
290 |                             DispatchQueue.main.async {
291 |                                 self.pong()
    |                                 |- 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
292 |                             }
293 |                             messages(message)
[15/17] Compiling SwiftWebSocketManager Array.swift
[16/17] Compiling SwiftWebSocketManager URL.swift
[17/17] Compiling SwiftWebSocketManager PublishToJSON.swift
Build complete! (17.29s)
Fetching https://github.com/calmdocs/SwiftProcessManager
[1/57] Fetching swiftprocessmanager
Fetched https://github.com/calmdocs/SwiftProcessManager from cache (0.77s)
Creating working copy for https://github.com/calmdocs/SwiftProcessManager
Working copy of https://github.com/calmdocs/SwiftProcessManager resolved at main (b56b6e9)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swiftprocessmanager",
      "requirement" : {
        "branch" : [
          "main"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/calmdocs/SwiftProcessManager"
    }
  ],
  "manifest_display_name" : "SwiftWebSocketManager",
  "name" : "SwiftWebSocketManager",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftWebSocketManager",
      "targets" : [
        "SwiftWebSocketManager"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftWebSocketManagerTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftWebSocketManagerTests",
      "path" : "Tests/SwiftWebSocketManagerTests",
      "product_dependencies" : [
        "SwiftProcessManager"
      ],
      "sources" : [
        "SwiftWebSocketManagerTests.swift"
      ],
      "target_dependencies" : [
        "SwiftWebSocketManager"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftWebSocketManager",
      "module_type" : "SwiftTarget",
      "name" : "SwiftWebSocketManager",
      "path" : "Sources/SwiftWebSocketManager",
      "product_dependencies" : [
        "SwiftProcessManager"
      ],
      "product_memberships" : [
        "SwiftWebSocketManager"
      ],
      "sources" : [
        "Array.swift",
        "PublishToJSON.swift",
        "URL.swift",
        "URLSessionWebSocketTask.Message.swift",
        "WebSocketManager.swift",
        "WebSocketStream.swift",
        "WebsocketError.swift",
        "WebsocketTypeIDAndData.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
Done.