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 PluginTask, reference main (346cef), with Swift 6.0 for macOS (SPM) on 29 Nov 2024 07:54:33 UTC.

Swift 6 data race errors: 5

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.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.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/0xLeif/PluginTask.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/0xLeif/PluginTask
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 346cef8 Make some changed after working with a demo project
Cloned https://github.com/0xLeif/PluginTask.git
Revision (git rev-parse @):
346cef89d6d07a7a110194f9c62b9cf44aa7b629
SUCCESS checkout https://github.com/0xLeif/PluginTask.git at main
Fetching https://github.com/0xLeif/Plugin
Fetching https://github.com/0xOpenBytes/t
Fetching https://github.com/0xLeif/Fork
[1/153] Fetching plugin
[154/521] Fetching plugin, t
[235/1005] Fetching plugin, t, fork
Fetched https://github.com/0xLeif/Fork from cache (0.77s)
[393/521] Fetching plugin, t
Fetched https://github.com/0xLeif/Plugin from cache (0.94s)
Fetched https://github.com/0xOpenBytes/t from cache (0.94s)
Computing version for https://github.com/0xOpenBytes/t
Computed https://github.com/0xOpenBytes/t at 1.0.4 (0.56s)
Computing version for https://github.com/0xLeif/Fork
Computed https://github.com/0xLeif/Fork at 1.2.0 (0.54s)
Computing version for https://github.com/0xLeif/Plugin
Computed https://github.com/0xLeif/Plugin at 2.0.0 (0.56s)
Creating working copy for https://github.com/0xLeif/Plugin
Working copy of https://github.com/0xLeif/Plugin resolved at 2.0.0
Creating working copy for https://github.com/0xOpenBytes/t
Working copy of https://github.com/0xOpenBytes/t resolved at 1.0.4
Creating working copy for https://github.com/0xLeif/Fork
Working copy of https://github.com/0xLeif/Fork resolved 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": "plugintask",
      "name": "PluginTask",
      "url": "https://github.com/0xLeif/PluginTask.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/PluginTask",
      "dependencies": [
        {
          "identity": "plugin",
          "name": "Plugin",
          "url": "https://github.com/0xLeif/Plugin",
          "version": "2.0.2",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Plugin",
          "dependencies": [
            {
              "identity": "fork",
              "name": "Fork",
              "url": "https://github.com/0xLeif/Fork",
              "version": "1.3.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Fork",
              "dependencies": [
              ]
            }
          ]
        },
        {
          "identity": "fork",
          "name": "Fork",
          "url": "https://github.com/0xLeif/Fork",
          "version": "1.3.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Fork",
          "dependencies": [
          ]
        },
        {
          "identity": "t",
          "name": "t",
          "url": "https://github.com/0xOpenBytes/t",
          "version": "1.0.4",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/t",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/0xLeif/PluginTask.git
[1/47] Fetching plugintask
Fetched https://github.com/0xLeif/PluginTask.git from cache (0.68s)
Fetching https://github.com/0xLeif/Plugin from cache
Fetching https://github.com/0xOpenBytes/t from cache
Fetching https://github.com/0xLeif/Fork from cache
Fetched https://github.com/0xLeif/Fork from cache (0.53s)
Fetched https://github.com/0xLeif/Plugin from cache (0.53s)
Fetched https://github.com/0xOpenBytes/t from cache (0.53s)
Computing version for https://github.com/0xLeif/Fork
Computed https://github.com/0xLeif/Fork at 1.3.0 (0.02s)
Computing version for https://github.com/0xLeif/Plugin
Computed https://github.com/0xLeif/Plugin at 2.0.2 (0.02s)
Computing version for https://github.com/0xOpenBytes/t
Computed https://github.com/0xOpenBytes/t at 1.0.4 (0.02s)
Creating working copy for https://github.com/0xOpenBytes/t
Working copy of https://github.com/0xOpenBytes/t resolved at 1.0.4
Creating working copy for https://github.com/0xLeif/PluginTask.git
Working copy of https://github.com/0xLeif/PluginTask.git resolved at main (346cef8)
Creating working copy for https://github.com/0xLeif/Plugin
Working copy of https://github.com/0xLeif/Plugin resolved at 2.0.2
Creating working copy for https://github.com/0xLeif/Fork
Working copy of https://github.com/0xLeif/Fork resolved at 1.3.0
warning: '.resolve-product-dependencies': dependency 'plugintask' is not used by any target
Found 3 product dependencies
  - Plugin
  - Fork
  - t
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/0xLeif/PluginTask.git
{
  "dependencies" : [
    {
      "identity" : "plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.0.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/0xLeif/Plugin"
    },
    {
      "identity" : "fork",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/0xLeif/Fork"
    },
    {
      "identity" : "t",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/0xOpenBytes/t"
    }
  ],
  "manifest_display_name" : "PluginTask",
  "name" : "PluginTask",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "watchos",
      "version" : "7.0"
    },
    {
      "name" : "tvos",
      "version" : "14.0"
    }
  ],
  "products" : [
    {
      "name" : "PluginTask",
      "targets" : [
        "PluginTask"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "PluginTaskTests",
      "module_type" : "SwiftTarget",
      "name" : "PluginTaskTests",
      "path" : "Tests/PluginTaskTests",
      "sources" : [
        "PluginTaskTests.swift"
      ],
      "target_dependencies" : [
        "PluginTask"
      ],
      "type" : "test"
    },
    {
      "c99name" : "PluginTask",
      "module_type" : "SwiftTarget",
      "name" : "PluginTask",
      "path" : "Sources/PluginTask",
      "product_dependencies" : [
        "Plugin",
        "Fork",
        "t"
      ],
      "product_memberships" : [
        "PluginTask"
      ],
      "sources" : [
        "Extensions/Task+PluginTask.swift",
        "PluginTask.swift",
        "Plugins/CancelTaskPlugin.swift",
        "Plugins/Interface/TaskPlugin.swift",
        "TaskPluginManager.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.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/5] Write sources
[4/5] Write swift-version--7754E27361AE5C74.txt
[6/19] Compiling Fork ForkedArray.swift
[7/19] Compiling Fork Fork.swift
[8/19] Compiling Fork Task+Fork.swift
[9/19] Compiling Fork Actor+ForkedActor.swift
[10/19] Compiling Fork Sequence+ForkedArray.swift
[11/19] Emitting module Fork
[12/19] Compiling Fork KeyPathActor.swift
[13/19] Compiling Fork ForkedActor.swift
[14/24] Emitting module Plugin
[15/24] Compiling Plugin Plugin.swift
[16/24] Compiling Plugin ImmutablePlugin.swift
[17/24] Compiling Plugin Pluginable.swift
[18/24] Compiling Plugin ImmutablePluginable.swift
[19/24] Compiling t t+Structure.swift
[20/24] Compiling t t.swift
[21/24] Compiling t t+Factories.swift
[22/24] Compiling t t+Assertion.swift
[23/24] Compiling t t+Logging.swift
[24/24] Emitting module t
[25/30] Compiling PluginTask TaskPlugin.swift
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/Plugins/Interface/TaskPlugin.swift:23:16: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
21 | extension TaskPlugin where Source == TaskPluginManager<Any>, Output == Task<Any, Error>? {
22 |     /// The key path used to access the task associated with the plugin manager.
23 |     public var keyPath: WritableKeyPath<TaskPluginManager<Any>, Task<Any, Error>?> {
   |                `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
24 |         get { \.task }
25 |         set { }
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/Plugins/Interface/TaskPlugin.swift:21:1: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
19 | }
20 |
21 | extension TaskPlugin where Source == TaskPluginManager<Any>, Output == Task<Any, Error>? {
   | `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
22 |     /// The key path used to access the task associated with the plugin manager.
23 |     public var keyPath: WritableKeyPath<TaskPluginManager<Any>, Task<Any, Error>?> {
[26/30] Compiling PluginTask PluginTask.swift
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/PluginTask.swift:18:63: 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
16 |     let taskManager = manager
17 |
18 |     let task: Task<Success, Error> = Task(priority: priority) {
   |                                                               `- 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
19 |         try await operation(taskManager)
   |                   `- note: closure captures 'operation' which is accessible to code in the current task
20 |     }
21 |
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/PluginTask.swift:41:60: 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
39 |     let taskManager = manager
40 |
41 |     let task: Task<Void, Error> = Task(priority: priority) {
   |                                                            `- 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
42 |         try await operation(taskManager)
   |                   `- note: closure captures 'operation' which is accessible to code in the current task
43 |     }
44 |
[27/30] Compiling PluginTask TaskPluginManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/TaskPluginManager.swift:9:14: warning: type 'Success' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 2 |
 3 | /// A manager for Task plugins.
 4 | open class TaskPluginManager<Success>: Pluginable {
   |                              `- note: consider making generic parameter 'Success' conform to the 'Sendable' protocol
 5 |     /// The plugins registered with the manager.
 6 |     open var plugins: [any Plugin]
 7 |
 8 |     /// The task associated with the manager.
 9 |     open var task: Task<Success, Error>?
   |              `- warning: type 'Success' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
10 |
11 |     /// Initializes a new task plugin manager.
[28/30] Compiling PluginTask CancelTaskPlugin.swift
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/Plugins/CancelTaskPlugin.swift:23:17: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
21 |     ///
22 |     /// - Throws: An error if the plugin fails to handle the input value.
23 |     public func handle(
   |                 `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
24 |         value: Payload,
25 |         output: inout Task<Any, Error>?
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/Plugins/CancelTaskPlugin.swift:27:17: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
25 |         output: inout Task<Any, Error>?
26 |     ) async throws {
27 |         output?.cancel()
   |                 `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
28 |     }
29 | }
[29/30] Emitting module PluginTask
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/Extensions/Task+PluginTask.swift:10:20: warning: stored property 'actualValue' of 'Sendable'-conforming generic struct 'InvalidTypeError' has non-sendable type 'Any?'; this is an error in the Swift 6 language mode
 8 |
 9 |         /// The actual output value.
10 |         public let actualValue: Any?
   |                    `- warning: stored property 'actualValue' of 'Sendable'-conforming generic struct 'InvalidTypeError' has non-sendable type 'Any?'; this is an error in the Swift 6 language mode
11 |
12 |         /// Initializes a new instance of the error.
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/Plugins/CancelTaskPlugin.swift:23:17: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
21 |     ///
22 |     /// - Throws: An error if the plugin fails to handle the input value.
23 |     public func handle(
   |                 `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
24 |         value: Payload,
25 |         output: inout Task<Any, Error>?
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/Plugins/Interface/TaskPlugin.swift:23:16: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
21 | extension TaskPlugin where Source == TaskPluginManager<Any>, Output == Task<Any, Error>? {
22 |     /// The key path used to access the task associated with the plugin manager.
23 |     public var keyPath: WritableKeyPath<TaskPluginManager<Any>, Task<Any, Error>?> {
   |                `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
24 |         get { \.task }
25 |         set { }
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/Plugins/Interface/TaskPlugin.swift:21:1: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
19 | }
20 |
21 | extension TaskPlugin where Source == TaskPluginManager<Any>, Output == Task<Any, Error>? {
   | `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
22 |     /// The key path used to access the task associated with the plugin manager.
23 |     public var keyPath: WritableKeyPath<TaskPluginManager<Any>, Task<Any, Error>?> {
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/TaskPluginManager.swift:9:14: warning: type 'Success' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 2 |
 3 | /// A manager for Task plugins.
 4 | open class TaskPluginManager<Success>: Pluginable {
   |                              `- note: consider making generic parameter 'Success' conform to the 'Sendable' protocol
 5 |     /// The plugins registered with the manager.
 6 |     open var plugins: [any Plugin]
 7 |
 8 |     /// The task associated with the manager.
 9 |     open var task: Task<Success, Error>?
   |              `- warning: type 'Success' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
10 |
11 |     /// Initializes a new task plugin manager.
[30/30] Compiling PluginTask Task+PluginTask.swift
/Users/admin/builder/spi-builder-workspace/Sources/PluginTask/Extensions/Task+PluginTask.swift:10:20: warning: stored property 'actualValue' of 'Sendable'-conforming generic struct 'InvalidTypeError' has non-sendable type 'Any?'; this is an error in the Swift 6 language mode
 8 |
 9 |         /// The actual output value.
10 |         public let actualValue: Any?
   |                    `- warning: stored property 'actualValue' of 'Sendable'-conforming generic struct 'InvalidTypeError' has non-sendable type 'Any?'; this is an error in the Swift 6 language mode
11 |
12 |         /// Initializes a new instance of the error.
Build complete! (9.53s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.0.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/0xLeif/Plugin"
    },
    {
      "identity" : "fork",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/0xLeif/Fork"
    },
    {
      "identity" : "t",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/0xOpenBytes/t"
    }
  ],
  "manifest_display_name" : "PluginTask",
  "name" : "PluginTask",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "watchos",
      "version" : "7.0"
    },
    {
      "name" : "tvos",
      "version" : "14.0"
    }
  ],
  "products" : [
    {
      "name" : "PluginTask",
      "targets" : [
        "PluginTask"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "PluginTaskTests",
      "module_type" : "SwiftTarget",
      "name" : "PluginTaskTests",
      "path" : "Tests/PluginTaskTests",
      "sources" : [
        "PluginTaskTests.swift"
      ],
      "target_dependencies" : [
        "PluginTask"
      ],
      "type" : "test"
    },
    {
      "c99name" : "PluginTask",
      "module_type" : "SwiftTarget",
      "name" : "PluginTask",
      "path" : "Sources/PluginTask",
      "product_dependencies" : [
        "Plugin",
        "Fork",
        "t"
      ],
      "product_memberships" : [
        "PluginTask"
      ],
      "sources" : [
        "Extensions/Task+PluginTask.swift",
        "PluginTask.swift",
        "Plugins/CancelTaskPlugin.swift",
        "Plugins/Interface/TaskPlugin.swift",
        "TaskPluginManager.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.