Build Information
Successful build of Titan, reference 0.9.0 (2aacdd
), with Swift 6.1 for Android on 27 May 2025 13:28:44 UTC.
Swift 6 data race errors: 5
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -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.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bermudadigitalstudio/titan.git
Reference: 0.9.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/bermudadigitalstudio/titan
* tag 0.9.0 -> FETCH_HEAD
HEAD is now at 2aacdd9 Merge pull request #96 from bermudadigitalstudio/renaming
Cloned https://github.com/bermudadigitalstudio/titan.git
Revision (git rev-parse @):
2aacdd9c80605c999031969ee8008ef84df2e0d6
SUCCESS checkout https://github.com/bermudadigitalstudio/titan.git at 0.9.0
========================================
Build
========================================
Selected platform: android
Swift version: 6.1
Building package at path: $PWD
https://github.com/bermudadigitalstudio/titan.git
https://github.com/bermudadigitalstudio/titan.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
],
"manifest_display_name" : "Titan",
"name" : "Titan",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "TitanCore",
"targets" : [
"TitanCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "Titan",
"targets" : [
"Titan"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanRouter",
"targets" : [
"TitanRouter"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanErrorHandling",
"targets" : [
"TitanErrorHandling"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "Titan404",
"targets" : [
"Titan404"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanCORS",
"targets" : [
"TitanCORS"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanFormURLEncodedBodyParser",
"targets" : [
"TitanFormURLEncodedBodyParser"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanJSON",
"targets" : [
"TitanJSON"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanQueryString",
"targets" : [
"TitanQueryString"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanHealthz",
"targets" : [
"TitanHealthz"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "TitanTests",
"module_type" : "SwiftTarget",
"name" : "TitanTests",
"path" : "Tests/TitanTests",
"sources" : [
"TitanAPITests.swift"
],
"target_dependencies" : [
"Titan"
],
"type" : "test"
},
{
"c99name" : "TitanRouterTests",
"module_type" : "SwiftTarget",
"name" : "TitanRouterTests",
"path" : "Tests/TitanRouterTests",
"sources" : [
"TitanRouterTests.swift"
],
"target_dependencies" : [
"TitanRouter"
],
"type" : "test"
},
{
"c99name" : "TitanRouter",
"module_type" : "SwiftTarget",
"name" : "TitanRouter",
"path" : "Sources/TitanRouter",
"product_memberships" : [
"Titan",
"TitanRouter"
],
"sources" : [
"InitializerOverloads.swift",
"PathParameterSupport.swift",
"TitanParameterizedRoutes.swift",
"TitanRoutesByMethod.swift",
"TitanRoutingExtension.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanQueryStringTests",
"module_type" : "SwiftTarget",
"name" : "TitanQueryStringTests",
"path" : "Tests/TitanQueryStringTests",
"sources" : [
"TitanQueryStringTests.swift"
],
"target_dependencies" : [
"TitanQueryString"
],
"type" : "test"
},
{
"c99name" : "TitanQueryString",
"module_type" : "SwiftTarget",
"name" : "TitanQueryString",
"path" : "Sources/TitanQueryString",
"product_memberships" : [
"Titan",
"TitanQueryString"
],
"sources" : [
"TitanQueryString.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanJSONTests",
"module_type" : "SwiftTarget",
"name" : "TitanJSONTests",
"path" : "Tests/TitanJSONTests",
"sources" : [
"TitanJSONTests.swift"
],
"target_dependencies" : [
"TitanJSON"
],
"type" : "test"
},
{
"c99name" : "TitanJSON",
"module_type" : "SwiftTarget",
"name" : "TitanJSON",
"path" : "Sources/TitanJSON",
"product_memberships" : [
"Titan",
"TitanJSON"
],
"sources" : [
"TitanJSONRequestBody.swift",
"TitanJSONResponseBody.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanHealthzTests",
"module_type" : "SwiftTarget",
"name" : "TitanHealthzTests",
"path" : "Tests/TitanHealthzTests",
"sources" : [
"TitanHealthzTests.swift"
],
"target_dependencies" : [
"TitanHealthz"
],
"type" : "test"
},
{
"c99name" : "TitanHealthz",
"module_type" : "SwiftTarget",
"name" : "TitanHealthz",
"path" : "Sources/TitanHealthz",
"product_memberships" : [
"TitanHealthz"
],
"sources" : [
"TitanHealthz.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanFormURLEncodedBodyParserTests",
"module_type" : "SwiftTarget",
"name" : "TitanFormURLEncodedBodyParserTests",
"path" : "Tests/TitanFormURLEncodedBodyParserTests",
"sources" : [
"TitanFormURLEncodedBodyParserTests.swift"
],
"target_dependencies" : [
"TitanFormURLEncodedBodyParser"
],
"type" : "test"
},
{
"c99name" : "TitanFormURLEncodedBodyParser",
"module_type" : "SwiftTarget",
"name" : "TitanFormURLEncodedBodyParser",
"path" : "Sources/TitanFormURLEncodedBodyParser",
"product_memberships" : [
"Titan",
"TitanFormURLEncodedBodyParser"
],
"sources" : [
"TitanFormURLEncodedBodyParser.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanErrorHandlingTests",
"module_type" : "SwiftTarget",
"name" : "TitanErrorHandlingTests",
"path" : "Tests/TitanErrorHandlingTests",
"sources" : [
"TitanErrorHandlingTests.swift"
],
"target_dependencies" : [
"TitanErrorHandling"
],
"type" : "test"
},
{
"c99name" : "TitanErrorHandling",
"module_type" : "SwiftTarget",
"name" : "TitanErrorHandling",
"path" : "Sources/TitanErrorHandling",
"product_memberships" : [
"Titan",
"TitanErrorHandling"
],
"sources" : [
"TitanErrorHandling.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanCoreTests",
"module_type" : "SwiftTarget",
"name" : "TitanCoreTests",
"path" : "Tests/TitanCoreTests",
"sources" : [
"TitanCoreTests.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "test"
},
{
"c99name" : "TitanCore",
"module_type" : "SwiftTarget",
"name" : "TitanCore",
"path" : "Sources/TitanCore",
"product_memberships" : [
"TitanCore",
"Titan",
"TitanRouter",
"TitanErrorHandling",
"Titan404",
"TitanCORS",
"TitanFormURLEncodedBodyParser",
"TitanJSON",
"TitanQueryString",
"TitanHealthz"
],
"sources" : [
"TitanCore.swift",
"TitanError.swift",
"TitanHeader.swift",
"TitanLogs.swift",
"TitanMethod.swift",
"TitanRequest.swift",
"TitanResponse.swift"
],
"type" : "library"
},
{
"c99name" : "TitanCORSTests",
"module_type" : "SwiftTarget",
"name" : "TitanCORSTests",
"path" : "Tests/TitanCORSTests",
"sources" : [
"CORSTests.swift"
],
"target_dependencies" : [
"TitanCORS"
],
"type" : "test"
},
{
"c99name" : "TitanCORS",
"module_type" : "SwiftTarget",
"name" : "TitanCORS",
"path" : "Sources/TitanCORS",
"product_memberships" : [
"Titan",
"TitanCORS"
],
"sources" : [
"TitanCORS.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "Titan404Tests",
"module_type" : "SwiftTarget",
"name" : "Titan404Tests",
"path" : "Tests/Titan404Tests",
"sources" : [
"Titan404Tests.swift"
],
"target_dependencies" : [
"Titan404"
],
"type" : "test"
},
{
"c99name" : "Titan404",
"module_type" : "SwiftTarget",
"name" : "Titan404",
"path" : "Sources/Titan404",
"product_memberships" : [
"Titan",
"Titan404"
],
"sources" : [
"Titan404.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "Titan",
"module_type" : "SwiftTarget",
"name" : "Titan",
"path" : "Sources/Titan",
"product_memberships" : [
"Titan"
],
"sources" : [
"Titan.swift"
],
"target_dependencies" : [
"TitanCore",
"TitanRouter",
"TitanErrorHandling",
"Titan404",
"TitanCORS",
"TitanFormURLEncodedBodyParser",
"TitanJSON",
"TitanQueryString"
],
"type" : "library"
}
],
"tools_version" : "4.0"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -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
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:9f3c606dcd2a4f06d17ba472aa533c43685ba7ba19a5c9bc23518a066eb7f86a
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Building for debugging...
[0/11] Write sources
[10/11] Write swift-version-24593BA9C3E375BF.txt
[12/19] Compiling TitanCore TitanResponse.swift
[13/19] Compiling TitanCore TitanRequest.swift
[14/19] Compiling TitanCore TitanMethod.swift
[15/19] Compiling TitanCore TitanLogs.swift
[16/19] Compiling TitanCore TitanError.swift
[17/19] Compiling TitanCore TitanHeader.swift
[18/19] Compiling TitanCore TitanCore.swift
[19/19] Emitting module TitanCore
[21/41] Emitting module TitanJSON
/host/spi-builder-workspace/Sources/TitanJSON/TitanJSONResponseBody.swift:19:5: warning: 'public' modifier is redundant for initializer declared in a public extension
17 | public extension Response {
18 |
19 | public init(code: Int, json: Any) throws {
| `- warning: 'public' modifier is redundant for initializer declared in a public extension
20 | let jsonData = try JSONSerialization.data(withJSONObject: json, options: [])
21 | self.init(code: code, body: jsonData, headers: HTTPHeaders(dictionaryLiteral: ("content-type", "application/json")))
/host/spi-builder-workspace/Sources/TitanJSON/TitanJSONResponseBody.swift:24:5: warning: 'public' modifier is redundant for initializer declared in a public extension
22 | }
23 |
24 | public init<T: Encodable>(code: Int, object: T, jsonEncoder: JSONEncoder = JSONEncoder()) throws {
| `- warning: 'public' modifier is redundant for initializer declared in a public extension
25 | let data = try jsonEncoder.encode(object)
26 | self.init(code: code, body: data, headers: HTTPHeaders(dictionaryLiteral: ("content-type", "application/json")))
[22/41] Emitting module TitanQueryString
/host/spi-builder-workspace/Sources/TitanQueryString/TitanQueryString.swift:20:5: warning: 'public' modifier is redundant for property declared in a public extension
18 | /// The pairs of keys and values in the query string of the `RequestType`s path.
19 | /// Complexity: 0(n) on all invocations.
20 | public var queryPairs: [(key: String, value: String)] {
| `- warning: 'public' modifier is redundant for property declared in a public extension
21 | // Ensure there is a query string, otherwise return
22 | guard let indexOfQuery = self.path.index(of: "?") else {
/host/spi-builder-workspace/Sources/TitanQueryString/TitanQueryString.swift:57:5: warning: 'public' modifier is redundant for property declared in a public extension
55 | /// Access the query string as a dictionary, with case sensitive keys.
56 | /// Complexity: 0(n) on all invocations.
57 | public var query: [String: String] {
| `- warning: 'public' modifier is redundant for property declared in a public extension
58 | var query: [String: String] = [:]
59 | for (name, value) in self.queryPairs {
[23/41] Compiling TitanJSON TitanJSONRequestBody.swift
[24/41] Compiling TitanJSON TitanJSONResponseBody.swift
/host/spi-builder-workspace/Sources/TitanJSON/TitanJSONResponseBody.swift:19:5: warning: 'public' modifier is redundant for initializer declared in a public extension
17 | public extension Response {
18 |
19 | public init(code: Int, json: Any) throws {
| `- warning: 'public' modifier is redundant for initializer declared in a public extension
20 | let jsonData = try JSONSerialization.data(withJSONObject: json, options: [])
21 | self.init(code: code, body: jsonData, headers: HTTPHeaders(dictionaryLiteral: ("content-type", "application/json")))
/host/spi-builder-workspace/Sources/TitanJSON/TitanJSONResponseBody.swift:24:5: warning: 'public' modifier is redundant for initializer declared in a public extension
22 | }
23 |
24 | public init<T: Encodable>(code: Int, object: T, jsonEncoder: JSONEncoder = JSONEncoder()) throws {
| `- warning: 'public' modifier is redundant for initializer declared in a public extension
25 | let data = try jsonEncoder.encode(object)
26 | self.init(code: code, body: data, headers: HTTPHeaders(dictionaryLiteral: ("content-type", "application/json")))
[25/42] Emitting module TitanRouter
[26/42] Compiling TitanErrorHandling TitanErrorHandling.swift
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/TitanErrorHandling/TitanErrorHandling.swift:17:12: warning: let 'defaultErrorHandler' is not concurrency-safe because non-'Sendable' type '(any Error) -> any ResponseType' may have shared mutable state; this is an error in the Swift 6 language mode
15 | import TitanCore
16 |
17 | public let defaultErrorHandler: (Error) -> (ResponseType) = { err in
| |- warning: let 'defaultErrorHandler' is not concurrency-safe because non-'Sendable' type '(any Error) -> any ResponseType' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'defaultErrorHandler' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | do {
19 | return try Response(code: 500, body: String(describing: err), headers: HTTPHeaders())
[27/42] Compiling TitanCORS TitanCORS.swift
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/TitanCORS/TitanCORS.swift:28:12: warning: let 'allowAllOrigins' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
26 |
27 | /// If one isn't present, insert a wildcard CORS allowed origin header
28 | public let allowAllOrigins: TitanFunc = { req, res in
| |- warning: let 'allowAllOrigins' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'allowAllOrigins' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 | var allowAllOriginHeaders = HTTPHeaders(dictionaryLiteral: allowAllOriginsHeader)
30 | // swiftlint:disable shorthand_operator
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/TitanCORS/TitanCORS.swift:37:12: warning: let 'respondToPreflightAllowingAllMethods' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
35 |
36 | /// Respond to a CORS preflight request, allowing all methods requested in the preflight.
37 | public let respondToPreflightAllowingAllMethods: TitanFunc = { req, res in
| |- warning: let 'respondToPreflightAllowingAllMethods' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'respondToPreflightAllowingAllMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | guard req.method == .options else {
39 | return (req, res)
[29/42] Emitting module TitanFormURLEncodedBodyParser
/host/spi-builder-workspace/Sources/TitanFormURLEncodedBodyParser/TitanFormURLEncodedBodyParser.swift:19:5: warning: 'public' modifier is redundant for property declared in a public extension
17 | public extension RequestType {
18 |
19 | public var formURLEncodedBody: [(name: String, value: String)] {
| `- warning: 'public' modifier is redundant for property declared in a public extension
20 | guard let bodyString: String = self.body else {
21 | return []
/host/spi-builder-workspace/Sources/TitanFormURLEncodedBodyParser/TitanFormURLEncodedBodyParser.swift:27:5: warning: 'public' modifier is redundant for property declared in a public extension
25 | }
26 |
27 | public var postParams: [String: String] {
| `- warning: 'public' modifier is redundant for property declared in a public extension
28 | var ret = [String: String]()
29 | guard let bodyString: String = self.body else {
[30/42] Compiling TitanFormURLEncodedBodyParser TitanFormURLEncodedBodyParser.swift
/host/spi-builder-workspace/Sources/TitanFormURLEncodedBodyParser/TitanFormURLEncodedBodyParser.swift:19:5: warning: 'public' modifier is redundant for property declared in a public extension
17 | public extension RequestType {
18 |
19 | public var formURLEncodedBody: [(name: String, value: String)] {
| `- warning: 'public' modifier is redundant for property declared in a public extension
20 | guard let bodyString: String = self.body else {
21 | return []
/host/spi-builder-workspace/Sources/TitanFormURLEncodedBodyParser/TitanFormURLEncodedBodyParser.swift:27:5: warning: 'public' modifier is redundant for property declared in a public extension
25 | }
26 |
27 | public var postParams: [String: String] {
| `- warning: 'public' modifier is redundant for property declared in a public extension
28 | var ret = [String: String]()
29 | guard let bodyString: String = self.body else {
[31/42] Compiling Titan404 Titan404.swift
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/Titan404/Titan404.swift:25:12: warning: let 'defaultTo404' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
23 | effectively overwrite it.
24 | */
25 | public let defaultTo404: TitanFunc = { (request, response) -> (RequestType, ResponseType) in
| |- warning: let 'defaultTo404' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'defaultTo404' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 | do {
[33/43] Compiling TitanRouter InitializerOverloads.swift
[34/43] Compiling TitanRouter PathParameterSupport.swift
[35/43] Emitting module Titan404
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/Titan404/Titan404.swift:25:12: warning: let 'defaultTo404' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
23 | effectively overwrite it.
24 | */
25 | public let defaultTo404: TitanFunc = { (request, response) -> (RequestType, ResponseType) in
| |- warning: let 'defaultTo404' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'defaultTo404' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 | do {
[36/43] Emitting module TitanErrorHandling
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/TitanErrorHandling/TitanErrorHandling.swift:17:12: warning: let 'defaultErrorHandler' is not concurrency-safe because non-'Sendable' type '(any Error) -> any ResponseType' may have shared mutable state; this is an error in the Swift 6 language mode
15 | import TitanCore
16 |
17 | public let defaultErrorHandler: (Error) -> (ResponseType) = { err in
| |- warning: let 'defaultErrorHandler' is not concurrency-safe because non-'Sendable' type '(any Error) -> any ResponseType' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'defaultErrorHandler' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | do {
19 | return try Response(code: 500, body: String(describing: err), headers: HTTPHeaders())
[37/45] Emitting module TitanCORS
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/TitanCORS/TitanCORS.swift:28:12: warning: let 'allowAllOrigins' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
26 |
27 | /// If one isn't present, insert a wildcard CORS allowed origin header
28 | public let allowAllOrigins: TitanFunc = { req, res in
| |- warning: let 'allowAllOrigins' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'allowAllOrigins' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 | var allowAllOriginHeaders = HTTPHeaders(dictionaryLiteral: allowAllOriginsHeader)
30 | // swiftlint:disable shorthand_operator
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/TitanCORS/TitanCORS.swift:37:12: warning: let 'respondToPreflightAllowingAllMethods' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
35 |
36 | /// Respond to a CORS preflight request, allowing all methods requested in the preflight.
37 | public let respondToPreflightAllowingAllMethods: TitanFunc = { req, res in
| |- warning: let 'respondToPreflightAllowingAllMethods' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'respondToPreflightAllowingAllMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | guard req.method == .options else {
39 | return (req, res)
[38/46] Emitting module TitanHealthz
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/TitanHealthz/TitanHealthz.swift:18:12: warning: let 'healthz' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | /// A basic healthcheck route that returns 200 and diagnostic info
18 | public let healthz: TitanFunc = healthzWithCheck(check: { return nil })
| |- warning: let 'healthz' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'healthz' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | // Workaround for https://bugs.swift.org/browse/SR-6391
[39/46] Compiling TitanHealthz TitanHealthz.swift
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/TitanHealthz/TitanHealthz.swift:18:12: warning: let 'healthz' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | /// A basic healthcheck route that returns 200 and diagnostic info
18 | public let healthz: TitanFunc = healthzWithCheck(check: { return nil })
| |- warning: let 'healthz' is not concurrency-safe because non-'Sendable' type 'TitanFunc' (aka '(any RequestType, any ResponseType) -> (request: any RequestType, response: any ResponseType)') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'healthz' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | // Workaround for https://bugs.swift.org/browse/SR-6391
[40/47] Compiling TitanQueryString TitanQueryString.swift
/host/spi-builder-workspace/Sources/TitanQueryString/TitanQueryString.swift:20:5: warning: 'public' modifier is redundant for property declared in a public extension
18 | /// The pairs of keys and values in the query string of the `RequestType`s path.
19 | /// Complexity: 0(n) on all invocations.
20 | public var queryPairs: [(key: String, value: String)] {
| `- warning: 'public' modifier is redundant for property declared in a public extension
21 | // Ensure there is a query string, otherwise return
22 | guard let indexOfQuery = self.path.index(of: "?") else {
/host/spi-builder-workspace/Sources/TitanQueryString/TitanQueryString.swift:57:5: warning: 'public' modifier is redundant for property declared in a public extension
55 | /// Access the query string as a dictionary, with case sensitive keys.
56 | /// Complexity: 0(n) on all invocations.
57 | public var query: [String: String] {
| `- warning: 'public' modifier is redundant for property declared in a public extension
58 | var query: [String: String] = [:]
59 | for (name, value) in self.queryPairs {
[41/48] Compiling TitanRouter TitanRoutesByMethod.swift
[42/48] Compiling TitanRouter TitanRoutingExtension.swift
[43/48] Compiling TitanRouter TitanParameterizedRoutes.swift
[50/51] Emitting module Titan
[51/51] Compiling Titan Titan.swift
Build complete! (15.06s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Titan",
"name" : "Titan",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "TitanCore",
"targets" : [
"TitanCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "Titan",
"targets" : [
"Titan"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanRouter",
"targets" : [
"TitanRouter"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanErrorHandling",
"targets" : [
"TitanErrorHandling"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "Titan404",
"targets" : [
"Titan404"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanCORS",
"targets" : [
"TitanCORS"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanFormURLEncodedBodyParser",
"targets" : [
"TitanFormURLEncodedBodyParser"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanJSON",
"targets" : [
"TitanJSON"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanQueryString",
"targets" : [
"TitanQueryString"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TitanHealthz",
"targets" : [
"TitanHealthz"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "TitanTests",
"module_type" : "SwiftTarget",
"name" : "TitanTests",
"path" : "Tests/TitanTests",
"sources" : [
"TitanAPITests.swift"
],
"target_dependencies" : [
"Titan"
],
"type" : "test"
},
{
"c99name" : "TitanRouterTests",
"module_type" : "SwiftTarget",
"name" : "TitanRouterTests",
"path" : "Tests/TitanRouterTests",
"sources" : [
"TitanRouterTests.swift"
],
"target_dependencies" : [
"TitanRouter"
],
"type" : "test"
},
{
"c99name" : "TitanRouter",
"module_type" : "SwiftTarget",
"name" : "TitanRouter",
"path" : "Sources/TitanRouter",
"product_memberships" : [
"Titan",
"TitanRouter"
],
"sources" : [
"InitializerOverloads.swift",
"PathParameterSupport.swift",
"TitanParameterizedRoutes.swift",
"TitanRoutesByMethod.swift",
"TitanRoutingExtension.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanQueryStringTests",
"module_type" : "SwiftTarget",
"name" : "TitanQueryStringTests",
"path" : "Tests/TitanQueryStringTests",
"sources" : [
"TitanQueryStringTests.swift"
],
"target_dependencies" : [
"TitanQueryString"
],
"type" : "test"
},
{
"c99name" : "TitanQueryString",
"module_type" : "SwiftTarget",
"name" : "TitanQueryString",
"path" : "Sources/TitanQueryString",
"product_memberships" : [
"Titan",
"TitanQueryString"
],
"sources" : [
"TitanQueryString.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanJSONTests",
"module_type" : "SwiftTarget",
"name" : "TitanJSONTests",
"path" : "Tests/TitanJSONTests",
"sources" : [
"TitanJSONTests.swift"
],
"target_dependencies" : [
"TitanJSON"
],
"type" : "test"
},
{
"c99name" : "TitanJSON",
"module_type" : "SwiftTarget",
"name" : "TitanJSON",
"path" : "Sources/TitanJSON",
"product_memberships" : [
"Titan",
"TitanJSON"
],
"sources" : [
"TitanJSONRequestBody.swift",
"TitanJSONResponseBody.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanHealthzTests",
"module_type" : "SwiftTarget",
"name" : "TitanHealthzTests",
"path" : "Tests/TitanHealthzTests",
"sources" : [
"TitanHealthzTests.swift"
],
"target_dependencies" : [
"TitanHealthz"
],
"type" : "test"
},
{
"c99name" : "TitanHealthz",
"module_type" : "SwiftTarget",
"name" : "TitanHealthz",
"path" : "Sources/TitanHealthz",
"product_memberships" : [
"TitanHealthz"
],
"sources" : [
"TitanHealthz.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanFormURLEncodedBodyParserTests",
"module_type" : "SwiftTarget",
"name" : "TitanFormURLEncodedBodyParserTests",
"path" : "Tests/TitanFormURLEncodedBodyParserTests",
"sources" : [
"TitanFormURLEncodedBodyParserTests.swift"
],
"target_dependencies" : [
"TitanFormURLEncodedBodyParser"
],
"type" : "test"
},
{
"c99name" : "TitanFormURLEncodedBodyParser",
"module_type" : "SwiftTarget",
"name" : "TitanFormURLEncodedBodyParser",
"path" : "Sources/TitanFormURLEncodedBodyParser",
"product_memberships" : [
"Titan",
"TitanFormURLEncodedBodyParser"
],
"sources" : [
"TitanFormURLEncodedBodyParser.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanErrorHandlingTests",
"module_type" : "SwiftTarget",
"name" : "TitanErrorHandlingTests",
"path" : "Tests/TitanErrorHandlingTests",
"sources" : [
"TitanErrorHandlingTests.swift"
],
"target_dependencies" : [
"TitanErrorHandling"
],
"type" : "test"
},
{
"c99name" : "TitanErrorHandling",
"module_type" : "SwiftTarget",
"name" : "TitanErrorHandling",
"path" : "Sources/TitanErrorHandling",
"product_memberships" : [
"Titan",
"TitanErrorHandling"
],
"sources" : [
"TitanErrorHandling.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "TitanCoreTests",
"module_type" : "SwiftTarget",
"name" : "TitanCoreTests",
"path" : "Tests/TitanCoreTests",
"sources" : [
"TitanCoreTests.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "test"
},
{
"c99name" : "TitanCore",
"module_type" : "SwiftTarget",
"name" : "TitanCore",
"path" : "Sources/TitanCore",
"product_memberships" : [
"TitanCore",
"Titan",
"TitanRouter",
"TitanErrorHandling",
"Titan404",
"TitanCORS",
"TitanFormURLEncodedBodyParser",
"TitanJSON",
"TitanQueryString",
"TitanHealthz"
],
"sources" : [
"TitanCore.swift",
"TitanError.swift",
"TitanHeader.swift",
"TitanLogs.swift",
"TitanMethod.swift",
"TitanRequest.swift",
"TitanResponse.swift"
],
"type" : "library"
},
{
"c99name" : "TitanCORSTests",
"module_type" : "SwiftTarget",
"name" : "TitanCORSTests",
"path" : "Tests/TitanCORSTests",
"sources" : [
"CORSTests.swift"
],
"target_dependencies" : [
"TitanCORS"
],
"type" : "test"
},
{
"c99name" : "TitanCORS",
"module_type" : "SwiftTarget",
"name" : "TitanCORS",
"path" : "Sources/TitanCORS",
"product_memberships" : [
"Titan",
"TitanCORS"
],
"sources" : [
"TitanCORS.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "Titan404Tests",
"module_type" : "SwiftTarget",
"name" : "Titan404Tests",
"path" : "Tests/Titan404Tests",
"sources" : [
"Titan404Tests.swift"
],
"target_dependencies" : [
"Titan404"
],
"type" : "test"
},
{
"c99name" : "Titan404",
"module_type" : "SwiftTarget",
"name" : "Titan404",
"path" : "Sources/Titan404",
"product_memberships" : [
"Titan",
"Titan404"
],
"sources" : [
"Titan404.swift"
],
"target_dependencies" : [
"TitanCore"
],
"type" : "library"
},
{
"c99name" : "Titan",
"module_type" : "SwiftTarget",
"name" : "Titan",
"path" : "Sources/Titan",
"product_memberships" : [
"Titan"
],
"sources" : [
"Titan.swift"
],
"target_dependencies" : [
"TitanCore",
"TitanRouter",
"TitanErrorHandling",
"Titan404",
"TitanCORS",
"TitanFormURLEncodedBodyParser",
"TitanJSON",
"TitanQueryString"
],
"type" : "library"
}
],
"tools_version" : "4.0"
}
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:9f3c606dcd2a4f06d17ba472aa533c43685ba7ba19a5c9bc23518a066eb7f86a
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Done.