Build Information
Successful build of RediStack, reference 2.0.0-gamma.1.1 (8ac2d7
), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 20:12:56 UTC.
Swift 6 data race errors: 19
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -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
Build Log
94 | public final class RedisPubSubHandler {
| `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
95 | private var state: State = .default
96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:478:68: warning: implicit capture of 'target' requires that 'RedisSubscriptionTarget' conforms to 'Sendable'; this is an error in the Swift 6 language mode
476 | logger.debug("subscription removed, but still have active subscription count", metadata: [
477 | RedisLogging.MetadataKeys.subscriptionCount: "\($0)",
478 | RedisLogging.MetadataKeys.pubsubTarget: "\(target.debugDescription)"
| `- warning: implicit capture of 'target' requires that 'RedisSubscriptionTarget' conforms to 'Sendable'; this is an error in the Swift 6 language mode
479 | ])
480 | return self.eventLoop.makeSucceededFuture(())
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:65:13: note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
63 | ///
64 | /// Use the `values` property to quickly access the underlying list of the target for any purpose that requires a the `String` values.
65 | public enum RedisSubscriptionTarget: Equatable, CustomDebugStringConvertible {
| `- note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
66 | case channels([RedisChannelName])
67 | case patterns([String])
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:487:25: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
485 | .removeRedisPubSubHandler(handler)
486 | .map {
487 | self.state = .open
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
488 | logger.debug("connection is now open to all commands")
489 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:135:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
133 | public func activate(logger: Logger? = nil) {
134 | self.loop.execute {
135 | self.pool?.activate(logger: self.prepareLoggerForUse(logger))
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
136 | }
137 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:149:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
147 | public func close(promise: EventLoopPromise<Void>? = nil, logger: Logger? = nil) {
148 | self.loop.execute {
149 | self.pool?.close(promise: promise, logger: self.prepareLoggerForUse(logger))
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
150 |
151 | self.pubsubConnection = nil
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:208:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
206 |
207 | return operation(connection)
208 | .always { _ in returnConnection(connection, logger) }
| |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 | },
210 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:208:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
206 |
207 | return operation(connection)
208 | .always { _ in returnConnection(connection, logger) }
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
209 | },
210 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:240:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
238 |
239 | for request in unbufferedRequests {
240 | request.completeWith(self.connectionFactory(self.loop))
| `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:233:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
231 |
232 | self.loop.execute {
233 | self.serverConnectionAddresses.update(newAddresses)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
234 |
235 | // Shiny, we can unbuffer any pending connections and pass them on as they now have somewhere to go.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:301:26: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
299 | ) where Discovery.Instance == SocketAddress {
300 | self.loop.execute {
301 | let logger = self.prepareLoggerForUse(logger)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
302 |
303 | self.cancellationToken = discovery.subscribe(
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:307:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
305 | onNext: { result in
306 | // This closure may execute on any thread.
307 | self.loop.execute {
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
308 | switch result {
309 | case .success(let targets):
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:310:29: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
308 | switch result {
309 | case .success(let targets):
310 | self.updateConnectionAddresses(targets, logger: logger)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
311 | case .failure(let error):
312 | logger.error("Service discovery error", metadata: [RedisLogging.MetadataKeys.error: "\(error)"])
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:318:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
316 | onComplete: { (_: CompletionReason) in
317 | // We don't really care about the reason, we just want to brick this client.
318 | self.close(logger: logger)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
319 | }
320 | )
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:347:10: warning: type 'CommandResult' does not conform to the 'Sendable' protocol
327 | public var eventLoop: EventLoop { self.loop }
328 |
329 | public func send<CommandResult>(
| `- note: consider making generic parameter 'CommandResult' conform to the 'Sendable' protocol
330 | _ command: RedisCommand<CommandResult>,
331 | eventLoop: EventLoop? = nil,
:
345 | taskLogger: logger
346 | )
347 | .hop(to: eventLoop ?? self.eventLoop)
| `- warning: type 'CommandResult' does not conform to the 'Sendable' protocol
348 | }
349 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:341:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
339 | return connection
340 | .send(command, eventLoop: eventLoop, logger: logger)
341 | .always { _ in returnConnection(connection, logger) }
| |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
342 | },
343 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:341:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
339 | return connection
340 | .send(command, eventLoop: eventLoop, logger: logger)
341 | .always { _ in returnConnection(connection, logger) }
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
342 | },
343 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:481:29: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
479 | // a "no-op" unsub, so we need to return this connection
480 | guard
481 | self.pubsubConnection == nil,
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
482 | self.leasedConnectionCount > 0
483 | else { return }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:484:25: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
482 | self.leasedConnectionCount > 0
483 | else { return }
484 | returnConnection(connection, logger)
| |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
485 | }
486 | },
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:484:42: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
482 | self.leasedConnectionCount > 0
483 | else { return }
484 | returnConnection(connection, logger)
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
485 | }
486 | },
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:512:30: warning: type 'T' does not conform to the 'Sendable' protocol
502 | */
503 | @usableFromInline
504 | internal func forwardOperationToConnection<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
505 | _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
506 | preferredConnection: RedisConnection?,
:
510 | // Establish event loop context then jump to the in-loop version.
511 | guard self.loop.inEventLoop else {
512 | return self.loop.flatSubmit {
| `- warning: type 'T' does not conform to the 'Sendable' protocol
513 | return self.forwardOperationToConnection(
514 | operation,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:534:18: warning: type 'T' does not conform to the 'Sendable' protocol
502 | */
503 | @usableFromInline
504 | internal func forwardOperationToConnection<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
505 | _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
506 | preferredConnection: RedisConnection?,
:
532 | return pool
533 | .leaseConnection(logger: logger)
534 | .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
| `- warning: type 'T' does not conform to the 'Sendable' protocol
535 | }
536 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:513:24: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
511 | guard self.loop.inEventLoop else {
512 | return self.loop.flatSubmit {
513 | return self.forwardOperationToConnection(
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
514 | operation,
515 | preferredConnection: preferredConnection,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:514:21: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a '@Sendable' closure
512 | return self.loop.flatSubmit {
513 | return self.forwardOperationToConnection(
514 | operation,
| |- warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
515 | preferredConnection: preferredConnection,
516 | eventLoop: eventLoop,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:515:42: warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a '@Sendable' closure
513 | return self.forwardOperationToConnection(
514 | operation,
515 | preferredConnection: preferredConnection,
| `- warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a '@Sendable' closure
516 | eventLoop: eventLoop,
517 | taskLogger: taskLogger
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:534:28: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a '@Sendable' closure
532 | return pool
533 | .leaseConnection(logger: logger)
534 | .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
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
535 | }
536 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:534:42: warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a '@Sendable' closure
532 | return pool
533 | .leaseConnection(logger: logger)
534 | .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
| `- warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a '@Sendable' closure
535 | }
536 |
/Users/admin/builder/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>
[274/275] Compiling RediStack RedisConnectionPool+Configuration.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:66:29: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
64 | // if a password is specified, use it to authenticate before further operations happen
65 | if let password = config.password {
66 | future = future.flatMap { connection in
| `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
67 | return connection.authorize(with: password).map { connection }
68 | }
:
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:73:29: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
71 | // if a database index is specified, use it to switch the selected database before further operations happen
72 | if let database = config.initialDatabase {
73 | future = future.flatMap { connection in
| `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
74 | return connection.select(database: database).map { connection }
75 | }
:
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:62:85: warning: capture of 'config' with non-sendable type 'RedisConnection.Configuration' in a '@Sendable' closure
60 | var future = client
61 | .connect(to: config.address)
62 | .map { return RedisConnection(configuredRESPChannel: $0, defaultLogger: config.defaultLogger) }
| `- warning: capture of 'config' with non-sendable type 'RedisConnection.Configuration' in a '@Sendable' closure
63 |
64 | // if a password is specified, use it to authenticate before further operations happen
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection+Configuration.swift:64:19: note: consider making struct 'Configuration' conform to the 'Sendable' protocol
62 | extension RedisConnection {
63 | /// A configuration object for creating a single connection to Redis.
64 | public struct Configuration {
| `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
65 | /// The default port that Redis uses.
66 | ///
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:67:67: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
65 | if let password = config.password {
66 | future = future.flatMap { connection in
67 | return connection.authorize(with: password).map { connection }
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
68 | }
69 | }
:
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:74:68: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
72 | if let database = config.initialDatabase {
73 | future = future.flatMap { connection in
74 | return connection.select(database: database).map { connection }
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
75 | }
76 | }
:
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:187:28: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
185 | // if our state is still open, that means we didn't cause the closeFuture to resolve.
186 | // update state, metrics, and logging
187 | let oldState = self.state
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
188 | self.state = .closed
189 | RedisMetrics.activeConnectionCount.decrement()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:269:28: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
267 | let outboundData: RedisCommandHandler.OutboundCommandPayload = (command.serialized(), promise)
268 | let writeFuture: EventLoopFuture<Void> = self.sendCommandsImmediately
269 | ? self.channel.writeAndFlush(outboundData)
| `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
270 | : self.channel.write(outboundData)
271 |
/Users/admin/builder/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)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:270:28: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
268 | let writeFuture: EventLoopFuture<Void> = self.sendCommandsImmediately
269 | ? self.channel.writeAndFlush(outboundData)
270 | : self.channel.write(outboundData)
| `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
271 |
272 | return writeFuture
/Users/admin/builder/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)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:273:14: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
271 |
272 | return writeFuture
273 | .flatMap { promise.futureResult }
| `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
274 | .flatMapThrowing { try command.transform($0) }
275 | .hop(to: finalEventLoop)
/Users/admin/builder/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)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:275:14: warning: type 'CommandResult' does not conform to the 'Sendable' protocol
223 |
224 | extension RedisConnection {
225 | public func send<CommandResult>(
| `- note: consider making generic parameter 'CommandResult' conform to the 'Sendable' protocol
226 | _ command: RedisCommand<CommandResult>,
227 | eventLoop: EventLoop? = nil,
:
273 | .flatMap { promise.futureResult }
274 | .flatMapThrowing { try command.transform($0) }
275 | .hop(to: finalEventLoop)
| `- warning: type 'CommandResult' does not conform to the 'Sendable' protocol
276 | }
277 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:274:36: warning: capture of 'command' with non-sendable type 'RedisCommand<CommandResult>' in a '@Sendable' closure
272 | return writeFuture
273 | .flatMap { promise.futureResult }
274 | .flatMapThrowing { try command.transform($0) }
| `- warning: capture of 'command' with non-sendable type 'RedisCommand<CommandResult>' in a '@Sendable' closure
275 | .hop(to: finalEventLoop)
276 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:15: note: consider making generic struct 'RedisCommand' conform to the 'Sendable' protocol
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: consider making generic struct 'RedisCommand' conform to the 'Sendable' protocol
25 | public let keyword: String
26 | public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:312:47: warning: type 'RedisGracefulConnectionCloseEvent' does not conform to the 'Sendable' protocol
310 | let promise = finalEventLoop.makePromise(of: Void.self)
311 | let notification = promise.futureResult
312 | self.channel.triggerUserOutboundEvent(RedisGracefulConnectionCloseEvent(), promise: promise)
| `- warning: type 'RedisGracefulConnectionCloseEvent' does not conform to the 'Sendable' protocol
313 |
314 | notification.whenFailure {
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisCommandHandler.swift:181:15: note: consider making struct 'RedisGracefulConnectionCloseEvent' conform to the 'Sendable' protocol
179 |
180 | /// A channel event that informs the ``RedisCommandHandler`` that it should close the channel gracefully
181 | public struct RedisGracefulConnectionCloseEvent {
| `- note: consider making struct 'RedisGracefulConnectionCloseEvent' conform to the 'Sendable' protocol
182 | /// Creates a ``RedisGracefulConnectionCloseEvent``
183 | public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:387:18: warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
385 | return self.channel.pipeline
386 | .addRedisPubSubHandler()
387 | .flatMap { handler in
| `- warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
388 | logger.trace("handler added, adding subscription")
389 | return handler
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
92 |
93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
94 | public final class RedisPubSubHandler {
| `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
95 | private var state: State = .default
96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:390:47: warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
388 | logger.trace("handler added, adding subscription")
389 | return handler
390 | .addSubscription(for: target, receiver: receiver)
| `- warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
391 | .flatMapError { error in
392 | logger.debug(
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:65:13: note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
63 | ///
64 | /// Use the `values` property to quickly access the underlying list of the target for any purpose that requires a the `String` values.
65 | public enum RedisSubscriptionTarget: Equatable, CustomDebugStringConvertible {
| `- note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
66 | case channels([RedisChannelName])
67 | case patterns([String])
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:390:65: warning: capture of 'receiver' with non-sendable type 'RedisPubSubEventReceiver' (aka '(RedisPubSubEvent) -> ()') in a '@Sendable' closure
388 | logger.trace("handler added, adding subscription")
389 | return handler
390 | .addSubscription(for: target, receiver: receiver)
| |- warning: capture of 'receiver' with non-sendable type 'RedisPubSubEventReceiver' (aka '(RedisPubSubEvent) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
391 | .flatMapError { error in
392 | logger.debug(
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:400:36: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
398 | // if there was an error, no subscriptions were made
399 | // so remove the handler and propogate the error to the caller by rethrowing it
400 | return self.channel.pipeline.removeRedisPubSubHandler(handler)
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
401 | .flatMapThrowing { throw error }
402 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:400:36: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
398 | // if there was an error, no subscriptions were made
399 | // so remove the handler and propogate the error to the caller by rethrowing it
400 | return self.channel.pipeline.removeRedisPubSubHandler(handler)
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
401 | .flatMapThrowing { throw error }
402 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:400:83: warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
398 | // if there was an error, no subscriptions were made
399 | // so remove the handler and propogate the error to the caller by rethrowing it
400 | return self.channel.pipeline.removeRedisPubSubHandler(handler)
| `- warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
401 | .flatMapThrowing { throw error }
402 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
92 |
93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
94 | public final class RedisPubSubHandler {
| `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
95 | private var state: State = .default
96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:406:36: warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
404 | .map { _ in
405 | logger.trace("successfully entered pubsub mode")
406 | return handler
| `- warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
407 | }
408 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
92 |
93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
94 | public final class RedisPubSubHandler {
| `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
95 | private var state: State = .default
96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:411:21: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
409 | // success, update our state
410 | .map { (handler: RedisPubSubHandler) in
411 | self.state = .pubsub(handler)
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
412 | logger.debug("the connection is now in pubsub mode")
413 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:478:68: warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
476 | logger.debug("subscription removed, but still have active subscription count", metadata: [
477 | RedisLogging.MetadataKeys.subscriptionCount: "\($0)",
478 | RedisLogging.MetadataKeys.pubsubTarget: "\(target.debugDescription)"
| `- warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
479 | ])
480 | return self.eventLoop.makeSucceededFuture(())
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:65:13: note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
63 | ///
64 | /// Use the `values` property to quickly access the underlying list of the target for any purpose that requires a the `String` values.
65 | public enum RedisSubscriptionTarget: Equatable, CustomDebugStringConvertible {
| `- note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
66 | case channels([RedisChannelName])
67 | case patterns([String])
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:480:28: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
478 | RedisLogging.MetadataKeys.pubsubTarget: "\(target.debugDescription)"
479 | ])
480 | return self.eventLoop.makeSucceededFuture(())
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
481 | }
482 | logger.debug("subscription removed, with no current active subscriptions. leaving pubsub mode")
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:485:47: warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
483 | // otherwise, remove the handler and update our state
484 | return self.channel.pipeline
485 | .removeRedisPubSubHandler(handler)
| `- warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
486 | .map {
487 | self.state = .open
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
92 |
93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
94 | public final class RedisPubSubHandler {
| `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
95 | private var state: State = .default
96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:478:68: warning: implicit capture of 'target' requires that 'RedisSubscriptionTarget' conforms to 'Sendable'; this is an error in the Swift 6 language mode
476 | logger.debug("subscription removed, but still have active subscription count", metadata: [
477 | RedisLogging.MetadataKeys.subscriptionCount: "\($0)",
478 | RedisLogging.MetadataKeys.pubsubTarget: "\(target.debugDescription)"
| `- warning: implicit capture of 'target' requires that 'RedisSubscriptionTarget' conforms to 'Sendable'; this is an error in the Swift 6 language mode
479 | ])
480 | return self.eventLoop.makeSucceededFuture(())
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:65:13: note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
63 | ///
64 | /// Use the `values` property to quickly access the underlying list of the target for any purpose that requires a the `String` values.
65 | public enum RedisSubscriptionTarget: Equatable, CustomDebugStringConvertible {
| `- note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
66 | case channels([RedisChannelName])
67 | case patterns([String])
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:487:25: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
485 | .removeRedisPubSubHandler(handler)
486 | .map {
487 | self.state = .open
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
488 | logger.debug("connection is now open to all commands")
489 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:135:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
133 | public func activate(logger: Logger? = nil) {
134 | self.loop.execute {
135 | self.pool?.activate(logger: self.prepareLoggerForUse(logger))
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
136 | }
137 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:149:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
147 | public func close(promise: EventLoopPromise<Void>? = nil, logger: Logger? = nil) {
148 | self.loop.execute {
149 | self.pool?.close(promise: promise, logger: self.prepareLoggerForUse(logger))
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
150 |
151 | self.pubsubConnection = nil
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:208:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
206 |
207 | return operation(connection)
208 | .always { _ in returnConnection(connection, logger) }
| |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 | },
210 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:208:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
206 |
207 | return operation(connection)
208 | .always { _ in returnConnection(connection, logger) }
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
209 | },
210 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:240:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
238 |
239 | for request in unbufferedRequests {
240 | request.completeWith(self.connectionFactory(self.loop))
| `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:233:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
231 |
232 | self.loop.execute {
233 | self.serverConnectionAddresses.update(newAddresses)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
234 |
235 | // Shiny, we can unbuffer any pending connections and pass them on as they now have somewhere to go.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:301:26: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
299 | ) where Discovery.Instance == SocketAddress {
300 | self.loop.execute {
301 | let logger = self.prepareLoggerForUse(logger)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
302 |
303 | self.cancellationToken = discovery.subscribe(
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:307:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
305 | onNext: { result in
306 | // This closure may execute on any thread.
307 | self.loop.execute {
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
308 | switch result {
309 | case .success(let targets):
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:310:29: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
308 | switch result {
309 | case .success(let targets):
310 | self.updateConnectionAddresses(targets, logger: logger)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
311 | case .failure(let error):
312 | logger.error("Service discovery error", metadata: [RedisLogging.MetadataKeys.error: "\(error)"])
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:318:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
316 | onComplete: { (_: CompletionReason) in
317 | // We don't really care about the reason, we just want to brick this client.
318 | self.close(logger: logger)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
319 | }
320 | )
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:347:10: warning: type 'CommandResult' does not conform to the 'Sendable' protocol
327 | public var eventLoop: EventLoop { self.loop }
328 |
329 | public func send<CommandResult>(
| `- note: consider making generic parameter 'CommandResult' conform to the 'Sendable' protocol
330 | _ command: RedisCommand<CommandResult>,
331 | eventLoop: EventLoop? = nil,
:
345 | taskLogger: logger
346 | )
347 | .hop(to: eventLoop ?? self.eventLoop)
| `- warning: type 'CommandResult' does not conform to the 'Sendable' protocol
348 | }
349 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:341:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
339 | return connection
340 | .send(command, eventLoop: eventLoop, logger: logger)
341 | .always { _ in returnConnection(connection, logger) }
| |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
342 | },
343 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:341:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
339 | return connection
340 | .send(command, eventLoop: eventLoop, logger: logger)
341 | .always { _ in returnConnection(connection, logger) }
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
342 | },
343 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:481:29: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
479 | // a "no-op" unsub, so we need to return this connection
480 | guard
481 | self.pubsubConnection == nil,
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
482 | self.leasedConnectionCount > 0
483 | else { return }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:484:25: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
482 | self.leasedConnectionCount > 0
483 | else { return }
484 | returnConnection(connection, logger)
| |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
485 | }
486 | },
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:484:42: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
482 | self.leasedConnectionCount > 0
483 | else { return }
484 | returnConnection(connection, logger)
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
485 | }
486 | },
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:512:30: warning: type 'T' does not conform to the 'Sendable' protocol
502 | */
503 | @usableFromInline
504 | internal func forwardOperationToConnection<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
505 | _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
506 | preferredConnection: RedisConnection?,
:
510 | // Establish event loop context then jump to the in-loop version.
511 | guard self.loop.inEventLoop else {
512 | return self.loop.flatSubmit {
| `- warning: type 'T' does not conform to the 'Sendable' protocol
513 | return self.forwardOperationToConnection(
514 | operation,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:534:18: warning: type 'T' does not conform to the 'Sendable' protocol
502 | */
503 | @usableFromInline
504 | internal func forwardOperationToConnection<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
505 | _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
506 | preferredConnection: RedisConnection?,
:
532 | return pool
533 | .leaseConnection(logger: logger)
534 | .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
| `- warning: type 'T' does not conform to the 'Sendable' protocol
535 | }
536 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:513:24: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
511 | guard self.loop.inEventLoop else {
512 | return self.loop.flatSubmit {
513 | return self.forwardOperationToConnection(
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
514 | operation,
515 | preferredConnection: preferredConnection,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:514:21: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a '@Sendable' closure
512 | return self.loop.flatSubmit {
513 | return self.forwardOperationToConnection(
514 | operation,
| |- warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
515 | preferredConnection: preferredConnection,
516 | eventLoop: eventLoop,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:515:42: warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a '@Sendable' closure
513 | return self.forwardOperationToConnection(
514 | operation,
515 | preferredConnection: preferredConnection,
| `- warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a '@Sendable' closure
516 | eventLoop: eventLoop,
517 | taskLogger: taskLogger
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:534:28: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a '@Sendable' closure
532 | return pool
533 | .leaseConnection(logger: logger)
534 | .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
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
535 | }
536 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:534:42: warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a '@Sendable' closure
532 | return pool
533 | .leaseConnection(logger: logger)
534 | .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
| `- warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a '@Sendable' closure
535 | }
536 |
/Users/admin/builder/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>
[275/275] Compiling RediStack RedisConnectionPool.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:66:29: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
64 | // if a password is specified, use it to authenticate before further operations happen
65 | if let password = config.password {
66 | future = future.flatMap { connection in
| `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
67 | return connection.authorize(with: password).map { connection }
68 | }
:
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:73:29: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
71 | // if a database index is specified, use it to switch the selected database before further operations happen
72 | if let database = config.initialDatabase {
73 | future = future.flatMap { connection in
| `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
74 | return connection.select(database: database).map { connection }
75 | }
:
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:62:85: warning: capture of 'config' with non-sendable type 'RedisConnection.Configuration' in a '@Sendable' closure
60 | var future = client
61 | .connect(to: config.address)
62 | .map { return RedisConnection(configuredRESPChannel: $0, defaultLogger: config.defaultLogger) }
| `- warning: capture of 'config' with non-sendable type 'RedisConnection.Configuration' in a '@Sendable' closure
63 |
64 | // if a password is specified, use it to authenticate before further operations happen
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection+Configuration.swift:64:19: note: consider making struct 'Configuration' conform to the 'Sendable' protocol
62 | extension RedisConnection {
63 | /// A configuration object for creating a single connection to Redis.
64 | public struct Configuration {
| `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
65 | /// The default port that Redis uses.
66 | ///
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:67:67: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
65 | if let password = config.password {
66 | future = future.flatMap { connection in
67 | return connection.authorize(with: password).map { connection }
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
68 | }
69 | }
:
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:74:68: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
72 | if let database = config.initialDatabase {
73 | future = future.flatMap { connection in
74 | return connection.select(database: database).map { connection }
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
75 | }
76 | }
:
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:187:28: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
185 | // if our state is still open, that means we didn't cause the closeFuture to resolve.
186 | // update state, metrics, and logging
187 | let oldState = self.state
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
188 | self.state = .closed
189 | RedisMetrics.activeConnectionCount.decrement()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:269:28: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
267 | let outboundData: RedisCommandHandler.OutboundCommandPayload = (command.serialized(), promise)
268 | let writeFuture: EventLoopFuture<Void> = self.sendCommandsImmediately
269 | ? self.channel.writeAndFlush(outboundData)
| `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
270 | : self.channel.write(outboundData)
271 |
/Users/admin/builder/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)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:270:28: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
268 | let writeFuture: EventLoopFuture<Void> = self.sendCommandsImmediately
269 | ? self.channel.writeAndFlush(outboundData)
270 | : self.channel.write(outboundData)
| `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
271 |
272 | return writeFuture
/Users/admin/builder/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)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:273:14: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
271 |
272 | return writeFuture
273 | .flatMap { promise.futureResult }
| `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
274 | .flatMapThrowing { try command.transform($0) }
275 | .hop(to: finalEventLoop)
/Users/admin/builder/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)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:275:14: warning: type 'CommandResult' does not conform to the 'Sendable' protocol
223 |
224 | extension RedisConnection {
225 | public func send<CommandResult>(
| `- note: consider making generic parameter 'CommandResult' conform to the 'Sendable' protocol
226 | _ command: RedisCommand<CommandResult>,
227 | eventLoop: EventLoop? = nil,
:
273 | .flatMap { promise.futureResult }
274 | .flatMapThrowing { try command.transform($0) }
275 | .hop(to: finalEventLoop)
| `- warning: type 'CommandResult' does not conform to the 'Sendable' protocol
276 | }
277 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:274:36: warning: capture of 'command' with non-sendable type 'RedisCommand<CommandResult>' in a '@Sendable' closure
272 | return writeFuture
273 | .flatMap { promise.futureResult }
274 | .flatMapThrowing { try command.transform($0) }
| `- warning: capture of 'command' with non-sendable type 'RedisCommand<CommandResult>' in a '@Sendable' closure
275 | .hop(to: finalEventLoop)
276 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:15: note: consider making generic struct 'RedisCommand' conform to the 'Sendable' protocol
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: consider making generic struct 'RedisCommand' conform to the 'Sendable' protocol
25 | public let keyword: String
26 | public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:312:47: warning: type 'RedisGracefulConnectionCloseEvent' does not conform to the 'Sendable' protocol
310 | let promise = finalEventLoop.makePromise(of: Void.self)
311 | let notification = promise.futureResult
312 | self.channel.triggerUserOutboundEvent(RedisGracefulConnectionCloseEvent(), promise: promise)
| `- warning: type 'RedisGracefulConnectionCloseEvent' does not conform to the 'Sendable' protocol
313 |
314 | notification.whenFailure {
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisCommandHandler.swift:181:15: note: consider making struct 'RedisGracefulConnectionCloseEvent' conform to the 'Sendable' protocol
179 |
180 | /// A channel event that informs the ``RedisCommandHandler`` that it should close the channel gracefully
181 | public struct RedisGracefulConnectionCloseEvent {
| `- note: consider making struct 'RedisGracefulConnectionCloseEvent' conform to the 'Sendable' protocol
182 | /// Creates a ``RedisGracefulConnectionCloseEvent``
183 | public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:387:18: warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
385 | return self.channel.pipeline
386 | .addRedisPubSubHandler()
387 | .flatMap { handler in
| `- warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
388 | logger.trace("handler added, adding subscription")
389 | return handler
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
92 |
93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
94 | public final class RedisPubSubHandler {
| `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
95 | private var state: State = .default
96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:390:47: warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
388 | logger.trace("handler added, adding subscription")
389 | return handler
390 | .addSubscription(for: target, receiver: receiver)
| `- warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
391 | .flatMapError { error in
392 | logger.debug(
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:65:13: note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
63 | ///
64 | /// Use the `values` property to quickly access the underlying list of the target for any purpose that requires a the `String` values.
65 | public enum RedisSubscriptionTarget: Equatable, CustomDebugStringConvertible {
| `- note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
66 | case channels([RedisChannelName])
67 | case patterns([String])
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:390:65: warning: capture of 'receiver' with non-sendable type 'RedisPubSubEventReceiver' (aka '(RedisPubSubEvent) -> ()') in a '@Sendable' closure
388 | logger.trace("handler added, adding subscription")
389 | return handler
390 | .addSubscription(for: target, receiver: receiver)
| |- warning: capture of 'receiver' with non-sendable type 'RedisPubSubEventReceiver' (aka '(RedisPubSubEvent) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
391 | .flatMapError { error in
392 | logger.debug(
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:400:36: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
398 | // if there was an error, no subscriptions were made
399 | // so remove the handler and propogate the error to the caller by rethrowing it
400 | return self.channel.pipeline.removeRedisPubSubHandler(handler)
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
401 | .flatMapThrowing { throw error }
402 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:400:36: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
398 | // if there was an error, no subscriptions were made
399 | // so remove the handler and propogate the error to the caller by rethrowing it
400 | return self.channel.pipeline.removeRedisPubSubHandler(handler)
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
401 | .flatMapThrowing { throw error }
402 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:400:83: warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
398 | // if there was an error, no subscriptions were made
399 | // so remove the handler and propogate the error to the caller by rethrowing it
400 | return self.channel.pipeline.removeRedisPubSubHandler(handler)
| `- warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
401 | .flatMapThrowing { throw error }
402 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
92 |
93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
94 | public final class RedisPubSubHandler {
| `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
95 | private var state: State = .default
96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:406:36: warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
404 | .map { _ in
405 | logger.trace("successfully entered pubsub mode")
406 | return handler
| `- warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
407 | }
408 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
92 |
93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
94 | public final class RedisPubSubHandler {
| `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
95 | private var state: State = .default
96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:411:21: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
409 | // success, update our state
410 | .map { (handler: RedisPubSubHandler) in
411 | self.state = .pubsub(handler)
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
412 | logger.debug("the connection is now in pubsub mode")
413 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:478:68: warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
476 | logger.debug("subscription removed, but still have active subscription count", metadata: [
477 | RedisLogging.MetadataKeys.subscriptionCount: "\($0)",
478 | RedisLogging.MetadataKeys.pubsubTarget: "\(target.debugDescription)"
| `- warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
479 | ])
480 | return self.eventLoop.makeSucceededFuture(())
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:65:13: note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
63 | ///
64 | /// Use the `values` property to quickly access the underlying list of the target for any purpose that requires a the `String` values.
65 | public enum RedisSubscriptionTarget: Equatable, CustomDebugStringConvertible {
| `- note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
66 | case channels([RedisChannelName])
67 | case patterns([String])
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:480:28: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
478 | RedisLogging.MetadataKeys.pubsubTarget: "\(target.debugDescription)"
479 | ])
480 | return self.eventLoop.makeSucceededFuture(())
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
481 | }
482 | logger.debug("subscription removed, with no current active subscriptions. leaving pubsub mode")
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:485:47: warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
483 | // otherwise, remove the handler and update our state
484 | return self.channel.pipeline
485 | .removeRedisPubSubHandler(handler)
| `- warning: capture of 'handler' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
486 | .map {
487 | self.state = .open
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
92 |
93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
94 | public final class RedisPubSubHandler {
| `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
95 | private var state: State = .default
96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:478:68: warning: implicit capture of 'target' requires that 'RedisSubscriptionTarget' conforms to 'Sendable'; this is an error in the Swift 6 language mode
476 | logger.debug("subscription removed, but still have active subscription count", metadata: [
477 | RedisLogging.MetadataKeys.subscriptionCount: "\($0)",
478 | RedisLogging.MetadataKeys.pubsubTarget: "\(target.debugDescription)"
| `- warning: implicit capture of 'target' requires that 'RedisSubscriptionTarget' conforms to 'Sendable'; this is an error in the Swift 6 language mode
479 | ])
480 | return self.eventLoop.makeSucceededFuture(())
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:65:13: note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
63 | ///
64 | /// Use the `values` property to quickly access the underlying list of the target for any purpose that requires a the `String` values.
65 | public enum RedisSubscriptionTarget: Equatable, CustomDebugStringConvertible {
| `- note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
66 | case channels([RedisChannelName])
67 | case patterns([String])
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:487:25: warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
:
485 | .removeRedisPubSubHandler(handler)
486 | .map {
487 | self.state = .open
| `- warning: capture of 'self' with non-sendable type 'RedisConnection' in a '@Sendable' closure
488 | logger.debug("connection is now open to all commands")
489 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:135:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
133 | public func activate(logger: Logger? = nil) {
134 | self.loop.execute {
135 | self.pool?.activate(logger: self.prepareLoggerForUse(logger))
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
136 | }
137 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:149:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
147 | public func close(promise: EventLoopPromise<Void>? = nil, logger: Logger? = nil) {
148 | self.loop.execute {
149 | self.pool?.close(promise: promise, logger: self.prepareLoggerForUse(logger))
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
150 |
151 | self.pubsubConnection = nil
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:208:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
206 |
207 | return operation(connection)
208 | .always { _ in returnConnection(connection, logger) }
| |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 | },
210 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:208:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
206 |
207 | return operation(connection)
208 | .always { _ in returnConnection(connection, logger) }
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
209 | },
210 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:240:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
238 |
239 | for request in unbufferedRequests {
240 | request.completeWith(self.connectionFactory(self.loop))
| `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
241 | }
242 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:233:13: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
231 |
232 | self.loop.execute {
233 | self.serverConnectionAddresses.update(newAddresses)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
234 |
235 | // Shiny, we can unbuffer any pending connections and pass them on as they now have somewhere to go.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:301:26: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
299 | ) where Discovery.Instance == SocketAddress {
300 | self.loop.execute {
301 | let logger = self.prepareLoggerForUse(logger)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
302 |
303 | self.cancellationToken = discovery.subscribe(
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:307:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
305 | onNext: { result in
306 | // This closure may execute on any thread.
307 | self.loop.execute {
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
308 | switch result {
309 | case .success(let targets):
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:310:29: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
308 | switch result {
309 | case .success(let targets):
310 | self.updateConnectionAddresses(targets, logger: logger)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
311 | case .failure(let error):
312 | logger.error("Service discovery error", metadata: [RedisLogging.MetadataKeys.error: "\(error)"])
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:318:21: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
316 | onComplete: { (_: CompletionReason) in
317 | // We don't really care about the reason, we just want to brick this client.
318 | self.close(logger: logger)
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
319 | }
320 | )
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:347:10: warning: type 'CommandResult' does not conform to the 'Sendable' protocol
327 | public var eventLoop: EventLoop { self.loop }
328 |
329 | public func send<CommandResult>(
| `- note: consider making generic parameter 'CommandResult' conform to the 'Sendable' protocol
330 | _ command: RedisCommand<CommandResult>,
331 | eventLoop: EventLoop? = nil,
:
345 | taskLogger: logger
346 | )
347 | .hop(to: eventLoop ?? self.eventLoop)
| `- warning: type 'CommandResult' does not conform to the 'Sendable' protocol
348 | }
349 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:341:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
339 | return connection
340 | .send(command, eventLoop: eventLoop, logger: logger)
341 | .always { _ in returnConnection(connection, logger) }
| |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
342 | },
343 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:341:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
339 | return connection
340 | .send(command, eventLoop: eventLoop, logger: logger)
341 | .always { _ in returnConnection(connection, logger) }
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
342 | },
343 | preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:481:29: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
479 | // a "no-op" unsub, so we need to return this connection
480 | guard
481 | self.pubsubConnection == nil,
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
482 | self.leasedConnectionCount > 0
483 | else { return }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:484:25: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
482 | self.leasedConnectionCount > 0
483 | else { return }
484 | returnConnection(connection, logger)
| |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
485 | }
486 | },
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:484:42: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
482 | self.leasedConnectionCount > 0
483 | else { return }
484 | returnConnection(connection, logger)
| `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a '@Sendable' closure
485 | }
486 | },
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:512:30: warning: type 'T' does not conform to the 'Sendable' protocol
502 | */
503 | @usableFromInline
504 | internal func forwardOperationToConnection<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
505 | _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
506 | preferredConnection: RedisConnection?,
:
510 | // Establish event loop context then jump to the in-loop version.
511 | guard self.loop.inEventLoop else {
512 | return self.loop.flatSubmit {
| `- warning: type 'T' does not conform to the 'Sendable' protocol
513 | return self.forwardOperationToConnection(
514 | operation,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:534:18: warning: type 'T' does not conform to the 'Sendable' protocol
502 | */
503 | @usableFromInline
504 | internal func forwardOperationToConnection<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
505 | _ operation: @escaping (RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>,
506 | preferredConnection: RedisConnection?,
:
532 | return pool
533 | .leaseConnection(logger: logger)
534 | .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
| `- warning: type 'T' does not conform to the 'Sendable' protocol
535 | }
536 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:513:24: warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
28 | /// single `EventLoop`: if callers call the API from a different `EventLoop` (or from no `EventLoop` at all)
29 | /// `RedisConnectionPool` will ensure that the call is dispatched to the correct loop.
30 | public class RedisConnectionPool {
| `- note: class 'RedisConnectionPool' does not conform to the 'Sendable' protocol
31 | /// A unique identifer to represent this connection.
32 | public let id = UUID()
:
511 | guard self.loop.inEventLoop else {
512 | return self.loop.flatSubmit {
513 | return self.forwardOperationToConnection(
| `- warning: capture of 'self' with non-sendable type 'RedisConnectionPool' in a '@Sendable' closure
514 | operation,
515 | preferredConnection: preferredConnection,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:514:21: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a '@Sendable' closure
512 | return self.loop.flatSubmit {
513 | return self.forwardOperationToConnection(
514 | operation,
| |- warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
515 | preferredConnection: preferredConnection,
516 | eventLoop: eventLoop,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:515:42: warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a '@Sendable' closure
513 | return self.forwardOperationToConnection(
514 | operation,
515 | preferredConnection: preferredConnection,
| `- warning: capture of 'preferredConnection' with non-sendable type 'RedisConnection?' in a '@Sendable' closure
516 | eventLoop: eventLoop,
517 | taskLogger: taskLogger
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:534:28: warning: capture of 'operation' with non-sendable type '(RedisConnection, @escaping (RedisConnection, Logger) -> Void, Logger) -> EventLoopFuture<T>' in a '@Sendable' closure
532 | return pool
533 | .leaseConnection(logger: logger)
534 | .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
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
535 | }
536 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:534:42: warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a '@Sendable' closure
532 | return pool
533 | .leaseConnection(logger: logger)
534 | .flatMap { operation($0, pool.returnConnection(_:logger:), logger) }
| `- warning: capture of 'pool' with non-sendable type 'ConnectionPool' in a '@Sendable' closure
535 | }
536 |
/Users/admin/builder/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>
[276/284] Emitting module RedisTypes
[277/284] Compiling RedisTypes RedisSet.swift
/Users/admin/builder/spi-builder-workspace/Sources/RedisTypes/RedisSet.swift:210:55: warning: type 'Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
58 | ///
59 | /// See [https://redis.io/topics/data-types-intro#sets](https://redis.io/topics/data-types-intro#sets)
60 | public struct RedisSet<Element> where Element: RESPValueConvertible {
| `- note: consider making generic parameter 'Element' conform to the 'Sendable' protocol
61 | /// The key in Redis that this instance is a reference to.
62 | public var identifier: RedisKey { return self.id }
:
208 | public func popRandomElements(max count: Int) -> EventLoopFuture<[Element]> {
209 | guard count >= 0 else { return self.eventLoop.makeFailedFuture(RedisError.indexOutOfRange) }
210 | guard count >= 1 else { return self.eventLoop.makeSucceededFuture([]) }
| `- warning: type 'Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
211 | return self.send(.spop(from: self.id, max: count))
212 | .map { return $0.compactMap(Element.init) }
[278/284] Compiling RediStackTestUtils RedisIntegrationTestCase.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStackTestUtils/RedisIntegrationTestCase.swift:69:37: warning: capture of 'self' with non-sendable type 'RedisIntegrationTestCase' in a '@Sendable' closure
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(.flushall)
69 | .flatMap { _ in self.connection.close() }
| `- warning: capture of 'self' with non-sendable type 'RedisIntegrationTestCase' in a '@Sendable' closure
70 | .wait()
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStackTestUtils/RedisIntegrationTestCase.swift:91:11: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
89 | ),
90 | boundEventLoop: eventLoopGroup.next()
91 | ).wait()
| `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
92 | }
93 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
97 | ///
98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
99 | public final class RedisConnection: RedisClient {
| `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 | /// A unique identifer to represent this connection.
101 | public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStackTestUtils/RedisIntegrationTestCase.swift:17:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
15 | import NIOCore
16 | import NIOPosix
17 | import RediStack
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
18 | import XCTest
19 |
[279/284] Compiling RediStackTestUtils General.swift
[280/284] Compiling RediStackTestUtils _Deprecations.swift
[281/284] Compiling RediStackTestUtils RedisConnectionPoolIntegrationTestCase.swift
[282/284] Compiling RediStackTestUtils RediStack.swift
[283/284] Emitting module RediStackTestUtils
[284/284] Compiling RediStackTestUtils EmbeddedMockRedisServer.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStackTestUtils/EmbeddedMockRedisServer.swift:62:34: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
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
63 |
64 | default:
/Users/admin/builder/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)
/Users/admin/builder/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
/Users/admin/builder/spi-builder-workspace/Sources/RediStackTestUtils/EmbeddedMockRedisServer.swift:73:13: warning: capture of 'self' with non-sendable type 'EmbeddedMockRedisServer' in a '@Sendable' closure
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
74 | }
75 |
Build complete! (18.96s)
Build complete.
{
"dependencies" : [
{
"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-atomics",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.2",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-atomics.git"
},
{
"identity" : "swift-service-discovery",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-service-discovery"
}
],
"manifest_display_name" : "RediStack",
"name" : "RediStack",
"path" : "/Users/admin/builder/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" : [
"NIOCore"
],
"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" : [
"NIOCore",
"NIOPosix",
"NIOEmbedded",
"NIOTestUtils"
],
"sources" : [
"ChannelHandlers/RedisByteDecoderTests.swift",
"ChannelHandlers/RedisCommandHandlerTests.swift",
"ChannelHandlers/RedisMessageEncoderTests.swift",
"ConfigurationTests.swift",
"ConnectionPoolTests.swift",
"RESPTranslatorTests.swift",
"RESPValueTests.swift",
"RedisCommandTests.swift",
"RedisConnectionTests.swift",
"RedisKeyLifetime.swift"
],
"target_dependencies" : [
"RediStack",
"RediStackTestUtils"
],
"type" : "test"
},
{
"c99name" : "RediStackTestUtils",
"module_type" : "SwiftTarget",
"name" : "RediStackTestUtils",
"path" : "Sources/RediStackTestUtils",
"product_dependencies" : [
"NIOCore",
"NIOPosix",
"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",
"ServiceDiscovery"
],
"sources" : [
"Commands/ConnectionCommandsTests.swift",
"Commands/HashCommandsTests.swift",
"Commands/KeyCommandsTests.swift",
"Commands/ListCommandsTests.swift",
"Commands/PubSubCommandsTests.swift",
"Commands/ServerCommandsTests.swift",
"Commands/SetCommandsTests.swift",
"Commands/SortedSetCommandsTests.swift",
"Commands/StringCommandsTests.swift",
"RediStackIntegrationTestCase.swift",
"RedisConnectionPoolTests.swift",
"RedisConnectionTests.swift",
"RedisLoggingTests.swift",
"RedisServiceDiscoveryTests.swift"
],
"target_dependencies" : [
"RediStack",
"RediStackTestUtils"
],
"type" : "test"
},
{
"c99name" : "RediStack",
"module_type" : "SwiftTarget",
"name" : "RediStack",
"path" : "Sources/RediStack",
"product_dependencies" : [
"Atomics",
"NIOCore",
"NIOPosix",
"Logging",
"Metrics",
"ServiceDiscovery"
],
"product_memberships" : [
"RediStack",
"RediStackTestUtils",
"RedisTypes"
],
"sources" : [
"ChannelHandlers/RedisByteDecoder.swift",
"ChannelHandlers/RedisCommandHandler.swift",
"ChannelHandlers/RedisMessageEncoder.swift",
"ChannelHandlers/RedisPubSubHandler.swift",
"Commands/ConnectionCommands.swift",
"Commands/HashCommands.swift",
"Commands/KeyCommands.swift",
"Commands/ListCommands.swift",
"Commands/PubSubCommands.swift",
"Commands/RedisCommand.swift",
"Commands/ServerCommands.swift",
"Commands/SetCommands.swift",
"Commands/SortedSetCommands.swift",
"Commands/StringCommands.swift",
"ConnectionPool/ConnectionPool.swift",
"ConnectionPool/ConnectionPoolErrors.swift",
"Extensions/StandardLibrary.swift",
"Extensions/SwiftNIO.swift",
"RESP/RESPTranslator.swift",
"RESP/RESPValue.swift",
"RESP/RESPValueConvertible.swift",
"RedisChannelName.swift",
"RedisClient.swift",
"RedisConnection+Configuration.swift",
"RedisConnection.swift",
"RedisConnectionPool+Configuration.swift",
"RedisConnectionPool.swift",
"RedisError.swift",
"RedisKey+TTL.swift",
"RedisKey.swift",
"RedisLogging.swift",
"RedisMetrics.swift",
"_Deprecations.swift"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/swift-server/redistack/2.0.0-gamma.1.1
Repository: swift-server/RediStack
Swift version used: 6.1
Target: RediStack
Extracting symbol information for 'RediStack'...
Finished extracting symbol information for 'RediStack'. (9.08s)
Building documentation for 'RediStack'...
warning: Parameter 'key' not found in type method declaration
--> ../Commands/ListCommands.swift:82:15-82:18
80 | /// It is **highly** recommended to set a reasonable `timeout` or to use the non-blocking `rpop` method where possible.
81 | /// - Parameters:
82 + /// - key: The key of the list to pop from.
| ╰─suggestion: Replace 'key' with 'keys'
83 | /// - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
84 | /// - Returns: The popped value and the key of its source list, otherwise `nil`.
warning: Parameter 'keys' is missing documentation
--> ../Commands/ListCommands.swift:83:103-83:103
81 | /// - Parameters:
82 | /// - key: The key of the list to pop from.
83 + /// - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
| ╰─suggestion: Document 'keys' parameter
84 | /// - Returns: The popped value and the key of its source list, otherwise `nil`.
85 | public static func brpop(from keys: [RedisKey], timeout: TimeAmount = .seconds(0)) -> RedisCommand<(RedisKey, RESPValue)?> {
warning: Parameter 'key' not found in type method declaration
--> ../Commands/ListCommands.swift:95:15-95:18
93 | /// It is **highly** recommended to set a reasonable `timeout` or to use the non-blocking `rpop` method where possible.
94 | /// - Parameters:
95 + /// - key: The key of the list to pop from.
| ╰─suggestion: Replace 'key' with 'keys'
96 | /// - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
97 | /// - Returns: The popped value and the key of its source list, otherwise `nil`.
warning: Parameter 'keys' is missing documentation
--> ../Commands/ListCommands.swift:96:103-96:103
94 | /// - Parameters:
95 | /// - key: The key of the list to pop from.
96 + /// - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
| ╰─suggestion: Document 'keys' parameter
97 | /// - Returns: The popped value and the key of its source list, otherwise `nil`.
98 | public static func brpop(
warning: External name 'sources' used to document parameter
--> ../Commands/SetCommands.swift:68:15-68:22
66 | /// - Parameters:
67 | /// - destination: The key of the new set from the result.
68 + /// - sources: The list of source sets to calculate the difference of.
| ╰─suggestion: Replace 'sources' with 'keys'
69 | public static func sdiffstore(as destination: RedisKey, sources keys: [RedisKey]) -> RedisCommand<Int> {
70 | assert(!keys.isEmpty, "at least 1 key should be provided")
warning: External name 'sources' used to document parameter
--> ../Commands/SetCommands.swift:95:15-95:22
93 | /// - Parameters:
94 | /// - destination: The key of the new set from the result.
95 + /// - sources: A list of source sets to calculate the intersection of.
| ╰─suggestion: Replace 'sources' with 'keys'
96 | public static func sinterstore(as destination: RedisKey, sources keys: [RedisKey]) -> RedisCommand<Int> {
97 | assert(!keys.isEmpty, "at least 1 key should be provided")
warning: External name 'sources' used to document parameter
--> ../Commands/SetCommands.swift:221:15-221:22
219 | /// - Parameters:
220 | /// - destination: The key of the new set from the result.
221 + /// - sources: A list of source sets to calculate the union of.
| ╰─suggestion: Replace 'sources' with 'keys'
222 | public static func sunionstore(as destination: RedisKey, sources keys: [RedisKey]) -> RedisCommand<Int> {
223 | assert(!keys.isEmpty, "at least 1 key should be provided")
warning: Parameter 'key' not found in type method declaration
--> ../Commands/SortedSetCommands.swift:87:15-87:18
85 | /// It is **highly** recommended to set a reasonable `timeout` or to use the non-blocking `zpopmax` method where possible.
86 | /// - Parameters:
87 + /// - key: The key identifying the sorted set in Redis.
| ╰─suggestion: Replace 'key' with 'keys'
88 | /// - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
89 | public static func bzpopmax(
warning: Parameter 'keys' is missing documentation
--> ../Commands/SortedSetCommands.swift:88:103-88:103
86 | /// - Parameters:
87 | /// - key: The key identifying the sorted set in Redis.
88 + /// - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
| ╰─suggestion: Document 'keys' parameter
89 | public static func bzpopmax(
90 | from keys: [RedisKey],
warning: Parameter 'key' not found in type method declaration
--> ../Commands/SortedSetCommands.swift:100:15-100:18
98 | /// It is **highly** recommended to set a reasonable `timeout` or to use the non-blocking `zpopmax` method where possible.
99 | /// - Parameters:
100 + /// - key: The key identifying the sorted set in Redis.
| ╰─suggestion: Replace 'key' with 'keys'
101 | /// - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
102 | public static func bzpopmax(
warning: Parameter 'keys' is missing documentation
--> ../Commands/SortedSetCommands.swift:101:103-101:103
99 | /// - Parameters:
100 | /// - key: The key identifying the sorted set in Redis.
101 + /// - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
| ╰─suggestion: Document 'keys' parameter
102 | public static func bzpopmax(
103 | from keys: RedisKey...,
warning: External name 'aggregateMethod' used to document parameter
--> ../Commands/SortedSetCommands.swift:266:15-266:30
264 | /// - sources: The list of sorted set keys to treat as the source of the intersection.
265 | /// - weights: The multiplying factor to apply to the corresponding `sources` key based on index of the two parameters.
266 + /// - aggregateMethod: The method of aggregating the values of the intersection. If one isn't specified, Redis will default to `.sum`.
| ╰─suggestion: Replace 'aggregateMethod' with 'aggregate'
267 | public static func zinterstore(
268 | as destination: RedisKey,
warning: 'zrange(from:firstIndex:lastIndex:resultOption:)' doesn't exist at '/RediStack/RedisCommand/zrange(from:indices:returning:)'
--> ../Commands/SortedSetCommands.swift:371:45-371:92
369 | /// `ClosedRange` will trigger a precondition failure.
370 | ///
371 + /// If you need such a range, use ``zrange(from:firstIndex:lastIndex:resultOption:)`` instead.
372 | /// - Important: This treats the SortedSet as ordered from **low** to **high**.
373 | ///
warning: 'zrange(from:firstIndex:lastIndex:)' doesn't exist at '/RediStack/RedisCommand/zrange(from:indices:returning:)'
--> ../Commands/SortedSetCommands.swift:392:45-392:79
390 | /// `Range` will trigger a precondition failure.
391 | ///
392 + /// If you need such a range, use ``zrange(from:firstIndex:lastIndex:)`` instead.
393 | /// - Important: This treats the SortedSet as ordered from **low** to **high**.
394 | ///
warning: External name 'limitBy' used to document parameter
--> ../Commands/SortedSetCommands.swift:468:15-468:22
466 | /// - key: The key of the SortedSet that will be counted.
467 | /// - range: The min and max value bounds for filtering elements by.
468 + /// - limitBy: The optional offset and count of elements to query.
| ╰─suggestion: Replace 'limitBy' with 'limit'
469 | @inlinable
470 | public static func zrangebylex<Value: CustomStringConvertible>(
warning: Parameter 'minValue' not found in type method declaration
--> ../Commands/SortedSetCommands.swift:503:15-503:23
501 | /// - Parameters:
502 | /// - key: The key of the SortedSet.
503 + /// - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
| ╰─suggestion: Replace 'minValue' with 'maxValue'
504 | /// - limit: The optional offset and count of elements to query
505 | @inlinable
warning: Parameter 'maxValue' is missing documentation
--> ../Commands/SortedSetCommands.swift:504:72-504:72
502 | /// - key: The key of the SortedSet.
503 | /// - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
504 + /// - limit: The optional offset and count of elements to query
| ╰─suggestion: Document 'maxValue' parameter
505 | @inlinable
506 | public static func zrangebylex<Value: CustomStringConvertible>(
warning: External name 'limitBy' used to document parameter
--> ../Commands/SortedSetCommands.swift:522:15-522:22
520 | /// - key: The key of the SortedSet that will be counted.
521 | /// - range: The min and max value bounds for filtering elements by.
522 + /// - limitBy: The optional offset and count of elements to query.
| ╰─suggestion: Replace 'limitBy' with 'limit'
523 | @inlinable
524 | public static func zrevrangebylex<Value: CustomStringConvertible>(
warning: Parameter 'minValue' not found in type method declaration
--> ../Commands/SortedSetCommands.swift:557:15-557:23
555 | /// - Parameters:
556 | /// - key: The key of the SortedSet.
557 + /// - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
| ╰─suggestion: Replace 'minValue' with 'maxValue'
558 | /// - limit: The optional offset and count of elements to query
559 | @inlinable
warning: Parameter 'maxValue' is missing documentation
--> ../Commands/SortedSetCommands.swift:558:72-558:72
556 | /// - key: The key of the SortedSet.
557 | /// - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
558 + /// - limit: The optional offset and count of elements to query
| ╰─suggestion: Document 'maxValue' parameter
559 | @inlinable
560 | public static func zrevrangebylex<Value: CustomStringConvertible>(
warning: Parameter 'range' not found in type method declaration
--> ../Commands/SortedSetCommands.swift:641:13-641:117
639 | /// - Parameters:
640 | /// - key: The key of the SortedSet.
641 + /// - range: The minimum score bound an element in the SortedSet should have to be included in the response.
| ╰─suggestion: Remove 'range' parameter documentation
642 | /// - limit: The optional offset and count of elements to query.
643 | /// - resultOption: What information should be returned in the result?
warning: Parameter 'minScore' is missing documentation
--> ../Commands/SortedSetCommands.swift:643:79-643:79
641 | /// - range: The minimum score bound an element in the SortedSet should have to be included in the response.
642 | /// - limit: The optional offset and count of elements to query.
| ╰─suggestion: Document 'minScore' parameter
643 + /// - resultOption: What information should be returned in the result?
644 | @inlinable
645 | public static func zrangebyscore<T>(
warning: Parameter 'range' not found in type method declaration
--> ../Commands/SortedSetCommands.swift:665:13-665:117
663 | /// - Parameters:
664 | /// - key: The key of the SortedSet.
665 + /// - range: The maximum score bound an element in the SortedSet should have to be included in the response.
| ╰─suggestion: Remove 'range' parameter documentation
666 | /// - limit: The optional offset and count of elements to query.
667 | /// - resultOption: What information should be returned in the result?
warning: Parameter 'maxScore' is missing documentation
--> ../Commands/SortedSetCommands.swift:667:79-667:79
665 | /// - range: The maximum score bound an element in the SortedSet should have to be included in the response.
666 | /// - limit: The optional offset and count of elements to query.
| ╰─suggestion: Document 'maxScore' parameter
667 + /// - resultOption: What information should be returned in the result?
668 | @inlinable
669 | public static func zrangebyscore<T>(
warning: Parameter 'minScore' not found in type method declaration
--> ../Commands/SortedSetCommands.swift:865:15-865:23
863 | /// - Parameters:
864 | /// - key: The key of the SortedSet to remove elements from.
865 + /// - minScore: The maximum score bound an element in the SortedSet should have to be removed.
| ╰─suggestion: Replace 'minScore' with 'maxScore'
866 | public static func zremrangebyscore(from key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> RedisCommand<Int> {
867 | return .zremrangebyscore(from: key, withScoresBetween: (.inclusive(-.infinity), maxScore))
warning: Parameter 'maxScore' is missing documentation
--> ../Commands/SortedSetCommands.swift:865:103-865:103
863 | /// - Parameters:
864 | /// - key: The key of the SortedSet to remove elements from.
865 + /// - minScore: The maximum score bound an element in the SortedSet should have to be removed.
| ╰─suggestion: Document 'maxScore' parameter
866 | public static func zremrangebyscore(from key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> RedisCommand<Int> {
867 | return .zremrangebyscore(from: key, withScoresBetween: (.inclusive(-.infinity), maxScore))
warning: 'zrevrange(from:firstIndex:lastIndex:)' doesn't exist at '/RediStack/RedisCommand/zrevrange(from:indices:returning:)'
--> ../Commands/SortedSetCommands.swift:891:45-891:82
889 | /// `ClosedRange` will trigger a precondition failure.
890 | ///
891 + /// If you need such a range, use ``zrevrange(from:firstIndex:lastIndex:)`` instead.
892 | /// - Important: This treats the SortedSet as ordered from **high** to **low**.
893 | ///
warning: 'zrevrange(from:firstIndex:lastIndex:)' doesn't exist at '/RediStack/RedisCommand/zrevrange(from:indices:returning:)'
--> ../Commands/SortedSetCommands.swift:910:45-910:82
908 | /// `Range` will trigger a precondition failure.
909 | ///
910 + /// If you need such a range, use ``zrevrange(from:firstIndex:lastIndex:)`` instead.
911 | /// - Important: This treats the SortedSet as ordered from **high** to **low**.
912 | ///
warning: Parameter 'range' not found in type method declaration
--> ../Commands/SortedSetCommands.swift:1043:13-1043:117
1041 | /// - Parameters:
1042 | /// - key: The key of the SortedSet.
1043 + /// - range: The minimum score bound an element in the SortedSet should have to be included in the response.
| ╰─suggestion: Remove 'range' parameter documentation
1044 | /// - limit: The optional offset and count of elements to query.
1045 | /// - resultOption: What information should be returned in the result?
warning: Parameter 'minScore' is missing documentation
--> ../Commands/SortedSetCommands.swift:1045:79-1045:79
1043 | /// - range: The minimum score bound an element in the SortedSet should have to be included in the response.
1044 | /// - limit: The optional offset and count of elements to query.
| ╰─suggestion: Document 'minScore' parameter
1045 + /// - resultOption: What information should be returned in the result?
1046 | @inlinable
1047 | public static func zrevrangebyscore<T>(
warning: Parameter 'range' not found in type method declaration
--> ../Commands/SortedSetCommands.swift:1067:13-1067:117
1065 | /// - Parameters:
1066 | /// - key: The key of the SortedSet.
1067 + /// - range: The maximum score bound an element in the SortedSet should have to be included in the response.
| ╰─suggestion: Remove 'range' parameter documentation
1068 | /// - limit: The optional offset and count of elements to query.
1069 | /// - resultOption: What information should be returned in the result?
warning: Parameter 'maxScore' is missing documentation
--> ../Commands/SortedSetCommands.swift:1069:79-1069:79
1067 | /// - range: The maximum score bound an element in the SortedSet should have to be included in the response.
1068 | /// - limit: The optional offset and count of elements to query.
| ╰─suggestion: Document 'maxScore' parameter
1069 + /// - resultOption: What information should be returned in the result?
1070 | @inlinable
1071 | public static func zrevrangebyscore<T>(
warning: External name 'aggregateMethod' used to document parameter
--> ../Commands/SortedSetCommands.swift:1120:15-1120:30
1118 | /// - sources: The list of sorted set keys to treat as the source of the union.
1119 | /// - weights: The multiplying factor to apply to the corresponding `sources` key based on index of the two parameters.
1120 + /// - aggregateMethod: The method of aggregating the values of the union. If one isn't specified, Redis will default to `.sum`.
| ╰─suggestion: Replace 'aggregateMethod' with 'aggregate'
1121 | public static func zunionstore(
1122 | as destination: RedisKey,
warning: Parameter 'encoder' is missing documentation
--> ../Commands/StringCommands.swift:381:95-381:95
379 | /// - expiration: The expiration to set on the `key` when setting the value. If `nil`, no expiration will be set.
380 | /// - eventLoop: An optional event loop to hop to for any further chaining on the returned event loop future.
| ╰─suggestion: Document 'encoder' parameter
381 + /// - logger: An optional logger instance to use for logs generated from this command.
382 | /// - Returns: A `NIO.EventLoopFuture` indicating the result of the operation; `.ok` if successful and `.conditionNotMet` if the given `condition` was not meth.
383 | ///
warning: Parameter 'encoder' is missing documentation
--> ../Commands/StringCommands.swift:381:95-381:95
379 | /// - expiration: The expiration to set on the `key` when setting the value. If `nil`, no expiration will be set.
380 | /// - eventLoop: An optional event loop to hop to for any further chaining on the returned event loop future.
| ╰─suggestion: Document 'encoder' parameter
381 + /// - logger: An optional logger instance to use for logs generated from this command.
382 | /// - Returns: A `NIO.EventLoopFuture` indicating the result of the operation; `.ok` if successful and `.conditionNotMet` if the given `condition` was not meth.
383 | ///
warning: Parameter 'encoder' is missing documentation
--> ../Commands/StringCommands.swift:381:95-381:95
379 | /// - expiration: The expiration to set on the `key` when setting the value. If `nil`, no expiration will be set.
380 | /// - eventLoop: An optional event loop to hop to for any further chaining on the returned event loop future.
| ╰─suggestion: Document 'encoder' parameter
381 + /// - logger: An optional logger instance to use for logs generated from this command.
382 | /// - Returns: A `NIO.EventLoopFuture` indicating the result of the operation; `.ok` if successful and `.conditionNotMet` if the given `condition` was not meth.
383 | ///
warning: 'DocumentationExtension' doesn't change default configuration and has no effect
--> Symbol Extensions/RedisCommand.md:4:5-4:51
2 |
3 | @Metadata {
4 + @DocumentationExtension(mergeBehavior: append)
| ╰─suggestion: Remove this 'DocumentationExtension' directive.
5 | }
6 |
warning: 'DocumentationExtension' doesn't change default configuration and has no effect
--> Symbol Extensions/RedisCommand.md:4:5-4:51
2 |
3 | @Metadata {
4 + @DocumentationExtension(mergeBehavior: append)
| ╰─suggestion: Remove this 'DocumentationExtension' directive.
5 | }
6 |
warning: Parameter 'eventLoop' is missing documentation
--> ../RedisConnection.swift:290:82-290:82
288 | /// - logger: An optional logger instance to use while trying to close the connection.
| ╰─suggestion: Document 'eventLoop' parameter
289 | ///
290 + /// If one is not provided, the connection will use its default logger.
291 | /// - Returns: A `NIO.EventLoopFuture` that resolves when the connection has been closed.
292 | @discardableResult
Finished building documentation for 'RediStack' (0.56s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/2.0.0-gamma.1.1
Updating https://github.com/apple/swift-atomics.git
Updating https://github.com/apple/swift-nio.git
Updating https://github.com/apple/swift-collections.git
Updating https://github.com/apple/swift-system.git
Updating https://github.com/apple/swift-log.git
Updating https://github.com/apple/swift-service-discovery
Updating https://github.com/apple/swift-metrics.git
Updated https://github.com/apple/swift-atomics.git (0.48s)
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Updated https://github.com/apple/swift-system.git (0.53s)
Updated https://github.com/apple/swift-log.git (0.54s)
Updated https://github.com/apple/swift-collections.git (0.54s)
Updated https://github.com/apple/swift-metrics.git (0.73s)
Updated https://github.com/apple/swift-nio.git (0.73s)
Updated https://github.com/apple/swift-service-discovery (0.73s)
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.48s)
Computing version for https://github.com/apple/swift-service-discovery
Computed https://github.com/apple/swift-service-discovery at 1.4.0 (1.47s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.2.0 (0.47s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.82.0 (0.66s)
Computing version for https://github.com/apple/swift-metrics.git
Computed https://github.com/apple/swift-metrics.git at 2.6.1 (0.46s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.3 (0.46s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.4.2 (0.45s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.1.4 (0.64s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.3 (0.55s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.77s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.39s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.3
Building for debugging...
[0/8] Write sources
[1/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version-2F0A5646E1D333AE.txt
[6/53] Compiling SymbolKit GenericConstraint.swift
[7/53] Compiling SymbolKit GenericParameter.swift
[8/53] Compiling SymbolKit Generics.swift
[9/53] Compiling SymbolKit Namespace.swift
[10/57] Compiling SymbolKit DeclarationFragments.swift
[11/57] Compiling SymbolKit Fragment.swift
[12/57] Compiling SymbolKit FragmentKind.swift
[13/57] Compiling SymbolKit FunctionParameter.swift
[14/57] Compiling SymbolKit FunctionSignature.swift
[15/57] Emitting module SymbolKit
[16/57] Compiling SymbolKit Mixin+Equals.swift
[17/57] Compiling SymbolKit Mixin+Hash.swift
[18/57] Compiling SymbolKit Mixin.swift
[19/57] Compiling SymbolKit LineList.swift
[20/57] Compiling SymbolKit Position.swift
[21/57] Compiling SymbolKit Names.swift
[22/57] Compiling SymbolKit SPI.swift
[23/57] Compiling SymbolKit Snippet.swift
[24/57] Compiling SymbolKit Extension.swift
[25/57] Compiling SymbolKit SourceRange.swift
[26/57] Compiling SymbolKit Metadata.swift
[27/57] Compiling SymbolKit Module.swift
[28/57] Compiling SymbolKit OperatingSystem.swift
[29/57] Compiling SymbolKit Platform.swift
[30/57] Compiling SymbolKit SemanticVersion.swift
[31/57] Compiling SymbolKit AccessControl.swift
[32/57] Compiling SymbolKit Availability.swift
[33/57] Compiling SymbolKit AvailabilityItem.swift
[34/57] Compiling SymbolKit Domain.swift
[35/57] Compiling SymbolKit Relationship.swift
[36/57] Compiling SymbolKit RelationshipKind.swift
[37/57] Compiling SymbolKit SourceOrigin.swift
[38/57] Compiling SymbolKit GenericConstraints.swift
[39/57] Compiling SymbolKit Swift.swift
[40/57] Compiling SymbolKit Identifier.swift
[41/57] Compiling SymbolKit KindIdentifier.swift
[42/57] Compiling SymbolKit Location.swift
[43/57] Compiling SymbolKit Mutability.swift
[44/57] Compiling SymbolKit Symbol.swift
[45/57] Compiling SymbolKit SymbolKind.swift
[46/57] Compiling SymbolKit SymbolGraph.swift
[47/57] Compiling SymbolKit GraphCollector.swift
[48/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[49/57] Compiling SymbolKit UnifiedSymbol.swift
[50/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[51/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[52/57] Compiling Snippets Snippet.swift
[53/57] Compiling Snippets SnippetParser.swift
[54/57] Emitting module Snippets
[55/61] Compiling snippet_extract URL+Status.swift
[56/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[57/61] Emitting module snippet_extract
[58/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (3.73s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/58] Compiling Atomics OptionalRawRepresentable.swift
[3/58] Compiling Atomics RawRepresentable.swift
[4/59] Compiling Atomics ManagedAtomic.swift
[5/59] Compiling Atomics ManagedAtomicLazyReference.swift
[6/59] Compiling InternalCollectionsUtilities UnsafeBufferPointer+Extras.swift
[7/59] Compiling Atomics AtomicStorage.swift
[8/59] Compiling Atomics AtomicValue.swift
[9/59] Compiling Atomics AtomicMemoryOrderings.swift
[10/59] Compiling Atomics DoubleWord.swift
[11/59] Compiling Logging MetadataProvider.swift
[14/61] Compiling _NIODataStructures PriorityQueue.swift
[15/61] Compiling Atomics UnsafeAtomic.swift
[16/61] Compiling Atomics UnsafeAtomicLazyReference.swift
[21/61] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[22/61] Compiling NIOConcurrencyHelpers NIOLock.swift
[23/61] Emitting module _NIOBase64
[24/61] Compiling _NIOBase64 Base64.swift
[25/61] Compiling _NIODataStructures Heap.swift
[26/61] Compiling _NIODataStructures _TinyArray.swift
[27/61] Compiling NIOConcurrencyHelpers lock.swift
[28/61] Compiling Atomics IntegerOperations.swift
[29/61] Compiling Atomics Unmanaged extensions.swift
[30/61] Compiling NIOConcurrencyHelpers NIOAtomic.swift
[31/61] Emitting module _NIODataStructures
[32/61] Compiling Atomics AtomicOptionalWrappable.swift
[33/61] Compiling Atomics AtomicReference.swift
[34/61] Compiling Atomics Primitives.shims.swift
[35/61] Compiling Atomics AtomicInteger.swift
[36/61] Compiling NIOConcurrencyHelpers NIOLockedValueBox.swift
[37/61] Compiling NIOConcurrencyHelpers atomics.swift
[38/61] Emitting module NIOConcurrencyHelpers
[39/61] Emitting module InternalCollectionsUtilities
[42/61] Emitting module CoreMetrics
[43/61] Compiling CoreMetrics Locks.swift
[44/61] Compiling CoreMetrics Metrics.swift
[47/61] Compiling Atomics PointerConformances.swift
[48/61] Compiling Atomics Primitives.native.swift
[49/61] Compiling Atomics AtomicBool.swift
[50/61] Compiling Atomics IntegerConformances.swift
[55/63] Compiling Logging LogHandler.swift
[58/63] Compiling Logging Locks.swift
[59/63] Emitting module Logging
[60/63] Compiling Logging Logging.swift
[61/79] Compiling DequeModule _DequeSlot.swift
[62/80] Emitting module Metrics
[63/80] Compiling Metrics Metrics.swift
[64/80] Compiling DequeModule _DequeBufferHeader.swift
[65/80] Compiling DequeModule Deque+Testing.swift
[66/80] Compiling DequeModule Deque._Storage.swift
[67/80] Compiling DequeModule _DequeBuffer.swift
[68/80] Compiling DequeModule _UnsafeWrappedBuffer.swift
[69/80] Emitting module Atomics
[70/80] Compiling DequeModule Deque+Extras.swift
[71/80] Compiling DequeModule Deque+Hashable.swift
[72/80] Compiling DequeModule Deque._UnsafeHandle.swift
[73/80] Compiling DequeModule Deque.swift
[74/80] Compiling DequeModule Deque+CustomReflectable.swift
[75/80] Compiling DequeModule Deque+Descriptions.swift
[76/80] Compiling DequeModule Deque+Equatable.swift
[77/80] Compiling DequeModule Deque+ExpressibleByArrayLiteral.swift
[78/80] Compiling DequeModule Deque+Codable.swift
[79/80] Compiling DequeModule Deque+Collection.swift
[80/80] Emitting module DequeModule
[81/91] Emitting module ServiceDiscovery
[82/151] Compiling ServiceDiscovery ServiceDiscovery+Combinators.swift
[83/151] Compiling ServiceDiscovery ServiceDiscovery.swift
[84/151] Compiling ServiceDiscovery MapServiceServiceDiscovery.swift
[85/151] Compiling ServiceDiscovery ServiceDiscovery+TypeErased.swift
[86/151] Compiling ServiceDiscovery ServiceDiscovery+AsyncAwait.swift
[87/151] Compiling ServiceDiscovery MapInstanceServiceDiscovery.swift
[88/151] Compiling ServiceDiscovery InMemoryServiceDiscovery.swift
[89/151] Compiling ServiceDiscovery FilterInstanceServiceDiscovery.swift
[90/151] Compiling ServiceDiscovery HostPort.swift
[91/151] Compiling NIOCore GlobalSingletons.swift
[92/151] Compiling NIOCore IO.swift
[93/151] Compiling NIOCore IOData.swift
[94/151] Compiling NIOCore IPProtocol.swift
[95/151] Compiling NIOCore IntegerBitPacking.swift
[96/151] Compiling NIOCore IntegerTypes.swift
[97/157] Compiling NIOCore Interfaces.swift
[98/157] Compiling NIOCore Linux.swift
[99/157] Compiling NIOCore MarkedCircularBuffer.swift
[100/157] Compiling NIOCore MulticastChannel.swift
[101/157] Compiling NIOCore NIOAny.swift
[102/157] Compiling NIOCore NIOCloseOnErrorHandler.swift
[103/157] Compiling NIOCore EventLoopFuture+AssumeIsolated.swift
[104/157] Compiling NIOCore EventLoopFuture+Deprecated.swift
[105/157] Compiling NIOCore EventLoopFuture+WithEventLoop.swift
[106/157] Compiling NIOCore EventLoopFuture.swift
[107/157] Compiling NIOCore FileDescriptor.swift
[108/157] Compiling NIOCore FileHandle.swift
[109/157] Compiling NIOCore FileRegion.swift
[110/157] Compiling NIOCore NIOLoopBound.swift
[111/157] Compiling NIOCore NIOScheduledCallback.swift
[112/157] Compiling NIOCore NIOSendable.swift
[113/157] Compiling NIOCore RecvByteBufferAllocator.swift
[114/157] Compiling NIOCore SingleStepByteToMessageDecoder.swift
[115/157] Compiling NIOCore SocketAddresses.swift
[116/157] Compiling NIOCore Codec.swift
[117/157] Compiling NIOCore ConvenienceOptionSupport.swift
[118/157] Compiling NIOCore DeadChannel.swift
[119/157] Compiling NIOCore DispatchQueue+WithFuture.swift
[120/157] Compiling NIOCore EventLoop+Deprecated.swift
[121/157] Compiling NIOCore EventLoop+SerialExecutor.swift
[122/157] Compiling NIOCore EventLoop.swift
[123/157] Compiling NIOCore SocketOptionProvider.swift
[124/157] Compiling NIOCore SystemCallHelpers.swift
[125/157] Compiling NIOCore TimeAmount+Duration.swift
[126/157] Compiling NIOCore TypeAssistedChannelHandler.swift
[127/157] Compiling NIOCore UniversalBootstrapSupport.swift
[128/157] Compiling NIOCore Utilities.swift
[129/157] Compiling NIOCore NIOAsyncSequenceProducerStrategies.swift
[130/157] Compiling NIOCore NIOAsyncWriter.swift
[131/157] Compiling NIOCore NIOThrowingAsyncSequenceProducer.swift
[132/157] Compiling NIOCore BSDSocketAPI.swift
[133/157] Compiling NIOCore ByteBuffer-aux.swift
[134/157] Compiling NIOCore ByteBuffer-binaryEncodedLengthPrefix.swift
[135/157] Compiling NIOCore ByteBuffer-conversions.swift
[136/157] Compiling NIOCore Channel.swift
[137/157] Compiling NIOCore ChannelHandler.swift
[138/157] Compiling NIOCore ChannelHandlers.swift
[139/157] Compiling NIOCore ChannelInvoker.swift
[140/157] Compiling NIOCore ChannelOption.swift
[141/157] Compiling NIOCore ChannelPipeline.swift
[142/157] Compiling NIOCore CircularBuffer.swift
[143/157] Compiling NIOCore AddressedEnvelope.swift
[144/157] Compiling NIOCore AsyncAwaitSupport.swift
[145/157] Compiling NIOCore AsyncChannel.swift
[146/157] Compiling NIOCore AsyncChannelHandler.swift
[147/157] Compiling NIOCore AsyncChannelInboundStream.swift
[148/157] Compiling NIOCore AsyncChannelOutboundWriter.swift
[149/157] Compiling NIOCore NIOAsyncSequenceProducer.swift
[150/157] Compiling NIOCore ByteBuffer-core.swift
[151/157] Compiling NIOCore ByteBuffer-hex.swift
[152/157] Compiling NIOCore ByteBuffer-int.swift
[153/157] Compiling NIOCore ByteBuffer-lengthPrefix.swift
[154/157] Compiling NIOCore ByteBuffer-multi-int.swift
[155/157] Compiling NIOCore ByteBuffer-quicBinaryEncodingStrategy.swift
[156/157] Compiling NIOCore ByteBuffer-views.swift
[157/157] Emitting module NIOCore
[158/206] Compiling NIOPosix SocketProtocols.swift
[159/206] Compiling NIOPosix System.swift
[160/206] Compiling NIOPosix Thread.swift
[161/206] Compiling NIOPosix ThreadPosix.swift
[162/206] Compiling NIOPosix ThreadWindows.swift
[163/211] Compiling NIOPosix LinuxCPUSet.swift
[164/211] Compiling NIOPosix LinuxUring.swift
[165/211] Compiling NIOPosix MultiThreadedEventLoopGroup.swift
[166/211] Compiling NIOPosix NIOThreadPool.swift
[167/211] Compiling NIOPosix NonBlockingFileIO.swift
[168/211] Compiling NIOPosix BSDSocketAPICommon.swift
[169/211] Compiling NIOPosix BSDSocketAPIPosix.swift
[170/211] Compiling NIOPosix BSDSocketAPIWindows.swift
[171/211] Compiling NIOPosix BaseSocket.swift
[172/211] Compiling NIOPosix BaseSocketChannel+SocketOptionProvider.swift
[173/211] Compiling NIOPosix BaseSocketChannel.swift
[174/211] Compiling NIOPosix SelectorKqueue.swift
[175/211] Compiling NIOPosix SelectorUring.swift
[176/211] Compiling NIOPosix ServerSocket.swift
[177/211] Compiling NIOPosix Socket.swift
[178/211] Compiling NIOPosix SocketChannel.swift
[179/211] Compiling NIOPosix Selectable.swift
[180/211] Compiling NIOPosix SelectableChannel.swift
[181/211] Compiling NIOPosix SelectableEventLoop.swift
[182/211] Compiling NIOPosix SelectorEpoll.swift
[183/211] Compiling NIOPosix SelectorGeneric.swift
[184/211] Compiling NIOPosix PendingDatagramWritesManager.swift
[185/211] Compiling NIOPosix PendingWritesManager.swift
[186/211] Compiling NIOPosix PipeChannel.swift
[187/211] Compiling NIOPosix PipePair.swift
[188/211] Compiling NIOPosix Pool.swift
[189/211] Compiling NIOPosix PooledRecvBufferAllocator.swift
[190/211] Compiling NIOPosix PosixSingletons+ConcurrencyTakeOver.swift
[191/211] Compiling NIOPosix PosixSingletons.swift
[192/211] Compiling NIOPosix RawSocketBootstrap.swift
[193/211] Compiling NIOPosix Resolver.swift
[194/211] Compiling NIOPosix UnsafeTransfer.swift
[195/211] Compiling NIOPosix Utilities.swift
[196/211] Compiling NIOPosix VsockAddress.swift
[197/211] Compiling NIOPosix VsockChannelEvents.swift
[198/211] Compiling NIOPosix resource_bundle_accessor.swift
[199/211] Emitting module NIOPosix
[200/211] Compiling NIOPosix BaseStreamSocketChannel.swift
[201/211] Compiling NIOPosix Bootstrap.swift
[202/211] Compiling NIOPosix ControlMessage.swift
[203/211] Compiling NIOPosix DatagramVectorReadManager.swift
[204/211] Compiling NIOPosix Errors+Any.swift
[205/211] Compiling NIOPosix FileDescriptor.swift
[206/211] Compiling NIOPosix GetaddrinfoResolver.swift
[207/211] Compiling NIOPosix HappyEyeballs.swift
[208/211] Compiling NIOPosix IO.swift
[209/211] Compiling NIOPosix IntegerBitPacking.swift
[210/211] Compiling NIOPosix IntegerTypes.swift
[211/211] Compiling NIOPosix Linux.swift
[212/242] Compiling RediStack ConnectionPoolErrors.swift
[213/242] Compiling RediStack StandardLibrary.swift
[214/242] Compiling RediStack SwiftNIO.swift
[215/245] Compiling RediStack PubSubCommands.swift
[216/245] Compiling RediStack RedisCommand.swift
[217/245] Compiling RediStack ServerCommands.swift
[218/245] Compiling RediStack SetCommands.swift
[219/245] Compiling RediStack RedisByteDecoder.swift
[220/245] Compiling RediStack RedisCommandHandler.swift
[221/245] Compiling RediStack RedisMessageEncoder.swift
[222/245] Compiling RediStack RedisPubSubHandler.swift
[223/245] Compiling RediStack RESPTranslator.swift
[224/245] Compiling RediStack RESPValue.swift
[225/245] Compiling RediStack RESPValueConvertible.swift
[226/245] Compiling RediStack RedisLogging.swift
[227/245] Compiling RediStack RedisMetrics.swift
[228/245] Compiling RediStack _Deprecations.swift
[229/245] Emitting module RediStack
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 | fileprivate static func _bpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 | keyword: String,
548 | _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1347:36: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1345 | // MARK: - Shared implementations
1346 | extension RedisCommand {
1347 | fileprivate static func _bzpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1348 | keyword: String,
1349 | _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1401:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1399 | }
1400 |
1401 | fileprivate static func _zpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1402 | keyword: String,
1403 | _ count: Int?,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:503:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
501 |
502 | extension RedisCommand {
503 | fileprivate static func _mset<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 | keyword: String,
505 | _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
[230/245] Compiling RediStack ConnectionCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 | fileprivate static func _bpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 | keyword: String,
548 | _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
[231/245] Compiling RediStack HashCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 | fileprivate static func _bpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 | keyword: String,
548 | _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
[232/245] Compiling RediStack KeyCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 | fileprivate static func _bpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 | keyword: String,
548 | _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
[233/245] Compiling RediStack ListCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 | fileprivate static func _bpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 | keyword: String,
548 | _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
[234/245] Compiling RediStack RedisConnection.swift
[235/245] Compiling RediStack RedisConnectionPool+Configuration.swift
[236/245] Compiling RediStack RedisConnectionPool.swift
[237/245] Compiling RediStack RedisChannelName.swift
[238/245] Compiling RediStack RedisClient.swift
[239/245] Compiling RediStack RedisConnection+Configuration.swift
[240/245] Compiling RediStack RedisError.swift
[241/245] Compiling RediStack RedisKey+TTL.swift
[242/245] Compiling RediStack RedisKey.swift
[243/245] Compiling RediStack SortedSetCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1347:36: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1345 | // MARK: - Shared implementations
1346 | extension RedisCommand {
1347 | fileprivate static func _bzpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1348 | keyword: String,
1349 | _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1401:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1399 | }
1400 |
1401 | fileprivate static func _zpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1402 | keyword: String,
1403 | _ count: Int?,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:503:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
501 |
502 | extension RedisCommand {
503 | fileprivate static func _mset<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 | keyword: String,
505 | _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
[244/245] Compiling RediStack StringCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1347:36: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1345 | // MARK: - Shared implementations
1346 | extension RedisCommand {
1347 | fileprivate static func _bzpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1348 | keyword: String,
1349 | _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1401:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1399 | }
1400 |
1401 | fileprivate static func _zpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1402 | keyword: String,
1403 | _ count: Int?,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:503:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
501 |
502 | extension RedisCommand {
503 | fileprivate static func _mset<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 | keyword: String,
505 | _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
[245/245] Compiling RediStack ConnectionPool.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1347:36: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1345 | // MARK: - Shared implementations
1346 | extension RedisCommand {
1347 | fileprivate static func _bzpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1348 | keyword: String,
1349 | _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1401:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1399 | }
1400 |
1401 | fileprivate static func _zpop<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1402 | keyword: String,
1403 | _ count: Int?,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:503:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
501 |
502 | extension RedisCommand {
503 | fileprivate static func _mset<ResultType>(
| `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 | keyword: String,
505 | _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
22 | ///
23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
24 | public struct RedisCommand<ResultType> {
| `- note: 'ResultType' previously declared here
25 | public let keyword: String
26 | public let arguments: [RESPValue]
Build of target: 'RediStack' complete! (6.56s)
Target: RedisTypes
Extracting symbol information for 'RedisTypes'...
Finished extracting symbol information for 'RedisTypes'. (1.20s)
Building documentation for 'RedisTypes'...
warning: Parameter 'members' not found in instance method declaration
--> Sources/RedisTypes/RedisSet.swift:154:21-154:28
152 | ///
153 | /// See `RediStack.RedisClient.srem(_:from:)`
154 + /// - Parameter members: The element in the set to remove.
| ╰─suggestion: Replace 'members' with 'member'
155 | /// - Returns: A `NIO.EventLoopFuture<Bool>` resolving `true` if `member` was removed from the set; otherwise, `false`.
156 | public func remove(_ member: Element) -> EventLoopFuture<Bool> {
warning: Parameter 'member' is missing documentation
--> Sources/RedisTypes/RedisSet.swift:154:63-154:63
152 | ///
153 | /// See `RediStack.RedisClient.srem(_:from:)`
154 + /// - Parameter members: The element in the set to remove.
| ╰─suggestion: Document 'member' parameter
155 | /// - Returns: A `NIO.EventLoopFuture<Bool>` resolving `true` if `member` was removed from the set; otherwise, `false`.
156 | public func remove(_ member: Element) -> EventLoopFuture<Bool> {
Finished building documentation for 'RedisTypes' (0.08s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/2.0.0-gamma.1.1
Building for debugging...
[0/3] Write swift-version-2F0A5646E1D333AE.txt
Build of product 'snippet-extract' complete! (0.45s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/3] Emitting module RedisTypes
[3/3] Compiling RedisTypes RedisSet.swift
Build of target: 'RedisTypes' complete! (1.00s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/2.0.0-gamma.1.1/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/2.0.0-gamma.1.1/linkable-paths.json
Target: RediStackTestUtils
Extracting symbol information for 'RediStackTestUtils'...
Finished extracting symbol information for 'RediStackTestUtils'. (3.29s)
Building documentation for 'RediStackTestUtils'...
Finished building documentation for 'RediStackTestUtils' (0.06s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/2.0.0-gamma.1.1
Building for debugging...
[0/3] Write swift-version-2F0A5646E1D333AE.txt
Build of product 'snippet-extract' complete! (0.60s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/5] Compiling NIOEmbedded AsyncTestingChannel.swift
[3/5] Compiling NIOEmbedded Embedded.swift
[4/5] Emitting module NIOEmbedded
[5/5] Compiling NIOEmbedded AsyncTestingEventLoop.swift
[6/12] Compiling RediStackTestUtils _Deprecations.swift
[7/12] Emitting module RediStackTestUtils
[8/12] Compiling RediStackTestUtils General.swift
[9/12] Compiling RediStackTestUtils RedisConnectionPoolIntegrationTestCase.swift
[10/12] Compiling RediStackTestUtils RedisIntegrationTestCase.swift
[11/12] Compiling RediStackTestUtils RediStack.swift
[12/12] Compiling RediStackTestUtils EmbeddedMockRedisServer.swift
Build of target: 'RediStackTestUtils' complete! (1.46s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/2.0.0-gamma.1.1/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/2.0.0-gamma.1.1/linkable-paths.json
1794
16 /Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/2.0.0-gamma.1.1
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/swift-server/redistack/2.0.0-gamma.1.1
File count: 1794
Doc size: 16.0MB
Preparing doc bundle ...
Uploading prod-swift-server-redistack-2.0.0-gamma.1.1-ee07d9b1.zip to s3://spi-docs-inbox/prod-swift-server-redistack-2.0.0-gamma.1.1-ee07d9b1.zip
Copying... [11%]
Copying... [20%]
Copying... [32%]
Copying... [41%]
Copying... [52%]
Copying... [61%]
Copying... [70%]
Copying... [81%]
Copying... [91%]
Copying... [100%]
Done.