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 Hydra, reference master (dde016), with Swift 6.1 for Linux on 26 Apr 2025 10:51:14 UTC.

Swift 6 data race errors: 1

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/malcommac/Hydra.git
Reference: master
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/malcommac/Hydra
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at dde0163 Merge pull request #88 from revolter/patch-1
Cloned https://github.com/malcommac/Hydra.git
Revision (git rev-parse @):
dde016391e8fbeec9fc9aac1174bd73b7311059a
SUCCESS checkout https://github.com/malcommac/Hydra.git at master
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.1
Building package at path:  $PWD
https://github.com/malcommac/Hydra.git
https://github.com/malcommac/Hydra.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Hydra",
  "name" : "Hydra",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.10"
    },
    {
      "name" : "ios",
      "version" : "9.0"
    },
    {
      "name" : "watchos",
      "version" : "2.0"
    },
    {
      "name" : "tvos",
      "version" : "9.0"
    }
  ],
  "products" : [
    {
      "name" : "Hydra",
      "targets" : [
        "Hydra"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "HydraTests",
      "module_type" : "SwiftTarget",
      "name" : "HydraTests",
      "path" : "Tests/HydraTests",
      "sources" : [
        "HydraTests.swift"
      ],
      "target_dependencies" : [
        "Hydra"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Hydra",
      "module_type" : "SwiftTarget",
      "name" : "Hydra",
      "path" : "Sources/Hydra",
      "product_memberships" : [
        "Hydra"
      ],
      "sources" : [
        "Commons.swift",
        "Context.swift",
        "DispatchTimerWrapper.swift",
        "Promise+All.swift",
        "Promise+Always.swift",
        "Promise+Any.swift",
        "Promise+Async.swift",
        "Promise+Await.swift",
        "Promise+Cancel.swift",
        "Promise+Catch.swift",
        "Promise+Defer.swift",
        "Promise+Map.swift",
        "Promise+Observer.swift",
        "Promise+Pass.swift",
        "Promise+Recover.swift",
        "Promise+Reduce.swift",
        "Promise+Retry.swift",
        "Promise+RetryWhen.swift",
        "Promise+State.swift",
        "Promise+Then.swift",
        "Promise+Timeout.swift",
        "Promise+Validate.swift",
        "Promise+Zip.swift",
        "Promise.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/24] Emitting module Hydra
/host/spi-builder-workspace/Sources/Hydra/Promise+Await.swift:41:5: warning: let 'awaitContext' is not concurrency-safe because non-'Sendable' type 'Context' may have shared mutable state; this is an error in the Swift 6 language mode
 39 | /// The currently executing tasks run on distinct threads that are managed by the dispatch queue.
 40 | /// The exact number of tasks executing at any given point is variable and depends on system conditions.
 41 | let awaitContext = Context.custom(queue: DispatchQueue(label: "com.hydra.awaitcontext", attributes: .concurrent))
    |     |- warning: let 'awaitContext' is not concurrency-safe because non-'Sendable' type 'Context' may have shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: add '@MainActor' to make let 'awaitContext' part of global actor 'MainActor'
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 | /// This define a `..` operator you can use instead of calling `await` func.
/host/spi-builder-workspace/Sources/Hydra/Context.swift:48:13: note: consider making enum 'Context' conform to the 'Sendable' protocol
46 | /// - utility: Should we used when work takes a few seconds to a few minutes (work that may take some time to complete and doesn’t require an immediate result, such as downloading or importing data. Utility tasks typically have a progress bar that is visible to the user. Focuses on providing a balance between responsiveness, performance, and energy efficiency).
47 | /// - custom: provide a custom queue
48 | public enum Context {
   |             `- note: consider making enum 'Context' conform to the 'Sendable' protocol
49 | 	case main
50 | 	case userInteractive
[4/27] Compiling Hydra Promise+Validate.swift
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:168:10: warning: capture of 'self' with non-sendable type 'Promise<Value>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |              `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
    :
166 | 					// body can throws and fail. throwing a promise's body is equal to
167 | 					// reject it with the same error.
168 | 					try self.body?( { value in
    |          `- warning: capture of 'self' with non-sendable type 'Promise<Value>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
169 | 						self.set(state: .resolved(value)) // resolved
170 | 					}, { err in
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:169:7: warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |              `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
    :
167 | 					// reject it with the same error.
168 | 					try self.body?( { value in
169 | 						self.set(state: .resolved(value)) // resolved
    |       `- warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
170 | 					}, { err in
171 | 						self.set(state: .rejected(err)) // rejected
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:171:7: warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |              `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
    :
169 | 						self.set(state: .resolved(value)) // resolved
170 | 					}, { err in
171 | 						self.set(state: .rejected(err)) // rejected
    |       `- warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
172 | 					}, self.operation)
173 | 				} catch let err {
[5/27] Compiling Hydra Promise+Zip.swift
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:168:10: warning: capture of 'self' with non-sendable type 'Promise<Value>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |              `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
    :
166 | 					// body can throws and fail. throwing a promise's body is equal to
167 | 					// reject it with the same error.
168 | 					try self.body?( { value in
    |          `- warning: capture of 'self' with non-sendable type 'Promise<Value>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
169 | 						self.set(state: .resolved(value)) // resolved
170 | 					}, { err in
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:169:7: warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |              `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
    :
167 | 					// reject it with the same error.
168 | 					try self.body?( { value in
169 | 						self.set(state: .resolved(value)) // resolved
    |       `- warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
170 | 					}, { err in
171 | 						self.set(state: .rejected(err)) // rejected
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:171:7: warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |              `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
    :
169 | 						self.set(state: .resolved(value)) // resolved
170 | 					}, { err in
171 | 						self.set(state: .rejected(err)) // rejected
    |       `- warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
172 | 					}, self.operation)
173 | 				} catch let err {
[6/27] Compiling Hydra Promise.swift
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:168:10: warning: capture of 'self' with non-sendable type 'Promise<Value>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |              `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
    :
166 | 					// body can throws and fail. throwing a promise's body is equal to
167 | 					// reject it with the same error.
168 | 					try self.body?( { value in
    |          `- warning: capture of 'self' with non-sendable type 'Promise<Value>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
169 | 						self.set(state: .resolved(value)) // resolved
170 | 					}, { err in
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:169:7: warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |              `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
    :
167 | 					// reject it with the same error.
168 | 					try self.body?( { value in
169 | 						self.set(state: .resolved(value)) // resolved
    |       `- warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
170 | 					}, { err in
171 | 						self.set(state: .rejected(err)) // rejected
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:171:7: warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |              `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
    :
169 | 						self.set(state: .resolved(value)) // resolved
170 | 					}, { err in
171 | 						self.set(state: .rejected(err)) // rejected
    |       `- warning: capture of 'self' with non-sendable type 'Promise<Value>' in an isolated closure; this is an error in the Swift 6 language mode
172 | 					}, self.operation)
173 | 				} catch let err {
[7/27] Compiling Hydra Promise+Reduce.swift
[8/27] Compiling Hydra Promise+Retry.swift
[9/27] Compiling Hydra Promise+RetryWhen.swift
[10/27] Compiling Hydra Promise+All.swift
[11/27] Compiling Hydra Promise+Always.swift
[12/27] Compiling Hydra Promise+Any.swift
[13/27] Compiling Hydra Promise+Async.swift
/host/spi-builder-workspace/Sources/Hydra/Promise+Async.swift:63:4: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 | 	guard let delay = after else {
62 | 		context.queue.async {
63 | 			block()
   |    |- warning: capture of 'block' with non-sendable type '() -> ()' 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'
64 | 		}
65 | 		return
/host/spi-builder-workspace/Sources/Hydra/Promise+Async.swift:68:3: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure; this is an error in the Swift 6 language mode
66 | 	}
67 | 	context.queue.asyncAfter(deadline: .now() + delay) {
68 | 		block()
   |   |- warning: capture of 'block' with non-sendable type '() -> ()' 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'
69 | 	}
70 | }
/host/spi-builder-workspace/Sources/Hydra/Promise+Await.swift:41:5: warning: let 'awaitContext' is not concurrency-safe because non-'Sendable' type 'Context' may have shared mutable state; this is an error in the Swift 6 language mode
 39 | /// The currently executing tasks run on distinct threads that are managed by the dispatch queue.
 40 | /// The exact number of tasks executing at any given point is variable and depends on system conditions.
 41 | let awaitContext = Context.custom(queue: DispatchQueue(label: "com.hydra.awaitcontext", attributes: .concurrent))
    |     |- warning: let 'awaitContext' is not concurrency-safe because non-'Sendable' type 'Context' may have shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: add '@MainActor' to make let 'awaitContext' part of global actor 'MainActor'
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 | /// This define a `..` operator you can use instead of calling `await` func.
/host/spi-builder-workspace/Sources/Hydra/Context.swift:48:13: note: consider making enum 'Context' conform to the 'Sendable' protocol
46 | /// - utility: Should we used when work takes a few seconds to a few minutes (work that may take some time to complete and doesn’t require an immediate result, such as downloading or importing data. Utility tasks typically have a progress bar that is visible to the user. Focuses on providing a balance between responsiveness, performance, and energy efficiency).
47 | /// - custom: provide a custom queue
48 | public enum Context {
   |             `- note: consider making enum 'Context' conform to the 'Sendable' protocol
49 | 	case main
50 | 	case userInteractive
[14/27] Compiling Hydra Promise+Await.swift
/host/spi-builder-workspace/Sources/Hydra/Promise+Async.swift:63:4: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 | 	guard let delay = after else {
62 | 		context.queue.async {
63 | 			block()
   |    |- warning: capture of 'block' with non-sendable type '() -> ()' 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'
64 | 		}
65 | 		return
/host/spi-builder-workspace/Sources/Hydra/Promise+Async.swift:68:3: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure; this is an error in the Swift 6 language mode
66 | 	}
67 | 	context.queue.asyncAfter(deadline: .now() + delay) {
68 | 		block()
   |   |- warning: capture of 'block' with non-sendable type '() -> ()' 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'
69 | 	}
70 | }
/host/spi-builder-workspace/Sources/Hydra/Promise+Await.swift:41:5: warning: let 'awaitContext' is not concurrency-safe because non-'Sendable' type 'Context' may have shared mutable state; this is an error in the Swift 6 language mode
 39 | /// The currently executing tasks run on distinct threads that are managed by the dispatch queue.
 40 | /// The exact number of tasks executing at any given point is variable and depends on system conditions.
 41 | let awaitContext = Context.custom(queue: DispatchQueue(label: "com.hydra.awaitcontext", attributes: .concurrent))
    |     |- warning: let 'awaitContext' is not concurrency-safe because non-'Sendable' type 'Context' may have shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: add '@MainActor' to make let 'awaitContext' part of global actor 'MainActor'
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 | /// This define a `..` operator you can use instead of calling `await` func.
/host/spi-builder-workspace/Sources/Hydra/Context.swift:48:13: note: consider making enum 'Context' conform to the 'Sendable' protocol
46 | /// - utility: Should we used when work takes a few seconds to a few minutes (work that may take some time to complete and doesn’t require an immediate result, such as downloading or importing data. Utility tasks typically have a progress bar that is visible to the user. Focuses on providing a balance between responsiveness, performance, and energy efficiency).
47 | /// - custom: provide a custom queue
48 | public enum Context {
   |             `- note: consider making enum 'Context' conform to the 'Sendable' protocol
49 | 	case main
50 | 	case userInteractive
[15/27] Compiling Hydra Promise+Cancel.swift
/host/spi-builder-workspace/Sources/Hydra/Promise+Async.swift:63:4: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 | 	guard let delay = after else {
62 | 		context.queue.async {
63 | 			block()
   |    |- warning: capture of 'block' with non-sendable type '() -> ()' 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'
64 | 		}
65 | 		return
/host/spi-builder-workspace/Sources/Hydra/Promise+Async.swift:68:3: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure; this is an error in the Swift 6 language mode
66 | 	}
67 | 	context.queue.asyncAfter(deadline: .now() + delay) {
68 | 		block()
   |   |- warning: capture of 'block' with non-sendable type '() -> ()' 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'
69 | 	}
70 | }
/host/spi-builder-workspace/Sources/Hydra/Promise+Await.swift:41:5: warning: let 'awaitContext' is not concurrency-safe because non-'Sendable' type 'Context' may have shared mutable state; this is an error in the Swift 6 language mode
 39 | /// The currently executing tasks run on distinct threads that are managed by the dispatch queue.
 40 | /// The exact number of tasks executing at any given point is variable and depends on system conditions.
 41 | let awaitContext = Context.custom(queue: DispatchQueue(label: "com.hydra.awaitcontext", attributes: .concurrent))
    |     |- warning: let 'awaitContext' is not concurrency-safe because non-'Sendable' type 'Context' may have shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: add '@MainActor' to make let 'awaitContext' part of global actor 'MainActor'
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 | /// This define a `..` operator you can use instead of calling `await` func.
/host/spi-builder-workspace/Sources/Hydra/Context.swift:48:13: note: consider making enum 'Context' conform to the 'Sendable' protocol
46 | /// - utility: Should we used when work takes a few seconds to a few minutes (work that may take some time to complete and doesn’t require an immediate result, such as downloading or importing data. Utility tasks typically have a progress bar that is visible to the user. Focuses on providing a balance between responsiveness, performance, and energy efficiency).
47 | /// - custom: provide a custom queue
48 | public enum Context {
   |             `- note: consider making enum 'Context' conform to the 'Sendable' protocol
49 | 	case main
50 | 	case userInteractive
[16/27] Compiling Hydra Promise+State.swift
[17/27] Compiling Hydra Promise+Then.swift
[18/27] Compiling Hydra Promise+Timeout.swift
[19/27] Compiling Hydra Promise+Observer.swift
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:60:6: warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.ResolveObserver' (aka '(Value) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 | 			case (.onResolve(let context, let handler), .resolved(let value)):
59 | 				context.queue.async {
60 | 					handler(value)
   |      |- warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.ResolveObserver' (aka '(Value) -> ()') 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'
61 | 				}
62 | 			case (.onReject(let context, let handler), .rejected(let error)):
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:60:14: warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 | 			case (.onResolve(let context, let handler), .resolved(let value)):
59 | 				context.queue.async {
60 | 					handler(value)
   |              `- warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 | 				}
62 | 			case (.onReject(let context, let handler), .rejected(let error)):
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:35:22: note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |                      `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:64:6: warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.RejectObserver' (aka '(any Error) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
62 | 			case (.onReject(let context, let handler), .rejected(let error)):
63 | 				context.queue.async {
64 | 					handler(error)
   |      |- warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.RejectObserver' (aka '(any Error) -> ()') 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'
65 | 				}
66 | 			case (.onCancel(let context, let handler), .cancelled):
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:68:6: warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.CancelObserver' (aka '() -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
66 | 			case (.onCancel(let context, let handler), .cancelled):
67 | 				context.queue.async {
68 | 					handler()
   |      |- warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.CancelObserver' (aka '() -> ()') 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'
69 | 				}
70 | 			default:
[20/27] Compiling Hydra Promise+Pass.swift
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:60:6: warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.ResolveObserver' (aka '(Value) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 | 			case (.onResolve(let context, let handler), .resolved(let value)):
59 | 				context.queue.async {
60 | 					handler(value)
   |      |- warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.ResolveObserver' (aka '(Value) -> ()') 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'
61 | 				}
62 | 			case (.onReject(let context, let handler), .rejected(let error)):
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:60:14: warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 | 			case (.onResolve(let context, let handler), .resolved(let value)):
59 | 				context.queue.async {
60 | 					handler(value)
   |              `- warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 | 				}
62 | 			case (.onReject(let context, let handler), .rejected(let error)):
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:35:22: note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |                      `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:64:6: warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.RejectObserver' (aka '(any Error) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
62 | 			case (.onReject(let context, let handler), .rejected(let error)):
63 | 				context.queue.async {
64 | 					handler(error)
   |      |- warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.RejectObserver' (aka '(any Error) -> ()') 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'
65 | 				}
66 | 			case (.onCancel(let context, let handler), .cancelled):
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:68:6: warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.CancelObserver' (aka '() -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
66 | 			case (.onCancel(let context, let handler), .cancelled):
67 | 				context.queue.async {
68 | 					handler()
   |      |- warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.CancelObserver' (aka '() -> ()') 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'
69 | 				}
70 | 			default:
[21/27] Compiling Hydra Promise+Recover.swift
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:60:6: warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.ResolveObserver' (aka '(Value) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 | 			case (.onResolve(let context, let handler), .resolved(let value)):
59 | 				context.queue.async {
60 | 					handler(value)
   |      |- warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.ResolveObserver' (aka '(Value) -> ()') 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'
61 | 				}
62 | 			case (.onReject(let context, let handler), .rejected(let error)):
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:60:14: warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 | 			case (.onResolve(let context, let handler), .resolved(let value)):
59 | 				context.queue.async {
60 | 					handler(value)
   |              `- warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 | 				}
62 | 			case (.onReject(let context, let handler), .rejected(let error)):
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:35:22: note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |                      `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:64:6: warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.RejectObserver' (aka '(any Error) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
62 | 			case (.onReject(let context, let handler), .rejected(let error)):
63 | 				context.queue.async {
64 | 					handler(error)
   |      |- warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.RejectObserver' (aka '(any Error) -> ()') 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'
65 | 				}
66 | 			case (.onCancel(let context, let handler), .cancelled):
/host/spi-builder-workspace/Sources/Hydra/Promise+Observer.swift:68:6: warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.CancelObserver' (aka '() -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
66 | 			case (.onCancel(let context, let handler), .cancelled):
67 | 				context.queue.async {
68 | 					handler()
   |      |- warning: capture of 'handler' with non-sendable type 'Promise<Value>.Observer.CancelObserver' (aka '() -> ()') 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'
69 | 				}
70 | 			default:
[22/27] Compiling Hydra Commons.swift
[23/27] Compiling Hydra Context.swift
[24/27] Compiling Hydra DispatchTimerWrapper.swift
[25/27] Compiling Hydra Promise+Catch.swift
/host/spi-builder-workspace/Sources/Hydra/Promise+Defer.swift:54:6: warning: capture of 'resolve' with non-sendable type '(Value) -> ()' in a '@Sendable' closure; this is an error in the Swift 6 language mode
52 | 				let fireTime: DispatchTime = .now() + seconds
53 | 				ctx.queue.asyncAfter(deadline: fireTime) {
54 | 					resolve(value)
   |      |- warning: capture of 'resolve' with non-sendable type '(Value) -> ()' 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'
55 | 				}
56 | 			}
/host/spi-builder-workspace/Sources/Hydra/Promise+Defer.swift:54:14: warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
52 | 				let fireTime: DispatchTime = .now() + seconds
53 | 				ctx.queue.asyncAfter(deadline: fireTime) {
54 | 					resolve(value)
   |              `- warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
55 | 				}
56 | 			}
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:35:22: note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |                      `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
[26/27] Compiling Hydra Promise+Defer.swift
/host/spi-builder-workspace/Sources/Hydra/Promise+Defer.swift:54:6: warning: capture of 'resolve' with non-sendable type '(Value) -> ()' in a '@Sendable' closure; this is an error in the Swift 6 language mode
52 | 				let fireTime: DispatchTime = .now() + seconds
53 | 				ctx.queue.asyncAfter(deadline: fireTime) {
54 | 					resolve(value)
   |      |- warning: capture of 'resolve' with non-sendable type '(Value) -> ()' 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'
55 | 				}
56 | 			}
/host/spi-builder-workspace/Sources/Hydra/Promise+Defer.swift:54:14: warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
52 | 				let fireTime: DispatchTime = .now() + seconds
53 | 				ctx.queue.asyncAfter(deadline: fireTime) {
54 | 					resolve(value)
   |              `- warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
55 | 				}
56 | 			}
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:35:22: note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |                      `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
[27/27] Compiling Hydra Promise+Map.swift
/host/spi-builder-workspace/Sources/Hydra/Promise+Defer.swift:54:6: warning: capture of 'resolve' with non-sendable type '(Value) -> ()' in a '@Sendable' closure; this is an error in the Swift 6 language mode
52 | 				let fireTime: DispatchTime = .now() + seconds
53 | 				ctx.queue.asyncAfter(deadline: fireTime) {
54 | 					resolve(value)
   |      |- warning: capture of 'resolve' with non-sendable type '(Value) -> ()' 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'
55 | 				}
56 | 			}
/host/spi-builder-workspace/Sources/Hydra/Promise+Defer.swift:54:14: warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
52 | 				let fireTime: DispatchTime = .now() + seconds
53 | 				ctx.queue.asyncAfter(deadline: fireTime) {
54 | 					resolve(value)
   |              `- warning: capture of 'value' with non-sendable type 'Value' in a '@Sendable' closure; this is an error in the Swift 6 language mode
55 | 				}
56 | 			}
/host/spi-builder-workspace/Sources/Hydra/Promise.swift:35:22: note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 33 | import Foundation
 34 |
 35 | public class Promise<Value> {
    |                      `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
 36 |
 37 | 	public typealias Resolved = (Value) -> ()
Build complete! (7.71s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Hydra",
  "name" : "Hydra",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.10"
    },
    {
      "name" : "ios",
      "version" : "9.0"
    },
    {
      "name" : "watchos",
      "version" : "2.0"
    },
    {
      "name" : "tvos",
      "version" : "9.0"
    }
  ],
  "products" : [
    {
      "name" : "Hydra",
      "targets" : [
        "Hydra"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "HydraTests",
      "module_type" : "SwiftTarget",
      "name" : "HydraTests",
      "path" : "Tests/HydraTests",
      "sources" : [
        "HydraTests.swift"
      ],
      "target_dependencies" : [
        "Hydra"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Hydra",
      "module_type" : "SwiftTarget",
      "name" : "Hydra",
      "path" : "Sources/Hydra",
      "product_memberships" : [
        "Hydra"
      ],
      "sources" : [
        "Commons.swift",
        "Context.swift",
        "DispatchTimerWrapper.swift",
        "Promise+All.swift",
        "Promise+Always.swift",
        "Promise+Any.swift",
        "Promise+Async.swift",
        "Promise+Await.swift",
        "Promise+Cancel.swift",
        "Promise+Catch.swift",
        "Promise+Defer.swift",
        "Promise+Map.swift",
        "Promise+Observer.swift",
        "Promise+Pass.swift",
        "Promise+Recover.swift",
        "Promise+Reduce.swift",
        "Promise+Retry.swift",
        "Promise+RetryWhen.swift",
        "Promise+State.swift",
        "Promise+Then.swift",
        "Promise+Timeout.swift",
        "Promise+Validate.swift",
        "Promise+Zip.swift",
        "Promise.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.