The Swift Package Index logo.Swift Package Index

Build Information

Successful build of YFlow, reference v0.0.1 (f4196b), with Swift 6.1 for Linux on 21 Oct 2025 06:24:50 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-3":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" 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.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/SeeyouYsen/YFlow.git
Reference: v0.0.1
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/SeeyouYsen/YFlow
 * tag               v0.0.1     -> FETCH_HEAD
HEAD is now at f4196be Initial commit: Add YFlow Swift async programming toolkit
Cloned https://github.com/SeeyouYsen/YFlow.git
Revision (git rev-parse @):
f4196beb755215b7ff998d0cea02a3fcd9a1ab4f
SUCCESS checkout https://github.com/SeeyouYsen/YFlow.git at v0.0.1
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.1
Building package at path:  $PWD
https://github.com/SeeyouYsen/YFlow.git
https://github.com/SeeyouYsen/YFlow.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
  ],
  "manifest_display_name" : "YFlow",
  "name" : "YFlow",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "16.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "9.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0"
    }
  ],
  "products" : [
    {
      "name" : "YFlow",
      "targets" : [
        "YFlow"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "YFlowTests",
      "module_type" : "SwiftTarget",
      "name" : "YFlowTests",
      "path" : "Tests/YFlowTests",
      "sources" : [
        "CompleterTests.swift",
        "StreamTests.swift"
      ],
      "target_dependencies" : [
        "YFlow"
      ],
      "type" : "test"
    },
    {
      "c99name" : "YFlow",
      "module_type" : "SwiftTarget",
      "name" : "YFlow",
      "path" : "Sources/YFlow",
      "product_memberships" : [
        "YFlow"
      ],
      "sources" : [
        "Completer.swift",
        "Stream.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-3":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" 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:808cb2b2a6cec76654a3acbd283c6c2205bc60d2b29562c95b9f5147612f6d32
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/5] Compiling YFlow Stream.swift
/host/spi-builder-workspace/Sources/YFlow/Stream.swift:75:13: warning: capture of 'self' with non-sendable type 'Stream<T>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 47 | /// A reactive stream that allows multiple listeners to observe emitted values
 48 | /// Thread-safe implementation using concurrent dispatch queues
 49 | public class Stream<T> {
    |              `- note: generic class 'Stream' does not conform to the 'Sendable' protocol
 50 |     /// Initialize a new empty stream
 51 |     public init() {}
    :
 73 |         isCancelled = true
 74 |         queue.async(flags: .barrier) {
 75 |             self.listeners.removeAll()
    |             `- warning: capture of 'self' with non-sendable type 'Stream<T>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 76 |         }
 77 |
/host/spi-builder-workspace/Sources/YFlow/Stream.swift:114:13: warning: capture of 'self' with non-sendable type 'Stream<T>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 47 | /// A reactive stream that allows multiple listeners to observe emitted values
 48 | /// Thread-safe implementation using concurrent dispatch queues
 49 | public class Stream<T> {
    |              `- note: generic class 'Stream' does not conform to the 'Sendable' protocol
 50 |     /// Initialize a new empty stream
 51 |     public init() {}
    :
112 |     private func removeListener(_ wrapper: ListenerWrapper<T>) {
113 |         queue.async(flags: .barrier) {
114 |             self.listeners.removeAll { $0 === wrapper }
    |             `- warning: capture of 'self' with non-sendable type 'Stream<T>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
115 |         }
116 |     }
/host/spi-builder-workspace/Sources/YFlow/Stream.swift:114:47: warning: capture of 'wrapper' with non-sendable type 'ListenerWrapper<T>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 10 | /// A wrapper class to hold listener closures for stream events
 11 | /// Used internally to manage listener references
 12 | private class ListenerWrapper<T> {
    |               `- note: generic class 'ListenerWrapper' does not conform to the 'Sendable' protocol
 13 |     /// The listener closure that handles stream values
 14 |     let listener: (T) -> Void
    :
112 |     private func removeListener(_ wrapper: ListenerWrapper<T>) {
113 |         queue.async(flags: .barrier) {
114 |             self.listeners.removeAll { $0 === wrapper }
    |                                               `- warning: capture of 'wrapper' with non-sendable type 'ListenerWrapper<T>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
115 |         }
116 |     }
/host/spi-builder-workspace/Sources/YFlow/Stream.swift:114:47: warning: capture of 'wrapper' with non-sendable type 'ListenerWrapper<T>' in an isolated closure; this is an error in the Swift 6 language mode
 10 | /// A wrapper class to hold listener closures for stream events
 11 | /// Used internally to manage listener references
 12 | private class ListenerWrapper<T> {
    |               `- note: generic class 'ListenerWrapper' does not conform to the 'Sendable' protocol
 13 |     /// The listener closure that handles stream values
 14 |     let listener: (T) -> Void
    :
112 |     private func removeListener(_ wrapper: ListenerWrapper<T>) {
113 |         queue.async(flags: .barrier) {
114 |             self.listeners.removeAll { $0 === wrapper }
    |                                               `- warning: capture of 'wrapper' with non-sendable type 'ListenerWrapper<T>' in an isolated closure; this is an error in the Swift 6 language mode
115 |         }
116 |     }
/host/spi-builder-workspace/Sources/YFlow/Stream.swift:125:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
123 |             var cancellable: StreamCancellable?
124 |             cancellable = listen { value in
125 |                 continuation.resume(returning: value)
    |                              |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
126 |                 cancellable?.cancel()
127 |             }
/host/spi-builder-workspace/Sources/YFlow/Stream.swift:149:32: 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
147 |             }
148 |
149 |             timeoutTask = 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
150 |                 try? await Task.sleep(for: timeout)
151 |                 guard !isResolved else { return }
152 |                 isResolved = true
153 |                 cancellable?.cancel()
    |                 `- note: closure captures 'cancellable' which is accessible to code in the current task
154 |                 continuation.resume(
155 |                     throwing: NSError(
/host/spi-builder-workspace/Sources/YFlow/Stream.swift:145:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
143 |                 isResolved = true
144 |                 timeoutTask?.cancel()
145 |                 continuation.resume(returning: value)
    |                              |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
146 |                 cancellable?.cancel()
147 |             }
/host/spi-builder-workspace/Sources/YFlow/Stream.swift:172:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
170 |             cancellable = listen { value in
171 |                 if predicate(value) {
172 |                     continuation.resume(returning: value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
173 |                     cancellable?.cancel()
174 |                 }
/host/spi-builder-workspace/Sources/YFlow/Stream.swift:203:32: 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
201 |             }
202 |
203 |             timeoutTask = 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
204 |                 try? await Task.sleep(for: timeout)
205 |                 guard !isResolved else { return }
206 |                 isResolved = true
207 |                 cancellable?.cancel()
    |                 `- note: closure captures 'cancellable' which is accessible to code in the current task
