Build Information
Successful build of FluentExtensions, reference master (e7e995), with Swift 6.1 for Linux on 27 Sep 2025 00:13:35 UTC.
Swift 6 data race errors: 29
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-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>&1Build Log
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:231:34: warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
229 | try await siblingRelationship.replace(with: siblingEntities, on: database)
230 | let query = siblingRelationship.query(on: request.db)
231 | return try await siblingController.executeRead(query: query, on: request)
| `- warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
232 | }
233 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:45:23: warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | public class LogMiddleware: AsyncMiddleware {
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
| |- warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailLevel' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailLevel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Specific elements to include when using detailed logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:48:23: warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | /// Specific elements to include when using detailed logging
48 | public static var detailElements = Set(NetworkLoggerDetailElement.allCases)
| |- warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailElements' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailElements' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// HTTP methods to exclude from logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:51:23: warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | /// HTTP methods to exclude from logging
51 | public static var omittedMethods: [HTTPMethod]?
| |- warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'omittedMethods' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'omittedMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | /// Whether to URL decode paths before logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:54:23: warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |
53 | /// Whether to URL decode paths before logging
54 | public static var decodeURLPaths: Bool = true
| |- warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'decodeURLPaths' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'decodeURLPaths' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 | /// A closure type that determines whether a request should be logged
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:43:14: warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
41 | /// }
42 | /// ```
43 | public class LogMiddleware: AsyncMiddleware {
| `- warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:60:17: warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
58 |
59 | /// Collection of filters that determine which requests get logged
60 | private var requestFilters: [RequestFilter] = []
| `- warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
61 |
62 | /// Creates a new LogMiddleware instance
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:127:39: warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | func restore(on database: Database, transaction: Bool) async throws -> Self {
126 | if transaction {
127 | return try await database.transaction { transaction in
| `- warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | try await restore(on: transaction)
129 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:128:27: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
126 | if transaction {
127 | return try await database.transaction { transaction in
128 | try await restore(on: transaction)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
129 | }
130 | } else {
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:69:35: warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
48 | /// - Throws: Any database errors that occur during the operations
49 | @discardableResult
50 | func performBatch<Input: Collection, Output>(
| `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
51 | action: @escaping AsyncBatchAction<Input.Element, Output>,
52 | on resources: Input,
:
67 |
68 | if transaction {
69 | return try await self.transaction { db in
| `- warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
70 | try await batchOperation(db)
71 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:70:27: warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' in a '@Sendable' closure; this is an error in the Swift 6 language mode
68 | if transaction {
69 | return try await self.transaction { db in
70 | try await batchOperation(db)
| |- warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' 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'
71 | }
72 | } else {
[2867/2875] Compiling FluentExtensions LogMiddleware.swift
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:139:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
137 | case save
138 | /// Default strategy for PUT requests.
139 | public static var `default` = PUTRouteAction.save
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
140 | }
141 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:149:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
147 | case upsert
148 | /// Default save strategy.
149 | public static var `default` = SaveMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
150 | }
151 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:161:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
159 | case update
160 | /// Default update strategy.
161 | public static var `default` = UpdateMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
162 | }
163 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:91:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
89 | else {
90 | routes.put("update", use: update)
91 | routes.put(["update", ":id"], use: update)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
92 | }
93 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:100:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
98 | }
99 | else {
100 | routes.put(["update", "batch"], use: updateBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
101 | }
102 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:111:50: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
109 | else {
110 | routes.put("save", use: save)
111 | routes.put(["save", ":id"], use: save)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
112 | }
113 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:120:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
118 | }
119 | else {
120 | routes.put(["save", "batch"], use: saveBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
121 | }
122 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:89:30: warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
87 | let searchPath = path + ["search"]
88 | routes.get(searchPath.pathComponents) { request in
89 | return try await childController.search(on: request)
| `- warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
90 | }
91 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:231:34: warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
229 | try await siblingRelationship.replace(with: siblingEntities, on: database)
230 | let query = siblingRelationship.query(on: request.db)
231 | return try await siblingController.executeRead(query: query, on: request)
| `- warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
232 | }
233 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:45:23: warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | public class LogMiddleware: AsyncMiddleware {
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
| |- warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailLevel' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailLevel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Specific elements to include when using detailed logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:48:23: warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | /// Specific elements to include when using detailed logging
48 | public static var detailElements = Set(NetworkLoggerDetailElement.allCases)
| |- warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailElements' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailElements' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// HTTP methods to exclude from logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:51:23: warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | /// HTTP methods to exclude from logging
51 | public static var omittedMethods: [HTTPMethod]?
| |- warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'omittedMethods' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'omittedMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | /// Whether to URL decode paths before logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:54:23: warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |
53 | /// Whether to URL decode paths before logging
54 | public static var decodeURLPaths: Bool = true
| |- warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'decodeURLPaths' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'decodeURLPaths' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 | /// A closure type that determines whether a request should be logged
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:43:14: warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
41 | /// }
42 | /// ```
43 | public class LogMiddleware: AsyncMiddleware {
| `- warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:60:17: warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
58 |
59 | /// Collection of filters that determine which requests get logged
60 | private var requestFilters: [RequestFilter] = []
| `- warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
61 |
62 | /// Creates a new LogMiddleware instance
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:127:39: warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | func restore(on database: Database, transaction: Bool) async throws -> Self {
126 | if transaction {
127 | return try await database.transaction { transaction in
| `- warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | try await restore(on: transaction)
129 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:128:27: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
126 | if transaction {
127 | return try await database.transaction { transaction in
128 | try await restore(on: transaction)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
129 | }
130 | } else {
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:69:35: warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
48 | /// - Throws: Any database errors that occur during the operations
49 | @discardableResult
50 | func performBatch<Input: Collection, Output>(
| `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
51 | action: @escaping AsyncBatchAction<Input.Element, Output>,
52 | on resources: Input,
:
67 |
68 | if transaction {
69 | return try await self.transaction { db in
| `- warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
70 | try await batchOperation(db)
71 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:70:27: warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' in a '@Sendable' closure; this is an error in the Swift 6 language mode
68 | if transaction {
69 | return try await self.transaction { db in
70 | try await batchOperation(db)
| |- warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' 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'
71 | }
72 | } else {
[2868/2875] Compiling FluentExtensions Model+AsyncCRUD.swift
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:139:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
137 | case save
138 | /// Default strategy for PUT requests.
139 | public static var `default` = PUTRouteAction.save
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
140 | }
141 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:149:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
147 | case upsert
148 | /// Default save strategy.
149 | public static var `default` = SaveMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
150 | }
151 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:161:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
159 | case update
160 | /// Default update strategy.
161 | public static var `default` = UpdateMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
162 | }
163 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:91:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
89 | else {
90 | routes.put("update", use: update)
91 | routes.put(["update", ":id"], use: update)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
92 | }
93 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:100:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
98 | }
99 | else {
100 | routes.put(["update", "batch"], use: updateBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
101 | }
102 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:111:50: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
109 | else {
110 | routes.put("save", use: save)
111 | routes.put(["save", ":id"], use: save)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
112 | }
113 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:120:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
118 | }
119 | else {
120 | routes.put(["save", "batch"], use: saveBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
121 | }
122 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:89:30: warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
87 | let searchPath = path + ["search"]
88 | routes.get(searchPath.pathComponents) { request in
89 | return try await childController.search(on: request)
| `- warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
90 | }
91 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:231:34: warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
229 | try await siblingRelationship.replace(with: siblingEntities, on: database)
230 | let query = siblingRelationship.query(on: request.db)
231 | return try await siblingController.executeRead(query: query, on: request)
| `- warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
232 | }
233 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:45:23: warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | public class LogMiddleware: AsyncMiddleware {
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
| |- warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailLevel' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailLevel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Specific elements to include when using detailed logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:48:23: warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | /// Specific elements to include when using detailed logging
48 | public static var detailElements = Set(NetworkLoggerDetailElement.allCases)
| |- warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailElements' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailElements' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// HTTP methods to exclude from logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:51:23: warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | /// HTTP methods to exclude from logging
51 | public static var omittedMethods: [HTTPMethod]?
| |- warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'omittedMethods' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'omittedMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | /// Whether to URL decode paths before logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:54:23: warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |
53 | /// Whether to URL decode paths before logging
54 | public static var decodeURLPaths: Bool = true
| |- warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'decodeURLPaths' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'decodeURLPaths' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 | /// A closure type that determines whether a request should be logged
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:43:14: warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
41 | /// }
42 | /// ```
43 | public class LogMiddleware: AsyncMiddleware {
| `- warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:60:17: warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
58 |
59 | /// Collection of filters that determine which requests get logged
60 | private var requestFilters: [RequestFilter] = []
| `- warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
61 |
62 | /// Creates a new LogMiddleware instance
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:127:39: warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | func restore(on database: Database, transaction: Bool) async throws -> Self {
126 | if transaction {
127 | return try await database.transaction { transaction in
| `- warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | try await restore(on: transaction)
129 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:128:27: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
126 | if transaction {
127 | return try await database.transaction { transaction in
128 | try await restore(on: transaction)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
129 | }
130 | } else {
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:69:35: warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
48 | /// - Throws: Any database errors that occur during the operations
49 | @discardableResult
50 | func performBatch<Input: Collection, Output>(
| `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
51 | action: @escaping AsyncBatchAction<Input.Element, Output>,
52 | on resources: Input,
:
67 |
68 | if transaction {
69 | return try await self.transaction { db in
| `- warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
70 | try await batchOperation(db)
71 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:70:27: warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' in a '@Sendable' closure; this is an error in the Swift 6 language mode
68 | if transaction {
69 | return try await self.transaction { db in
70 | try await batchOperation(db)
| |- warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' 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'
71 | }
72 | } else {
[2869/2875] Compiling FluentExtensions Model+ExtendedActions.swift
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:139:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
137 | case save
138 | /// Default strategy for PUT requests.
139 | public static var `default` = PUTRouteAction.save
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
140 | }
141 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:149:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
147 | case upsert
148 | /// Default save strategy.
149 | public static var `default` = SaveMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
150 | }
151 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:161:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
159 | case update
160 | /// Default update strategy.
161 | public static var `default` = UpdateMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
162 | }
163 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:91:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
89 | else {
90 | routes.put("update", use: update)
91 | routes.put(["update", ":id"], use: update)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
92 | }
93 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:100:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
98 | }
99 | else {
100 | routes.put(["update", "batch"], use: updateBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
101 | }
102 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:111:50: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
109 | else {
110 | routes.put("save", use: save)
111 | routes.put(["save", ":id"], use: save)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
112 | }
113 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:120:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
118 | }
119 | else {
120 | routes.put(["save", "batch"], use: saveBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
121 | }
122 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:89:30: warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
87 | let searchPath = path + ["search"]
88 | routes.get(searchPath.pathComponents) { request in
89 | return try await childController.search(on: request)
| `- warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
90 | }
91 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:231:34: warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
229 | try await siblingRelationship.replace(with: siblingEntities, on: database)
230 | let query = siblingRelationship.query(on: request.db)
231 | return try await siblingController.executeRead(query: query, on: request)
| `- warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
232 | }
233 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:45:23: warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | public class LogMiddleware: AsyncMiddleware {
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
| |- warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailLevel' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailLevel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Specific elements to include when using detailed logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:48:23: warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | /// Specific elements to include when using detailed logging
48 | public static var detailElements = Set(NetworkLoggerDetailElement.allCases)
| |- warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailElements' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailElements' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// HTTP methods to exclude from logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:51:23: warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | /// HTTP methods to exclude from logging
51 | public static var omittedMethods: [HTTPMethod]?
| |- warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'omittedMethods' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'omittedMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | /// Whether to URL decode paths before logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:54:23: warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |
53 | /// Whether to URL decode paths before logging
54 | public static var decodeURLPaths: Bool = true
| |- warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'decodeURLPaths' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'decodeURLPaths' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 | /// A closure type that determines whether a request should be logged
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:43:14: warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
41 | /// }
42 | /// ```
43 | public class LogMiddleware: AsyncMiddleware {
| `- warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:60:17: warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
58 |
59 | /// Collection of filters that determine which requests get logged
60 | private var requestFilters: [RequestFilter] = []
| `- warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
61 |
62 | /// Creates a new LogMiddleware instance
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:127:39: warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | func restore(on database: Database, transaction: Bool) async throws -> Self {
126 | if transaction {
127 | return try await database.transaction { transaction in
| `- warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | try await restore(on: transaction)
129 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:128:27: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
126 | if transaction {
127 | return try await database.transaction { transaction in
128 | try await restore(on: transaction)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
129 | }
130 | } else {
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:69:35: warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
48 | /// - Throws: Any database errors that occur during the operations
49 | @discardableResult
50 | func performBatch<Input: Collection, Output>(
| `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
51 | action: @escaping AsyncBatchAction<Input.Element, Output>,
52 | on resources: Input,
:
67 |
68 | if transaction {
69 | return try await self.transaction { db in
| `- warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
70 | try await batchOperation(db)
71 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:70:27: warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' in a '@Sendable' closure; this is an error in the Swift 6 language mode
68 | if transaction {
69 | return try await self.transaction { db in
70 | try await batchOperation(db)
| |- warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' 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'
71 | }
72 | } else {
[2870/2875] Compiling FluentExtensions ModelCollection+CRUD.swift
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:139:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
137 | case save
138 | /// Default strategy for PUT requests.
139 | public static var `default` = PUTRouteAction.save
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
140 | }
141 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:149:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
147 | case upsert
148 | /// Default save strategy.
149 | public static var `default` = SaveMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
150 | }
151 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:161:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
159 | case update
160 | /// Default update strategy.
161 | public static var `default` = UpdateMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
162 | }
163 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:91:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
89 | else {
90 | routes.put("update", use: update)
91 | routes.put(["update", ":id"], use: update)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
92 | }
93 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:100:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
98 | }
99 | else {
100 | routes.put(["update", "batch"], use: updateBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
101 | }
102 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:111:50: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
109 | else {
110 | routes.put("save", use: save)
111 | routes.put(["save", ":id"], use: save)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
112 | }
113 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:120:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
118 | }
119 | else {
120 | routes.put(["save", "batch"], use: saveBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
121 | }
122 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:89:30: warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
87 | let searchPath = path + ["search"]
88 | routes.get(searchPath.pathComponents) { request in
89 | return try await childController.search(on: request)
| `- warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
90 | }
91 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:231:34: warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
229 | try await siblingRelationship.replace(with: siblingEntities, on: database)
230 | let query = siblingRelationship.query(on: request.db)
231 | return try await siblingController.executeRead(query: query, on: request)
| `- warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
232 | }
233 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:45:23: warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | public class LogMiddleware: AsyncMiddleware {
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
| |- warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailLevel' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailLevel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Specific elements to include when using detailed logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:48:23: warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | /// Specific elements to include when using detailed logging
48 | public static var detailElements = Set(NetworkLoggerDetailElement.allCases)
| |- warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailElements' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailElements' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// HTTP methods to exclude from logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:51:23: warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | /// HTTP methods to exclude from logging
51 | public static var omittedMethods: [HTTPMethod]?
| |- warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'omittedMethods' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'omittedMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | /// Whether to URL decode paths before logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:54:23: warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |
53 | /// Whether to URL decode paths before logging
54 | public static var decodeURLPaths: Bool = true
| |- warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'decodeURLPaths' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'decodeURLPaths' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 | /// A closure type that determines whether a request should be logged
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:43:14: warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
41 | /// }
42 | /// ```
43 | public class LogMiddleware: AsyncMiddleware {
| `- warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:60:17: warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
58 |
59 | /// Collection of filters that determine which requests get logged
60 | private var requestFilters: [RequestFilter] = []
| `- warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
61 |
62 | /// Creates a new LogMiddleware instance
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:127:39: warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | func restore(on database: Database, transaction: Bool) async throws -> Self {
126 | if transaction {
127 | return try await database.transaction { transaction in
| `- warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | try await restore(on: transaction)
129 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:128:27: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
126 | if transaction {
127 | return try await database.transaction { transaction in
128 | try await restore(on: transaction)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
129 | }
130 | } else {
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:69:35: warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
48 | /// - Throws: Any database errors that occur during the operations
49 | @discardableResult
50 | func performBatch<Input: Collection, Output>(
| `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
51 | action: @escaping AsyncBatchAction<Input.Element, Output>,
52 | on resources: Input,
:
67 |
68 | if transaction {
69 | return try await self.transaction { db in
| `- warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
70 | try await batchOperation(db)
71 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:70:27: warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' in a '@Sendable' closure; this is an error in the Swift 6 language mode
68 | if transaction {
69 | return try await self.transaction { db in
70 | try await batchOperation(db)
| |- warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' 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'
71 | }
72 | } else {
[2871/2875] Compiling FluentExtensions ModelCollection+ExtendedActions.swift
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:139:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
137 | case save
138 | /// Default strategy for PUT requests.
139 | public static var `default` = PUTRouteAction.save
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
140 | }
141 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:149:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
147 | case upsert
148 | /// Default save strategy.
149 | public static var `default` = SaveMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
150 | }
151 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:161:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
159 | case update
160 | /// Default update strategy.
161 | public static var `default` = UpdateMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
162 | }
163 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:91:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
89 | else {
90 | routes.put("update", use: update)
91 | routes.put(["update", ":id"], use: update)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
92 | }
93 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:100:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
98 | }
99 | else {
100 | routes.put(["update", "batch"], use: updateBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
101 | }
102 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:111:50: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
109 | else {
110 | routes.put("save", use: save)
111 | routes.put(["save", ":id"], use: save)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
112 | }
113 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:120:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
118 | }
119 | else {
120 | routes.put(["save", "batch"], use: saveBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
121 | }
122 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:89:30: warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
87 | let searchPath = path + ["search"]
88 | routes.get(searchPath.pathComponents) { request in
89 | return try await childController.search(on: request)
| `- warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
90 | }
91 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:231:34: warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
229 | try await siblingRelationship.replace(with: siblingEntities, on: database)
230 | let query = siblingRelationship.query(on: request.db)
231 | return try await siblingController.executeRead(query: query, on: request)
| `- warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
232 | }
233 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:45:23: warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | public class LogMiddleware: AsyncMiddleware {
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
| |- warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailLevel' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailLevel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Specific elements to include when using detailed logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:48:23: warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | /// Specific elements to include when using detailed logging
48 | public static var detailElements = Set(NetworkLoggerDetailElement.allCases)
| |- warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailElements' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailElements' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// HTTP methods to exclude from logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:51:23: warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | /// HTTP methods to exclude from logging
51 | public static var omittedMethods: [HTTPMethod]?
| |- warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'omittedMethods' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'omittedMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | /// Whether to URL decode paths before logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:54:23: warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |
53 | /// Whether to URL decode paths before logging
54 | public static var decodeURLPaths: Bool = true
| |- warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'decodeURLPaths' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'decodeURLPaths' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 | /// A closure type that determines whether a request should be logged
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:43:14: warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
41 | /// }
42 | /// ```
43 | public class LogMiddleware: AsyncMiddleware {
| `- warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:60:17: warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
58 |
59 | /// Collection of filters that determine which requests get logged
60 | private var requestFilters: [RequestFilter] = []
| `- warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
61 |
62 | /// Creates a new LogMiddleware instance
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:127:39: warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | func restore(on database: Database, transaction: Bool) async throws -> Self {
126 | if transaction {
127 | return try await database.transaction { transaction in
| `- warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | try await restore(on: transaction)
129 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:128:27: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
126 | if transaction {
127 | return try await database.transaction { transaction in
128 | try await restore(on: transaction)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
129 | }
130 | } else {
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:69:35: warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
48 | /// - Throws: Any database errors that occur during the operations
49 | @discardableResult
50 | func performBatch<Input: Collection, Output>(
| `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
51 | action: @escaping AsyncBatchAction<Input.Element, Output>,
52 | on resources: Input,
:
67 |
68 | if transaction {
69 | return try await self.transaction { db in
| `- warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
70 | try await batchOperation(db)
71 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:70:27: warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' in a '@Sendable' closure; this is an error in the Swift 6 language mode
68 | if transaction {
69 | return try await self.transaction { db in
70 | try await batchOperation(db)
| |- warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' 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'
71 | }
72 | } else {
[2872/2875] Compiling FluentExtensions ModelCollections+Transactions.swift
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:139:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
137 | case save
138 | /// Default strategy for PUT requests.
139 | public static var `default` = PUTRouteAction.save
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
140 | }
141 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:149:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
147 | case upsert
148 | /// Default save strategy.
149 | public static var `default` = SaveMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
150 | }
151 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:161:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
159 | case update
160 | /// Default update strategy.
161 | public static var `default` = UpdateMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
162 | }
163 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:91:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
89 | else {
90 | routes.put("update", use: update)
91 | routes.put(["update", ":id"], use: update)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
92 | }
93 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:100:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
98 | }
99 | else {
100 | routes.put(["update", "batch"], use: updateBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
101 | }
102 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:111:50: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
109 | else {
110 | routes.put("save", use: save)
111 | routes.put(["save", ":id"], use: save)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
112 | }
113 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:120:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
118 | }
119 | else {
120 | routes.put(["save", "batch"], use: saveBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
121 | }
122 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:89:30: warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
87 | let searchPath = path + ["search"]
88 | routes.get(searchPath.pathComponents) { request in
89 | return try await childController.search(on: request)
| `- warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
90 | }
91 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:231:34: warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
229 | try await siblingRelationship.replace(with: siblingEntities, on: database)
230 | let query = siblingRelationship.query(on: request.db)
231 | return try await siblingController.executeRead(query: query, on: request)
| `- warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
232 | }
233 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:45:23: warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | public class LogMiddleware: AsyncMiddleware {
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
| |- warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailLevel' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailLevel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Specific elements to include when using detailed logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:48:23: warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | /// Specific elements to include when using detailed logging
48 | public static var detailElements = Set(NetworkLoggerDetailElement.allCases)
| |- warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailElements' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailElements' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// HTTP methods to exclude from logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:51:23: warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | /// HTTP methods to exclude from logging
51 | public static var omittedMethods: [HTTPMethod]?
| |- warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'omittedMethods' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'omittedMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | /// Whether to URL decode paths before logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:54:23: warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |
53 | /// Whether to URL decode paths before logging
54 | public static var decodeURLPaths: Bool = true
| |- warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'decodeURLPaths' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'decodeURLPaths' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 | /// A closure type that determines whether a request should be logged
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:43:14: warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
41 | /// }
42 | /// ```
43 | public class LogMiddleware: AsyncMiddleware {
| `- warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:60:17: warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
58 |
59 | /// Collection of filters that determine which requests get logged
60 | private var requestFilters: [RequestFilter] = []
| `- warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
61 |
62 | /// Creates a new LogMiddleware instance
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:127:39: warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | func restore(on database: Database, transaction: Bool) async throws -> Self {
126 | if transaction {
127 | return try await database.transaction { transaction in
| `- warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | try await restore(on: transaction)
129 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:128:27: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
126 | if transaction {
127 | return try await database.transaction { transaction in
128 | try await restore(on: transaction)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
129 | }
130 | } else {
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:69:35: warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
48 | /// - Throws: Any database errors that occur during the operations
49 | @discardableResult
50 | func performBatch<Input: Collection, Output>(
| `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
51 | action: @escaping AsyncBatchAction<Input.Element, Output>,
52 | on resources: Input,
:
67 |
68 | if transaction {
69 | return try await self.transaction { db in
| `- warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
70 | try await batchOperation(db)
71 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:70:27: warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' in a '@Sendable' closure; this is an error in the Swift 6 language mode
68 | if transaction {
69 | return try await self.transaction { db in
70 | try await batchOperation(db)
| |- warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' 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'
71 | }
72 | } else {
[2873/2875] Compiling FluentExtensions IDProperty+String.swift
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:139:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
137 | case save
138 | /// Default strategy for PUT requests.
139 | public static var `default` = PUTRouteAction.save
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
140 | }
141 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:149:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
147 | case upsert
148 | /// Default save strategy.
149 | public static var `default` = SaveMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
150 | }
151 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:161:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
159 | case update
160 | /// Default update strategy.
161 | public static var `default` = UpdateMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
162 | }
163 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:91:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
89 | else {
90 | routes.put("update", use: update)
91 | routes.put(["update", ":id"], use: update)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
92 | }
93 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:100:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
98 | }
99 | else {
100 | routes.put(["update", "batch"], use: updateBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
101 | }
102 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:111:50: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
109 | else {
110 | routes.put("save", use: save)
111 | routes.put(["save", ":id"], use: save)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
112 | }
113 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:120:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
118 | }
119 | else {
120 | routes.put(["save", "batch"], use: saveBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
121 | }
122 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:89:30: warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
87 | let searchPath = path + ["search"]
88 | routes.get(searchPath.pathComponents) { request in
89 | return try await childController.search(on: request)
| `- warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
90 | }
91 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:231:34: warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
229 | try await siblingRelationship.replace(with: siblingEntities, on: database)
230 | let query = siblingRelationship.query(on: request.db)
231 | return try await siblingController.executeRead(query: query, on: request)
| `- warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
232 | }
233 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:45:23: warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | public class LogMiddleware: AsyncMiddleware {
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
| |- warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailLevel' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailLevel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Specific elements to include when using detailed logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:48:23: warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | /// Specific elements to include when using detailed logging
48 | public static var detailElements = Set(NetworkLoggerDetailElement.allCases)
| |- warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailElements' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailElements' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// HTTP methods to exclude from logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:51:23: warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | /// HTTP methods to exclude from logging
51 | public static var omittedMethods: [HTTPMethod]?
| |- warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'omittedMethods' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'omittedMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | /// Whether to URL decode paths before logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:54:23: warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |
53 | /// Whether to URL decode paths before logging
54 | public static var decodeURLPaths: Bool = true
| |- warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'decodeURLPaths' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'decodeURLPaths' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 | /// A closure type that determines whether a request should be logged
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:43:14: warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
41 | /// }
42 | /// ```
43 | public class LogMiddleware: AsyncMiddleware {
| `- warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:60:17: warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
58 |
59 | /// Collection of filters that determine which requests get logged
60 | private var requestFilters: [RequestFilter] = []
| `- warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
61 |
62 | /// Creates a new LogMiddleware instance
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:127:39: warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | func restore(on database: Database, transaction: Bool) async throws -> Self {
126 | if transaction {
127 | return try await database.transaction { transaction in
| `- warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | try await restore(on: transaction)
129 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:128:27: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
126 | if transaction {
127 | return try await database.transaction { transaction in
128 | try await restore(on: transaction)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
129 | }
130 | } else {
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:69:35: warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
48 | /// - Throws: Any database errors that occur during the operations
49 | @discardableResult
50 | func performBatch<Input: Collection, Output>(
| `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
51 | action: @escaping AsyncBatchAction<Input.Element, Output>,
52 | on resources: Input,
:
67 |
68 | if transaction {
69 | return try await self.transaction { db in
| `- warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
70 | try await batchOperation(db)
71 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:70:27: warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' in a '@Sendable' closure; this is an error in the Swift 6 language mode
68 | if transaction {
69 | return try await self.transaction { db in
70 | try await batchOperation(db)
| |- warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' 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'
71 | }
72 | } else {
[2874/2875] Compiling FluentExtensions KeypathTypealiases.swift
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:139:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
137 | case save
138 | /// Default strategy for PUT requests.
139 | public static var `default` = PUTRouteAction.save
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
140 | }
141 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:149:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
147 | case upsert
148 | /// Default save strategy.
149 | public static var `default` = SaveMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
150 | }
151 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:161:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
159 | case update
160 | /// Default update strategy.
161 | public static var `default` = UpdateMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
162 | }
163 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:91:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
89 | else {
90 | routes.put("update", use: update)
91 | routes.put(["update", ":id"], use: update)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
92 | }
93 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:100:54: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
98 | }
99 | else {
100 | routes.put(["update", "batch"], use: updateBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
101 | }
102 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:111:50: warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
109 | else {
110 | routes.put("save", use: save)
111 | routes.put(["save", ":id"], use: save)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> Read' may introduce data races
112 | }
113 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller.swift:120:52: warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
118 | }
119 | else {
120 | routes.put(["save", "batch"], use: saveBatch)
| `- warning: converting non-sendable function value to '@Sendable (Request) async throws -> [Read]' may introduce data races
121 | }
122 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:89:30: warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
87 | let searchPath = path + ["search"]
88 | routes.get(searchPath.pathComponents) { request in
89 | return try await childController.search(on: request)
| `- warning: capture of 'childController' with non-sendable type 'FluentController<C, CC, CR, CU>' in a '@Sendable' closure
90 | }
91 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentAdminController.swift:231:34: warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
229 | try await siblingRelationship.replace(with: siblingEntities, on: database)
230 | let query = siblingRelationship.query(on: request.db)
231 | return try await siblingController.executeRead(query: query, on: request)
| `- warning: capture of 'siblingController' with non-sendable type 'FluentController<S, SC, SR, SU>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
232 | }
233 | }
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/FluentController.swift:22:12: note: generic class 'FluentController' does not conform to the 'Sendable' protocol
20 | public typealias FluentResourceModel = Fluent.Model & ResourceModel & Paginatable
21 |
22 | open class FluentController<Model: FluentResourceModel,
| `- note: generic class 'FluentController' does not conform to the 'Sendable' protocol
23 | Create: CreateModel,
24 | Read: ReadModel,
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:45:23: warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | public class LogMiddleware: AsyncMiddleware {
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
| |- warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailLevel' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailLevel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Specific elements to include when using detailed logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:48:23: warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | /// Specific elements to include when using detailed logging
48 | public static var detailElements = Set(NetworkLoggerDetailElement.allCases)
| |- warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailElements' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailElements' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// HTTP methods to exclude from logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:51:23: warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | /// HTTP methods to exclude from logging
51 | public static var omittedMethods: [HTTPMethod]?
| |- warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'omittedMethods' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'omittedMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | /// Whether to URL decode paths before logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:54:23: warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |
53 | /// Whether to URL decode paths before logging
54 | public static var decodeURLPaths: Bool = true
| |- warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'decodeURLPaths' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'decodeURLPaths' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 | /// A closure type that determines whether a request should be logged
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:43:14: warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
41 | /// }
42 | /// ```
43 | public class LogMiddleware: AsyncMiddleware {
| `- warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:60:17: warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
58 |
59 | /// Collection of filters that determine which requests get logged
60 | private var requestFilters: [RequestFilter] = []
| `- warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
61 |
62 | /// Creates a new LogMiddleware instance
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:127:39: warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | func restore(on database: Database, transaction: Bool) async throws -> Self {
126 | if transaction {
127 | return try await database.transaction { transaction in
| `- warning: type 'Self' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | try await restore(on: transaction)
129 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollection+ExtendedActions.swift:128:27: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
126 | if transaction {
127 | return try await database.transaction { transaction in
128 | try await restore(on: transaction)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure; this is an error in the Swift 6 language mode
129 | }
130 | } else {
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:69:35: warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
48 | /// - Throws: Any database errors that occur during the operations
49 | @discardableResult
50 | func performBatch<Input: Collection, Output>(
| `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
51 | action: @escaping AsyncBatchAction<Input.Element, Output>,
52 | on resources: Input,
:
67 |
68 | if transaction {
69 | return try await self.transaction { db in
| `- warning: type 'Output' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
70 | try await batchOperation(db)
71 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Model++/CRUD/ModelCollections+Transactions.swift:70:27: warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' in a '@Sendable' closure; this is an error in the Swift 6 language mode
68 | if transaction {
69 | return try await self.transaction { db in
70 | try await batchOperation(db)
| |- warning: capture of 'batchOperation' with non-sendable type '(any Database) async throws -> [Output]' 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'
71 | }
72 | } else {
[2875/2875] Emitting module FluentExtensions
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:139:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
137 | case save
138 | /// Default strategy for PUT requests.
139 | public static var `default` = PUTRouteAction.save
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
140 | }
141 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:149:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
147 | case upsert
148 | /// Default save strategy.
149 | public static var `default` = SaveMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
150 | }
151 |
/host/spi-builder-workspace/Sources/FluentExtensions/APIController/Controller+Config.swift:161:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
159 | case update
160 | /// Default update strategy.
161 | public static var `default` = UpdateMethod.upsert
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
162 | }
163 |
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:45:23: warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | public class LogMiddleware: AsyncMiddleware {
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
| |- warning: static property 'detailLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailLevel' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailLevel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Specific elements to include when using detailed logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:48:23: warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | /// Specific elements to include when using detailed logging
48 | public static var detailElements = Set(NetworkLoggerDetailElement.allCases)
| |- warning: static property 'detailElements' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'detailElements' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'detailElements' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// HTTP methods to exclude from logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:51:23: warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 |
50 | /// HTTP methods to exclude from logging
51 | public static var omittedMethods: [HTTPMethod]?
| |- warning: static property 'omittedMethods' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'omittedMethods' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'omittedMethods' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | /// Whether to URL decode paths before logging
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:54:23: warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 |
53 | /// Whether to URL decode paths before logging
54 | public static var decodeURLPaths: Bool = true
| |- warning: static property 'decodeURLPaths' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'decodeURLPaths' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'decodeURLPaths' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
56 | /// A closure type that determines whether a request should be logged
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:43:14: warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
41 | /// }
42 | /// ```
43 | public class LogMiddleware: AsyncMiddleware {
| `- warning: non-final class 'LogMiddleware' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
44 | /// The level of detail to include in logs
45 | static public var detailLevel: NetworkLoggerDetailLevel = .detailed
/host/spi-builder-workspace/Sources/FluentExtensions/Middleware/LogMiddleware.swift:60:17: warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
58 |
59 | /// Collection of filters that determine which requests get logged
60 | private var requestFilters: [RequestFilter] = []
| `- warning: stored property 'requestFilters' of 'Sendable'-conforming class 'LogMiddleware' is mutable; this is an error in the Swift 6 language mode
61 |
62 | /// Creates a new LogMiddleware instance
/host/spi-builder-workspace/Sources/FluentExtensions/Queries/Pagination/Paginatable.swift:13:27: warning: static property 'pageSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 | public class Defaults {
12 | /// The default number of items to display per page.
13 | public static var pageSize: Int = 10
| |- warning: static property 'pageSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'pageSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'pageSize' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | /// The maximum number of items allowed per page.
/host/spi-builder-workspace/Sources/FluentExtensions/Queries/Pagination/Paginatable.swift:17:27: warning: static property 'maxPageSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
15 | /// The maximum number of items allowed per page.
16 | /// - Note: Set to `nil` for no upper limit
17 | public static var maxPageSize: Int? = nil
| |- warning: static property 'maxPageSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'maxPageSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'maxPageSize' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | /// The query parameter key used to specify the current page number.
/host/spi-builder-workspace/Sources/FluentExtensions/Queries/Pagination/Paginatable.swift:20:27: warning: static property 'pageKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | /// The query parameter key used to specify the current page number.
20 | public static var pageKey = "page"
| |- warning: static property 'pageKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'pageKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'pageKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | /// The query parameter key used to specify items per page.
/host/spi-builder-workspace/Sources/FluentExtensions/Queries/Pagination/Paginatable.swift:23:27: warning: static property 'perPageKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 |
22 | /// The query parameter key used to specify items per page.
23 | public static var perPageKey = "per"
| |- warning: static property 'perPageKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'perPageKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'perPageKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | }
25 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Queries/QueryBuilder++/QueryBuilder+RangerFilterable.swift:167:16: warning: stored property 'query' of 'Sendable'-conforming class 'MalformedRangeQueryError' is mutable; this is an error in the Swift 6 language mode
165 | /// Error thrown when a range query parameter is malformed
166 | public final class MalformedRangeQueryError: AbortError {
167 | public var query: String
| `- warning: stored property 'query' of 'Sendable'-conforming class 'MalformedRangeQueryError' is mutable; this is an error in the Swift 6 language mode
168 |
169 | public init(_ query: String) {
/host/spi-builder-workspace/Sources/FluentExtensions/Queries/QueryBuilder++/QueryBuilder+RangerFilterable.swift:271:35: warning: conformance of 'Date' to protocol 'Strideable' was already stated in the type's module 'FoundationEssentials'
269 |
270 |
271 | extension Date: /*@retroactive*/ Strideable {
| `- warning: conformance of 'Date' to protocol 'Strideable' was already stated in the type's module 'FoundationEssentials'
272 | public typealias Stride = TimeInterval
| `- note: type alias 'Stride' will not be used to satisfy the conformance to 'Strideable'
273 |
274 | public func distance(to other: Date) -> TimeInterval {
| `- note: instance method 'distance(to:)' will not be used to satisfy the conformance to 'Strideable'
275 | return other.timeIntervalSince(self)
276 | }
277 |
278 | public func advanced(by n: TimeInterval) -> Date {
| `- note: instance method 'advanced(by:)' will not be used to satisfy the conformance to 'Strideable'
279 | return addingTimeInterval(n)
280 | }
FoundationEssentials.Date:2:11: note: 'Date' declares conformance to protocol 'Strideable' here
1 | @available(macOS 13, iOS 16, tvOS 16, watchOS 9, *)
2 | extension Date : Strideable {
| `- note: 'Date' declares conformance to protocol 'Strideable' here
3 | }
/host/spi-builder-workspace/Sources/FluentExtensions/Relationships/PivotEntity.swift:7:23: warning: static property 'defaultFromIDField' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
5 | public class PivotEntityDefaults {
6 | /// Default field name for the "from" relationship ID
7 | public static var defaultFromIDField: String = "fromID"
| |- warning: static property 'defaultFromIDField' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultFromIDField' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultFromIDField' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | /// Default field name for the "to" relationship ID
9 | public static var defaultToIDField: String = "toID"
/host/spi-builder-workspace/Sources/FluentExtensions/Relationships/PivotEntity.swift:9:23: warning: static property 'defaultToIDField' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
7 | public static var defaultFromIDField: String = "fromID"
8 | /// Default field name for the "to" relationship ID
9 | public static var defaultToIDField: String = "toID"
| |- warning: static property 'defaultToIDField' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultToIDField' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultToIDField' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | }
11 |
/host/spi-builder-workspace/Sources/FluentExtensions/Relationships/PivotEntity.swift:25:16: warning: stored property '_id' of 'Sendable'-conforming generic class 'PivotEntity' is mutable; this is an error in the Swift 6 language mode
23 | /// The unique identifier for the pivot entity
24 | @ID(key: .id)
25 | public var id: UUID?
| `- warning: stored property '_id' of 'Sendable'-conforming generic class 'PivotEntity' is mutable; this is an error in the Swift 6 language mode
26 |
27 | /// The relationship to the "from" model
/host/spi-builder-workspace/Sources/FluentExtensions/Relationships/SelfSiblings/SelfSiblingProperty.swift:31:9: warning: stored property 'idValue' of 'Sendable'-conforming generic class 'SelfSiblingsProperty' is mutable; this is an error in the Swift 6 language mode
29 | public let from: KeyPath<Through, Through.Parent<M>>
30 | public let to: KeyPath<Through, Through.Parent<M>>
31 | var idValue: M.IDValue?
| `- warning: stored property 'idValue' of 'Sendable'-conforming generic class 'SelfSiblingsProperty' is mutable; this is an error in the Swift 6 language mode
32 |
33 | public var value: [M]?
/host/spi-builder-workspace/Sources/FluentExtensions/SQLKit++/+SQLExpression/KeyPath+SQLColumn.swift:35:1: warning: extension declares a conformance of imported type 'KeyPath' to imported protocol 'SQLExpression'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
33 | ///
34 | /// This allows KeyPaths to be used directly in SQL expressions without explicit conversion
35 | extension KeyPath: /*@retroactive*/ SQLExpression where Root: Model, Value: QueryableProperty {
| |- warning: extension declares a conformance of imported type 'KeyPath' to imported protocol 'SQLExpression'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
36 | /// Serializes the KeyPath as a SQL expression
37 | /// - Parameter serializer: The SQL serializer to write to
/host/spi-builder-workspace/Sources/FluentExtensions/SQLKit++/+SQLExpression/Literals+SQLExpression.swift:21:1: warning: extension declares a conformance of imported type 'Bool' to imported protocol 'SQLExpression'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
19 | /// This extension allows boolean values to be used directly in SQL expressions without manual conversion.
20 | /// The boolean will be serialized using `SQLLiteral.boolean`.
21 | extension Bool: /*@retroactive*/ SQLExpression {
| |- warning: extension declares a conformance of imported type 'Bool' to imported protocol 'SQLExpression'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
22 | public func serialize(to serializer: inout SQLSerializer) {
23 | SQLLiteral.boolean(self).serialize(to: &serializer)
/host/spi-builder-workspace/Sources/FluentExtensions/SQLKit++/+SQLExpression/Literals+SQLExpression.swift:31:1: warning: extension declares a conformance of imported type 'Int' to imported protocol 'SQLExpression'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
29 | /// This extension allows integer values to be used directly in SQL expressions without manual conversion.
30 | /// The integer will be serialized as a numeric literal.
31 | extension Int: /*@retroactive*/ SQLExpression {
| |- warning: extension declares a conformance of imported type 'Int' to imported protocol 'SQLExpression'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
32 | public func serialize(to serializer: inout SQLSerializer) {
33 | SQLLiteral.numeric("\(self)").serialize(to: &serializer)
/host/spi-builder-workspace/Sources/FluentExtensions/SQLKit++/+SQLExpression/Literals+SQLExpression.swift:41:1: warning: extension declares a conformance of imported type 'Double' to imported protocol 'SQLExpression'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
39 | /// This extension allows floating-point values to be used directly in SQL expressions without manual conversion.
40 | /// The double will be serialized as a numeric literal.
41 | extension Double: /*@retroactive*/ SQLExpression {
| |- warning: extension declares a conformance of imported type 'Double' to imported protocol 'SQLExpression'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
42 | public func serialize(to serializer: inout SQLSerializer) {
43 | SQLLiteral.numeric("\(self)").serialize(to: &serializer)
/host/spi-builder-workspace/Sources/FluentExtensions/Schema++/SchemaReflectable/SchemaBuilder+Reflection.swift:79:16: warning: static property 'reflectionBuilder' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
77 | /// Default reflection builder that converts ReflectedSchemaProperty instances to FieldKeys.
78 | /// This is used as the default field key builder in schema reflection methods.
79 | static var reflectionBuilder: (ReflectedSchemaProperty) -> FieldKey = { property in
| |- warning: static property 'reflectionBuilder' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'reflectionBuilder' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'reflectionBuilder' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
80 | return property.fieldKey
81 | }
[2877/2881] Compiling FluentTestUtils Exports.swift
[2878/2881] Emitting module FluentTestUtils
[2879/2881] Compiling FluentTestUtils XCTApplicationTester+Response.swift
[2880/2881] Compiling FluentTestUtils FluentXCTAssertions.swift
[2881/2881] Compiling FluentTestUtils FluentTestCase.swift
[2883/2892] Compiling FluentTestModels TestUserModel.swift
[2884/2893] Compiling FluentTestModels TestFriendshipModel.swift
[2885/2893] Compiling FluentTestModels TestClassModel.swift
[2886/2893] Compiling FluentTestModels TestEnrollmentModel.swift
[2887/2893] Compiling FluentTestModels TestStudentModel.swift
[2888/2893] Compiling FluentTestModels TestModel.swift
[2889/2893] Compiling FluentTestModels TestChildModel.swift
[2890/2893] Compiling FluentTestModels TestParentModel.swift
[2891/2893] Emitting module FluentTestModels
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:104:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
102 | //MARK: Enum Fields
103 |
104 | @Enum(key: .stringEnum)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
105 | public var stringEnum: TestStringEnum
106 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:107:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
105 | public var stringEnum: TestStringEnum
106 |
107 | @OptionalEnum(key: .optionalStringEnum)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 | public var optionalStringEnum: TestStringEnum?
109 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:110:6: warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 | public var optionalStringEnum: TestStringEnum?
109 |
110 | @Field(key: .rawStringEnum)
| `- warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 | public var rawStringEnum: TestRawStringEnum
112 |
:
239 | }
240 |
241 | public enum TestRawStringEnum: String, Codable, CaseIterable {
| `- note: consider making enum 'TestRawStringEnum' conform to the 'Sendable' protocol
242 | case case1
243 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:113:6: warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 | public var rawStringEnum: TestRawStringEnum
112 |
113 | @OptionalField(key: .optionalRawStringEnum)
| `- warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
114 | public var optionalRawStringEnum: TestRawStringEnum?
115 |
:
239 | }
240 |
241 | public enum TestRawStringEnum: String, Codable, CaseIterable {
| `- note: consider making enum 'TestRawStringEnum' conform to the 'Sendable' protocol
242 | case case1
243 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:116:6: warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
114 | public var optionalRawStringEnum: TestRawStringEnum?
115 |
116 | @Field(key: .rawIntEnum)
| `- warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
117 | public var rawIntEnum: TestRawIntEnum
118 |
:
245 | }
246 |
247 | public enum TestRawIntEnum: Int, Codable, CaseIterable {
| `- note: consider making enum 'TestRawIntEnum' conform to the 'Sendable' protocol
248 | case case1
249 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:119:6: warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
117 | public var rawIntEnum: TestRawIntEnum
118 |
119 | @OptionalField(key: .optionalRawIntEnum)
| `- warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
120 | public var optionalRawIntEnum: TestRawIntEnum?
121 |
:
245 | }
246 |
247 | public enum TestRawIntEnum: Int, Codable, CaseIterable {
| `- note: consider making enum 'TestRawIntEnum' conform to the 'Sendable' protocol
248 | case case1
249 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:124:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
122 | //MARK: Enum Collection Fields
123 |
124 | @Field(key: .stringEnumArray)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | public var stringEnumArray: [TestStringEnum]
126 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:127:6: warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | public var stringEnumArray: [TestStringEnum]
126 |
127 | @Field(key: .rawStringEnumArray)
| `- warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | public var rawStringEnumArray: [TestRawStringEnum]
129 |
:
239 | }
240 |
241 | public enum TestRawStringEnum: String, Codable, CaseIterable {
| `- note: consider making enum 'TestRawStringEnum' conform to the 'Sendable' protocol
242 | case case1
243 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:130:6: warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | public var rawStringEnumArray: [TestRawStringEnum]
129 |
130 | @Field(key: .rawIntEnumArray)
| `- warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
131 | public var rawIntEnumArray: [TestRawIntEnum]
132 |
:
245 | }
246 |
247 | public enum TestRawIntEnum: Int, Codable, CaseIterable {
| `- note: consider making enum 'TestRawIntEnum' conform to the 'Sendable' protocol
248 | case case1
249 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:141:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
139 | public var intDictionary: [String: Int]
140 |
141 | @Field(key: .enumDictionary)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
142 | public var enumDictionary: [String: TestStringEnum]
143 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
[2892/2893] Compiling FluentTestModels FluentTestModelsTestCase.swift
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:104:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
102 | //MARK: Enum Fields
103 |
104 | @Enum(key: .stringEnum)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
105 | public var stringEnum: TestStringEnum
106 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:107:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
105 | public var stringEnum: TestStringEnum
106 |
107 | @OptionalEnum(key: .optionalStringEnum)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 | public var optionalStringEnum: TestStringEnum?
109 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:110:6: warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 | public var optionalStringEnum: TestStringEnum?
109 |
110 | @Field(key: .rawStringEnum)
| `- warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 | public var rawStringEnum: TestRawStringEnum
112 |
:
239 | }
240 |
241 | public enum TestRawStringEnum: String, Codable, CaseIterable {
| `- note: consider making enum 'TestRawStringEnum' conform to the 'Sendable' protocol
242 | case case1
243 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:113:6: warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 | public var rawStringEnum: TestRawStringEnum
112 |
113 | @OptionalField(key: .optionalRawStringEnum)
| `- warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
114 | public var optionalRawStringEnum: TestRawStringEnum?
115 |
:
239 | }
240 |
241 | public enum TestRawStringEnum: String, Codable, CaseIterable {
| `- note: consider making enum 'TestRawStringEnum' conform to the 'Sendable' protocol
242 | case case1
243 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:116:6: warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
114 | public var optionalRawStringEnum: TestRawStringEnum?
115 |
116 | @Field(key: .rawIntEnum)
| `- warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
117 | public var rawIntEnum: TestRawIntEnum
118 |
:
245 | }
246 |
247 | public enum TestRawIntEnum: Int, Codable, CaseIterable {
| `- note: consider making enum 'TestRawIntEnum' conform to the 'Sendable' protocol
248 | case case1
249 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:119:6: warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
117 | public var rawIntEnum: TestRawIntEnum
118 |
119 | @OptionalField(key: .optionalRawIntEnum)
| `- warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
120 | public var optionalRawIntEnum: TestRawIntEnum?
121 |
:
245 | }
246 |
247 | public enum TestRawIntEnum: Int, Codable, CaseIterable {
| `- note: consider making enum 'TestRawIntEnum' conform to the 'Sendable' protocol
248 | case case1
249 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:124:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
122 | //MARK: Enum Collection Fields
123 |
124 | @Field(key: .stringEnumArray)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | public var stringEnumArray: [TestStringEnum]
126 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:127:6: warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | public var stringEnumArray: [TestStringEnum]
126 |
127 | @Field(key: .rawStringEnumArray)
| `- warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | public var rawStringEnumArray: [TestRawStringEnum]
129 |
:
239 | }
240 |
241 | public enum TestRawStringEnum: String, Codable, CaseIterable {
| `- note: consider making enum 'TestRawStringEnum' conform to the 'Sendable' protocol
242 | case case1
243 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:130:6: warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | public var rawStringEnumArray: [TestRawStringEnum]
129 |
130 | @Field(key: .rawIntEnumArray)
| `- warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
131 | public var rawIntEnumArray: [TestRawIntEnum]
132 |
:
245 | }
246 |
247 | public enum TestRawIntEnum: Int, Codable, CaseIterable {
| `- note: consider making enum 'TestRawIntEnum' conform to the 'Sendable' protocol
248 | case case1
249 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:141:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
139 | public var intDictionary: [String: Int]
140 |
141 | @Field(key: .enumDictionary)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
142 | public var enumDictionary: [String: TestStringEnum]
143 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
[2893/2893] Compiling FluentTestModels KitchenSink.swift
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:104:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
102 | //MARK: Enum Fields
103 |
104 | @Enum(key: .stringEnum)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
105 | public var stringEnum: TestStringEnum
106 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:107:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
105 | public var stringEnum: TestStringEnum
106 |
107 | @OptionalEnum(key: .optionalStringEnum)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 | public var optionalStringEnum: TestStringEnum?
109 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:110:6: warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 | public var optionalStringEnum: TestStringEnum?
109 |
110 | @Field(key: .rawStringEnum)
| `- warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 | public var rawStringEnum: TestRawStringEnum
112 |
:
239 | }
240 |
241 | public enum TestRawStringEnum: String, Codable, CaseIterable {
| `- note: consider making enum 'TestRawStringEnum' conform to the 'Sendable' protocol
242 | case case1
243 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:113:6: warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 | public var rawStringEnum: TestRawStringEnum
112 |
113 | @OptionalField(key: .optionalRawStringEnum)
| `- warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
114 | public var optionalRawStringEnum: TestRawStringEnum?
115 |
:
239 | }
240 |
241 | public enum TestRawStringEnum: String, Codable, CaseIterable {
| `- note: consider making enum 'TestRawStringEnum' conform to the 'Sendable' protocol
242 | case case1
243 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:116:6: warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
114 | public var optionalRawStringEnum: TestRawStringEnum?
115 |
116 | @Field(key: .rawIntEnum)
| `- warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
117 | public var rawIntEnum: TestRawIntEnum
118 |
:
245 | }
246 |
247 | public enum TestRawIntEnum: Int, Codable, CaseIterable {
| `- note: consider making enum 'TestRawIntEnum' conform to the 'Sendable' protocol
248 | case case1
249 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:119:6: warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
117 | public var rawIntEnum: TestRawIntEnum
118 |
119 | @OptionalField(key: .optionalRawIntEnum)
| `- warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
120 | public var optionalRawIntEnum: TestRawIntEnum?
121 |
:
245 | }
246 |
247 | public enum TestRawIntEnum: Int, Codable, CaseIterable {
| `- note: consider making enum 'TestRawIntEnum' conform to the 'Sendable' protocol
248 | case case1
249 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:124:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
122 | //MARK: Enum Collection Fields
123 |
124 | @Field(key: .stringEnumArray)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | public var stringEnumArray: [TestStringEnum]
126 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:127:6: warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 | public var stringEnumArray: [TestStringEnum]
126 |
127 | @Field(key: .rawStringEnumArray)
| `- warning: type 'TestRawStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | public var rawStringEnumArray: [TestRawStringEnum]
129 |
:
239 | }
240 |
241 | public enum TestRawStringEnum: String, Codable, CaseIterable {
| `- note: consider making enum 'TestRawStringEnum' conform to the 'Sendable' protocol
242 | case case1
243 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:130:6: warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
128 | public var rawStringEnumArray: [TestRawStringEnum]
129 |
130 | @Field(key: .rawIntEnumArray)
| `- warning: type 'TestRawIntEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
131 | public var rawIntEnumArray: [TestRawIntEnum]
132 |
:
245 | }
246 |
247 | public enum TestRawIntEnum: Int, Codable, CaseIterable {
| `- note: consider making enum 'TestRawIntEnum' conform to the 'Sendable' protocol
248 | case case1
249 | case case2
/host/spi-builder-workspace/Sources/FluentTestModels/TestModels/KitchenSink.swift:141:6: warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
139 | public var intDictionary: [String: Int]
140 |
141 | @Field(key: .enumDictionary)
| `- warning: type 'TestStringEnum' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
142 | public var enumDictionary: [String: TestStringEnum]
143 |
:
233 | }
234 |
235 | public enum TestStringEnum: String, Codable, RawRepresentable, CaseIterable {
| `- note: consider making enum 'TestStringEnum' conform to the 'Sendable' protocol
236 | case case1
237 | case case2
Build complete! (370.18s)
Build complete.
{
"dependencies" : [
{
"identity" : "vapor",
"requirement" : {
"range" : [
{
"lower_bound" : "4.0.0",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/vapor/vapor.git"
},
{
"identity" : "fluent",
"requirement" : {
"range" : [
{
"lower_bound" : "4.0.0",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/vapor/fluent.git"
},
{
"identity" : "fluent-kit",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/vapor/fluent-kit.git"
},
{
"identity" : "sql-kit",
"requirement" : {
"range" : [
{
"lower_bound" : "3.1.0",
"upper_bound" : "4.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/vapor/sql-kit.git"
},
{
"identity" : "fluent-sqlite-driver",
"requirement" : {
"range" : [
{
"lower_bound" : "4.0.0",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/vapor/fluent-sqlite-driver.git"
},
{
"identity" : "swiftest",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Appsaurus/Swiftest.git"
},
{
"identity" : "vaporextensions",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.1",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Appsaurus/VaporExtensions.git"
},
{
"identity" : "codableextensions",
"requirement" : {
"range" : [
{
"lower_bound" : "1.1.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Appsaurus/CodableExtensions"
},
{
"identity" : "runtimeextensions",
"requirement" : {
"exact" : [
"1.0.2"
]
},
"type" : "sourceControl",
"url" : "https://github.com/Appsaurus/RuntimeExtensions"
},
{
"identity" : "collectionconcurrencykit",
"requirement" : {
"exact" : [
"0.2.0"
]
},
"type" : "sourceControl",
"url" : "https://github.com/JohnSundell/CollectionConcurrencyKit"
},
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin"
}
],
"manifest_display_name" : "FluentExtensions",
"name" : "FluentExtensions",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "6.0"
}
],
"products" : [
{
"name" : "FluentExtensions",
"targets" : [
"FluentExtensions"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "FluentTestUtils",
"targets" : [
"FluentTestUtils"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "FluentTestModels",
"targets" : [
"FluentTestModels"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "FluentTestUtils",
"module_type" : "SwiftTarget",
"name" : "FluentTestUtils",
"path" : "Sources/FluentTestUtils",
"product_dependencies" : [
"Fluent",
"CodableExtensions",
"RuntimeExtensions",
"VaporExtensions",
"XCTVaporExtensions"
],
"product_memberships" : [
"FluentTestUtils",
"FluentTestModels"
],
"sources" : [
"Exports.swift",
"FluentTestCase.swift",
"FluentXCTAssertions.swift",
"XCTApplicationTester+Response.swift"
],
"target_dependencies" : [
"FluentExtensions"
],
"type" : "library"
},
{
"c99name" : "FluentTestModels",
"module_type" : "SwiftTarget",
"name" : "FluentTestModels",
"path" : "Sources/FluentTestModels",
"product_memberships" : [
"FluentTestModels"
],
"sources" : [
"FluentTestModelsTestCase.swift",
"TestModels/KitchenSink.swift",
"TestModels/ParentChildRelationship/TestChildModel.swift",
"TestModels/ParentChildRelationship/TestParentModel.swift",
"TestModels/SelfSiblingsRelationship/TestFriendshipModel.swift",
"TestModels/SelfSiblingsRelationship/TestUserModel.swift",
"TestModels/SiblingRelationship/TestClassModel.swift",
"TestModels/SiblingRelationship/TestEnrollmentModel.swift",
"TestModels/SiblingRelationship/TestStudentModel.swift",
"TestModels/TestModel.swift"
],
"target_dependencies" : [
"FluentTestUtils",
"FluentExtensions"
],
"type" : "library"
},
{
"c99name" : "FluentExtensionsTests",
"module_type" : "SwiftTarget",
"name" : "FluentExtensionsTests",
"path" : "Tests/FluentExtensionsTests",
"product_dependencies" : [
"FluentSQLiteDriver"
],
"sources" : [
"ControllerTests/FluentAdminControllerAccessControlTests.swift",
"ControllerTests/FluentAdminControllerCRUDTests.swift",
"ControllerTests/FluentAdminControllerChildrenTests.swift",
"ControllerTests/FluentAdminControllerPivotTests.swift",
"ControllerTests/FluentAdminControllerSearchTests.swift",
"ControllerTests/FluentAdminControllerSiblingsTests.swift",
"ControllerTests/FluentAdminControllerTests.swift",
"FlatQueryParameterFilterTests.swift",
"FluentExtensionsTests.swift",
"FluentTestModelsTests.swift",
"QueryParameterFilterPostgreSQLTests.swift",
"QueryParameterFilterTests.swift",
"QueryParameterNestedFilterTests.swift",
"QueryParameterNestedSiblingFilterTests.swift",
"QueryParameterTestSeeder.swift",
"ReflectableMigrationTests.swift",
"RoutesBuilderTests.swift",
"SQLKitExtensionTests.swift",
"TestCase+QueryParameterFilterTestUtils.swift"
],
"target_dependencies" : [
"FluentTestModels"
],
"type" : "test"
},
{
"c99name" : "FluentExtensions",
"module_type" : "SwiftTarget",
"name" : "FluentExtensions",
"path" : "Sources/FluentExtensions",
"product_dependencies" : [
"Vapor",
"Fluent",
"FluentSQL",
"SQLKit",
"Swiftest",
"VaporExtensions",
"CodableExtensions",
"RuntimeExtensions",
"CollectionConcurrencyKit"
],
"product_memberships" : [
"FluentExtensions",
"FluentTestUtils",
"FluentTestModels"
],
"sources" : [
"APIController/APIController.swift",
"APIController/APIModel.swift",
"APIController/Controller+Config.swift",
"APIController/Controller.swift",
"APIController/FluentAdminController.swift",
"APIController/FluentController.swift",
"Exports.swift",
"Middleware/LogMiddleware.swift",
"Model++/CRUD/Model+AsyncCRUD.swift",
"Model++/CRUD/Model+ExtendedActions.swift",
"Model++/CRUD/ModelCollection+CRUD.swift",
"Model++/CRUD/ModelCollection+ExtendedActions.swift",
"Model++/CRUD/ModelCollections+Transactions.swift",
"Model++/IDProperty+String.swift",
"Model++/KeypathTypealiases.swift",
"Model++/Model+CRUDPath.swift",
"Model++/Model+Existence.swift",
"Model++/Model+Find.swift",
"Model++/Model+GroupByQueries.swift",
"Model++/Model+IDKey.swift",
"Model++/Model+KeyPathUpdates.swift",
"Model++/Model+NextID.swift",
"Model++/Model+PatchUpdates.swift",
"Model++/Model+Query.swift",
"Model++/Model+Reflection.swift",
"Model++/Model+RequireIDs.swift",
"Model++/Model+Seeding.swift",
"Model++/Model+TableActions.swift",
"Model++/Protocols/Joinable.swift",
"Model++/Protocols/Timestampable.swift",
"Parameters++/Parameters+ModelResolution.swift",
"Queries/DatabaseQuery++.swift",
"Queries/Pagination/+QueryPaginating/QueryBuilder+QueryPaginating.swift",
"Queries/Pagination/+QueryPaginating/SQLRawBuilder+QueryPaginating.swift",
"Queries/Pagination/+QueryPaginating/SQLSelectBuilder+QueryPaginating.swift",
"Queries/Pagination/Model+Paginatable.swift",
"Queries/Pagination/Page+TransformData.swift",
"Queries/Pagination/Paginatable.swift",
"Queries/Pagination/QueryPaginating.swift",
"Queries/Pagination/URLQueryContainer+DecodePageRequest.swift",
"Queries/QueryBuilder++/QueryBuilder+AssertNone.swift",
"Queries/QueryBuilder++/QueryBuilder+Conversion.swift",
"Queries/QueryBuilder++/QueryBuilder+DuplicateJoins.swift",
"Queries/QueryBuilder++/QueryBuilder+EmptyResult.swift",
"Queries/QueryBuilder++/QueryBuilder+FilterSugar.swift",
"Queries/QueryBuilder++/QueryBuilder+GroupBuilder.swift",
"Queries/QueryBuilder++/QueryBuilder+GroupBy.swift",
"Queries/QueryBuilder++/QueryBuilder+GroupedFilters.swift",
"Queries/QueryBuilder++/QueryBuilder+KeyPathUpdates.swift",
"Queries/QueryBuilder++/QueryBuilder+KeyPathValues.swift",
"Queries/QueryBuilder++/QueryBuilder+Limit.swift",
"Queries/QueryBuilder++/QueryBuilder+Random.swift",
"Queries/QueryBuilder++/QueryBuilder+RangerFilterable.swift",
"Queries/QueryBuilder++/QueryBuilder+SiblingsFiltering.swift",
"Queries/QueryBuilder++/QueryBuilder+Sorts.swift",
"Queries/QueryBuilder++/QueryBuilder+Timestampable.swift",
"Queries/QueryBuilder++/QueryBuiler+FilteredJoins.swift",
"Relationships/ChildrenProperty++.swift",
"Relationships/PivotEntity.swift",
"Relationships/Relationships+LazyLoad.swift",
"Relationships/SelfSiblings/SelfSiblingProperty+EagerLoading.swift",
"Relationships/SelfSiblings/SelfSiblingProperty.swift",
"Relationships/SiblingsProperty++.swift",
"Relationships/SiblingsProperty+PivotEntity.swift",
"Request++/Request+DatabaseQueryParameters/DatabaseQuerySortDirection+StringInit.swift",
"Request++/Request+DatabaseQueryParameters/FlatQueryParametersFilter/FlatQueryParametersFilter.swift",
"Request++/Request+DatabaseQueryParameters/FlatQueryParametersFilter/SingleValueDecoder.swift",
"Request++/Request+DatabaseQueryParameters/QueryBuilder+QueryParameterFilters.swift",
"Request++/Request+DatabaseQueryParameters/QueryBuilder+QueryParameterSorts.swift",
"Request++/Request+DatabaseQueryParameters/QueryParameterFilter+Builder.swift",
"Request++/Request+DatabaseQueryParameters/QueryParameterFilter.swift",
"Request++/Request+DatabaseQueryParameters/QueryParemeterFilter+NestedFilters.swift",
"Request++/Request+DatabaseQueryParameters/Request+QueryParameterFilters.swift",
"Request++/Request+DatabaseQueryParameters/Search/QueryParameterSearchFilter.swift",
"RoutesBuilder++/RoutesBuilder+ModelParameter.swift",
"SQLKit++/+SQLExpression/KeyPath+SQLColumn.swift",
"SQLKit++/+SQLExpression/Literals+SQLExpression.swift",
"SQLKit++/Database++/Database+SQL.swift",
"SQLKit++/Database++/Database+TransactionThrowing.swift",
"SQLKit++/SQLExpression++/SQLExpression+Alias.swift",
"SQLKit++/SQLExpressions/SQLAll.swift",
"SQLKit++/SQLExpressions/SQLAny.swift",
"SQLKit++/SQLExpressions/SQLCase.swift",
"SQLKit++/SQLExpressions/SQLCast.swift",
"SQLKit++/SQLExpressions/SQLCoalesce.swift",
"SQLKit++/SQLExpressions/SQLCount.swift",
"SQLKit++/SQLExpressions/SQLSum.swift",
"SQLKit++/SQLExpressions/SQLUnion.swift",
"SQLKit++/SQLKit+LabeledValues.swift",
"SQLKit++/SQLPredicateBuilder++.swift",
"SQLKit++/SQLQueryFetcher++.swift",
"SQLKit++/SQLSelectBuilder++/SQLSelectBuilder+Join.swift",
"SQLKit++/SQLSelectBuilder++/SQLSelectBuilder+Model.swift",
"SQLKit++/SQLSelectBuilder++/SQLSelectBuilder+Sum.swift",
"Schema++/FieldKey+StringInit.swift",
"Schema++/KeyPathExtensions.swift",
"Schema++/Migratable.swift",
"Schema++/Model+DefaultSchema.swift",
"Schema++/PropertyInfo+FieldKey.swift",
"Schema++/Schema+SQLTable.swift",
"Schema++/SchemaBuilder++.swift",
"Schema++/SchemaReflectable/DatabaseSchemaDataType+Reflection.swift",
"Schema++/SchemaReflectable/DatabaseSchemaDataTypeProviding.swift",
"Schema++/SchemaReflectable/Enums/EnumCollectionSchemaReflectable.swift",
"Schema++/SchemaReflectable/Enums/EnumSchemaReflectable.swift",
"Schema++/SchemaReflectable/Fields+ReflectedProperties.swift",
"Schema++/SchemaReflectable/Migrations/AutoMigration.swift",
"Schema++/SchemaReflectable/Migrations/ReflectionMigration.swift",
"Schema++/SchemaReflectable/SchemaBuilder+Reflection.swift",
"Schema++/SchemaReflectable/SchemaReflectable.swift",
"Util/Date+StringInferredInitializer.swift",
"Util/FoundationExtensions.swift",
"Util/Mirror+Properties.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
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.