The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of RediStack, reference 1.6.2 (622ce4), with Swift 6.0 for Linux on 28 Nov 2024 15:38:39 UTC.

Swift 6 data race errors: 9

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1

Build Log

154 |             }
155 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:162:30: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
160 |             return self._leaseConnection(deadline, logger: logger)
161 |         } else {
162 |             return self.loop.flatSubmit {
    |                              `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
163 |                 return self._leaseConnection(deadline, logger: logger)
164 |             }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:163:24: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
161 |         } else {
162 |             return self.loop.flatSubmit {
163 |                 return self._leaseConnection(deadline, logger: logger)
    |                        `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
164 |             }
165 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:173:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
171 |         } else {
172 |             return self.loop.execute {
173 |                 self._returnLeasedConnection(connection, logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
174 |             }
175 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:173:46: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
171 |         } else {
172 |             return self.loop.execute {
173 |                 self._returnLeasedConnection(connection, logger: logger)
    |                                              `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
174 |             }
175 |         }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:205:13: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
203 |
204 |         self.loop.scheduleTask(in: delay) {
205 |             self.connectionFactory(self.loop)
    |             `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 |                 .whenComplete { result in
207 |                     self.loop.preconditionInEventLoop()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:207:21: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
205 |             self.connectionFactory(self.loop)
206 |                 .whenComplete { result in
207 |                     self.loop.preconditionInEventLoop()
    |                     `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
208 |
209 |                     self.pendingConnectionCount -= 1
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:242:64: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
240 |             // Great, we want this. We'll be "returning" it to the pool. First,
241 |             // attach the close callback to it.
242 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |             self._returnConnection(connection, logger: logger)
244 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:242:90: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
240 |             // Great, we want this. We'll be "returning" it to the pool. First,
241 |             // attach the close callback to it.
242 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                                          `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |             self._returnConnection(connection, logger: logger)
244 |         }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:463:13: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
461 |     private func closeConnectionForShutdown(_ connection: RedisConnection) {
462 |         connection.close().whenComplete { _ in
463 |             self.loop.preconditionInEventLoop()
    |             `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
464 |
465 |             switch self.state {
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:477:55: warning: implicit capture of 'self' requires that 'ConnectionPool' conforms to `Sendable`; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
475 |                 // The state must not change if we are closing a connection, while we are
476 |                 // closing the pool.
477 |                 preconditionFailure("Invalid state: \(self.state)")
    |                                                       `- warning: implicit capture of 'self' requires that 'ConnectionPool' conforms to `Sendable`; this is an error in the Swift 6 language mode
478 |             }
479 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:527:70: warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
523 |         }
524 |
525 |         mutating func scheduleDeadline(loop: EventLoop, deadline: NIODeadline, _ onTimeout: @escaping () -> Void) {
    |                                                                                  `- note: parameter 'onTimeout' is implicitly non-sendable
526 |             assert(self.timeoutTask == nil)
527 |             self.timeoutTask = loop.scheduleTask(deadline: deadline, onTimeout)
    |                                                                      `- warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
528 |         }
529 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:532:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
530 |         func succeed(_ connection: RedisConnection) {
531 |             self.timeoutTask?.cancel()
532 |             self.result.succeed(connection)
    |                         `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
533 |         }
534 |
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:100:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
 98 |     public func activate(logger: Logger? = nil) {
 99 |         self.loop.execute {
100 |             self.pool?.activate(logger: self.prepareLoggerForUse(logger))
    |             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
101 |         }
102 |     }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:113:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
111 |     public func close(promise: EventLoopPromise<Void>? = nil, logger: Logger? = nil) {
112 |         self.loop.execute {
113 |             self.pool?.close(promise: promise, logger: self.prepareLoggerForUse(logger))
    |             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
114 |
115 |             self.pubsubConnection = nil
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:161:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
159 |
160 |                 return operation(connection)
161 |                     .always { _ in returnConnection(connection, context) }
    |                                    |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
162 |             },
163 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:161:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
159 |
160 |                 return operation(connection)
161 |                     .always { _ in returnConnection(connection, context) }
    |                                                     `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
162 |             },
163 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:192:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |             for request in unbufferedRequests {
192 |                 request.completeWith(self.connectionFactory(self.loop))
    |                         `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
193 |             }
194 |         }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:185:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
183 |
184 |         self.loop.execute {
185 |             self.serverConnectionAddresses.update(newAddresses)
    |             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
186 |
187 |             // Shiny, we can unbuffer any pending connections and pass them on as they now have somewhere to go.
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:242:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
240 |                 connection.allowSubscriptions = false
241 |                 connection.channel.closeFuture.whenComplete { _ in
242 |                     self.configuration.onUnexpectedConnectionClose?(connection)
    |                     `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |                 }
244 |                 return connection
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:242:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
240 |                 connection.allowSubscriptions = false
241 |                 connection.channel.closeFuture.whenComplete { _ in
242 |                     self.configuration.onUnexpectedConnectionClose?(connection)
    |                     `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |                 }
244 |                 return connection
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:242:69: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
240 |                 connection.allowSubscriptions = false
241 |                 connection.channel.closeFuture.whenComplete { _ in
242 |                     self.configuration.onUnexpectedConnectionClose?(connection)
    |                                                                     `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |                 }
244 |                 return connection
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:316:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
314 |                 return connection
315 |                     .send(command: command, with: arguments, logger: context)
316 |                     .always { _ in returnConnection(connection, context) }
    |                                    |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
317 |             },
318 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:316:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
314 |                 return connection
315 |                     .send(command: command, with: arguments, logger: context)
316 |                     .always { _ in returnConnection(connection, context) }
    |                                                     `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
317 |             },
318 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:420:29: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
418 |                         // a "no-op" unsub, so we need to return this connection
419 |                         guard
420 |                             self.pubsubConnection == nil,
    |                             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
421 |                             self.leasedConnectionCount > 0
422 |                         else { return }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:423:25: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
421 |                             self.leasedConnectionCount > 0
422 |                         else { return }
423 |                         returnConnection(connection, context)
    |                         |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
424 |                     }
425 |             },
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:423:42: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
421 |                             self.leasedConnectionCount > 0
422 |                         else { return }
423 |                         returnConnection(connection, context)
    |                                          `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
424 |                     }
425 |             },
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:439:30: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
430 |
431 |     @usableFromInline
432 |     internal func forwardOperationToConnection<T>(
    |                                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
433 |         _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
434 |         preferredConnection: RedisConnection?,
    :
437 |         // Establish event loop context then jump to the in-loop version.
438 |         guard self.loop.inEventLoop else {
439 |             return self.loop.flatSubmit {
    |                              `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
440 |                 return self.forwardOperationToConnection(
441 |                     operation,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:462:18: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
430 |
431 |     @usableFromInline
432 |     internal func forwardOperationToConnection<T>(
    |                                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
433 |         _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
434 |         preferredConnection: RedisConnection?,
    :
460 |                     logger: logger
461 |                 )
462 |                 .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
    |                  `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
463 |         }
464 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:440:24: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
438 |         guard self.loop.inEventLoop else {
439 |             return self.loop.flatSubmit {
440 |                 return self.forwardOperationToConnection(
    |                        `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
441 |                     operation,
442 |                     preferredConnection: preferredConnection,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:441:21: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
439 |             return self.loop.flatSubmit {
440 |                 return self.forwardOperationToConnection(
441 |                     operation,
    |                     |- warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' 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'
442 |                     preferredConnection: preferredConnection,
443 |                     context: context
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:442:42: warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |                 return self.forwardOperationToConnection(
441 |                     operation,
442 |                     preferredConnection: preferredConnection,
    |                                          `- warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                     context: context
444 |                 )
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:462:28: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
460 |                     logger: logger
461 |                 )
462 |                 .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
    |                            |- warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' 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'
463 |         }
464 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:462:42: warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
460 |                     logger: logger
461 |                 )
462 |                 .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
    |                                          `- warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
463 |         }
464 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:38:22: note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
[734/740] Compiling RediStack RedisConnectionPool.swift
/host/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:119:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
117 | extension RedisSetCommandCondition {
118 |     /// No condition is required to be met in order to set the key's value.
119 |     public static let none = RedisSetCommandCondition(.none)
    |                       |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'none' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |
121 |     /// Only set the key if it already exists.
/host/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:124:23: warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
122 |     ///
123 |     /// Redis documentation refers to this as the option "XX".
124 |     public static let keyExists = RedisSetCommandCondition(.keyExists)
    |                       |- warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keyExists' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
125 |
126 |     /// Only set the key if it does not already exist.
/host/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:129:23: warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
127 |     ///
128 |     /// Redis documentation refers to this as the option "NX".
129 |     public static let keyDoesNotExist = RedisSetCommandCondition(.keyDoesNotExist)
    |                       |- warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keyDoesNotExist' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 | }
131 |
/host/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:166:23: warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
133 | ///
134 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
135 | public struct RedisSetCommandExpiration: Hashable {
    |               `- note: consider making struct 'RedisSetCommandExpiration' conform to the 'Sendable' protocol
136 |     private enum Expiration: Hashable {
137 |         case keepExisting
    :
164 |     /// Redis documentation refers to this as "KEEPTTL".
165 |     /// - Important: This is option is only available in Redis 6.0+. An error will be returned if this value is sent in lower versions of Redis.
166 |     public static let keepExisting = RedisSetCommandExpiration(.keepExisting)
    |                       |- warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keepExisting' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
167 |
168 |     /// Expire the key after the given number of seconds.
/host/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:52:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 50 |     /// - Returns: The values stored at the keys provided, matching the same order.
 51 |     public func mget(_ keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
 52 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 53 |
 54 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:140:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
138 |         } else {
139 |             self.loop.execute {
140 |                 self.refillConnections(logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
141 |             }
142 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:153:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
151 |         } else {
152 |             self.loop.execute {
153 |                 self.closePool(promise: promise, logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
154 |             }
155 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:162:30: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
160 |             return self._leaseConnection(deadline, logger: logger)
161 |         } else {
162 |             return self.loop.flatSubmit {
    |                              `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
163 |                 return self._leaseConnection(deadline, logger: logger)
164 |             }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:163:24: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
161 |         } else {
162 |             return self.loop.flatSubmit {
163 |                 return self._leaseConnection(deadline, logger: logger)
    |                        `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
164 |             }
165 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:173:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
171 |         } else {
172 |             return self.loop.execute {
173 |                 self._returnLeasedConnection(connection, logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
174 |             }
175 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:173:46: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
171 |         } else {
172 |             return self.loop.execute {
173 |                 self._returnLeasedConnection(connection, logger: logger)
    |                                              `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
174 |             }
175 |         }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:205:13: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
203 |
204 |         self.loop.scheduleTask(in: delay) {
205 |             self.connectionFactory(self.loop)
    |             `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 |                 .whenComplete { result in
207 |                     self.loop.preconditionInEventLoop()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:207:21: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
205 |             self.connectionFactory(self.loop)
206 |                 .whenComplete { result in
207 |                     self.loop.preconditionInEventLoop()
    |                     `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
208 |
209 |                     self.pendingConnectionCount -= 1
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:242:64: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
240 |             // Great, we want this. We'll be "returning" it to the pool. First,
241 |             // attach the close callback to it.
242 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |             self._returnConnection(connection, logger: logger)
244 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:242:90: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
240 |             // Great, we want this. We'll be "returning" it to the pool. First,
241 |             // attach the close callback to it.
242 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                                          `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |             self._returnConnection(connection, logger: logger)
244 |         }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:463:13: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
461 |     private func closeConnectionForShutdown(_ connection: RedisConnection) {
462 |         connection.close().whenComplete { _ in
463 |             self.loop.preconditionInEventLoop()
    |             `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
464 |
465 |             switch self.state {
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:477:55: warning: implicit capture of 'self' requires that 'ConnectionPool' conforms to `Sendable`; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
475 |                 // The state must not change if we are closing a connection, while we are
476 |                 // closing the pool.
477 |                 preconditionFailure("Invalid state: \(self.state)")
    |                                                       `- warning: implicit capture of 'self' requires that 'ConnectionPool' conforms to `Sendable`; this is an error in the Swift 6 language mode
478 |             }
479 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:527:70: warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
523 |         }
524 |
525 |         mutating func scheduleDeadline(loop: EventLoop, deadline: NIODeadline, _ onTimeout: @escaping () -> Void) {
    |                                                                                  `- note: parameter 'onTimeout' is implicitly non-sendable
526 |             assert(self.timeoutTask == nil)
527 |             self.timeoutTask = loop.scheduleTask(deadline: deadline, onTimeout)
    |                                                                      `- warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
528 |         }
529 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:532:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
530 |         func succeed(_ connection: RedisConnection) {
531 |             self.timeoutTask?.cancel()
532 |             self.result.succeed(connection)
    |                         `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
533 |         }
534 |
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:100:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
 98 |     public func activate(logger: Logger? = nil) {
 99 |         self.loop.execute {
100 |             self.pool?.activate(logger: self.prepareLoggerForUse(logger))
    |             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
101 |         }
102 |     }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:113:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
111 |     public func close(promise: EventLoopPromise<Void>? = nil, logger: Logger? = nil) {
112 |         self.loop.execute {
113 |             self.pool?.close(promise: promise, logger: self.prepareLoggerForUse(logger))
    |             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
114 |
115 |             self.pubsubConnection = nil
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:161:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
159 |
160 |                 return operation(connection)
161 |                     .always { _ in returnConnection(connection, context) }
    |                                    |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
162 |             },
163 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:161:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
159 |
160 |                 return operation(connection)
161 |                     .always { _ in returnConnection(connection, context) }
    |                                                     `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
162 |             },
163 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:192:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |             for request in unbufferedRequests {
192 |                 request.completeWith(self.connectionFactory(self.loop))
    |                         `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
193 |             }
194 |         }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:185:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
183 |
184 |         self.loop.execute {
185 |             self.serverConnectionAddresses.update(newAddresses)
    |             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
186 |
187 |             // Shiny, we can unbuffer any pending connections and pass them on as they now have somewhere to go.
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:242:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
240 |                 connection.allowSubscriptions = false
241 |                 connection.channel.closeFuture.whenComplete { _ in
242 |                     self.configuration.onUnexpectedConnectionClose?(connection)
    |                     `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |                 }
244 |                 return connection
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:242:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
240 |                 connection.allowSubscriptions = false
241 |                 connection.channel.closeFuture.whenComplete { _ in
242 |                     self.configuration.onUnexpectedConnectionClose?(connection)
    |                     `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |                 }
244 |                 return connection
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:242:69: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
240 |                 connection.allowSubscriptions = false
241 |                 connection.channel.closeFuture.whenComplete { _ in
242 |                     self.configuration.onUnexpectedConnectionClose?(connection)
    |                                                                     `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |                 }
244 |                 return connection
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:316:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
314 |                 return connection
315 |                     .send(command: command, with: arguments, logger: context)
316 |                     .always { _ in returnConnection(connection, context) }
    |                                    |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
317 |             },
318 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:316:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
314 |                 return connection
315 |                     .send(command: command, with: arguments, logger: context)
316 |                     .always { _ in returnConnection(connection, context) }
    |                                                     `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
317 |             },
318 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:420:29: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
418 |                         // a "no-op" unsub, so we need to return this connection
419 |                         guard
420 |                             self.pubsubConnection == nil,
    |                             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
421 |                             self.leasedConnectionCount > 0
422 |                         else { return }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:423:25: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
421 |                             self.leasedConnectionCount > 0
422 |                         else { return }
423 |                         returnConnection(connection, context)
    |                         |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
424 |                     }
425 |             },
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:423:42: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
421 |                             self.leasedConnectionCount > 0
422 |                         else { return }
423 |                         returnConnection(connection, context)
    |                                          `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
424 |                     }
425 |             },
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:439:30: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
430 |
431 |     @usableFromInline
432 |     internal func forwardOperationToConnection<T>(
    |                                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
433 |         _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
434 |         preferredConnection: RedisConnection?,
    :
437 |         // Establish event loop context then jump to the in-loop version.
438 |         guard self.loop.inEventLoop else {
439 |             return self.loop.flatSubmit {
    |                              `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
440 |                 return self.forwardOperationToConnection(
441 |                     operation,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:462:18: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
430 |
431 |     @usableFromInline
432 |     internal func forwardOperationToConnection<T>(
    |                                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
433 |         _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
434 |         preferredConnection: RedisConnection?,
    :
460 |                     logger: logger
461 |                 )
462 |                 .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
    |                  `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
463 |         }
464 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:440:24: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
438 |         guard self.loop.inEventLoop else {
439 |             return self.loop.flatSubmit {
440 |                 return self.forwardOperationToConnection(
    |                        `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
441 |                     operation,
442 |                     preferredConnection: preferredConnection,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:441:21: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
439 |             return self.loop.flatSubmit {
440 |                 return self.forwardOperationToConnection(
441 |                     operation,
    |                     |- warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' 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'
442 |                     preferredConnection: preferredConnection,
443 |                     context: context
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:442:42: warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |                 return self.forwardOperationToConnection(
441 |                     operation,
442 |                     preferredConnection: preferredConnection,
    |                                          `- warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                     context: context
444 |                 )
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:462:28: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
460 |                     logger: logger
461 |                 )
462 |                 .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
    |                            |- warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' 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'
463 |         }
464 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:462:42: warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
460 |                     logger: logger
461 |                 )
462 |                 .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
    |                                          `- warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
463 |         }
464 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:38:22: note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
[735/740] Compiling RediStack RedisConnectionPoolError.swift
/host/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:119:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
117 | extension RedisSetCommandCondition {
118 |     /// No condition is required to be met in order to set the key's value.
119 |     public static let none = RedisSetCommandCondition(.none)
    |                       |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'none' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |
121 |     /// Only set the key if it already exists.
/host/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:124:23: warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
122 |     ///
123 |     /// Redis documentation refers to this as the option "XX".
124 |     public static let keyExists = RedisSetCommandCondition(.keyExists)
    |                       |- warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keyExists' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
125 |
126 |     /// Only set the key if it does not already exist.
/host/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:129:23: warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
127 |     ///
128 |     /// Redis documentation refers to this as the option "NX".
129 |     public static let keyDoesNotExist = RedisSetCommandCondition(.keyDoesNotExist)
    |                       |- warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keyDoesNotExist' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 | }
131 |
/host/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:166:23: warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
133 | ///
134 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
135 | public struct RedisSetCommandExpiration: Hashable {
    |               `- note: consider making struct 'RedisSetCommandExpiration' conform to the 'Sendable' protocol
136 |     private enum Expiration: Hashable {
137 |         case keepExisting
    :
164 |     /// Redis documentation refers to this as "KEEPTTL".
165 |     /// - Important: This is option is only available in Redis 6.0+. An error will be returned if this value is sent in lower versions of Redis.
166 |     public static let keepExisting = RedisSetCommandExpiration(.keepExisting)
    |                       |- warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keepExisting' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
167 |
168 |     /// Expire the key after the given number of seconds.
/host/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:52:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 50 |     /// - Returns: The values stored at the keys provided, matching the same order.
 51 |     public func mget(_ keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
 52 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 53 |
 54 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:140:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
138 |         } else {
139 |             self.loop.execute {
140 |                 self.refillConnections(logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
141 |             }
142 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:153:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
151 |         } else {
152 |             self.loop.execute {
153 |                 self.closePool(promise: promise, logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
154 |             }
155 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:162:30: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
160 |             return self._leaseConnection(deadline, logger: logger)
161 |         } else {
162 |             return self.loop.flatSubmit {
    |                              `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
163 |                 return self._leaseConnection(deadline, logger: logger)
164 |             }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:163:24: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
161 |         } else {
162 |             return self.loop.flatSubmit {
163 |                 return self._leaseConnection(deadline, logger: logger)
    |                        `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
164 |             }
165 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:173:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
171 |         } else {
172 |             return self.loop.execute {
173 |                 self._returnLeasedConnection(connection, logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
174 |             }
175 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:173:46: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
171 |         } else {
172 |             return self.loop.execute {
173 |                 self._returnLeasedConnection(connection, logger: logger)
    |                                              `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
174 |             }
175 |         }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:205:13: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
203 |
204 |         self.loop.scheduleTask(in: delay) {
205 |             self.connectionFactory(self.loop)
    |             `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 |                 .whenComplete { result in
207 |                     self.loop.preconditionInEventLoop()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:207:21: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
205 |             self.connectionFactory(self.loop)
206 |                 .whenComplete { result in
207 |                     self.loop.preconditionInEventLoop()
    |                     `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
208 |
209 |                     self.pendingConnectionCount -= 1
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:242:64: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
240 |             // Great, we want this. We'll be "returning" it to the pool. First,
241 |             // attach the close callback to it.
242 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |             self._returnConnection(connection, logger: logger)
244 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:242:90: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
240 |             // Great, we want this. We'll be "returning" it to the pool. First,
241 |             // attach the close callback to it.
242 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                                          `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |             self._returnConnection(connection, logger: logger)
244 |         }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:463:13: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
461 |     private func closeConnectionForShutdown(_ connection: RedisConnection) {
462 |         connection.close().whenComplete { _ in
463 |             self.loop.preconditionInEventLoop()
    |             `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
464 |
465 |             switch self.state {
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:477:55: warning: implicit capture of 'self' requires that 'ConnectionPool' conforms to `Sendable`; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
475 |                 // The state must not change if we are closing a connection, while we are
476 |                 // closing the pool.
477 |                 preconditionFailure("Invalid state: \(self.state)")
    |                                                       `- warning: implicit capture of 'self' requires that 'ConnectionPool' conforms to `Sendable`; this is an error in the Swift 6 language mode
478 |             }
479 |         }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:527:70: warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
523 |         }
524 |
525 |         mutating func scheduleDeadline(loop: EventLoop, deadline: NIODeadline, _ onTimeout: @escaping () -> Void) {
    |                                                                                  `- note: parameter 'onTimeout' is implicitly non-sendable
526 |             assert(self.timeoutTask == nil)
527 |             self.timeoutTask = loop.scheduleTask(deadline: deadline, onTimeout)
    |                                                                      `- warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
528 |         }
529 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:532:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
530 |         func succeed(_ connection: RedisConnection) {
531 |             self.timeoutTask?.cancel()
532 |             self.result.succeed(connection)
    |                         `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
533 |         }
534 |
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:100:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
 98 |     public func activate(logger: Logger? = nil) {
 99 |         self.loop.execute {
100 |             self.pool?.activate(logger: self.prepareLoggerForUse(logger))
    |             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
101 |         }
102 |     }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:113:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
111 |     public func close(promise: EventLoopPromise<Void>? = nil, logger: Logger? = nil) {
112 |         self.loop.execute {
113 |             self.pool?.close(promise: promise, logger: self.prepareLoggerForUse(logger))
    |             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
114 |
115 |             self.pubsubConnection = nil
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:161:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
159 |
160 |                 return operation(connection)
161 |                     .always { _ in returnConnection(connection, context) }
    |                                    |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
162 |             },
163 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:161:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
159 |
160 |                 return operation(connection)
161 |                     .always { _ in returnConnection(connection, context) }
    |                                                     `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
162 |             },
163 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:192:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |             for request in unbufferedRequests {
192 |                 request.completeWith(self.connectionFactory(self.loop))
    |                         `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
193 |             }
194 |         }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:185:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
183 |
184 |         self.loop.execute {
185 |             self.serverConnectionAddresses.update(newAddresses)
    |             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
186 |
187 |             // Shiny, we can unbuffer any pending connections and pass them on as they now have somewhere to go.
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:242:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
240 |                 connection.allowSubscriptions = false
241 |                 connection.channel.closeFuture.whenComplete { _ in
242 |                     self.configuration.onUnexpectedConnectionClose?(connection)
    |                     `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |                 }
244 |                 return connection
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:242:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
240 |                 connection.allowSubscriptions = false
241 |                 connection.channel.closeFuture.whenComplete { _ in
242 |                     self.configuration.onUnexpectedConnectionClose?(connection)
    |                     `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |                 }
244 |                 return connection
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:242:69: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
240 |                 connection.allowSubscriptions = false
241 |                 connection.channel.closeFuture.whenComplete { _ in
242 |                     self.configuration.onUnexpectedConnectionClose?(connection)
    |                                                                     `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
243 |                 }
244 |                 return connection
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:316:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
314 |                 return connection
315 |                     .send(command: command, with: arguments, logger: context)
316 |                     .always { _ in returnConnection(connection, context) }
    |                                    |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
317 |             },
318 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:316:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
314 |                 return connection
315 |                     .send(command: command, with: arguments, logger: context)
316 |                     .always { _ in returnConnection(connection, context) }
    |                                                     `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
317 |             },
318 |             preferredConnection: nil,
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:420:29: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
418 |                         // a "no-op" unsub, so we need to return this connection
419 |                         guard
420 |                             self.pubsubConnection == nil,
    |                             `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
421 |                             self.leasedConnectionCount > 0
422 |                         else { return }
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:423:25: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
421 |                             self.leasedConnectionCount > 0
422 |                         else { return }
423 |                         returnConnection(connection, context)
    |                         |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
424 |                     }
425 |             },
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:423:42: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
421 |                             self.leasedConnectionCount > 0
422 |                         else { return }
423 |                         returnConnection(connection, context)
    |                                          `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
424 |                     }
425 |             },
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:439:30: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
430 |
431 |     @usableFromInline
432 |     internal func forwardOperationToConnection<T>(
    |                                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
433 |         _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
434 |         preferredConnection: RedisConnection?,
    :
437 |         // Establish event loop context then jump to the in-loop version.
438 |         guard self.loop.inEventLoop else {
439 |             return self.loop.flatSubmit {
    |                              `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
440 |                 return self.forwardOperationToConnection(
441 |                     operation,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:462:18: warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
430 |
431 |     @usableFromInline
432 |     internal func forwardOperationToConnection<T>(
    |                                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
433 |         _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
434 |         preferredConnection: RedisConnection?,
    :
460 |                     logger: logger
461 |                 )
462 |                 .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
    |                  `- warning: type 'T' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
463 |         }
464 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:440:24: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 27 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
 28 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
 29 | public final class RedisConnectionPool {
    |                    `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
 30 |     /// A unique identifer to represent this connection.
 31 |     public let id = UUID()
    :
438 |         guard self.loop.inEventLoop else {
439 |             return self.loop.flatSubmit {
440 |                 return self.forwardOperationToConnection(
    |                        `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
441 |                     operation,
442 |                     preferredConnection: preferredConnection,
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:441:21: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
439 |             return self.loop.flatSubmit {
440 |                 return self.forwardOperationToConnection(
441 |                     operation,
    |                     |- warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' 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'
442 |                     preferredConnection: preferredConnection,
443 |                     context: context
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:442:42: warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
440 |                 return self.forwardOperationToConnection(
441 |                     operation,
442 |                     preferredConnection: preferredConnection,
    |                                          `- warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
443 |                     context: context
444 |                 )
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:462:28: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
460 |                     logger: logger
461 |                 )
462 |                 .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
    |                            |- warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' 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'
463 |         }
464 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/RedisConnectionPool.swift:462:42: warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
460 |                     logger: logger
461 |                 )
462 |                 .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
    |                                          `- warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
463 |         }
464 |
/host/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:38:22: note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
[736/740] Compiling RediStack HashCommands.swift
/host/spi-builder-workspace/Sources/RediStack/Commands/HashCommands.swift:322:61: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
320 |     /// - Returns: A list of values in the same order as the `fields` argument. Non-existent fields return `.null` values.
321 |     public func hmget(_ fields: [String], from key: RedisKey) -> EventLoopFuture<[RESPValue]> {
322 |         guard fields.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                             `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
323 |
324 |         var args: [RESPValue] = [.init(from: key)]
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:76:63: warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 74 |     /// - Returns: A mapping of channel names and their (non-pattern) subscriber count.
 75 |     public func subscriberCount(forChannels channels: [RedisChannelName]) -> EventLoopFuture<[RedisChannelName: Int]> {
 76 |         guard channels.count > 0 else { return self.eventLoop.makeSucceededFuture([:]) }
    |                                                               `- warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 77 |
 78 |         var args: [RESPValue] = [.init(bulk: "NUMSUB")]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to `Sendable`; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to `Sendable`; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:149:54: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |         assert(count >= 0, "A negative max count is nonsense.")
148 |
149 |         guard count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                      `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |
151 |         let args: [RESPValue] = [
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:189:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
187 |     /// - Returns: The elements randomly selected from the set.
188 |     public func srandmember(from key: RedisKey, max count: Int = 1) -> EventLoopFuture<[RESPValue]> {
189 |         guard count != 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |         let args: [RESPValue] = [
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:296:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
294 |     /// - Returns: A list of elements resulting from the difference.
295 |     public func sdiff(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
296 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
297 |
298 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:365:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
363 |     /// - Returns: A list of elements resulting from the intersection.
364 |     public func sinter(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
365 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
366 |
367 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:434:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
432 |     /// - Returns: A list of elements resulting from the union.
433 |     public func sunion(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
434 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
435 |
436 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:608:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 606 |
 607 |         if let c = count {
 608 |             guard c != 0 else { return self.eventLoop.makeSucceededFuture([]) }
     |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 609 |
 610 |             args.append(.init(bulk: c))
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
[737/740] Compiling RediStack ListCommands.swift
/host/spi-builder-workspace/Sources/RediStack/Commands/HashCommands.swift:322:61: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
320 |     /// - Returns: A list of values in the same order as the `fields` argument. Non-existent fields return `.null` values.
321 |     public func hmget(_ fields: [String], from key: RedisKey) -> EventLoopFuture<[RESPValue]> {
322 |         guard fields.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                             `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
323 |
324 |         var args: [RESPValue] = [.init(from: key)]
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:76:63: warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 74 |     /// - Returns: A mapping of channel names and their (non-pattern) subscriber count.
 75 |     public func subscriberCount(forChannels channels: [RedisChannelName]) -> EventLoopFuture<[RedisChannelName: Int]> {
 76 |         guard channels.count > 0 else { return self.eventLoop.makeSucceededFuture([:]) }
    |                                                               `- warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 77 |
 78 |         var args: [RESPValue] = [.init(bulk: "NUMSUB")]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to `Sendable`; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to `Sendable`; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:149:54: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |         assert(count >= 0, "A negative max count is nonsense.")
148 |
149 |         guard count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                      `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |
151 |         let args: [RESPValue] = [
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:189:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
187 |     /// - Returns: The elements randomly selected from the set.
188 |     public func srandmember(from key: RedisKey, max count: Int = 1) -> EventLoopFuture<[RESPValue]> {
189 |         guard count != 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |         let args: [RESPValue] = [
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:296:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
294 |     /// - Returns: A list of elements resulting from the difference.
295 |     public func sdiff(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
296 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
297 |
298 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:365:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
363 |     /// - Returns: A list of elements resulting from the intersection.
364 |     public func sinter(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
365 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
366 |
367 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:434:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
432 |     /// - Returns: A list of elements resulting from the union.
433 |     public func sunion(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
434 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
435 |
436 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:608:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 606 |
 607 |         if let c = count {
 608 |             guard c != 0 else { return self.eventLoop.makeSucceededFuture([]) }
     |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 609 |
 610 |             args.append(.init(bulk: c))
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
[738/740] Compiling RediStack PubSubCommands.swift
/host/spi-builder-workspace/Sources/RediStack/Commands/HashCommands.swift:322:61: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
320 |     /// - Returns: A list of values in the same order as the `fields` argument. Non-existent fields return `.null` values.
321 |     public func hmget(_ fields: [String], from key: RedisKey) -> EventLoopFuture<[RESPValue]> {
322 |         guard fields.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                             `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
323 |
324 |         var args: [RESPValue] = [.init(from: key)]
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:76:63: warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 74 |     /// - Returns: A mapping of channel names and their (non-pattern) subscriber count.
 75 |     public func subscriberCount(forChannels channels: [RedisChannelName]) -> EventLoopFuture<[RedisChannelName: Int]> {
 76 |         guard channels.count > 0 else { return self.eventLoop.makeSucceededFuture([:]) }
    |                                                               `- warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 77 |
 78 |         var args: [RESPValue] = [.init(bulk: "NUMSUB")]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to `Sendable`; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to `Sendable`; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:149:54: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |         assert(count >= 0, "A negative max count is nonsense.")
148 |
149 |         guard count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                      `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |
151 |         let args: [RESPValue] = [
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:189:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
187 |     /// - Returns: The elements randomly selected from the set.
188 |     public func srandmember(from key: RedisKey, max count: Int = 1) -> EventLoopFuture<[RESPValue]> {
189 |         guard count != 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |         let args: [RESPValue] = [
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:296:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
294 |     /// - Returns: A list of elements resulting from the difference.
295 |     public func sdiff(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
296 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
297 |
298 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:365:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
363 |     /// - Returns: A list of elements resulting from the intersection.
364 |     public func sinter(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
365 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
366 |
367 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:434:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
432 |     /// - Returns: A list of elements resulting from the union.
433 |     public func sunion(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
434 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
435 |
436 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:608:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 606 |
 607 |         if let c = count {
 608 |             guard c != 0 else { return self.eventLoop.makeSucceededFuture([]) }
     |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 609 |
 610 |             args.append(.init(bulk: c))
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
[739/740] Compiling RediStack SetCommands.swift
/host/spi-builder-workspace/Sources/RediStack/Commands/HashCommands.swift:322:61: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
320 |     /// - Returns: A list of values in the same order as the `fields` argument. Non-existent fields return `.null` values.
321 |     public func hmget(_ fields: [String], from key: RedisKey) -> EventLoopFuture<[RESPValue]> {
322 |         guard fields.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                             `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
323 |
324 |         var args: [RESPValue] = [.init(from: key)]
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:76:63: warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 74 |     /// - Returns: A mapping of channel names and their (non-pattern) subscriber count.
 75 |     public func subscriberCount(forChannels channels: [RedisChannelName]) -> EventLoopFuture<[RedisChannelName: Int]> {
 76 |         guard channels.count > 0 else { return self.eventLoop.makeSucceededFuture([:]) }
    |                                                               `- warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 77 |
 78 |         var args: [RESPValue] = [.init(bulk: "NUMSUB")]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to `Sendable`; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to `Sendable`; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:149:54: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |         assert(count >= 0, "A negative max count is nonsense.")
148 |
149 |         guard count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                      `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |
151 |         let args: [RESPValue] = [
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:189:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
187 |     /// - Returns: The elements randomly selected from the set.
188 |     public func srandmember(from key: RedisKey, max count: Int = 1) -> EventLoopFuture<[RESPValue]> {
189 |         guard count != 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |         let args: [RESPValue] = [
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:296:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
294 |     /// - Returns: A list of elements resulting from the difference.
295 |     public func sdiff(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
296 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
297 |
298 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:365:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
363 |     /// - Returns: A list of elements resulting from the intersection.
364 |     public func sinter(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
365 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
366 |
367 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:434:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
432 |     /// - Returns: A list of elements resulting from the union.
433 |     public func sunion(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
434 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
435 |
436 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:608:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 606 |
 607 |         if let c = count {
 608 |             guard c != 0 else { return self.eventLoop.makeSucceededFuture([]) }
     |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 609 |
 610 |             args.append(.init(bulk: c))
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
[740/740] Compiling RediStack SortedSetCommands.swift
/host/spi-builder-workspace/Sources/RediStack/Commands/HashCommands.swift:322:61: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
320 |     /// - Returns: A list of values in the same order as the `fields` argument. Non-existent fields return `.null` values.
321 |     public func hmget(_ fields: [String], from key: RedisKey) -> EventLoopFuture<[RESPValue]> {
322 |         guard fields.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                             `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
323 |
324 |         var args: [RESPValue] = [.init(from: key)]
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:76:63: warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 74 |     /// - Returns: A mapping of channel names and their (non-pattern) subscriber count.
 75 |     public func subscriberCount(forChannels channels: [RedisChannelName]) -> EventLoopFuture<[RedisChannelName: Int]> {
 76 |         guard channels.count > 0 else { return self.eventLoop.makeSucceededFuture([:]) }
    |                                                               `- warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 77 |
 78 |         var args: [RESPValue] = [.init(bulk: "NUMSUB")]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to `Sendable`; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to `Sendable`; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/host/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:149:54: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |         assert(count >= 0, "A negative max count is nonsense.")
148 |
149 |         guard count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                      `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |
151 |         let args: [RESPValue] = [
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:189:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
187 |     /// - Returns: The elements randomly selected from the set.
188 |     public func srandmember(from key: RedisKey, max count: Int = 1) -> EventLoopFuture<[RESPValue]> {
189 |         guard count != 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |         let args: [RESPValue] = [
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:296:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
294 |     /// - Returns: A list of elements resulting from the difference.
295 |     public func sdiff(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
296 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
297 |
298 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:365:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
363 |     /// - Returns: A list of elements resulting from the intersection.
364 |     public func sinter(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
365 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
366 |
367 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:434:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
432 |     /// - Returns: A list of elements resulting from the union.
433 |     public func sunion(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
434 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
435 |
436 |         let args = keys.map(RESPValue.init)
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:608:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 606 |
 607 |         if let c = count {
 608 |             guard c != 0 else { return self.eventLoop.makeSucceededFuture([]) }
     |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 609 |
 610 |             args.append(.init(bulk: c))
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: consider making enum 'RESPValue' conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
[742/750] Compiling RediStackTestUtils _Deprecations.swift
[743/750] Emitting module RedisTypes
[744/750] Compiling RedisTypes RedisSet.swift
/host/spi-builder-workspace/Sources/RedisTypes/RedisSet.swift:199:62: warning: type 'Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 57 | ///
 58 | /// See [https://redis.io/topics/data-types-intro#sets](https://redis.io/topics/data-types-intro#sets)
 59 | public struct RedisSet<Element> where Element: RESPValueConvertible {
    |                        `- note: consider making generic parameter 'Element' conform to the 'Sendable' protocol
 60 |     /// The key in Redis that this instance is a reference to.
 61 |     public var identifier: RedisKey { return self.id }
    :
197 |     public func popRandomElements(max count: Int) -> EventLoopFuture<[Element]> {
198 |         guard count >= 0 else { return self.client.eventLoop.makeFailedFuture(RedisError.indexOutOfRange) }
199 |         guard count >= 1 else { return self.client.eventLoop.makeSucceededFuture([]) }
    |                                                              `- warning: type 'Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
200 |         return self.client.spop(from: self.id, max: count)
201 |             .map { return $0.compactMap(Element.init) }
[746/751] Emitting module RediStackTestUtils
[747/751] Compiling RediStackTestUtils RedisIntegrationTestCase.swift
/host/spi-builder-workspace/Sources/RediStackTestUtils/RedisIntegrationTestCase.swift:69:37: warning: capture of 'self' with non-sendable type 'RedisIntegrationTestCase' in a `@Sendable` closure; this is an error in the Swift 6 language mode
21 | ///
22 | /// See `RedisConnection.make(configuration:boundEventLoop:)` to understand how connections are made.
23 | open class RedisIntegrationTestCase: XCTestCase {
   |            `- note: class 'RedisIntegrationTestCase' does not conform to the 'Sendable' protocol
24 |     /// An overridable value of the Redis instance's hostname to connect to for the test suite(s).
25 |     ///
   :
67 |             if self.connection.isConnected {
68 |                 _ = try self.connection.send(command: "FLUSHALL")
69 |                     .flatMap { _ in self.connection.close() }
   |                                     `- warning: capture of 'self' with non-sendable type 'RedisIntegrationTestCase' in a `@Sendable` closure; this is an error in the Swift 6 language mode
70 |                     .wait()
71 |             }
/host/spi-builder-workspace/Sources/RediStackTestUtils/RedisIntegrationTestCase.swift:91:11: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
89 |             ),
90 |             boundEventLoop: eventLoopGroup.next()
91 |         ).wait()
   |           `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
92 |     }
93 | }
/host/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/host/spi-builder-workspace/Sources/RediStackTestUtils/RedisIntegrationTestCase.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
14 |
15 | import NIOCore
16 | import RediStack
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
17 | import NIOPosix
18 | import XCTest
[748/751] Compiling RediStackTestUtils RediStack.swift
[749/751] Compiling RediStackTestUtils General.swift
[750/751] Compiling RediStackTestUtils RedisConnectionPoolIntegrationTestCase.swift
/host/spi-builder-workspace/Sources/RediStackTestUtils/RedisConnectionPoolIntegrationTestCase.swift:67:57: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 65 |     open override func tearDown() {
 66 |         do {
 67 |             _ = try self.pool.send(command: "FLUSHALL").wait()
    |                                                         `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 68 |         } catch let err as RedisConnectionPoolError where err == .poolClosed {
 69 |             // Ok, this is fine.
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStackTestUtils/RedisConnectionPoolIntegrationTestCase.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
 14 |
 15 | import NIOCore
 16 | import RediStack
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
 17 | import XCTest
 18 | import NIOPosix
[751/751] Compiling RediStackTestUtils EmbeddedMockRedisServer.swift
/host/spi-builder-workspace/Sources/RediStackTestUtils/EmbeddedMockRedisServer.swift:62:34: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 60 |             // We always allow this.
 61 |             let response = RESPValue.simpleString("OK".byteBuffer)
 62 |             data.responsePromise.succeed(response)
    |                                  `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 63 |
 64 |         default:
/host/spi-builder-workspace/Sources/RediStack/RESP/RESPValue.swift:29:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 27 | ///
 28 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 29 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 30 |     case null
 31 |     case simpleString(ByteBuffer)
/host/spi-builder-workspace/Sources/RediStackTestUtils/EmbeddedMockRedisServer.swift:15:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
 13 | //===----------------------------------------------------------------------===//
 14 |
 15 | import RediStack
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
 16 | import XCTest
 17 | import NIOCore
/host/spi-builder-workspace/Sources/RediStackTestUtils/EmbeddedMockRedisServer.swift:73:13: warning: capture of 'self' with non-sendable type 'EmbeddedMockRedisServer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 26 | /// This is not really a Redis server: it's just something that lets us stub out the connection management in order to let
 27 | /// us test the connection pool.
 28 | internal final class EmbeddedMockRedisServer {
    |                      `- note: class 'EmbeddedMockRedisServer' does not conform to the 'Sendable' protocol
 29 |     var channels: ArraySlice<EmbeddedChannel> = []
 30 |     var loop: EmbeddedEventLoop = EmbeddedEventLoop()
    :
 71 |         let channel = EmbeddedChannel(handler: GracefulShutdownToCloseHandler(), loop: self.loop)
 72 |         channel.closeFuture.whenComplete { _ in
 73 |             self.channels.removeAll(where: { $0 === channel })
    |             `- warning: capture of 'self' with non-sendable type 'EmbeddedMockRedisServer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 74 |         }
 75 |
Build complete! (120.44s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-atomics",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.1.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-atomics.git"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    },
    {
      "identity" : "swift-metrics",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-metrics.git"
    },
    {
      "identity" : "swift-nio",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.43.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-nio.git"
    },
    {
      "identity" : "swift-nio-ssl",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.23.1",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-nio-ssl.git"
    }
  ],
  "manifest_display_name" : "RediStack",
  "name" : "RediStack",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "RediStack",
      "targets" : [
        "RediStack"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "RediStackTestUtils",
      "targets" : [
        "RediStackTestUtils"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "RedisTypes",
      "targets" : [
        "RedisTypes"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RedisTypesTests",
      "module_type" : "SwiftTarget",
      "name" : "RedisTypesTests",
      "path" : "Tests/RedisTypesTests",
      "product_dependencies" : [
        "NIO"
      ],
      "sources" : [
        "RedisSetTests.swift",
        "RedisTypesIntegrationTestCase.swift"
      ],
      "target_dependencies" : [
        "RediStack",
        "RedisTypes",
        "RediStackTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RedisTypes",
      "module_type" : "SwiftTarget",
      "name" : "RedisTypes",
      "path" : "Sources/RedisTypes",
      "product_memberships" : [
        "RedisTypes"
      ],
      "sources" : [
        "RedisSet.swift"
      ],
      "target_dependencies" : [
        "RediStack"
      ],
      "type" : "library"
    },
    {
      "c99name" : "RediStackTests",
      "module_type" : "SwiftTarget",
      "name" : "RediStackTests",
      "path" : "Tests/RediStackTests",
      "product_dependencies" : [
        "Atomics",
        "NIO",
        "NIOTestUtils"
      ],
      "sources" : [
        "ChannelHandlers/RedisByteDecoderTests.swift",
        "ChannelHandlers/RedisCommandHandlerTests.swift",
        "ChannelHandlers/RedisMessageEncoderTests.swift",
        "Cluster/RedisClusterNodeDescriptionProtocolTests.swift",
        "ConfigurationTests.swift",
        "ConnectionPoolTests.swift",
        "Helpers/MockNodeDescription.swift",
        "Helpers/RedisErrorTests.swift",
        "RESPTranslatorTests.swift",
        "RESPValueTests.swift",
        "RedisCommandEncoderTests.swift",
        "RedisConnection+ConfigurationTests.swift",
        "RedisConnectionTests.swift",
        "RedisHashSlotTests.swift",
        "RedisKeyLifetime.swift"
      ],
      "target_dependencies" : [
        "RediStack",
        "RediStackTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RediStackTestUtils",
      "module_type" : "SwiftTarget",
      "name" : "RediStackTestUtils",
      "path" : "Sources/RediStackTestUtils",
      "product_dependencies" : [
        "NIOCore",
        "NIOEmbedded"
      ],
      "product_memberships" : [
        "RediStackTestUtils"
      ],
      "sources" : [
        "EmbeddedMockRedisServer.swift",
        "Extensions/General.swift",
        "Extensions/RediStack.swift",
        "RedisConnectionPoolIntegrationTestCase.swift",
        "RedisIntegrationTestCase.swift",
        "_Deprecations.swift"
      ],
      "target_dependencies" : [
        "RediStack"
      ],
      "type" : "library"
    },
    {
      "c99name" : "RediStackIntegrationTests",
      "module_type" : "SwiftTarget",
      "name" : "RediStackIntegrationTests",
      "path" : "Tests/RediStackIntegrationTests",
      "product_dependencies" : [
        "NIO"
      ],
      "sources" : [
        "Commands/BasicCommandsTests.swift",
        "Commands/HashCommandsTests.swift",
        "Commands/ListCommandsTests.swift",
        "Commands/PubSubCommandsTests.swift",
        "Commands/SetCommandsTests.swift",
        "Commands/SortedSetCommandsTests.swift",
        "Commands/StringCommandsTests.swift",
        "RediStackIntegrationTestCase.swift",
        "RedisConnectionPoolTests.swift",
        "RedisConnectionTests.swift",
        "RedisLoggingTests.swift"
      ],
      "target_dependencies" : [
        "RediStack",
        "RediStackTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RediStack",
      "module_type" : "SwiftTarget",
      "name" : "RediStack",
      "path" : "Sources/RediStack",
      "product_dependencies" : [
        "NIOCore",
        "NIOPosix",
        "NIO",
        "NIOConcurrencyHelpers",
        "NIOSSL",
        "Atomics",
        "Logging",
        "Metrics"
      ],
      "product_memberships" : [
        "RediStack",
        "RediStackTestUtils",
        "RedisTypes"
      ],
      "sources" : [
        "ChannelHandlers/RedisByteDecoder.swift",
        "ChannelHandlers/RedisCommandHandler.swift",
        "ChannelHandlers/RedisMessageEncoder.swift",
        "ChannelHandlers/RedisPubSubHandler.swift",
        "Cluster/RedisClusterNodeDescriptionProtocol.swift",
        "Cluster/RedisClusterNodeID.swift",
        "Cluster/RedisClusterShardDescriptionProtocol.swift",
        "Cluster/RedisHashSlot.swift",
        "Cluster/SwiftPolyfill.swift",
        "Commands/BasicCommands.swift",
        "Commands/HashCommands.swift",
        "Commands/ListCommands.swift",
        "Commands/PubSubCommands.swift",
        "Commands/SetCommands.swift",
        "Commands/SortedSetCommands.swift",
        "Commands/StringCommands.swift",
        "ConnectionPool/ConnectionPool.swift",
        "ConnectionPool/RedisConnectionPool+Configuration.swift",
        "ConnectionPool/RedisConnectionPool.swift",
        "ConnectionPool/RedisConnectionPoolError.swift",
        "Extensions/StandardLibrary.swift",
        "Extensions/SwiftNIO.swift",
        "RESP/RESPTranslator.swift",
        "RESP/RESPValue.swift",
        "RESP/RESPValueConvertible.swift",
        "RedisChannelName.swift",
        "RedisClient.swift",
        "RedisCommandEncoder-multi-encode.swift",
        "RedisCommandEncoder.swift",
        "RedisConnection+Configuration.swift",
        "RedisConnection.swift",
        "RedisError.swift",
        "RedisKey+TTL.swift",
        "RedisKey.swift",
        "RedisLogging.swift",
        "RedisMetrics.swift",
        "_Deprecations.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "RESP3Tests",
      "module_type" : "SwiftTarget",
      "name" : "RESP3Tests",
      "path" : "Tests/RESP3Tests",
      "product_dependencies" : [
        "NIOCore",
        "NIOEmbedded",
        "NIOTestUtils"
      ],
      "sources" : [
        "RESP3TokenTests.swift"
      ],
      "target_dependencies" : [
        "RESP3"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RESP3",
      "module_type" : "SwiftTarget",
      "name" : "RESP3",
      "path" : "Sources/RESP3",
      "product_dependencies" : [
        "NIOCore"
      ],
      "sources" : [
        "RESP3Error.swift",
        "RESP3Token.swift",
        "RESP3TokenDecoder.swift",
        "RESP3TypeIdentifier.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.