208 |                 continuation.resume(
209 |                     throwing: NSError(
/host/spi-builder-workspace/Sources/YFlow/Stream.swift:198:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
196 |                     isResolved = true
197 |                     timeoutTask?.cancel()
198 |                     continuation.resume(returning: value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
199 |                     cancellable?.cancel()
200 |                 }
[4/5] Emitting module YFlow
[5/5] Compiling YFlow Completer.swift
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/YFlow/Completer.swift:35:13: warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
 33 |     /// Notifies all pending completions with an error if the completer was never completed
 34 |     deinit {
 35 |         if !completions.isEmpty {
    |             `- warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
 36 |             let destroyedError = NSError(
 37 |                 domain: "Completer",
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/YFlow/Completer.swift:41:31: warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
 39 |                 userInfo: [NSLocalizedDescriptionKey: "Completer was deallocated before completion"]
 40 |             )
 41 |             for completion in completions {
    |                               `- warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
 42 |                 completion(.failure(destroyedError))
 43 |             }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/YFlow/Completer.swift:45:9: warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
 43 |             }
 44 |         }
 45 |         completions.removeAll()
    |         `- warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
 46 |     }
 47 |
/host/spi-builder-workspace/Sources/YFlow/Completer.swift:81: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
 79 |     /// - Parameter result: The value to complete with
 80 |     nonisolated public func completeSync(_ result: T) {
 81 |         Task { await complete(result) }
    |              |                `- note: closure captures 'result' which is accessible to code in the current 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
 82 |     }
 83 |
