Build Information
Successful build of FTAPIKit, reference 1.5.0 (cd0362
), with Swift 6.1 for Linux on 26 Apr 2025 18:27:20 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/futuredapp/FTAPIKit.git
Reference: 1.5.0
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/futuredapp/FTAPIKit
* tag 1.5.0 -> FETCH_HEAD
HEAD is now at cd03622 Merge pull request #98 from futuredapp/feature/drop-async-await-support
Cloned https://github.com/futuredapp/FTAPIKit.git
Revision (git rev-parse @):
cd03622cce9aabc9ad9542e6ff75bb73379db443
SUCCESS checkout https://github.com/futuredapp/FTAPIKit.git at 1.5.0
========================================
Build
========================================
Selected platform: linux
Swift version: 6.1
Building package at path: $PWD
https://github.com/futuredapp/FTAPIKit.git
https://github.com/futuredapp/FTAPIKit.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
],
"manifest_display_name" : "FTAPIKit",
"name" : "FTAPIKit",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "macos",
"version" : "10.10"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "5.0"
}
],
"products" : [
{
"name" : "FTAPIKit",
"targets" : [
"FTAPIKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "FTAPIKitTests",
"module_type" : "SwiftTarget",
"name" : "FTAPIKitTests",
"path" : "Tests/FTAPIKitTests",
"sources" : [
"AsyncTests.swift",
"CombineTests.swift",
"Mockups/Endpoints.swift",
"Mockups/Errors.swift",
"Mockups/Models.swift",
"Mockups/Servers.swift",
"ResponseTests.swift",
"URLQueryTests.swift"
],
"target_dependencies" : [
"FTAPIKit"
],
"type" : "test"
},
{
"c99name" : "FTAPIKit",
"module_type" : "SwiftTarget",
"name" : "FTAPIKit",
"path" : "Sources/FTAPIKit",
"product_memberships" : [
"FTAPIKit"
],
"sources" : [
"APIError+Standard.swift",
"APIError.swift",
"CaracterSet+UrlQuery.swift",
"Coding.swift",
"Combine/EndpointPublisher.swift",
"Combine/EndpointSubscription.swift",
"Combine/URLServer+Combine.swift",
"Endpoint.swift",
"HTTPMethod.swift",
"MultipartBodyPart.swift",
"MultipartFormData.swift",
"OutputStream+Write.swift",
"Server.swift",
"URL+MIME.swift",
"URL+Query.swift",
"URLQuery.swift",
"URLRequestBuilder.swift",
"URLServer+Async.swift",
"URLServer+Call.swift",
"URLServer+Download.swift",
"URLServer+Task.swift",
"URLServer.swift"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
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/23] Emitting module FTAPIKit
/host/spi-builder-workspace/Sources/FTAPIKit/APIError+Standard.swift:44:23: warning: static property 'unhandled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 | }
43 |
44 | public static var unhandled: Standard = .unhandled(data: nil, response: nil, error: nil)
| |- warning: static property 'unhandled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'unhandled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'unhandled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 | }
46 |
[4/25] Compiling FTAPIKit Server.swift
[5/25] Compiling FTAPIKit URL+MIME.swift
[6/25] Compiling FTAPIKit URL+Query.swift
[7/25] Compiling FTAPIKit URLQuery.swift
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Async.swift:74:38: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
72 | switch result {
73 | case .success(let response):
74 | continuation.resume(returning: response)
| |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'response' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
75 | case .failure(let error):
76 | continuation.resume(throwing: error)
[8/25] Compiling FTAPIKit URLRequestBuilder.swift
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Async.swift:74:38: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
72 | switch result {
73 | case .success(let response):
74 | continuation.resume(returning: response)
| |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'response' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
75 | case .failure(let error):
76 | continuation.resume(throwing: error)
[9/25] Compiling FTAPIKit URLServer+Async.swift
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Async.swift:74:38: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
72 | switch result {
73 | case .success(let response):
74 | continuation.resume(returning: response)
| |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'response' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
75 | case .failure(let error):
76 | continuation.resume(throwing: error)
[10/25] Compiling FTAPIKit URLServer+Task.swift
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:26:13: warning: capture of 'completion' with non-sendable type '(Result<R, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
24 | ) -> URLSessionDataTask? {
25 | let task = urlSession.dataTask(with: request) { data, response, error in
26 | completion(process(data, response, error))
| |- warning: capture of 'completion' with non-sendable type '(Result<R, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
27 | }
28 | task.resume()
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:26:24: warning: capture of 'process' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Result<R, Self.ErrorType>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
24 | ) -> URLSessionDataTask? {
25 | let task = urlSession.dataTask(with: request) { data, response, error in
26 | completion(process(data, response, error))
| |- warning: capture of 'process' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Result<R, Self.ErrorType>' 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'
27 | }
28 | task.resume()
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:39:13: warning: capture of 'completion' with non-sendable type '(Result<R, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
37 | ) -> URLSessionUploadTask? {
38 | let task = urlSession.uploadTask(with: request, fromFile: file) { data, response, error in
39 | completion(process(data, response, error))
| |- warning: capture of 'completion' with non-sendable type '(Result<R, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
40 | }
41 | task.resume()
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:39:24: warning: capture of 'process' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Result<R, Self.ErrorType>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
37 | ) -> URLSessionUploadTask? {
38 | let task = urlSession.uploadTask(with: request, fromFile: file) { data, response, error in
39 | completion(process(data, response, error))
| |- warning: capture of 'process' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Result<R, Self.ErrorType>' 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'
40 | }
41 | task.resume()
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:51:13: warning: capture of 'completion' with non-sendable type '(Result<URL, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
49 | ) -> URLSessionDownloadTask? {
50 | let task = urlSession.downloadTask(with: request) { url, response, error in
51 | completion(process(url, response, error))
| |- warning: capture of 'completion' with non-sendable type '(Result<URL, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
52 | }
53 | task.resume()
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:51:24: warning: capture of 'process' with non-sendable type '(URL?, URLResponse?, (any Error)?) -> Result<URL, Self.ErrorType>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
49 | ) -> URLSessionDownloadTask? {
50 | let task = urlSession.downloadTask(with: request) { url, response, error in
51 | completion(process(url, response, error))
| |- warning: capture of 'process' with non-sendable type '(URL?, URLResponse?, (any Error)?) -> Result<URL, Self.ErrorType>' 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'
52 | }
53 | task.resume()
[11/25] Compiling FTAPIKit URLServer.swift
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:26:13: warning: capture of 'completion' with non-sendable type '(Result<R, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
24 | ) -> URLSessionDataTask? {
25 | let task = urlSession.dataTask(with: request) { data, response, error in
26 | completion(process(data, response, error))
| |- warning: capture of 'completion' with non-sendable type '(Result<R, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
27 | }
28 | task.resume()
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:26:24: warning: capture of 'process' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Result<R, Self.ErrorType>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
24 | ) -> URLSessionDataTask? {
25 | let task = urlSession.dataTask(with: request) { data, response, error in
26 | completion(process(data, response, error))
| |- warning: capture of 'process' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Result<R, Self.ErrorType>' 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'
27 | }
28 | task.resume()
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:39:13: warning: capture of 'completion' with non-sendable type '(Result<R, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
37 | ) -> URLSessionUploadTask? {
38 | let task = urlSession.uploadTask(with: request, fromFile: file) { data, response, error in
39 | completion(process(data, response, error))
| |- warning: capture of 'completion' with non-sendable type '(Result<R, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
40 | }
41 | task.resume()
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:39:24: warning: capture of 'process' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Result<R, Self.ErrorType>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
37 | ) -> URLSessionUploadTask? {
38 | let task = urlSession.uploadTask(with: request, fromFile: file) { data, response, error in
39 | completion(process(data, response, error))
| |- warning: capture of 'process' with non-sendable type '(Data?, URLResponse?, (any Error)?) -> Result<R, Self.ErrorType>' 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'
40 | }
41 | task.resume()
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:51:13: warning: capture of 'completion' with non-sendable type '(Result<URL, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
49 | ) -> URLSessionDownloadTask? {
50 | let task = urlSession.downloadTask(with: request) { url, response, error in
51 | completion(process(url, response, error))
| |- warning: capture of 'completion' with non-sendable type '(Result<URL, Self.ErrorType>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
52 | }
53 | task.resume()
/host/spi-builder-workspace/Sources/FTAPIKit/URLServer+Task.swift:51:24: warning: capture of 'process' with non-sendable type '(URL?, URLResponse?, (any Error)?) -> Result<URL, Self.ErrorType>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
49 | ) -> URLSessionDownloadTask? {
50 | let task = urlSession.downloadTask(with: request) { url, response, error in
51 | completion(process(url, response, error))
| |- warning: capture of 'process' with non-sendable type '(URL?, URLResponse?, (any Error)?) -> Result<URL, Self.ErrorType>' 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'
52 | }
53 | task.resume()
[12/25] Compiling FTAPIKit Coding.swift
[13/25] Compiling FTAPIKit EndpointPublisher.swift
[14/25] Compiling FTAPIKit EndpointSubscription.swift
[15/25] Compiling FTAPIKit URLServer+Call.swift
[16/25] Compiling FTAPIKit URLServer+Download.swift
[17/25] Compiling FTAPIKit APIError+Standard.swift
/host/spi-builder-workspace/Sources/FTAPIKit/APIError+Standard.swift:44:23: warning: static property 'unhandled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 | }
43 |
44 | public static var unhandled: Standard = .unhandled(data: nil, response: nil, error: nil)
| |- warning: static property 'unhandled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'unhandled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'unhandled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 | }
46 |
[18/25] Compiling FTAPIKit APIError.swift
/host/spi-builder-workspace/Sources/FTAPIKit/APIError+Standard.swift:44:23: warning: static property 'unhandled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 | }
43 |
44 | public static var unhandled: Standard = .unhandled(data: nil, response: nil, error: nil)
| |- warning: static property 'unhandled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'unhandled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'unhandled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 | }
46 |
[19/25] Compiling FTAPIKit CaracterSet+UrlQuery.swift
/host/spi-builder-workspace/Sources/FTAPIKit/APIError+Standard.swift:44:23: warning: static property 'unhandled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 | }
43 |
44 | public static var unhandled: Standard = .unhandled(data: nil, response: nil, error: nil)
| |- warning: static property 'unhandled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'unhandled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'unhandled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 | }
46 |
[20/25] Compiling FTAPIKit URLServer+Combine.swift
[21/25] Compiling FTAPIKit Endpoint.swift
[22/25] Compiling FTAPIKit HTTPMethod.swift
[23/25] Compiling FTAPIKit MultipartBodyPart.swift
[24/25] Compiling FTAPIKit MultipartFormData.swift
[25/25] Compiling FTAPIKit OutputStream+Write.swift
Build complete! (7.83s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "FTAPIKit",
"name" : "FTAPIKit",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "macos",
"version" : "10.10"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "5.0"
}
],
"products" : [
{
"name" : "FTAPIKit",
"targets" : [
"FTAPIKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "FTAPIKitTests",
"module_type" : "SwiftTarget",
"name" : "FTAPIKitTests",
"path" : "Tests/FTAPIKitTests",
"sources" : [
"AsyncTests.swift",
"CombineTests.swift",
"Mockups/Endpoints.swift",
"Mockups/Errors.swift",
"Mockups/Models.swift",
"Mockups/Servers.swift",
"ResponseTests.swift",
"URLQueryTests.swift"
],
"target_dependencies" : [
"FTAPIKit"
],
"type" : "test"
},
{
"c99name" : "FTAPIKit",
"module_type" : "SwiftTarget",
"name" : "FTAPIKit",
"path" : "Sources/FTAPIKit",
"product_memberships" : [
"FTAPIKit"
],
"sources" : [
"APIError+Standard.swift",
"APIError.swift",
"CaracterSet+UrlQuery.swift",
"Coding.swift",
"Combine/EndpointPublisher.swift",
"Combine/EndpointSubscription.swift",
"Combine/URLServer+Combine.swift",
"Endpoint.swift",
"HTTPMethod.swift",
"MultipartBodyPart.swift",
"MultipartFormData.swift",
"OutputStream+Write.swift",
"Server.swift",
"URL+MIME.swift",
"URL+Query.swift",
"URLQuery.swift",
"URLRequestBuilder.swift",
"URLServer+Async.swift",
"URLServer+Call.swift",
"URLServer+Download.swift",
"URLServer+Task.swift",
"URLServer.swift"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
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.