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 Resyncer, reference 1.2.0 (77343d), with Swift 6.1 for macOS (SPM) on 1 May 2025 06:42:28 UTC.

Swift 6 data race errors: 0

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.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/danielepantaleone/Resyncer.git
Reference: 1.2.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/danielepantaleone/Resyncer
 * tag               1.2.0      -> FETCH_HEAD
HEAD is now at 77343dc Fix running unit tests on GitHub actions
Cloned https://github.com/danielepantaleone/Resyncer.git
Revision (git rev-parse @):
77343dc8862f4cb252f9daf6989e4762986fab6e
SUCCESS checkout https://github.com/danielepantaleone/Resyncer.git at 1.2.0
========================================
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": "resyncer",
      "name": "Resyncer",
      "url": "https://github.com/danielepantaleone/Resyncer.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Resyncer",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/danielepantaleone/Resyncer.git
[1/200] Fetching resyncer
Fetched https://github.com/danielepantaleone/Resyncer.git from cache (0.89s)
Creating working copy for https://github.com/danielepantaleone/Resyncer.git
Working copy of https://github.com/danielepantaleone/Resyncer.git resolved at 1.2.0 (77343dc)
warning: '.resolve-product-dependencies': dependency 'resyncer' 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/danielepantaleone/Resyncer.git
https://github.com/danielepantaleone/Resyncer.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Resyncer",
  "name" : "Resyncer",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "Resyncer",
      "targets" : [
        "Resyncer"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ResyncerTests",
      "module_type" : "SwiftTarget",
      "name" : "ResyncerTests",
      "path" : "Tests/ResyncerTests",
      "sources" : [
        "ResyncerTests.swift"
      ],
      "target_dependencies" : [
        "Resyncer"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Resyncer",
      "module_type" : "SwiftTarget",
      "name" : "Resyncer",
      "path" : "Sources/Resyncer",
      "product_memberships" : [
        "Resyncer"
      ],
      "sources" : [
        "Resyncer.swift",
        "ResyncerBox.swift",
        "ResyncerError.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
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/6] Compiling Resyncer ResyncerBox.swift
[4/6] Compiling Resyncer ResyncerError.swift
[5/6] Emitting module Resyncer
[6/6] Compiling Resyncer Resyncer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Resyncer/Resyncer.swift:107:13: warning: capture of 'work' with non-sendable type '(@escaping (Result<T, any Error>) -> Void) -> Void' in a '@Sendable' closure
105 |         var result: Result<T, Error>?
106 |         let operation: BlockOperation = .init {
107 |             work { r in
    |             |- warning: capture of 'work' with non-sendable type '(@escaping (Result<T, any Error>) -> Void) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
108 |                 condition.withLock {
109 |                     completed = true
/Users/admin/builder/spi-builder-workspace/Sources/Resyncer/Resyncer.swift:110:21: warning: capture of 'result' with non-sendable type 'Result<T, any Error>?' in a '@Sendable' closure
 95 |     /// - Returns: The result of type `T` from the asynchronous operation if it completes successfully.
 96 |     /// - Important: This method must not be called from the main thread, as it utilizes a condition variable to block the current thread's execution while waiting for the asynchronous operation to finish.
 97 |     public func synchronize<T>(timeout: TimeInterval = 10.0, work: @escaping (@escaping (Result<T, Error>) -> Void) -> Void) throws -> T {
    |                             `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 98 |
 99 |         guard !raiseErrorIfOnMainThread || !Thread.isMainThread else {
    :
108 |                 condition.withLock {
109 |                     completed = true
110 |                     result = r
    |                     `- warning: capture of 'result' with non-sendable type 'Result<T, any Error>?' in a '@Sendable' closure
111 |                     condition.signal()
112 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Resyncer/Resyncer.swift:110:21: warning: capture of 'result' with non-sendable type 'Result<T, any Error>?' in an isolated closure; this is an error in the Swift 6 language mode
 95 |     /// - Returns: The result of type `T` from the asynchronous operation if it completes successfully.
 96 |     /// - Important: This method must not be called from the main thread, as it utilizes a condition variable to block the current thread's execution while waiting for the asynchronous operation to finish.
 97 |     public func synchronize<T>(timeout: TimeInterval = 10.0, work: @escaping (@escaping (Result<T, Error>) -> Void) -> Void) throws -> T {
    |                             `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 98 |
 99 |         guard !raiseErrorIfOnMainThread || !Thread.isMainThread else {
    :
108 |                 condition.withLock {
109 |                     completed = true
110 |                     result = r
    |                     `- warning: capture of 'result' with non-sendable type 'Result<T, any Error>?' in an isolated closure; this is an error in the Swift 6 language mode
111 |                     condition.signal()
112 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Resyncer/Resyncer.swift:110:21: warning: capture of 'result' with non-sendable type 'Result<T, any Error>?' in an isolated closure; this is an error in the Swift 6 language mode
 95 |     /// - Returns: The result of type `T` from the asynchronous operation if it completes successfully.
 96 |     /// - Important: This method must not be called from the main thread, as it utilizes a condition variable to block the current thread's execution while waiting for the asynchronous operation to finish.
 97 |     public func synchronize<T>(timeout: TimeInterval = 10.0, work: @escaping (@escaping (Result<T, Error>) -> Void) -> Void) throws -> T {
    |                             `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 98 |
 99 |         guard !raiseErrorIfOnMainThread || !Thread.isMainThread else {
    :
108 |                 condition.withLock {
109 |                     completed = true
110 |                     result = r
    |                     `- warning: capture of 'result' with non-sendable type 'Result<T, any Error>?' in an isolated closure; this is an error in the Swift 6 language mode
111 |                     condition.signal()
112 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Resyncer/Resyncer.swift:109:21: warning: mutation of captured var 'completed' in concurrently-executing code; this is an error in the Swift 6 language mode
107 |             work { r in
108 |                 condition.withLock {
109 |                     completed = true
    |                     `- warning: mutation of captured var 'completed' in concurrently-executing code; this is an error in the Swift 6 language mode
110 |                     result = r
111 |                     condition.signal()
/Users/admin/builder/spi-builder-workspace/Sources/Resyncer/Resyncer.swift:110:21: warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
108 |                 condition.withLock {
109 |                     completed = true
110 |                     result = r
    |                     `- warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
111 |                     condition.signal()
112 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Resyncer/Resyncer.swift:172:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
170 |         let box: ResyncerBox<T> = .init()
171 |
172 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
173 |             let r: Result<T, Error>
174 |             do {
175 |                 r = .success(try await work())
    |                                        `- note: closure captures non-Sendable 'work'
176 |             } catch {
177 |                 r = .failure(error)
178 |             }
179 |             condition.withLock {
180 |                 box.completed = true
    |                 `- note: closure captures non-Sendable 'box'
181 |                 box.result = r
182 |                 condition.signal()
Build complete! (4.92s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Resyncer",
  "name" : "Resyncer",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "Resyncer",
      "targets" : [
        "Resyncer"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ResyncerTests",
      "module_type" : "SwiftTarget",
      "name" : "ResyncerTests",
      "path" : "Tests/ResyncerTests",
      "sources" : [
        "ResyncerTests.swift"
      ],
      "target_dependencies" : [
        "Resyncer"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Resyncer",
      "module_type" : "SwiftTarget",
      "name" : "Resyncer",
      "path" : "Sources/Resyncer",
      "product_memberships" : [
        "Resyncer"
      ],
      "sources" : [
        "Resyncer.swift",
        "ResyncerBox.swift",
        "ResyncerError.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.