/host/spi-builder-workspace/Sources/YFlow/Completer.swift:81:22: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
 79 |     /// - Parameter result: The value to complete with
 80 |     nonisolated public func completeSync(_ result: T) {
 81 |         Task { await complete(result) }
    |                      |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                      `- note: sending task-isolated 'result' to actor-isolated instance method 'complete' risks causing data races between actor-isolated and task-isolated uses
 82 |     }
 83 |
/host/spi-builder-workspace/Sources/YFlow/Completer.swift:118:31: warning: sending value of non-Sendable type '() async -> Void' risks causing data races; this is an error in the Swift 6 language mode
116 |
117 |             if let timeout = timeout {
118 |                 timeoutTask = Task {
    |                               |- warning: sending value of non-Sendable type '() async -> Void' risks causing data races; this is an error in the Swift 6 language mode
    |                               `- note: Passing 'self'-isolated value of non-Sendable type '() async -> Void' as a 'sending' parameter risks causing races inbetween 'self'-isolated uses and uses reachable from the callee
119 |                     try? await Task.sleep(for: timeout)
120 |                     guard !isResolved else { return }
/host/spi-builder-workspace/Sources/YFlow/Completer.swift:112:56: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
110 |                 timeoutTask?.cancel()
111 |                 switch result {
112 |                 case .success(let value): continuation.resume(returning: value)
    |                                                        |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                                        `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
113 |                 case .failure(let error): continuation.resume(throwing: error)
114 |                 }
/host/spi-builder-workspace/Sources/YFlow/Completer.swift:155:36: warning: passing closure as a 'sending' parameter risks causing data races between 'self'-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
153 |
154 |             if let timeout = timeout {
155 |                 timeoutTask = Task {
    |                                    `- warning: passing closure as a 'sending' parameter risks causing data races between 'self'-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
156 |                     try? await Task.sleep(for: timeout)
157 |                     guard !isResolved else { return }
158 |                     isResolved = true
159 |                     onError(
    |                     `- note: closure captures 'self'-isolated 'onError'
160 |                         NSError(
161 |                             domain: "Future", code: 1,
/host/spi-builder-workspace/Sources/YFlow/Completer.swift:147:56: warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
145 |                 timeoutTask?.cancel()
146 |                 switch result {
147 |                 case .success(let value): continuation.resume(returning: value)
    |                                                        |- warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
    |                                                        `- note: Passing task-isolated value of non-Sendable type 'T' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
148 |                 case .failure(let error):
149 |                     onError(error)
Build complete! (8.36s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "YFlow",
  "name" : "YFlow",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "16.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "9.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0"
    }
  ],
  "products" : [
    {
      "name" : "YFlow",
      "targets" : [
        "YFlow"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "YFlowTests",
      "module_type" : "SwiftTarget",
      "name" : "YFlowTests",
      "path" : "Tests/YFlowTests",
      "sources" : [
        "CompleterTests.swift",
        "StreamTests.swift"
      ],
      "target_dependencies" : [
        "YFlow"
      ],
      "type" : "test"
    },
    {
      "c99name" : "YFlow",
      "module_type" : "SwiftTarget",
      "name" : "YFlow",
      "path" : "Sources/YFlow",
      "product_memberships" : [
        "YFlow"
      ],
      "sources" : [
        "Completer.swift",
        "Stream.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:808cb2b2a6cec76654a3acbd283c6c2205bc60d2b29562c95b9f5147612f6d32
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.