The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of RediStack, reference 1.6.2 (622ce4), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 20:13:44 UTC.

Swift 6 data race errors: 7

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

219 |                     onSubscribe: subscribeHandler,
220 |                     onUnsubscribe: unsubscribeHandler
    |                                    |- warning: capture of 'unsubscribeHandler' with non-sendable type 'RedisSubscriptionChangeHandler?' (aka 'Optional<(String, Int) -> ()>') in a '@Sendable' closure
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
221 |                 )
222 |             }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:268:48: warning: capture of 'self' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
 99 | ///
100 | /// When the handler has received a `removeHandler(context:removalToken:)` request, it will remove itself immediately.
101 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
102 |     private var state: State = .default
103 |
    :
266 |     public func removeSubscription(for target: RedisSubscriptionTarget) -> EventLoopFuture<Int> {
267 |         guard self.eventLoop.inEventLoop else {
268 |             return self.eventLoop.flatSubmit { self.removeSubscription(for: target) }
    |                                                `- warning: capture of 'self' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
269 |         }
270 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:268:77: warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
 43 | ///
 44 | /// Use the `values` property to quickly access the underlying list of the target for any purpose that requires a the `String` values.
 45 | public enum RedisSubscriptionTarget: Equatable, CustomDebugStringConvertible {
    |             `- note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
 46 |     case channels([RedisChannelName])
 47 |     case patterns([String])
    :
266 |     public func removeSubscription(for target: RedisSubscriptionTarget) -> EventLoopFuture<Int> {
267 |         guard self.eventLoop.inEventLoop else {
268 |             return self.eventLoop.flatSubmit { self.removeSubscription(for: target) }
    |                                                                             `- warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
269 |         }
270 |
[715/719] Compiling RediStack RedisPubSubHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisCommandHandler.swift:112:25: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
110 |
111 |         default:
112 |             leadPromise.succeed(value)
    |                         `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
113 |             RedisMetrics.commandSuccessCount.increment()
114 |         }
/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/ChannelHandlers/RedisPubSubHandler.swift:216:24: warning: capture of 'self' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
 99 | ///
100 | /// When the handler has received a `removeHandler(context:removalToken:)` request, it will remove itself immediately.
101 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
102 |     private var state: State = .default
103 |
    :
214 |         guard self.eventLoop.inEventLoop else {
215 |             return self.eventLoop.flatSubmit {
216 |                 return self.addSubscription(
    |                        `- warning: capture of 'self' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
217 |                     for: target,
218 |                     messageReceiver: receiver,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:217:26: warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
 43 | ///
 44 | /// Use the `values` property to quickly access the underlying list of the target for any purpose that requires a the `String` values.
 45 | public enum RedisSubscriptionTarget: Equatable, CustomDebugStringConvertible {
    |             `- note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
 46 |     case channels([RedisChannelName])
 47 |     case patterns([String])
    :
215 |             return self.eventLoop.flatSubmit {
216 |                 return self.addSubscription(
217 |                     for: target,
    |                          `- warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
218 |                     messageReceiver: receiver,
219 |                     onSubscribe: subscribeHandler,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:218:38: warning: capture of 'receiver' with non-sendable type 'RedisSubscriptionMessageReceiver' (aka '(RedisChannelName, RESPValue) -> ()') in a '@Sendable' closure
216 |                 return self.addSubscription(
217 |                     for: target,
218 |                     messageReceiver: receiver,
    |                                      |- warning: capture of 'receiver' with non-sendable type 'RedisSubscriptionMessageReceiver' (aka '(RedisChannelName, RESPValue) -> ()') in a '@Sendable' closure
    |                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
219 |                     onSubscribe: subscribeHandler,
220 |                     onUnsubscribe: unsubscribeHandler
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:219:34: warning: capture of 'subscribeHandler' with non-sendable type 'RedisSubscriptionChangeHandler?' (aka 'Optional<(String, Int) -> ()>') in a '@Sendable' closure
217 |                     for: target,
218 |                     messageReceiver: receiver,
219 |                     onSubscribe: subscribeHandler,
    |                                  |- warning: capture of 'subscribeHandler' with non-sendable type 'RedisSubscriptionChangeHandler?' (aka 'Optional<(String, Int) -> ()>') in a '@Sendable' closure
    |                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
220 |                     onUnsubscribe: unsubscribeHandler
221 |                 )
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:220:36: warning: capture of 'unsubscribeHandler' with non-sendable type 'RedisSubscriptionChangeHandler?' (aka 'Optional<(String, Int) -> ()>') in a '@Sendable' closure
218 |                     messageReceiver: receiver,
219 |                     onSubscribe: subscribeHandler,
220 |                     onUnsubscribe: unsubscribeHandler
    |                                    |- warning: capture of 'unsubscribeHandler' with non-sendable type 'RedisSubscriptionChangeHandler?' (aka 'Optional<(String, Int) -> ()>') in a '@Sendable' closure
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
221 |                 )
222 |             }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:268:48: warning: capture of 'self' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
 99 | ///
100 | /// When the handler has received a `removeHandler(context:removalToken:)` request, it will remove itself immediately.
101 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
102 |     private var state: State = .default
103 |
    :
266 |     public func removeSubscription(for target: RedisSubscriptionTarget) -> EventLoopFuture<Int> {
267 |         guard self.eventLoop.inEventLoop else {
268 |             return self.eventLoop.flatSubmit { self.removeSubscription(for: target) }
    |                                                `- warning: capture of 'self' with non-sendable type 'RedisPubSubHandler' in a '@Sendable' closure
269 |         }
270 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:268:77: warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
 43 | ///
 44 | /// Use the `values` property to quickly access the underlying list of the target for any purpose that requires a the `String` values.
 45 | public enum RedisSubscriptionTarget: Equatable, CustomDebugStringConvertible {
    |             `- note: consider making enum 'RedisSubscriptionTarget' conform to the 'Sendable' protocol
 46 |     case channels([RedisChannelName])
 47 |     case patterns([String])
    :
266 |     public func removeSubscription(for target: RedisSubscriptionTarget) -> EventLoopFuture<Int> {
267 |         guard self.eventLoop.inEventLoop else {
268 |             return self.eventLoop.flatSubmit { self.removeSubscription(for: target) }
    |                                                                             `- warning: capture of 'target' with non-sendable type 'RedisSubscriptionTarget' in a '@Sendable' closure
269 |         }
270 |
[716/719] Compiling RediStack PubSubCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:76:63: warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 74 |     /// - Returns: A mapping of channel names and their (non-pattern) subscriber count.
 75 |     public func subscriberCount(forChannels channels: [RedisChannelName]) -> EventLoopFuture<[RedisChannelName: Int]> {
 76 |         guard channels.count > 0 else { return self.eventLoop.makeSucceededFuture([:]) }
    |                                                               `- warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 77 |
 78 |         var args: [RESPValue] = [.init(bulk: "NUMSUB")]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a '@Sendable' closure
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a '@Sendable' closure
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:149:54: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |         assert(count >= 0, "A negative max count is nonsense.")
148 |
149 |         guard count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                      `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |
151 |         let args: [RESPValue] = [
/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/Commands/SetCommands.swift:189:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
187 |     /// - Returns: The elements randomly selected from the set.
188 |     public func srandmember(from key: RedisKey, max count: Int = 1) -> EventLoopFuture<[RESPValue]> {
189 |         guard count != 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |         let args: [RESPValue] = [
/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/Commands/SetCommands.swift:296:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
294 |     /// - Returns: A list of elements resulting from the difference.
295 |     public func sdiff(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
296 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
297 |
298 |         let args = keys.map(RESPValue.init)
/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/Commands/SetCommands.swift:365:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
363 |     /// - Returns: A list of elements resulting from the intersection.
364 |     public func sinter(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
365 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
366 |
367 |         let args = keys.map(RESPValue.init)
/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/Commands/SetCommands.swift:434:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
432 |     /// - Returns: A list of elements resulting from the union.
433 |     public func sunion(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
434 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
435 |
436 |         let args = keys.map(RESPValue.init)
/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/Commands/SortedSetCommands.swift:608:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 606 |
 607 |         if let c = count {
 608 |             guard c != 0 else { return self.eventLoop.makeSucceededFuture([]) }
     |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 609 |
 610 |             args.append(.init(bulk: c))
/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/Commands/StringCommands.swift:119:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
117 | extension RedisSetCommandCondition {
118 |     /// No condition is required to be met in order to set the key's value.
119 |     public static let none = RedisSetCommandCondition(.none)
    |                       |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |
121 |     /// Only set the key if it already exists.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:124:23: warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
122 |     ///
123 |     /// Redis documentation refers to this as the option "XX".
124 |     public static let keyExists = RedisSetCommandCondition(.keyExists)
    |                       |- warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keyExists' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
125 |
126 |     /// Only set the key if it does not already exist.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:129:23: warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
127 |     ///
128 |     /// Redis documentation refers to this as the option "NX".
129 |     public static let keyDoesNotExist = RedisSetCommandCondition(.keyDoesNotExist)
    |                       |- warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keyDoesNotExist' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 | }
131 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:166:23: warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
133 | ///
134 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
135 | public struct RedisSetCommandExpiration: Hashable {
    |               `- note: consider making struct 'RedisSetCommandExpiration' conform to the 'Sendable' protocol
136 |     private enum Expiration: Hashable {
137 |         case keepExisting
    :
164 |     /// Redis documentation refers to this as "KEEPTTL".
165 |     /// - Important: This is option is only available in Redis 6.0+. An error will be returned if this value is sent in lower versions of Redis.
166 |     public static let keepExisting = RedisSetCommandExpiration(.keepExisting)
    |                       |- warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keepExisting' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
167 |
168 |     /// Expire the key after the given number of seconds.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:52:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 50 |     /// - Returns: The values stored at the keys provided, matching the same order.
 51 |     public func mget(_ keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
 52 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 53 |
 54 |         let args = keys.map(RESPValue.init)
/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)
[717/719] Compiling RediStack SetCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:76:63: warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 74 |     /// - Returns: A mapping of channel names and their (non-pattern) subscriber count.
 75 |     public func subscriberCount(forChannels channels: [RedisChannelName]) -> EventLoopFuture<[RedisChannelName: Int]> {
 76 |         guard channels.count > 0 else { return self.eventLoop.makeSucceededFuture([:]) }
    |                                                               `- warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 77 |
 78 |         var args: [RESPValue] = [.init(bulk: "NUMSUB")]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a '@Sendable' closure
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a '@Sendable' closure
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:149:54: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |         assert(count >= 0, "A negative max count is nonsense.")
148 |
149 |         guard count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                      `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |
151 |         let args: [RESPValue] = [
/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/Commands/SetCommands.swift:189:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
187 |     /// - Returns: The elements randomly selected from the set.
188 |     public func srandmember(from key: RedisKey, max count: Int = 1) -> EventLoopFuture<[RESPValue]> {
189 |         guard count != 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |         let args: [RESPValue] = [
/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/Commands/SetCommands.swift:296:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
294 |     /// - Returns: A list of elements resulting from the difference.
295 |     public func sdiff(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
296 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
297 |
298 |         let args = keys.map(RESPValue.init)
/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/Commands/SetCommands.swift:365:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
363 |     /// - Returns: A list of elements resulting from the intersection.
364 |     public func sinter(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
365 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
366 |
367 |         let args = keys.map(RESPValue.init)
/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/Commands/SetCommands.swift:434:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
432 |     /// - Returns: A list of elements resulting from the union.
433 |     public func sunion(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
434 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
435 |
436 |         let args = keys.map(RESPValue.init)
/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/Commands/SortedSetCommands.swift:608:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 606 |
 607 |         if let c = count {
 608 |             guard c != 0 else { return self.eventLoop.makeSucceededFuture([]) }
     |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 609 |
 610 |             args.append(.init(bulk: c))
/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/Commands/StringCommands.swift:119:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
117 | extension RedisSetCommandCondition {
118 |     /// No condition is required to be met in order to set the key's value.
119 |     public static let none = RedisSetCommandCondition(.none)
    |                       |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |
121 |     /// Only set the key if it already exists.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:124:23: warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
122 |     ///
123 |     /// Redis documentation refers to this as the option "XX".
124 |     public static let keyExists = RedisSetCommandCondition(.keyExists)
    |                       |- warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keyExists' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
125 |
126 |     /// Only set the key if it does not already exist.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:129:23: warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
127 |     ///
128 |     /// Redis documentation refers to this as the option "NX".
129 |     public static let keyDoesNotExist = RedisSetCommandCondition(.keyDoesNotExist)
    |                       |- warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keyDoesNotExist' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 | }
131 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:166:23: warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
133 | ///
134 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
135 | public struct RedisSetCommandExpiration: Hashable {
    |               `- note: consider making struct 'RedisSetCommandExpiration' conform to the 'Sendable' protocol
136 |     private enum Expiration: Hashable {
137 |         case keepExisting
    :
164 |     /// Redis documentation refers to this as "KEEPTTL".
165 |     /// - Important: This is option is only available in Redis 6.0+. An error will be returned if this value is sent in lower versions of Redis.
166 |     public static let keepExisting = RedisSetCommandExpiration(.keepExisting)
    |                       |- warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keepExisting' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
167 |
168 |     /// Expire the key after the given number of seconds.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:52:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 50 |     /// - Returns: The values stored at the keys provided, matching the same order.
 51 |     public func mget(_ keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
 52 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 53 |
 54 |         let args = keys.map(RESPValue.init)
/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)
[718/719] Compiling RediStack SortedSetCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:76:63: warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 74 |     /// - Returns: A mapping of channel names and their (non-pattern) subscriber count.
 75 |     public func subscriberCount(forChannels channels: [RedisChannelName]) -> EventLoopFuture<[RedisChannelName: Int]> {
 76 |         guard channels.count > 0 else { return self.eventLoop.makeSucceededFuture([:]) }
    |                                                               `- warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 77 |
 78 |         var args: [RESPValue] = [.init(bulk: "NUMSUB")]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a '@Sendable' closure
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a '@Sendable' closure
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:149:54: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |         assert(count >= 0, "A negative max count is nonsense.")
148 |
149 |         guard count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                      `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |
151 |         let args: [RESPValue] = [
/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/Commands/SetCommands.swift:189:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
187 |     /// - Returns: The elements randomly selected from the set.
188 |     public func srandmember(from key: RedisKey, max count: Int = 1) -> EventLoopFuture<[RESPValue]> {
189 |         guard count != 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |         let args: [RESPValue] = [
/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/Commands/SetCommands.swift:296:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
294 |     /// - Returns: A list of elements resulting from the difference.
295 |     public func sdiff(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
296 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
297 |
298 |         let args = keys.map(RESPValue.init)
/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/Commands/SetCommands.swift:365:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
363 |     /// - Returns: A list of elements resulting from the intersection.
364 |     public func sinter(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
365 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
366 |
367 |         let args = keys.map(RESPValue.init)
/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/Commands/SetCommands.swift:434:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
432 |     /// - Returns: A list of elements resulting from the union.
433 |     public func sunion(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
434 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
435 |
436 |         let args = keys.map(RESPValue.init)
/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/Commands/SortedSetCommands.swift:608:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 606 |
 607 |         if let c = count {
 608 |             guard c != 0 else { return self.eventLoop.makeSucceededFuture([]) }
     |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 609 |
 610 |             args.append(.init(bulk: c))
/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/Commands/StringCommands.swift:119:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
117 | extension RedisSetCommandCondition {
118 |     /// No condition is required to be met in order to set the key's value.
119 |     public static let none = RedisSetCommandCondition(.none)
    |                       |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |
121 |     /// Only set the key if it already exists.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:124:23: warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
122 |     ///
123 |     /// Redis documentation refers to this as the option "XX".
124 |     public static let keyExists = RedisSetCommandCondition(.keyExists)
    |                       |- warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keyExists' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
125 |
126 |     /// Only set the key if it does not already exist.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:129:23: warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
127 |     ///
128 |     /// Redis documentation refers to this as the option "NX".
129 |     public static let keyDoesNotExist = RedisSetCommandCondition(.keyDoesNotExist)
    |                       |- warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keyDoesNotExist' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 | }
131 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:166:23: warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
133 | ///
134 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
135 | public struct RedisSetCommandExpiration: Hashable {
    |               `- note: consider making struct 'RedisSetCommandExpiration' conform to the 'Sendable' protocol
136 |     private enum Expiration: Hashable {
137 |         case keepExisting
    :
164 |     /// Redis documentation refers to this as "KEEPTTL".
165 |     /// - Important: This is option is only available in Redis 6.0+. An error will be returned if this value is sent in lower versions of Redis.
166 |     public static let keepExisting = RedisSetCommandExpiration(.keepExisting)
    |                       |- warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keepExisting' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
167 |
168 |     /// Expire the key after the given number of seconds.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:52:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 50 |     /// - Returns: The values stored at the keys provided, matching the same order.
 51 |     public func mget(_ keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
 52 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 53 |
 54 |         let args = keys.map(RESPValue.init)
/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)
[719/719] Compiling RediStack StringCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:76:63: warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 74 |     /// - Returns: A mapping of channel names and their (non-pattern) subscriber count.
 75 |     public func subscriberCount(forChannels channels: [RedisChannelName]) -> EventLoopFuture<[RedisChannelName: Int]> {
 76 |         guard channels.count > 0 else { return self.eventLoop.makeSucceededFuture([:]) }
    |                                                               `- warning: type 'RedisChannelName' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 77 |
 78 |         var args: [RESPValue] = [.init(bulk: "NUMSUB")]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a '@Sendable' closure
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: capture of 'channels' with non-sendable type '[RedisChannelName]' in a '@Sendable' closure
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/PubSubCommands.swift:84:42: warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 82 |             .tryConverting(to: [RESPValue].self)
 83 |             .flatMapThrowing { response in
 84 |                 assert(response.count == channels.count * 2, "Unexpected response size!")
    |                                          `- warning: implicit capture of 'channels' requires that '[RedisChannelName]' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 85 |
 86 |                 // Redis guarantees that the response format is [channel1Name, channel1Count, channel2Name, ...]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisChannelName.swift:23:15: note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
21 | /// let channel: RedisChannelName = "channel1" // or "\(channelNameVariable)"
22 | /// ```
23 | public struct RedisChannelName:
   |               `- note: consider making struct 'RedisChannelName' conform to the 'Sendable' protocol
24 |     RESPValueConvertible,
25 |     RawRepresentable,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SetCommands.swift:149:54: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |         assert(count >= 0, "A negative max count is nonsense.")
148 |
149 |         guard count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                      `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |
151 |         let args: [RESPValue] = [
/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/Commands/SetCommands.swift:189:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
187 |     /// - Returns: The elements randomly selected from the set.
188 |     public func srandmember(from key: RedisKey, max count: Int = 1) -> EventLoopFuture<[RESPValue]> {
189 |         guard count != 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
190 |
191 |         let args: [RESPValue] = [
/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/Commands/SetCommands.swift:296:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
294 |     /// - Returns: A list of elements resulting from the difference.
295 |     public func sdiff(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
296 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
297 |
298 |         let args = keys.map(RESPValue.init)
/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/Commands/SetCommands.swift:365:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
363 |     /// - Returns: A list of elements resulting from the intersection.
364 |     public func sinter(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
365 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
366 |
367 |         let args = keys.map(RESPValue.init)
/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/Commands/SetCommands.swift:434:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
432 |     /// - Returns: A list of elements resulting from the union.
433 |     public func sunion(of keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
434 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
435 |
436 |         let args = keys.map(RESPValue.init)
/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/Commands/SortedSetCommands.swift:608:55: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 606 |
 607 |         if let c = count {
 608 |             guard c != 0 else { return self.eventLoop.makeSucceededFuture([]) }
     |                                                       `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 609 |
 610 |             args.append(.init(bulk: c))
/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/Commands/StringCommands.swift:119:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
117 | extension RedisSetCommandCondition {
118 |     /// No condition is required to be met in order to set the key's value.
119 |     public static let none = RedisSetCommandCondition(.none)
    |                       |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |
121 |     /// Only set the key if it already exists.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:124:23: warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
122 |     ///
123 |     /// Redis documentation refers to this as the option "XX".
124 |     public static let keyExists = RedisSetCommandCondition(.keyExists)
    |                       |- warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keyExists' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
125 |
126 |     /// Only set the key if it does not already exist.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:129:23: warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
 97 | ///
 98 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
 99 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
100 |     private enum Condition: String, Hashable {
101 |         case keyExists = "XX"
    :
127 |     ///
128 |     /// Redis documentation refers to this as the option "NX".
129 |     public static let keyDoesNotExist = RedisSetCommandCondition(.keyDoesNotExist)
    |                       |- warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keyDoesNotExist' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
130 | }
131 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:166:23: warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
133 | ///
134 | /// See [https://redis.io/commands/set](https://redis.io/commands/set)
135 | public struct RedisSetCommandExpiration: Hashable {
    |               `- note: consider making struct 'RedisSetCommandExpiration' conform to the 'Sendable' protocol
136 |     private enum Expiration: Hashable {
137 |         case keepExisting
    :
164 |     /// Redis documentation refers to this as "KEEPTTL".
165 |     /// - Important: This is option is only available in Redis 6.0+. An error will be returned if this value is sent in lower versions of Redis.
166 |     public static let keepExisting = RedisSetCommandExpiration(.keepExisting)
    |                       |- warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'keepExisting' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
167 |
168 |     /// Expire the key after the given number of seconds.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:52:59: warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 50 |     /// - Returns: The values stored at the keys provided, matching the same order.
 51 |     public func mget(_ keys: [RedisKey]) -> EventLoopFuture<[RESPValue]> {
 52 |         guard keys.count > 0 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                           `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 53 |
 54 |         let args = keys.map(RESPValue.init)
/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)
[720/728] Emitting module RedisTypes
[721/728] Compiling RedisTypes RedisSet.swift
/Users/admin/builder/spi-builder-workspace/Sources/RedisTypes/RedisSet.swift:199:62: warning: type 'Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 57 | ///
 58 | /// See [https://redis.io/topics/data-types-intro#sets](https://redis.io/topics/data-types-intro#sets)
 59 | public struct RedisSet<Element> where Element: RESPValueConvertible {
    |                        `- note: consider making generic parameter 'Element' conform to the 'Sendable' protocol
 60 |     /// The key in Redis that this instance is a reference to.
 61 |     public var identifier: RedisKey { return self.id }
    :
197 |     public func popRandomElements(max count: Int) -> EventLoopFuture<[Element]> {
198 |         guard count >= 0 else { return self.client.eventLoop.makeFailedFuture(RedisError.indexOutOfRange) }
199 |         guard count >= 1 else { return self.client.eventLoop.makeSucceededFuture([]) }
    |                                                              `- warning: type 'Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
200 |         return self.client.spop(from: self.id, max: count)
201 |             .map { return $0.compactMap(Element.init) }
[722/728] Compiling RediStackTestUtils RediStack.swift
[723/728] Emitting module RediStackTestUtils
[724/728] 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 |
[725/728] Compiling RediStackTestUtils RedisConnectionPoolIntegrationTestCase.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStackTestUtils/RedisConnectionPoolIntegrationTestCase.swift:67:57: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
 65 |     open override func tearDown() {
 66 |         do {
 67 |             _ = try self.pool.send(command: "FLUSHALL").wait()
    |                                                         `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
 68 |         } catch let err as RedisConnectionPoolError where err == .poolClosed {
 69 |             // Ok, this is fine.
/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/RedisConnectionPoolIntegrationTestCase.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
 14 |
 15 | import NIOCore
 16 | import RediStack
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
 17 | import XCTest
 18 | import NIOPosix
[726/728] 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(command: "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:86:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 84 | ///
 85 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 86 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 87 |     /// A unique identifer to represent this connection.
 88 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStackTestUtils/RedisIntegrationTestCase.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
14 |
15 | import NIOCore
16 | import RediStack
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
17 | import NIOPosix
18 | import XCTest
[727/728] Compiling RediStackTestUtils General.swift
[728/728] Compiling RediStackTestUtils _Deprecations.swift
Build complete! (35.99s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-atomics",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.1.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-atomics.git"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    },
    {
      "identity" : "swift-metrics",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-metrics.git"
    },
    {
      "identity" : "swift-nio",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.43.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-nio.git"
    },
    {
      "identity" : "swift-nio-ssl",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.23.1",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-nio-ssl.git"
    }
  ],
  "manifest_display_name" : "RediStack",
  "name" : "RediStack",
  "path" : "/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" : [
        "NIO"
      ],
      "sources" : [
        "RedisSetTests.swift",
        "RedisTypesIntegrationTestCase.swift"
      ],
      "target_dependencies" : [
        "RediStack",
        "RedisTypes",
        "RediStackTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RedisTypes",
      "module_type" : "SwiftTarget",
      "name" : "RedisTypes",
      "path" : "Sources/RedisTypes",
      "product_memberships" : [
        "RedisTypes"
      ],
      "sources" : [
        "RedisSet.swift"
      ],
      "target_dependencies" : [
        "RediStack"
      ],
      "type" : "library"
    },
    {
      "c99name" : "RediStackTests",
      "module_type" : "SwiftTarget",
      "name" : "RediStackTests",
      "path" : "Tests/RediStackTests",
      "product_dependencies" : [
        "Atomics",
        "NIO",
        "NIOTestUtils"
      ],
      "sources" : [
        "ChannelHandlers/RedisByteDecoderTests.swift",
        "ChannelHandlers/RedisCommandHandlerTests.swift",
        "ChannelHandlers/RedisMessageEncoderTests.swift",
        "Cluster/RedisClusterNodeDescriptionProtocolTests.swift",
        "ConfigurationTests.swift",
        "ConnectionPoolTests.swift",
        "Helpers/MockNodeDescription.swift",
        "Helpers/RedisErrorTests.swift",
        "RESPTranslatorTests.swift",
        "RESPValueTests.swift",
        "RedisCommandEncoderTests.swift",
        "RedisConnection+ConfigurationTests.swift",
        "RedisConnectionTests.swift",
        "RedisHashSlotTests.swift",
        "RedisKeyLifetime.swift"
      ],
      "target_dependencies" : [
        "RediStack",
        "RediStackTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RediStackTestUtils",
      "module_type" : "SwiftTarget",
      "name" : "RediStackTestUtils",
      "path" : "Sources/RediStackTestUtils",
      "product_dependencies" : [
        "NIOCore",
        "NIOEmbedded"
      ],
      "product_memberships" : [
        "RediStackTestUtils"
      ],
      "sources" : [
        "EmbeddedMockRedisServer.swift",
        "Extensions/General.swift",
        "Extensions/RediStack.swift",
        "RedisConnectionPoolIntegrationTestCase.swift",
        "RedisIntegrationTestCase.swift",
        "_Deprecations.swift"
      ],
      "target_dependencies" : [
        "RediStack"
      ],
      "type" : "library"
    },
    {
      "c99name" : "RediStackIntegrationTests",
      "module_type" : "SwiftTarget",
      "name" : "RediStackIntegrationTests",
      "path" : "Tests/RediStackIntegrationTests",
      "product_dependencies" : [
        "NIO"
      ],
      "sources" : [
        "Commands/BasicCommandsTests.swift",
        "Commands/HashCommandsTests.swift",
        "Commands/ListCommandsTests.swift",
        "Commands/PubSubCommandsTests.swift",
        "Commands/SetCommandsTests.swift",
        "Commands/SortedSetCommandsTests.swift",
        "Commands/StringCommandsTests.swift",
        "RediStackIntegrationTestCase.swift",
        "RedisConnectionPoolTests.swift",
        "RedisConnectionTests.swift",
        "RedisLoggingTests.swift"
      ],
      "target_dependencies" : [
        "RediStack",
        "RediStackTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RediStack",
      "module_type" : "SwiftTarget",
      "name" : "RediStack",
      "path" : "Sources/RediStack",
      "product_dependencies" : [
        "NIOCore",
        "NIOPosix",
        "NIO",
        "NIOConcurrencyHelpers",
        "NIOSSL",
        "Atomics",
        "Logging",
        "Metrics"
      ],
      "product_memberships" : [
        "RediStack",
        "RediStackTestUtils",
        "RedisTypes"
      ],
      "sources" : [
        "ChannelHandlers/RedisByteDecoder.swift",
        "ChannelHandlers/RedisCommandHandler.swift",
        "ChannelHandlers/RedisMessageEncoder.swift",
        "ChannelHandlers/RedisPubSubHandler.swift",
        "Cluster/RedisClusterNodeDescriptionProtocol.swift",
        "Cluster/RedisClusterNodeID.swift",
        "Cluster/RedisClusterShardDescriptionProtocol.swift",
        "Cluster/RedisHashSlot.swift",
        "Cluster/SwiftPolyfill.swift",
        "Commands/BasicCommands.swift",
        "Commands/HashCommands.swift",
        "Commands/ListCommands.swift",
        "Commands/PubSubCommands.swift",
        "Commands/SetCommands.swift",
        "Commands/SortedSetCommands.swift",
        "Commands/StringCommands.swift",
        "ConnectionPool/ConnectionPool.swift",
        "ConnectionPool/RedisConnectionPool+Configuration.swift",
        "ConnectionPool/RedisConnectionPool.swift",
        "ConnectionPool/RedisConnectionPoolError.swift",
        "Extensions/StandardLibrary.swift",
        "Extensions/SwiftNIO.swift",
        "RESP/RESPTranslator.swift",
        "RESP/RESPValue.swift",
        "RESP/RESPValueConvertible.swift",
        "RedisChannelName.swift",
        "RedisClient.swift",
        "RedisCommandEncoder-multi-encode.swift",
        "RedisCommandEncoder.swift",
        "RedisConnection+Configuration.swift",
        "RedisConnection.swift",
        "RedisError.swift",
        "RedisKey+TTL.swift",
        "RedisKey.swift",
        "RedisLogging.swift",
        "RedisMetrics.swift",
        "_Deprecations.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "RESP3Tests",
      "module_type" : "SwiftTarget",
      "name" : "RESP3Tests",
      "path" : "Tests/RESP3Tests",
      "product_dependencies" : [
        "NIOCore",
        "NIOEmbedded",
        "NIOTestUtils"
      ],
      "sources" : [
        "RESP3TokenTests.swift"
      ],
      "target_dependencies" : [
        "RESP3"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RESP3",
      "module_type" : "SwiftTarget",
      "name" : "RESP3",
      "path" : "Sources/RESP3",
      "product_dependencies" : [
        "NIOCore"
      ],
      "sources" : [
        "RESP3Error.swift",
        "RESP3Token.swift",
        "RESP3TokenDecoder.swift",
        "RESP3TypeIdentifier.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/swift-server/redistack/1.6.2
Repository:               swift-server/RediStack
Swift version used:       6.1
Target:                   RediStack
Extracting symbol information for 'RediStack'...
Finished extracting symbol information for 'RediStack'. (11.88s)
Building documentation for 'RediStack'...
warning: 'HashSlot' doesn't exist at '/RediStack/RedisHashSlot/init(key:)'
  --> Sources/RediStack/Cluster/RedisHashSlot.swift:96:47-96:55
94 |
95 | extension RedisHashSlot {
96 +     /// Creates a slot for a given `key`. A ``HashSlot`` is used to determine which shard to connect to.
97 |     /// - Parameter key: The key used in a redis command
98 |     public init(key: String) {
warning: Parameter 'type' not found in instance method declaration
   --> Sources/RediStack/Commands/ListCommands.swift:548:13-548:54
546 |     ///     - source: The key of the list to pop from.
547 |     ///     - dest: The key of the list to push to.
548 +     ///     - type: The type to convert the value to.
    |             ╰─suggestion: Remove 'type' parameter documentation
549 |     /// - Returns: The element that was moved. This value is `nil` if the `RESPValue` conversion failed.
550 |     @inlinable
warning: Parameter 'type' not found in instance method declaration
   --> Sources/RediStack/Commands/ListCommands.swift:548:13-548:54
546 |     ///     - source: The key of the list to pop from.
547 |     ///     - dest: The key of the list to push to.
548 +     ///     - type: The type to convert the value to.
    |             ╰─suggestion: Remove 'type' parameter documentation
549 |     /// - Returns: The element that was moved. This value is `nil` if the `RESPValue` conversion failed.
550 |     @inlinable
warning: Parameter 'type' not found in instance method declaration
   --> Sources/RediStack/Commands/ListCommands.swift:548:13-548:54
546 |     ///     - source: The key of the list to pop from.
547 |     ///     - dest: The key of the list to push to.
548 +     ///     - type: The type to convert the value to.
    |             ╰─suggestion: Remove 'type' parameter documentation
549 |     /// - Returns: The element that was moved. This value is `nil` if the `RESPValue` conversion failed.
550 |     @inlinable
warning: Parameter 'valueType' is missing documentation
   --> Sources/RediStack/Commands/ListCommands.swift:548:54-548:54
546 |     ///     - source: The key of the list to pop from.
547 |     ///     - dest: The key of the list to push to.
548 +     ///     - type: The type to convert the value to.
    |                                                      ╰─suggestion: Document 'valueType' parameter
549 |     /// - Returns: The element that was moved. This value is `nil` if the `RESPValue` conversion failed.
550 |     @inlinable
warning: Parameter 'valueType' is missing documentation
   --> Sources/RediStack/Commands/ListCommands.swift:548:54-548:54
546 |     ///     - source: The key of the list to pop from.
547 |     ///     - dest: The key of the list to push to.
548 +     ///     - type: The type to convert the value to.
    |                                                      ╰─suggestion: Document 'valueType' parameter
549 |     /// - Returns: The element that was moved. This value is `nil` if the `RESPValue` conversion failed.
550 |     @inlinable
warning: Parameter 'valueType' is missing documentation
   --> Sources/RediStack/Commands/ListCommands.swift:548:54-548:54
546 |     ///     - source: The key of the list to pop from.
547 |     ///     - dest: The key of the list to push to.
548 +     ///     - type: The type to convert the value to.
    |                                                      ╰─suggestion: Document 'valueType' parameter
549 |     /// - Returns: The element that was moved. This value is `nil` if the `RESPValue` conversion failed.
550 |     @inlinable
warning: Parameter 'type' not found in instance method declaration
   --> Sources/RediStack/Commands/ListCommands.swift:605:13-605:54
603 |     ///     - dest: The key of the list to push to.
604 |     ///     - timeout: The max time to wait for a value to use. `0` seconds means to wait indefinitely.
605 +     ///     - type: The type to convert the value to.
    |             ╰─suggestion: Remove 'type' parameter documentation
606 |     /// - Returns: The element popped from the source list and pushed to the destination.
607 |     ///     If the timeout was reached or `RESPValue` conversion failed, the returned value will be `nil`.
warning: Parameter 'type' not found in instance method declaration
   --> Sources/RediStack/Commands/ListCommands.swift:605:13-605:54
603 |     ///     - dest: The key of the list to push to.
604 |     ///     - timeout: The max time to wait for a value to use. `0` seconds means to wait indefinitely.
605 +     ///     - type: The type to convert the value to.
    |             ╰─suggestion: Remove 'type' parameter documentation
606 |     /// - Returns: The element popped from the source list and pushed to the destination.
607 |     ///     If the timeout was reached or `RESPValue` conversion failed, the returned value will be `nil`.
warning: Parameter 'type' not found in instance method declaration
   --> Sources/RediStack/Commands/ListCommands.swift:605:13-605:54
603 |     ///     - dest: The key of the list to push to.
604 |     ///     - timeout: The max time to wait for a value to use. `0` seconds means to wait indefinitely.
605 +     ///     - type: The type to convert the value to.
    |             ╰─suggestion: Remove 'type' parameter documentation
606 |     /// - Returns: The element popped from the source list and pushed to the destination.
607 |     ///     If the timeout was reached or `RESPValue` conversion failed, the returned value will be `nil`.
warning: Parameter 'valueType' is missing documentation
   --> Sources/RediStack/Commands/ListCommands.swift:605:54-605:54
603 |     ///     - dest: The key of the list to push to.
604 |     ///     - timeout: The max time to wait for a value to use. `0` seconds means to wait indefinitely.
605 +     ///     - type: The type to convert the value to.
    |                                                      ╰─suggestion: Document 'valueType' parameter
606 |     /// - Returns: The element popped from the source list and pushed to the destination.
607 |     ///     If the timeout was reached or `RESPValue` conversion failed, the returned value will be `nil`.
warning: Parameter 'valueType' is missing documentation
   --> Sources/RediStack/Commands/ListCommands.swift:605:54-605:54
603 |     ///     - dest: The key of the list to push to.
604 |     ///     - timeout: The max time to wait for a value to use. `0` seconds means to wait indefinitely.
605 +     ///     - type: The type to convert the value to.
    |                                                      ╰─suggestion: Document 'valueType' parameter
606 |     /// - Returns: The element popped from the source list and pushed to the destination.
607 |     ///     If the timeout was reached or `RESPValue` conversion failed, the returned value will be `nil`.
warning: Parameter 'valueType' is missing documentation
   --> Sources/RediStack/Commands/ListCommands.swift:605:54-605:54
603 |     ///     - dest: The key of the list to push to.
604 |     ///     - timeout: The max time to wait for a value to use. `0` seconds means to wait indefinitely.
605 +     ///     - type: The type to convert the value to.
    |                                                      ╰─suggestion: Document 'valueType' parameter
606 |     /// - Returns: The element popped from the source list and pushed to the destination.
607 |     ///     If the timeout was reached or `RESPValue` conversion failed, the returned value will be `nil`.
warning: Parameter 'type' is missing documentation
   --> Sources/RediStack/Commands/ListCommands.swift:768:58-768:58
766 |     ///
767 |     /// See [https://redis.io/commands/rpop](https://redis.io/commands/rpop)
768 +     /// - Parameter key: The key of the list to pop from.
    |                                                          ╰─suggestion: Document 'type' parameter
769 |     /// - Returns: The element that was popped from the list. If the list is empty or the `RESPValue` conversion fails, this value is `nil`.
770 |     @inlinable
warning: Parameter 'type' is missing documentation
   --> Sources/RediStack/Commands/ListCommands.swift:768:58-768:58
766 |     ///
767 |     /// See [https://redis.io/commands/rpop](https://redis.io/commands/rpop)
768 +     /// - Parameter key: The key of the list to pop from.
    |                                                          ╰─suggestion: Document 'type' parameter
769 |     /// - Returns: The element that was popped from the list. If the list is empty or the `RESPValue` conversion fails, this value is `nil`.
770 |     @inlinable
warning: Parameter 'type' is missing documentation
   --> Sources/RediStack/Commands/ListCommands.swift:768:58-768:58
766 |     ///
767 |     /// See [https://redis.io/commands/rpop](https://redis.io/commands/rpop)
768 +     /// - Parameter key: The key of the list to pop from.
    |                                                          ╰─suggestion: Document 'type' parameter
769 |     /// - Returns: The element that was popped from the list. If the list is empty or the `RESPValue` conversion fails, this value is `nil`.
770 |     @inlinable
warning: Parameter 'valueType' is missing documentation
    --> Sources/RediStack/Commands/ListCommands.swift:1052:103-1052:103
1050 |     /// - Parameters:
1051 |     ///     - keys: The keys of lists in Redis that should be popped from.
1052 +     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
     |                                                                                                       ╰─suggestion: Document 'valueType' parameter
1053 |     /// - Returns:
1054 |     ///     If timeout was reached or `RESPValue` conversion failed, `nil`.
warning: Parameter 'valueType' is missing documentation
    --> Sources/RediStack/Commands/ListCommands.swift:1052:103-1052:103
1050 |     /// - Parameters:
1051 |     ///     - keys: The keys of lists in Redis that should be popped from.
1052 +     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
     |                                                                                                       ╰─suggestion: Document 'valueType' parameter
1053 |     /// - Returns:
1054 |     ///     If timeout was reached or `RESPValue` conversion failed, `nil`.
warning: Parameter 'valueType' is missing documentation
    --> Sources/RediStack/Commands/ListCommands.swift:1052:103-1052:103
1050 |     /// - Parameters:
1051 |     ///     - keys: The keys of lists in Redis that should be popped from.
1052 +     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
     |                                                                                                       ╰─suggestion: Document 'valueType' parameter
1053 |     /// - Returns:
1054 |     ///     If timeout was reached or `RESPValue` conversion failed, `nil`.
warning: Parameter 'valueType' is missing documentation
    --> Sources/RediStack/Commands/ListCommands.swift:1106:103-1106:103
1104 |     /// - Parameters:
1105 |     ///     - keys: The keys of lists in Redis that should be popped from.
1106 +     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
     |                                                                                                       ╰─suggestion: Document 'valueType' parameter
1107 |     /// - Returns:
1108 |     ///     If timeout was reached or `RESPValue` conversion failed, `nil`.
warning: Parameter 'valueType' is missing documentation
    --> Sources/RediStack/Commands/ListCommands.swift:1106:103-1106:103
1104 |     /// - Parameters:
1105 |     ///     - keys: The keys of lists in Redis that should be popped from.
1106 +     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
     |                                                                                                       ╰─suggestion: Document 'valueType' parameter
1107 |     /// - Returns:
1108 |     ///     If timeout was reached or `RESPValue` conversion failed, `nil`.
warning: Parameter 'valueType' is missing documentation
    --> Sources/RediStack/Commands/ListCommands.swift:1106:103-1106:103
1104 |     /// - Parameters:
1105 |     ///     - keys: The keys of lists in Redis that should be popped from.
1106 +     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
     |                                                                                                       ╰─suggestion: Document 'valueType' parameter
1107 |     /// - Returns:
1108 |     ///     If timeout was reached or `RESPValue` conversion failed, `nil`.
warning: Parameter 'type' is missing documentation
   --> Sources/RediStack/Commands/SetCommands.swift:205:72-205:72
203 |     ///     - key: The key of the set.
204 |     ///     - type; The type to convert the values to.
205 +     ///     - count: The max number of elements to select from the set.
    |             ╰─suggestion: Document 'type' parameter
206 |     /// - Returns: The elements randomly selected from the set. Elements that fail the `RESPValue` conversion will be `nil`.
207 |     @inlinable
warning: Parameter 'type' is missing documentation
   --> Sources/RediStack/Commands/SetCommands.swift:205:72-205:72
203 |     ///     - key: The key of the set.
204 |     ///     - type; The type to convert the values to.
205 +     ///     - count: The max number of elements to select from the set.
    |             ╰─suggestion: Document 'type' parameter
206 |     /// - Returns: The elements randomly selected from the set. Elements that fail the `RESPValue` conversion will be `nil`.
207 |     @inlinable
warning: Parameter 'type' is missing documentation
   --> Sources/RediStack/Commands/SetCommands.swift:205:72-205:72
203 |     ///     - key: The key of the set.
204 |     ///     - type; The type to convert the values to.
205 +     ///     - count: The max number of elements to select from the set.
    |             ╰─suggestion: Document 'type' parameter
206 |     /// - Returns: The elements randomly selected from the set. Elements that fail the `RESPValue` conversion will be `nil`.
207 |     @inlinable
warning: External name 'sources' used to document parameter
   --> Sources/RediStack/Commands/SetCommands.swift:343:15-343:22
341 |     /// - Parameters:
342 |     ///     - destination: The key of the new set from the result.
343 +     ///     - sources: The list of source sets to calculate the difference of.
    |               ╰─suggestion: Replace 'sources' with 'keys'
344 |     /// - Returns: The number of elements in the difference result.
345 |     public func sdiffstore(as destination: RedisKey, sources keys: [RedisKey]) -> EventLoopFuture<Int> {
warning: External name 'sources' used to document parameter
   --> Sources/RediStack/Commands/SetCommands.swift:343:15-343:22
341 |     /// - Parameters:
342 |     ///     - destination: The key of the new set from the result.
343 +     ///     - sources: The list of source sets to calculate the difference of.
    |               ╰─suggestion: Replace 'sources' with 'keys'
344 |     /// - Returns: The number of elements in the difference result.
345 |     public func sdiffstore(as destination: RedisKey, sources keys: [RedisKey]) -> EventLoopFuture<Int> {
warning: External name 'sources' used to document parameter
   --> Sources/RediStack/Commands/SetCommands.swift:343:15-343:22
341 |     /// - Parameters:
342 |     ///     - destination: The key of the new set from the result.
343 +     ///     - sources: The list of source sets to calculate the difference of.
    |               ╰─suggestion: Replace 'sources' with 'keys'
344 |     /// - Returns: The number of elements in the difference result.
345 |     public func sdiffstore(as destination: RedisKey, sources keys: [RedisKey]) -> EventLoopFuture<Int> {
warning: External name 'sources' used to document parameter
   --> Sources/RediStack/Commands/SetCommands.swift:412:15-412:22
410 |     /// - Parameters:
411 |     ///     - destination: The key of the new set from the result.
412 +     ///     - sources: A list of source sets to calculate the intersection of.
    |               ╰─suggestion: Replace 'sources' with 'keys'
413 |     /// - Returns: The number of elements in the intersection result.
414 |     public func sinterstore(as destination: RedisKey, sources keys: [RedisKey]) -> EventLoopFuture<Int> {
warning: External name 'sources' used to document parameter
   --> Sources/RediStack/Commands/SetCommands.swift:412:15-412:22
410 |     /// - Parameters:
411 |     ///     - destination: The key of the new set from the result.
412 +     ///     - sources: A list of source sets to calculate the intersection of.
    |               ╰─suggestion: Replace 'sources' with 'keys'
413 |     /// - Returns: The number of elements in the intersection result.
414 |     public func sinterstore(as destination: RedisKey, sources keys: [RedisKey]) -> EventLoopFuture<Int> {
warning: External name 'sources' used to document parameter
   --> Sources/RediStack/Commands/SetCommands.swift:412:15-412:22
410 |     /// - Parameters:
411 |     ///     - destination: The key of the new set from the result.
412 +     ///     - sources: A list of source sets to calculate the intersection of.
    |               ╰─suggestion: Replace 'sources' with 'keys'
413 |     /// - Returns: The number of elements in the intersection result.
414 |     public func sinterstore(as destination: RedisKey, sources keys: [RedisKey]) -> EventLoopFuture<Int> {
warning: External name 'sources' used to document parameter
   --> Sources/RediStack/Commands/SetCommands.swift:481:15-481:22
479 |     /// - Parameters:
480 |     ///     - destination: The key of the new set from the result.
481 +     ///     - sources: A list of source sets to calculate the union of.
    |               ╰─suggestion: Replace 'sources' with 'keys'
482 |     /// - Returns: The number of elements in the union result.
483 |     public func sunionstore(as destination: RedisKey, sources keys: [RedisKey]) -> EventLoopFuture<Int> {
warning: External name 'sources' used to document parameter
   --> Sources/RediStack/Commands/SetCommands.swift:481:15-481:22
479 |     /// - Parameters:
480 |     ///     - destination: The key of the new set from the result.
481 +     ///     - sources: A list of source sets to calculate the union of.
    |               ╰─suggestion: Replace 'sources' with 'keys'
482 |     /// - Returns: The number of elements in the union result.
483 |     public func sunionstore(as destination: RedisKey, sources keys: [RedisKey]) -> EventLoopFuture<Int> {
warning: External name 'sources' used to document parameter
   --> Sources/RediStack/Commands/SetCommands.swift:481:15-481:22
479 |     /// - Parameters:
480 |     ///     - destination: The key of the new set from the result.
481 +     ///     - sources: A list of source sets to calculate the union of.
    |               ╰─suggestion: Replace 'sources' with 'keys'
482 |     /// - Returns: The number of elements in the union result.
483 |     public func sunionstore(as destination: RedisKey, sources keys: [RedisKey]) -> EventLoopFuture<Int> {
warning: Parameter 'exclusive' not found in instance method declaration
   --> Sources/RediStack/Commands/SortedSetCommands.swift:428:13-428:137
426 |     ///     - key: The key of the SortedSet that will be counted.
427 |     ///     - maxScore: The maximum score bound an element in the SortedSet should have in order to be counted.
428 +     ///     - exclusive: Should the `maxScore` provided be exclusive? If `true`, scores matching the `maxScore` will **not** be counted.
    |             ╰─suggestion: Remove 'exclusive' parameter documentation
429 |     /// - Returns: The count of elements in the SortedSet below the `maxScore` threshold.
430 |     public func zcount(of key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> EventLoopFuture<Int> {
warning: Parameter 'exclusive' not found in instance method declaration
   --> Sources/RediStack/Commands/SortedSetCommands.swift:428:13-428:137
426 |     ///     - key: The key of the SortedSet that will be counted.
427 |     ///     - maxScore: The maximum score bound an element in the SortedSet should have in order to be counted.
428 +     ///     - exclusive: Should the `maxScore` provided be exclusive? If `true`, scores matching the `maxScore` will **not** be counted.
    |             ╰─suggestion: Remove 'exclusive' parameter documentation
429 |     /// - Returns: The count of elements in the SortedSet below the `maxScore` threshold.
430 |     public func zcount(of key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> EventLoopFuture<Int> {
warning: Parameter 'exclusive' not found in instance method declaration
   --> Sources/RediStack/Commands/SortedSetCommands.swift:428:13-428:137
426 |     ///     - key: The key of the SortedSet that will be counted.
427 |     ///     - maxScore: The maximum score bound an element in the SortedSet should have in order to be counted.
428 +     ///     - exclusive: Should the `maxScore` provided be exclusive? If `true`, scores matching the `maxScore` will **not** be counted.
    |             ╰─suggestion: Remove 'exclusive' parameter documentation
429 |     /// - Returns: The count of elements in the SortedSet below the `maxScore` threshold.
430 |     public func zcount(of key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> EventLoopFuture<Int> {
warning: External name 'aggregateMethod' used to document parameter
   --> Sources/RediStack/Commands/SortedSetCommands.swift:811:15-811:30
809 |     ///     - sources: The list of sorted set keys to treat as the source of the union.
810 |     ///     - weights: The multiplying factor to apply to the corresponding `sources` key based on index of the two parameters.
811 +     ///     - 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'
812 |     /// - Returns: The number of elements in the new sorted set.
813 |     public func zunionstore(
warning: External name 'aggregateMethod' used to document parameter
   --> Sources/RediStack/Commands/SortedSetCommands.swift:811:15-811:30
809 |     ///     - sources: The list of sorted set keys to treat as the source of the union.
810 |     ///     - weights: The multiplying factor to apply to the corresponding `sources` key based on index of the two parameters.
811 +     ///     - 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'
812 |     /// - Returns: The number of elements in the new sorted set.
813 |     public func zunionstore(
warning: External name 'aggregateMethod' used to document parameter
   --> Sources/RediStack/Commands/SortedSetCommands.swift:811:15-811:30
809 |     ///     - sources: The list of sorted set keys to treat as the source of the union.
810 |     ///     - weights: The multiplying factor to apply to the corresponding `sources` key based on index of the two parameters.
811 +     ///     - 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'
812 |     /// - Returns: The number of elements in the new sorted set.
813 |     public func zunionstore(
warning: External name 'aggregateMethod' used to document parameter
   --> Sources/RediStack/Commands/SortedSetCommands.swift:830:15-830:30
828 |     ///     - sources: The list of sorted set keys to treat as the source of the intersection.
829 |     ///     - weights: The multiplying factor to apply to the corresponding `sources` key based on index of the two parameters.
830 +     ///     - 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'
831 |     /// - Returns: The number of elements in the new sorted set.
832 |     public func zinterstore(
warning: External name 'aggregateMethod' used to document parameter
   --> Sources/RediStack/Commands/SortedSetCommands.swift:830:15-830:30
828 |     ///     - sources: The list of sorted set keys to treat as the source of the intersection.
829 |     ///     - weights: The multiplying factor to apply to the corresponding `sources` key based on index of the two parameters.
830 +     ///     - 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'
831 |     /// - Returns: The number of elements in the new sorted set.
832 |     public func zinterstore(
warning: External name 'aggregateMethod' used to document parameter
   --> Sources/RediStack/Commands/SortedSetCommands.swift:830:15-830:30
828 |     ///     - sources: The list of sorted set keys to treat as the source of the intersection.
829 |     ///     - weights: The multiplying factor to apply to the corresponding `sources` key based on index of the two parameters.
830 +     ///     - 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'
831 |     /// - Returns: The number of elements in the new sorted set.
832 |     public func zinterstore(
warning: Parameter 'includeScores' is missing documentation
   --> Sources/RediStack/Commands/SortedSetCommands.swift:886:101-886:101
884 |     ///     - key: The key of the SortedSet
885 |     ///     - firstIndex: The index of the first element to include in the range of elements returned.
886 +     ///     - lastIndex: The index of the last element to include in the range of elements returned.
    |                                                                                                     ╰─suggestion: Document 'includeScores' parameter
887 |     /// - Returns: An array of elements found within the range specified.
888 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
   --> Sources/RediStack/Commands/SortedSetCommands.swift:886:101-886:101
884 |     ///     - key: The key of the SortedSet
885 |     ///     - firstIndex: The index of the first element to include in the range of elements returned.
886 +     ///     - lastIndex: The index of the last element to include in the range of elements returned.
    |                                                                                                     ╰─suggestion: Document 'includeScores' parameter
887 |     /// - Returns: An array of elements found within the range specified.
888 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
   --> Sources/RediStack/Commands/SortedSetCommands.swift:886:101-886:101
884 |     ///     - key: The key of the SortedSet
885 |     ///     - firstIndex: The index of the first element to include in the range of elements returned.
886 +     ///     - lastIndex: The index of the last element to include in the range of elements returned.
    |                                                                                                     ╰─suggestion: Document 'includeScores' parameter
887 |     /// - Returns: An array of elements found within the range specified.
888 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
   --> Sources/RediStack/Commands/SortedSetCommands.swift:929:72-929:72
927 |     /// - Parameters:
928 |     ///     - key: The key of the SortedSet to return elements from.
929 +     ///     - range: The range of inclusive indices of elements to get.
    |                                                                        ╰─suggestion: Document 'includeScores' parameter
930 |     /// - Returns: An array of elements found within the range specified.
931 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
   --> Sources/RediStack/Commands/SortedSetCommands.swift:929:72-929:72
927 |     /// - Parameters:
928 |     ///     - key: The key of the SortedSet to return elements from.
929 +     ///     - range: The range of inclusive indices of elements to get.
    |                                                                        ╰─suggestion: Document 'includeScores' parameter
930 |     /// - Returns: An array of elements found within the range specified.
931 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
   --> Sources/RediStack/Commands/SortedSetCommands.swift:929:72-929:72
927 |     /// - Parameters:
928 |     ///     - key: The key of the SortedSet to return elements from.
929 +     ///     - range: The range of inclusive indices of elements to get.
    |                                                                        ╰─suggestion: Document 'includeScores' parameter
930 |     /// - Returns: An array of elements found within the range specified.
931 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
   --> Sources/RediStack/Commands/SortedSetCommands.swift:971:94-971:94
969 |     /// - Parameters:
970 |     ///     - key: The key of the SortedSet to return elements from.
971 +     ///     - range: The range of indices (inclusive lower, exclusive upper) elements to get.
    |                                                                                              ╰─suggestion: Document 'includeScores' parameter
972 |     /// - Returns: An array of elements found within the range specified.
973 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
   --> Sources/RediStack/Commands/SortedSetCommands.swift:971:94-971:94
969 |     /// - Parameters:
970 |     ///     - key: The key of the SortedSet to return elements from.
971 +     ///     - range: The range of indices (inclusive lower, exclusive upper) elements to get.
    |                                                                                              ╰─suggestion: Document 'includeScores' parameter
972 |     /// - Returns: An array of elements found within the range specified.
973 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
   --> Sources/RediStack/Commands/SortedSetCommands.swift:971:94-971:94
969 |     /// - Parameters:
970 |     ///     - key: The key of the SortedSet to return elements from.
971 +     ///     - range: The range of indices (inclusive lower, exclusive upper) elements to get.
    |                                                                                              ╰─suggestion: Document 'includeScores' parameter
972 |     /// - Returns: An array of elements found within the range specified.
973 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:999:89-999:89
997  |     /// - Parameters:
998  |     ///     - key: The key of the SortedSet to return elements from.
999  +     ///     - index: The index of the first element that will be in the returned values.
     |                                                                                         ╰─suggestion: Document 'includeScores' parameter
1000 |     /// - Returns: An array of elements from the SortedSet between the index and the end.
1001 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:999:89-999:89
997  |     /// - Parameters:
998  |     ///     - key: The key of the SortedSet to return elements from.
999  +     ///     - index: The index of the first element that will be in the returned values.
     |                                                                                         ╰─suggestion: Document 'includeScores' parameter
1000 |     /// - Returns: An array of elements from the SortedSet between the index and the end.
1001 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:999:89-999:89
997  |     /// - Parameters:
998  |     ///     - key: The key of the SortedSet to return elements from.
999  +     ///     - index: The index of the first element that will be in the returned values.
     |                                                                                         ╰─suggestion: Document 'includeScores' parameter
1000 |     /// - Returns: An array of elements from the SortedSet between the index and the end.
1001 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1027:88-1027:88
1025 |     /// - Parameters:
1026 |     ///     - key: The key of the SortedSet to return elements from.
1027 +     ///     - index: The index of the last element that will be in the returned values.
     |                                                                                        ╰─suggestion: Document 'includeScores' parameter
1028 |     /// - Returns: An array of elements from the start of a SortedSet to the index.
1029 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1027:88-1027:88
1025 |     /// - Parameters:
1026 |     ///     - key: The key of the SortedSet to return elements from.
1027 +     ///     - index: The index of the last element that will be in the returned values.
     |                                                                                        ╰─suggestion: Document 'includeScores' parameter
1028 |     /// - Returns: An array of elements from the start of a SortedSet to the index.
1029 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1027:88-1027:88
1025 |     /// - Parameters:
1026 |     ///     - key: The key of the SortedSet to return elements from.
1027 +     ///     - index: The index of the last element that will be in the returned values.
     |                                                                                        ╰─suggestion: Document 'includeScores' parameter
1028 |     /// - Returns: An array of elements from the start of a SortedSet to the index.
1029 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1055:90-1055:90
1053 |     /// - Parameters:
1054 |     ///     - key: The key of the SortedSet to return elements from.
1055 +     ///     - index: The index of the last element to not include in the returned values.
     |                                                                                          ╰─suggestion: Document 'includeScores' parameter
1056 |     /// - Returns: An array of elements from the start of the SortedSet and up to the index.
1057 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1055:90-1055:90
1053 |     /// - Parameters:
1054 |     ///     - key: The key of the SortedSet to return elements from.
1055 +     ///     - index: The index of the last element to not include in the returned values.
     |                                                                                          ╰─suggestion: Document 'includeScores' parameter
1056 |     /// - Returns: An array of elements from the start of the SortedSet and up to the index.
1057 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1055:90-1055:90
1053 |     /// - Parameters:
1054 |     ///     - key: The key of the SortedSet to return elements from.
1055 +     ///     - index: The index of the last element to not include in the returned values.
     |                                                                                          ╰─suggestion: Document 'includeScores' parameter
1056 |     /// - Returns: An array of elements from the start of the SortedSet and up to the index.
1057 |     public func zrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1074:101-1074:101
1072 |     ///     - key: The key of the SortedSet
1073 |     ///     - firstIndex: The index of the first element to include in the range of elements returned.
1074 +     ///     - lastIndex: The index of the last element to include in the range of elements returned.
     |                                                                                                     ╰─suggestion: Document 'includeScores' parameter
1075 |     /// - Returns: An array of elements found within the range specified.
1076 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1074:101-1074:101
1072 |     ///     - key: The key of the SortedSet
1073 |     ///     - firstIndex: The index of the first element to include in the range of elements returned.
1074 +     ///     - lastIndex: The index of the last element to include in the range of elements returned.
     |                                                                                                     ╰─suggestion: Document 'includeScores' parameter
1075 |     /// - Returns: An array of elements found within the range specified.
1076 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1074:101-1074:101
1072 |     ///     - key: The key of the SortedSet
1073 |     ///     - firstIndex: The index of the first element to include in the range of elements returned.
1074 +     ///     - lastIndex: The index of the last element to include in the range of elements returned.
     |                                                                                                     ╰─suggestion: Document 'includeScores' parameter
1075 |     /// - Returns: An array of elements found within the range specified.
1076 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1117:72-1117:72
1115 |     /// - Parameters:
1116 |     ///     - key: The key of the SortedSet to return elements from.
1117 +     ///     - range: The range of inclusive indices of elements to get.
     |                                                                        ╰─suggestion: Document 'includeScores' parameter
1118 |     /// - Returns: An array of elements found within the range specified.
1119 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1117:72-1117:72
1115 |     /// - Parameters:
1116 |     ///     - key: The key of the SortedSet to return elements from.
1117 +     ///     - range: The range of inclusive indices of elements to get.
     |                                                                        ╰─suggestion: Document 'includeScores' parameter
1118 |     /// - Returns: An array of elements found within the range specified.
1119 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1117:72-1117:72
1115 |     /// - Parameters:
1116 |     ///     - key: The key of the SortedSet to return elements from.
1117 +     ///     - range: The range of inclusive indices of elements to get.
     |                                                                        ╰─suggestion: Document 'includeScores' parameter
1118 |     /// - Returns: An array of elements found within the range specified.
1119 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1159:94-1159:94
1157 |     /// - Parameters:
1158 |     ///     - key: The key of the SortedSet to return elements from.
1159 +     ///     - range: The range of indices (inclusive lower, exclusive upper) elements to get.
     |                                                                                              ╰─suggestion: Document 'includeScores' parameter
1160 |     /// - Returns: An array of elements found within the range specified.
1161 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1159:94-1159:94
1157 |     /// - Parameters:
1158 |     ///     - key: The key of the SortedSet to return elements from.
1159 +     ///     - range: The range of indices (inclusive lower, exclusive upper) elements to get.
     |                                                                                              ╰─suggestion: Document 'includeScores' parameter
1160 |     /// - Returns: An array of elements found within the range specified.
1161 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1159:94-1159:94
1157 |     /// - Parameters:
1158 |     ///     - key: The key of the SortedSet to return elements from.
1159 +     ///     - range: The range of indices (inclusive lower, exclusive upper) elements to get.
     |                                                                                              ╰─suggestion: Document 'includeScores' parameter
1160 |     /// - Returns: An array of elements found within the range specified.
1161 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1187:89-1187:89
1185 |     /// - Parameters:
1186 |     ///     - key: The key of the SortedSet to return elements from.
1187 +     ///     - index: The index of the first element that will be in the returned values.
     |                                                                                         ╰─suggestion: Document 'includeScores' parameter
1188 |     /// - Returns: An array of elements from the SortedSet between the index and the end.
1189 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1187:89-1187:89
1185 |     /// - Parameters:
1186 |     ///     - key: The key of the SortedSet to return elements from.
1187 +     ///     - index: The index of the first element that will be in the returned values.
     |                                                                                         ╰─suggestion: Document 'includeScores' parameter
1188 |     /// - Returns: An array of elements from the SortedSet between the index and the end.
1189 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1187:89-1187:89
1185 |     /// - Parameters:
1186 |     ///     - key: The key of the SortedSet to return elements from.
1187 +     ///     - index: The index of the first element that will be in the returned values.
     |                                                                                         ╰─suggestion: Document 'includeScores' parameter
1188 |     /// - Returns: An array of elements from the SortedSet between the index and the end.
1189 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1215:88-1215:88
1213 |     /// - Parameters:
1214 |     ///     - key: The key of the SortedSet to return elements from.
1215 +     ///     - index: The index of the last element that will be in the returned values.
     |                                                                                        ╰─suggestion: Document 'includeScores' parameter
1216 |     /// - Returns: An array of elements from the start of a SortedSet to the index.
1217 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1215:88-1215:88
1213 |     /// - Parameters:
1214 |     ///     - key: The key of the SortedSet to return elements from.
1215 +     ///     - index: The index of the last element that will be in the returned values.
     |                                                                                        ╰─suggestion: Document 'includeScores' parameter
1216 |     /// - Returns: An array of elements from the start of a SortedSet to the index.
1217 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1215:88-1215:88
1213 |     /// - Parameters:
1214 |     ///     - key: The key of the SortedSet to return elements from.
1215 +     ///     - index: The index of the last element that will be in the returned values.
     |                                                                                        ╰─suggestion: Document 'includeScores' parameter
1216 |     /// - Returns: An array of elements from the start of a SortedSet to the index.
1217 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1243:90-1243:90
1241 |     /// - Parameters:
1242 |     ///     - key: The key of the SortedSet to return elements from.
1243 +     ///     - index: The index of the last element to not include in the returned values.
     |                                                                                          ╰─suggestion: Document 'includeScores' parameter
1244 |     /// - Returns: An array of elements from the start of the SortedSet and up to the index.
1245 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1243:90-1243:90
1241 |     /// - Parameters:
1242 |     ///     - key: The key of the SortedSet to return elements from.
1243 +     ///     - index: The index of the last element to not include in the returned values.
     |                                                                                          ╰─suggestion: Document 'includeScores' parameter
1244 |     /// - Returns: An array of elements from the start of the SortedSet and up to the index.
1245 |     public func zrevrange(
warning: Parameter 'includeScores' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1243:90-1243:90
1241 |     /// - Parameters:
1242 |     ///     - key: The key of the SortedSet to return elements from.
1243 +     ///     - index: The index of the last element to not include in the returned values.
     |                                                                                          ╰─suggestion: Document 'includeScores' parameter
1244 |     /// - Returns: An array of elements from the start of the SortedSet and up to the index.
1245 |     public func zrevrange(
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1357:13-1357:117
1355 |     /// - Parameters:
1356 |     ///     - key: The key of the SortedSet.
1357 +     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1358 |     ///     - limit: The optional offset and count of elements to query.
1359 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1357:13-1357:117
1355 |     /// - Parameters:
1356 |     ///     - key: The key of the SortedSet.
1357 +     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1358 |     ///     - limit: The optional offset and count of elements to query.
1359 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1357:13-1357:117
1355 |     /// - Parameters:
1356 |     ///     - key: The key of the SortedSet.
1357 +     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1358 |     ///     - limit: The optional offset and count of elements to query.
1359 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'minScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1359:179-1359:179
1357 |     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
1358 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'minScore' parameter
1359 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1360 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1361 |     public func zrangebyscore(
warning: Parameter 'minScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1359:179-1359:179
1357 |     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
1358 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'minScore' parameter
1359 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1360 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1361 |     public func zrangebyscore(
warning: Parameter 'minScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1359:179-1359:179
1357 |     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
1358 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'minScore' parameter
1359 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1360 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1361 |     public func zrangebyscore(
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1383:13-1383:117
1381 |     /// - Parameters:
1382 |     ///     - key: The key of the SortedSet.
1383 +     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1384 |     ///     - limit: The optional offset and count of elements to query.
1385 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1383:13-1383:117
1381 |     /// - Parameters:
1382 |     ///     - key: The key of the SortedSet.
1383 +     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1384 |     ///     - limit: The optional offset and count of elements to query.
1385 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1383:13-1383:117
1381 |     /// - Parameters:
1382 |     ///     - key: The key of the SortedSet.
1383 +     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1384 |     ///     - limit: The optional offset and count of elements to query.
1385 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'maxScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1385:179-1385:179
1383 |     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
1384 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'maxScore' parameter
1385 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1386 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1387 |     public func zrangebyscore(
warning: Parameter 'maxScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1385:179-1385:179
1383 |     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
1384 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'maxScore' parameter
1385 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1386 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1387 |     public func zrangebyscore(
warning: Parameter 'maxScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1385:179-1385:179
1383 |     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
1384 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'maxScore' parameter
1385 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1386 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1387 |     public func zrangebyscore(
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1482:13-1482:117
1480 |     /// - Parameters:
1481 |     ///     - key: The key of the SortedSet.
1482 +     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1483 |     ///     - limit: The optional offset and count of elements to query.
1484 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1482:13-1482:117
1480 |     /// - Parameters:
1481 |     ///     - key: The key of the SortedSet.
1482 +     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1483 |     ///     - limit: The optional offset and count of elements to query.
1484 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1482:13-1482:117
1480 |     /// - Parameters:
1481 |     ///     - key: The key of the SortedSet.
1482 +     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1483 |     ///     - limit: The optional offset and count of elements to query.
1484 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'minScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1484:179-1484:179
1482 |     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
1483 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'minScore' parameter
1484 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1485 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1486 |     public func zrevrangebyscore(
warning: Parameter 'minScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1484:179-1484:179
1482 |     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
1483 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'minScore' parameter
1484 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1485 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1486 |     public func zrevrangebyscore(
warning: Parameter 'minScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1484:179-1484:179
1482 |     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
1483 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'minScore' parameter
1484 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1485 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1486 |     public func zrevrangebyscore(
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1508:13-1508:117
1506 |     /// - Parameters:
1507 |     ///     - key: The key of the SortedSet.
1508 +     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1509 |     ///     - limit: The optional offset and count of elements to query.
1510 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1508:13-1508:117
1506 |     /// - Parameters:
1507 |     ///     - key: The key of the SortedSet.
1508 +     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1509 |     ///     - limit: The optional offset and count of elements to query.
1510 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'range' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1508:13-1508:117
1506 |     /// - Parameters:
1507 |     ///     - key: The key of the SortedSet.
1508 +     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1509 |     ///     - limit: The optional offset and count of elements to query.
1510 |     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
warning: Parameter 'maxScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1510:179-1510:179
1508 |     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
1509 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'maxScore' parameter
1510 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1511 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1512 |     public func zrevrangebyscore(
warning: Parameter 'maxScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1510:179-1510:179
1508 |     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
1509 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'maxScore' parameter
1510 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1511 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1512 |     public func zrevrangebyscore(
warning: Parameter 'maxScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1510:179-1510:179
1508 |     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
1509 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'maxScore' parameter
1510 +     ///     - includeScores: Should the response array contain the elements AND their scores? If `true`, the response array will follow the pattern [Item_1, Score_1, Item_2, ...]
1511 |     /// - Returns: An array of elements from the SortedSet that were within the range provided, and optionally their scores.
1512 |     public func zrevrangebyscore(
warning: External name 'limitBy' used to document parameter
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1571:15-1571:22
1569 |     ///     - key: The key of the SortedSet that will be counted.
1570 |     ///     - range: The min and max value bounds for filtering elements by.
1571 +     ///     - limitBy: The optional offset and count of elements to query.
     |               ╰─suggestion: Replace 'limitBy' with 'limit'
1572 |     /// - Returns: An array of elements from the SortedSet that were within the range provided.
1573 |     @inlinable
warning: External name 'limitBy' used to document parameter
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1571:15-1571:22
1569 |     ///     - key: The key of the SortedSet that will be counted.
1570 |     ///     - range: The min and max value bounds for filtering elements by.
1571 +     ///     - limitBy: The optional offset and count of elements to query.
     |               ╰─suggestion: Replace 'limitBy' with 'limit'
1572 |     /// - Returns: An array of elements from the SortedSet that were within the range provided.
1573 |     @inlinable
warning: External name 'limitBy' used to document parameter
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1571:15-1571:22
1569 |     ///     - key: The key of the SortedSet that will be counted.
1570 |     ///     - range: The min and max value bounds for filtering elements by.
1571 +     ///     - limitBy: The optional offset and count of elements to query.
     |               ╰─suggestion: Replace 'limitBy' with 'limit'
1572 |     /// - Returns: An array of elements from the SortedSet that were within the range provided.
1573 |     @inlinable
warning: Parameter 'minValue' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1624:15-1624:23
1622 |     /// - Parameters:
1623 |     ///     - key: The key of the SortedSet.
1624 +     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
     |               ╰─suggestion: Replace 'minValue' with 'maxValue'
1625 |     ///     - limit: The optional offset and count of elements to query
1626 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
warning: Parameter 'minValue' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1624:15-1624:23
1622 |     /// - Parameters:
1623 |     ///     - key: The key of the SortedSet.
1624 +     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
     |               ╰─suggestion: Replace 'minValue' with 'maxValue'
1625 |     ///     - limit: The optional offset and count of elements to query
1626 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
warning: Parameter 'minValue' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1624:15-1624:23
1622 |     /// - Parameters:
1623 |     ///     - key: The key of the SortedSet.
1624 +     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
     |               ╰─suggestion: Replace 'minValue' with 'maxValue'
1625 |     ///     - limit: The optional offset and count of elements to query
1626 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
warning: Parameter 'maxValue' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1625:72-1625:72
1623 |     ///     - key: The key of the SortedSet.
1624 |     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
1625 +     ///     - limit: The optional offset and count of elements to query
     |             ╰─suggestion: Document 'maxValue' parameter
1626 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
1627 |     @inlinable
warning: Parameter 'maxValue' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1625:72-1625:72
1623 |     ///     - key: The key of the SortedSet.
1624 |     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
1625 +     ///     - limit: The optional offset and count of elements to query
     |             ╰─suggestion: Document 'maxValue' parameter
1626 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
1627 |     @inlinable
warning: Parameter 'maxValue' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1625:72-1625:72
1623 |     ///     - key: The key of the SortedSet.
1624 |     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
1625 +     ///     - limit: The optional offset and count of elements to query
     |             ╰─suggestion: Document 'maxValue' parameter
1626 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
1627 |     @inlinable
warning: External name 'limitBy' used to document parameter
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1653:15-1653:22
1651 |     ///     - key: The key of the SortedSet that will be counted.
1652 |     ///     - range: The min and max value bounds for filtering elements by.
1653 +     ///     - limitBy: The optional offset and count of elements to query.
     |               ╰─suggestion: Replace 'limitBy' with 'limit'
1654 |     /// - Returns: An array of elements from the SortedSet that were within the range provided.
1655 |     @inlinable
warning: External name 'limitBy' used to document parameter
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1653:15-1653:22
1651 |     ///     - key: The key of the SortedSet that will be counted.
1652 |     ///     - range: The min and max value bounds for filtering elements by.
1653 +     ///     - limitBy: The optional offset and count of elements to query.
     |               ╰─suggestion: Replace 'limitBy' with 'limit'
1654 |     /// - Returns: An array of elements from the SortedSet that were within the range provided.
1655 |     @inlinable
warning: External name 'limitBy' used to document parameter
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1653:15-1653:22
1651 |     ///     - key: The key of the SortedSet that will be counted.
1652 |     ///     - range: The min and max value bounds for filtering elements by.
1653 +     ///     - limitBy: The optional offset and count of elements to query.
     |               ╰─suggestion: Replace 'limitBy' with 'limit'
1654 |     /// - Returns: An array of elements from the SortedSet that were within the range provided.
1655 |     @inlinable
warning: Parameter 'minValue' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1706:15-1706:23
1704 |     /// - Parameters:
1705 |     ///     - key: The key of the SortedSet.
1706 +     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
     |               ╰─suggestion: Replace 'minValue' with 'maxValue'
1707 |     ///     - limit: The optional offset and count of elements to query
1708 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
warning: Parameter 'minValue' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1706:15-1706:23
1704 |     /// - Parameters:
1705 |     ///     - key: The key of the SortedSet.
1706 +     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
     |               ╰─suggestion: Replace 'minValue' with 'maxValue'
1707 |     ///     - limit: The optional offset and count of elements to query
1708 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
warning: Parameter 'minValue' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1706:15-1706:23
1704 |     /// - Parameters:
1705 |     ///     - key: The key of the SortedSet.
1706 +     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
     |               ╰─suggestion: Replace 'minValue' with 'maxValue'
1707 |     ///     - limit: The optional offset and count of elements to query
1708 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
warning: Parameter 'maxValue' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1707:72-1707:72
1705 |     ///     - key: The key of the SortedSet.
1706 |     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
1707 +     ///     - limit: The optional offset and count of elements to query
     |             ╰─suggestion: Document 'maxValue' parameter
1708 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
1709 |     @inlinable
warning: Parameter 'maxValue' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1707:72-1707:72
1705 |     ///     - key: The key of the SortedSet.
1706 |     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
1707 +     ///     - limit: The optional offset and count of elements to query
     |             ╰─suggestion: Document 'maxValue' parameter
1708 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
1709 |     @inlinable
warning: Parameter 'maxValue' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:1707:72-1707:72
1705 |     ///     - key: The key of the SortedSet.
1706 |     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
1707 +     ///     - limit: The optional offset and count of elements to query
     |             ╰─suggestion: Document 'maxValue' parameter
1708 |     /// - Returns: An array of elements from the SortedSet below the `maxValue` threshold.
1709 |     @inlinable
warning: Parameter 'minScore' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:2003:15-2003:23
2001 |     /// - Parameters:
2002 |     ///     - key: The key of the SortedSet to remove elements from.
2003 +     ///     - minScore: The maximum score bound an element in the SortedSet should have to be removed.
     |               ╰─suggestion: Replace 'minScore' with 'maxScore'
2004 |     /// - Returns: The count of elements that were removed from the SortedSet.
2005 |     public func zremrangebyscore(from key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> EventLoopFuture<Int> {
warning: Parameter 'minScore' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:2003:15-2003:23
2001 |     /// - Parameters:
2002 |     ///     - key: The key of the SortedSet to remove elements from.
2003 +     ///     - minScore: The maximum score bound an element in the SortedSet should have to be removed.
     |               ╰─suggestion: Replace 'minScore' with 'maxScore'
2004 |     /// - Returns: The count of elements that were removed from the SortedSet.
2005 |     public func zremrangebyscore(from key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> EventLoopFuture<Int> {
warning: Parameter 'minScore' not found in instance method declaration
    --> Sources/RediStack/Commands/SortedSetCommands.swift:2003:15-2003:23
2001 |     /// - Parameters:
2002 |     ///     - key: The key of the SortedSet to remove elements from.
2003 +     ///     - minScore: The maximum score bound an element in the SortedSet should have to be removed.
     |               ╰─suggestion: Replace 'minScore' with 'maxScore'
2004 |     /// - Returns: The count of elements that were removed from the SortedSet.
2005 |     public func zremrangebyscore(from key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> EventLoopFuture<Int> {
warning: Parameter 'maxScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:2003:103-2003:103
2001 |     /// - Parameters:
2002 |     ///     - key: The key of the SortedSet to remove elements from.
2003 +     ///     - minScore: The maximum score bound an element in the SortedSet should have to be removed.
     |                                                                                                       ╰─suggestion: Document 'maxScore' parameter
2004 |     /// - Returns: The count of elements that were removed from the SortedSet.
2005 |     public func zremrangebyscore(from key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> EventLoopFuture<Int> {
warning: Parameter 'maxScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:2003:103-2003:103
2001 |     /// - Parameters:
2002 |     ///     - key: The key of the SortedSet to remove elements from.
2003 +     ///     - minScore: The maximum score bound an element in the SortedSet should have to be removed.
     |                                                                                                       ╰─suggestion: Document 'maxScore' parameter
2004 |     /// - Returns: The count of elements that were removed from the SortedSet.
2005 |     public func zremrangebyscore(from key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> EventLoopFuture<Int> {
warning: Parameter 'maxScore' is missing documentation
    --> Sources/RediStack/Commands/SortedSetCommands.swift:2003:103-2003:103
2001 |     /// - Parameters:
2002 |     ///     - key: The key of the SortedSet to remove elements from.
2003 +     ///     - minScore: The maximum score bound an element in the SortedSet should have to be removed.
     |                                                                                                       ╰─suggestion: Document 'maxScore' parameter
2004 |     /// - Returns: The count of elements that were removed from the SortedSet.
2005 |     public func zremrangebyscore(from key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> EventLoopFuture<Int> {
warning: Parameter 'onUnexpectedConnectionClose' is missing documentation
   --> Sources/RediStack/ConnectionPool/RedisConnectionPool+Configuration.swift:119:86-119:86
117 |         ///     - connectionRetryTimeout: The max time to wait for a connection to be available before failing a particular command or connection operation.
118 |         ///         The default is 60 seconds.
119 +         ///     - poolDefaultLogger: The `Logger` used by the connection pool itself.
    |                 ╰─suggestion: Document 'onUnexpectedConnectionClose' parameter
120 |         public init(
121 |             initialServerConnectionAddresses: [SocketAddress],
Finished building documentation for 'RediStack' (0.89s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/1.6.2
Updating https://github.com/apple/swift-nio-ssl.git
Updating https://github.com/apple/swift-atomics.git
Updating https://github.com/apple/swift-nio.git
Updating https://github.com/apple/swift-metrics.git
Updating https://github.com/apple/swift-system.git
Updating https://github.com/apple/swift-log.git
Updating https://github.com/apple/swift-collections.git
Updated https://github.com/apple/swift-atomics.git (0.47s)
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Updated https://github.com/apple/swift-nio-ssl.git (0.55s)
Updated https://github.com/apple/swift-collections.git (0.81s)
Updated https://github.com/apple/swift-system.git (0.81s)
Updated https://github.com/apple/swift-log.git (0.81s)
Updated https://github.com/apple/swift-metrics.git (0.81s)
Updated https://github.com/apple/swift-nio.git (0.81s)
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.45s)
Computing version for https://github.com/apple/swift-nio-ssl.git
Computed https://github.com/apple/swift-nio-ssl.git at 2.30.0 (1.73s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.82.0 (0.69s)
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.45s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.2.0 (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.62s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.3 (0.54s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.74s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.42s)
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
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
Building for debugging...
[0/8] Write sources
[0/8] Write snippet-extract-tool-entitlement.plist
[1/8] Write sources
[4/8] Write swift-version-2F0A5646E1D333AE.txt
[6/53] Compiling SymbolKit Identifier.swift
[7/53] Compiling SymbolKit KindIdentifier.swift
[8/53] Compiling SymbolKit Location.swift
[9/53] Compiling SymbolKit Mutability.swift
[10/53] Compiling SymbolKit SemanticVersion.swift
[11/53] Compiling SymbolKit AccessControl.swift
[12/53] Compiling SymbolKit Availability.swift
[13/53] Compiling SymbolKit AvailabilityItem.swift
[14/53] Compiling SymbolKit Domain.swift
[15/57] Compiling SymbolKit Mixin+Equals.swift
[16/57] Compiling SymbolKit Mixin+Hash.swift
[17/57] Compiling SymbolKit Mixin.swift
[18/57] Compiling SymbolKit LineList.swift
[19/57] Compiling SymbolKit Position.swift
[20/57] Emitting module SymbolKit
[21/57] Compiling SymbolKit GenericConstraint.swift
[22/57] Compiling SymbolKit GenericParameter.swift
[23/57] Compiling SymbolKit Generics.swift
[24/57] Compiling SymbolKit Namespace.swift
[25/57] Compiling SymbolKit DeclarationFragments.swift
[26/57] Compiling SymbolKit Fragment.swift
[27/57] Compiling SymbolKit FragmentKind.swift
[28/57] Compiling SymbolKit FunctionParameter.swift
[29/57] Compiling SymbolKit FunctionSignature.swift
[30/57] Compiling SymbolKit Names.swift
[31/57] Compiling SymbolKit SPI.swift
[32/57] Compiling SymbolKit Snippet.swift
[33/57] Compiling SymbolKit Extension.swift
[34/57] Compiling SymbolKit Relationship.swift
[35/57] Compiling SymbolKit RelationshipKind.swift
[36/57] Compiling SymbolKit SourceOrigin.swift
[37/57] Compiling SymbolKit GenericConstraints.swift
[38/57] Compiling SymbolKit Swift.swift
[39/57] Compiling SymbolKit SourceRange.swift
[40/57] Compiling SymbolKit Metadata.swift
[41/57] Compiling SymbolKit Module.swift
[42/57] Compiling SymbolKit OperatingSystem.swift
[43/57] Compiling SymbolKit Platform.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 SnippetParser.swift
[53/57] Emitting module Snippets
[54/57] Compiling Snippets Snippet.swift
[55/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[56/61] Compiling snippet_extract URL+Status.swift
[57/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Emitting module snippet_extract
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (5.13s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/58] Compiling InternalCollectionsUtilities UnsafeBufferPointer+Extras.swift
[3/58] Compiling Atomics OptionalRawRepresentable.swift
[4/58] Compiling Atomics RawRepresentable.swift
[5/59] Compiling Atomics AtomicOptionalWrappable.swift
[6/59] Compiling Atomics AtomicReference.swift
[7/59] Compiling Atomics ManagedAtomic.swift
[8/59] Compiling Atomics ManagedAtomicLazyReference.swift
[9/59] Compiling Atomics AtomicStorage.swift
[10/59] Compiling Atomics AtomicValue.swift
[11/59] Compiling Logging MetadataProvider.swift
[12/59] Compiling Atomics UnsafeAtomic.swift
[13/59] Compiling Atomics UnsafeAtomicLazyReference.swift
[14/61] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[15/61] Compiling Atomics Primitives.shims.swift
[16/61] Compiling Atomics AtomicInteger.swift
[17/61] Compiling Atomics AtomicBool.swift
[18/61] Compiling Atomics IntegerConformances.swift
[19/61] Emitting module _NIOBase64
[20/61] Compiling _NIOBase64 Base64.swift
[21/61] Compiling _NIODataStructures _TinyArray.swift
[22/61] Compiling _NIODataStructures PriorityQueue.swift
[23/61] Compiling NIOConcurrencyHelpers lock.swift
[24/61] Compiling Atomics IntegerOperations.swift
[25/61] Compiling Atomics Unmanaged extensions.swift
[26/61] Compiling NIOConcurrencyHelpers NIOLock.swift
[27/61] Compiling NIOConcurrencyHelpers atomics.swift
[28/61] Compiling NIOConcurrencyHelpers NIOLockedValueBox.swift
[29/61] Emitting module _NIODataStructures
[30/61] Compiling _NIODataStructures Heap.swift
[31/61] Compiling NIOConcurrencyHelpers NIOAtomic.swift
[32/61] Emitting module NIOConcurrencyHelpers
[33/61] Emitting module InternalCollectionsUtilities
[34/61] Compiling CoreMetrics Locks.swift
[35/61] Compiling CoreMetrics Metrics.swift
[36/61] Emitting module CoreMetrics
[39/61] Compiling Atomics PointerConformances.swift
[40/61] Compiling Atomics Primitives.native.swift
[41/61] Compiling Atomics AtomicMemoryOrderings.swift
[42/61] Compiling Atomics DoubleWord.swift
[55/61] Emitting module Logging
[56/61] Compiling Logging LogHandler.swift
[57/61] Compiling Logging Locks.swift
[58/61] Compiling Logging Logging.swift
[59/79] Compiling DequeModule _DequeSlot.swift
[60/79] Compiling DequeModule _DequeBuffer.swift
[61/80] Compiling DequeModule Deque+Extras.swift
[62/80] Compiling DequeModule Deque+Hashable.swift
[63/80] Compiling DequeModule Deque+Equatable.swift
[64/80] Compiling DequeModule Deque+ExpressibleByArrayLiteral.swift
[65/80] Compiling DequeModule Deque+CustomReflectable.swift
[66/80] Compiling DequeModule Deque+Descriptions.swift
[67/80] Compiling DequeModule Deque+Testing.swift
[68/80] Compiling DequeModule Deque._Storage.swift
[69/80] Compiling Metrics Metrics.swift
[70/80] Emitting module Metrics
[71/80] Emitting module Atomics
[74/80] Compiling DequeModule _UnsafeWrappedBuffer.swift
[75/80] Compiling DequeModule _DequeBufferHeader.swift
[76/80] Compiling DequeModule Deque._UnsafeHandle.swift
[77/80] Compiling DequeModule Deque.swift
[78/80] Compiling DequeModule Deque+Codable.swift
[79/80] Compiling DequeModule Deque+Collection.swift
[80/80] Emitting module DequeModule
[81/141] Compiling NIOCore AddressedEnvelope.swift
[82/141] Compiling NIOCore AsyncAwaitSupport.swift
[83/141] Compiling NIOCore AsyncChannel.swift
[84/141] Compiling NIOCore AsyncChannelHandler.swift
[85/141] Compiling NIOCore AsyncChannelInboundStream.swift
[86/141] Compiling NIOCore AsyncChannelOutboundWriter.swift
[87/141] Compiling NIOCore NIOAsyncSequenceProducer.swift
[88/147] Compiling NIOCore GlobalSingletons.swift
[89/147] Compiling NIOCore IO.swift
[90/147] Compiling NIOCore IOData.swift
[91/147] Compiling NIOCore IPProtocol.swift
[92/147] Compiling NIOCore IntegerBitPacking.swift
[93/147] Compiling NIOCore IntegerTypes.swift
[94/147] Compiling NIOCore NIOLoopBound.swift
[95/147] Compiling NIOCore NIOScheduledCallback.swift
[96/147] Compiling NIOCore NIOSendable.swift
[97/147] Compiling NIOCore RecvByteBufferAllocator.swift
[98/147] Compiling NIOCore SingleStepByteToMessageDecoder.swift
[99/147] Compiling NIOCore SocketAddresses.swift
[100/147] Compiling NIOCore Interfaces.swift
[101/147] Compiling NIOCore Linux.swift
[102/147] Compiling NIOCore MarkedCircularBuffer.swift
[103/147] Compiling NIOCore MulticastChannel.swift
[104/147] Compiling NIOCore NIOAny.swift
[105/147] Compiling NIOCore NIOCloseOnErrorHandler.swift
[106/147] Compiling NIOCore EventLoopFuture+AssumeIsolated.swift
[107/147] Compiling NIOCore EventLoopFuture+Deprecated.swift
[108/147] Compiling NIOCore EventLoopFuture+WithEventLoop.swift
[109/147] Compiling NIOCore EventLoopFuture.swift
[110/147] Compiling NIOCore FileDescriptor.swift
[111/147] Compiling NIOCore FileHandle.swift
[112/147] Compiling NIOCore FileRegion.swift
[113/147] Compiling NIOCore Codec.swift
[114/147] Compiling NIOCore ConvenienceOptionSupport.swift
[115/147] Compiling NIOCore DeadChannel.swift
[116/147] Compiling NIOCore DispatchQueue+WithFuture.swift
[117/147] Compiling NIOCore EventLoop+Deprecated.swift
[118/147] Compiling NIOCore EventLoop+SerialExecutor.swift
[119/147] Compiling NIOCore EventLoop.swift
[120/147] Compiling NIOCore NIOAsyncSequenceProducerStrategies.swift
[121/147] Compiling NIOCore NIOAsyncWriter.swift
[122/147] Compiling NIOCore NIOThrowingAsyncSequenceProducer.swift
[123/147] Compiling NIOCore BSDSocketAPI.swift
[124/147] Compiling NIOCore ByteBuffer-aux.swift
[125/147] Compiling NIOCore ByteBuffer-binaryEncodedLengthPrefix.swift
[126/147] Compiling NIOCore ByteBuffer-conversions.swift
[127/147] Compiling NIOCore SocketOptionProvider.swift
[128/147] Compiling NIOCore SystemCallHelpers.swift
[129/147] Compiling NIOCore TimeAmount+Duration.swift
[130/147] Compiling NIOCore TypeAssistedChannelHandler.swift
[131/147] Compiling NIOCore UniversalBootstrapSupport.swift
[132/147] Compiling NIOCore Utilities.swift
[133/147] Compiling NIOCore Channel.swift
[134/147] Compiling NIOCore ChannelHandler.swift
[135/147] Compiling NIOCore ChannelHandlers.swift
[136/147] Compiling NIOCore ChannelInvoker.swift
[137/147] Compiling NIOCore ChannelOption.swift
[138/147] Compiling NIOCore ChannelPipeline.swift
[139/147] Compiling NIOCore CircularBuffer.swift
[140/147] Compiling NIOCore ByteBuffer-core.swift
[141/147] Compiling NIOCore ByteBuffer-hex.swift
[142/147] Compiling NIOCore ByteBuffer-int.swift
[143/147] Compiling NIOCore ByteBuffer-lengthPrefix.swift
[144/147] Compiling NIOCore ByteBuffer-multi-int.swift
[145/147] Compiling NIOCore ByteBuffer-quicBinaryEncodingStrategy.swift
[146/147] Compiling NIOCore ByteBuffer-views.swift
[147/147] Emitting module NIOCore
[148/200] Emitting module NIOEmbedded
[149/200] Compiling NIOEmbedded AsyncTestingEventLoop.swift
[150/200] Compiling NIOEmbedded Embedded.swift
[151/200] Compiling NIOEmbedded AsyncTestingChannel.swift
[152/200] Compiling NIOPosix PooledRecvBufferAllocator.swift
[153/200] Compiling NIOPosix PosixSingletons+ConcurrencyTakeOver.swift
[154/200] Compiling NIOPosix PosixSingletons.swift
[155/200] Compiling NIOPosix RawSocketBootstrap.swift
[156/200] Compiling NIOPosix Resolver.swift
[157/205] Compiling NIOPosix LinuxCPUSet.swift
[158/205] Compiling NIOPosix LinuxUring.swift
[159/205] Compiling NIOPosix MultiThreadedEventLoopGroup.swift
[160/205] Compiling NIOPosix NIOThreadPool.swift
[161/205] Compiling NIOPosix NonBlockingFileIO.swift
[162/205] Compiling NIOPosix SelectorKqueue.swift
[163/205] Compiling NIOPosix SelectorUring.swift
[164/205] Compiling NIOPosix ServerSocket.swift
[165/205] Compiling NIOPosix Socket.swift
[166/205] Compiling NIOPosix SocketChannel.swift
[167/205] Compiling NIOPosix PendingDatagramWritesManager.swift
[168/205] Compiling NIOPosix PendingWritesManager.swift
[169/205] Compiling NIOPosix PipeChannel.swift
[170/205] Compiling NIOPosix PipePair.swift
[171/205] Compiling NIOPosix Pool.swift
[172/205] Compiling NIOPosix Selectable.swift
[173/205] Compiling NIOPosix SelectableChannel.swift
[174/205] Compiling NIOPosix SelectableEventLoop.swift
[175/205] Compiling NIOPosix SelectorEpoll.swift
[176/205] Compiling NIOPosix SelectorGeneric.swift
[177/205] Compiling NIOPosix SocketProtocols.swift
[178/205] Compiling NIOPosix System.swift
[179/205] Compiling NIOPosix Thread.swift
[180/205] Compiling NIOPosix ThreadPosix.swift
[181/205] Compiling NIOPosix ThreadWindows.swift
[182/205] Compiling NIOPosix BaseStreamSocketChannel.swift
[183/205] Compiling NIOPosix Bootstrap.swift
[184/205] Compiling NIOPosix ControlMessage.swift
[185/205] Compiling NIOPosix DatagramVectorReadManager.swift
[186/205] Compiling NIOPosix Errors+Any.swift
[187/205] Compiling NIOPosix FileDescriptor.swift
[188/205] Compiling NIOPosix GetaddrinfoResolver.swift
[189/205] Compiling NIOPosix HappyEyeballs.swift
[190/205] Compiling NIOPosix IO.swift
[191/205] Compiling NIOPosix IntegerBitPacking.swift
[192/205] Compiling NIOPosix IntegerTypes.swift
[193/205] Compiling NIOPosix Linux.swift
[194/205] Emitting module NIOPosix
[195/205] Compiling NIOPosix BSDSocketAPICommon.swift
[196/205] Compiling NIOPosix BSDSocketAPIPosix.swift
[197/205] Compiling NIOPosix BSDSocketAPIWindows.swift
[198/205] Compiling NIOPosix BaseSocket.swift
[199/205] Compiling NIOPosix BaseSocketChannel+SocketOptionProvider.swift
[200/205] Compiling NIOPosix BaseSocketChannel.swift
[201/205] Compiling NIOPosix UnsafeTransfer.swift
[202/205] Compiling NIOPosix Utilities.swift
[203/205] Compiling NIOPosix VsockAddress.swift
[204/205] Compiling NIOPosix VsockChannelEvents.swift
[205/205] Compiling NIOPosix resource_bundle_accessor.swift
[206/207] Compiling NIO Exports.swift
[207/207] Emitting module NIO
[208/213] Emitting module NIOTLS
[209/213] Compiling NIOTLS TLSEvents.swift
[210/213] Compiling NIOTLS ProtocolNegotiationHandlerStateMachine.swift
[211/213] Compiling NIOTLS SNIHandler.swift
[212/213] Compiling NIOTLS NIOTypedApplicationProtocolNegotiationHandler.swift
[213/213] Compiling NIOTLS ApplicationProtocolNegotiationHandler.swift
[214/243] Compiling NIOSSL SSLInit.swift
[215/243] Compiling NIOSSL SSLPKCS12Bundle.swift
[216/243] Compiling NIOSSL SSLPrivateKey.swift
[217/246] Compiling NIOSSL AndroidCABundle.swift
[218/246] Compiling NIOSSL ByteBufferBIO.swift
[219/246] Compiling NIOSSL CustomPrivateKey.swift
[220/246] Compiling NIOSSL IdentityVerification.swift
[221/246] Compiling NIOSSL SSLPublicKey.swift
[222/246] Compiling NIOSSL SecurityFrameworkCertificateVerification.swift
[223/246] Compiling NIOSSL String+unsafeUninitializedCapacity.swift
[224/246] Compiling NIOSSL LinuxCABundle.swift
[225/246] Compiling NIOSSL NIOSSLClientHandler.swift
[226/246] Compiling NIOSSL NIOSSLHandler+Configuration.swift
[227/246] Compiling NIOSSL NIOSSLHandler.swift
[228/246] Compiling NIOSSL NIOSSLServerHandler.swift
[229/246] Compiling NIOSSL ObjectIdentifier.swift
[230/246] Compiling NIOSSL PosixPort.swift
[231/246] Compiling NIOSSL SSLCallbacks.swift
[232/246] Compiling NIOSSL SSLCertificate.swift
[233/246] Compiling NIOSSL SSLCertificateExtensions.swift
[234/246] Compiling NIOSSL UniversalBootstrapSupport.swift
[235/246] Compiling NIOSSL UnsafeKeyAndChainTarget.swift
[236/246] Compiling NIOSSL resource_bundle_accessor.swift
[237/246] Compiling NIOSSL SubjectAlternativeName.swift
[238/246] Compiling NIOSSL NIOSSLSecureBytes.swift
[239/246] Compiling NIOSSL RNG.swift
[240/246] Compiling NIOSSL SafeCompare.swift
[241/246] Compiling NIOSSL Zeroization.swift
[242/246] Compiling NIOSSL TLSConfiguration.swift
[243/246] Emitting module NIOSSL
[244/246] Compiling NIOSSL SSLConnection.swift
[245/246] Compiling NIOSSL SSLContext.swift
[246/246] Compiling NIOSSL SSLErrors.swift
[247/281] Compiling RediStack RedisError.swift
[248/281] Compiling RediStack RedisKey+TTL.swift
[249/281] Compiling RediStack RedisKey.swift
[250/284] Compiling RediStack RedisCommandEncoder.swift
[251/284] Compiling RediStack RedisConnection+Configuration.swift
[252/284] Compiling RediStack RedisConnection.swift
[253/284] Emitting module RediStack
[254/284] Compiling RediStack RESPValueConvertible.swift
[255/284] Compiling RediStack RedisChannelName.swift
[256/284] Compiling RediStack RedisClient.swift
[257/284] Compiling RediStack RedisCommandEncoder-multi-encode.swift
[258/284] Compiling RediStack RedisByteDecoder.swift
[259/284] Compiling RediStack RedisCommandHandler.swift
[260/284] Compiling RediStack RedisMessageEncoder.swift
[261/284] Compiling RediStack RedisPubSubHandler.swift
[262/284] Compiling RediStack RedisClusterNodeDescriptionProtocol.swift
[263/284] Compiling RediStack RedisClusterNodeID.swift
[264/284] Compiling RediStack RedisClusterShardDescriptionProtocol.swift
[265/284] Compiling RediStack RedisHashSlot.swift
[266/284] Compiling RediStack ConnectionPool.swift
[267/284] Compiling RediStack RedisConnectionPool+Configuration.swift
[268/284] Compiling RediStack RedisConnectionPool.swift
[269/284] Compiling RediStack RedisConnectionPoolError.swift
[270/284] Compiling RediStack SwiftPolyfill.swift
[271/284] Compiling RediStack BasicCommands.swift
[272/284] Compiling RediStack HashCommands.swift
[273/284] Compiling RediStack ListCommands.swift
[274/284] Compiling RediStack RedisLogging.swift
[275/284] Compiling RediStack RedisMetrics.swift
[276/284] Compiling RediStack _Deprecations.swift
[277/284] Compiling RediStack StandardLibrary.swift
[278/284] Compiling RediStack SwiftNIO.swift
[279/284] Compiling RediStack RESPTranslator.swift
[280/284] Compiling RediStack RESPValue.swift
[281/284] Compiling RediStack PubSubCommands.swift
[282/284] Compiling RediStack SetCommands.swift
[283/284] Compiling RediStack SortedSetCommands.swift
[284/284] Compiling RediStack StringCommands.swift
Build of target: 'RediStack' complete! (9.77s)
Target:                   RedisTypes
Extracting symbol information for 'RedisTypes'...
Finished extracting symbol information for 'RedisTypes'. (2.43s)
Building documentation for 'RedisTypes'...
warning: Parameter 'members' not found in instance method declaration
   --> Sources/RedisTypes/RedisSet.swift:143:21-143:28
141 |     ///
142 |     /// See `RediStack.RedisClient.srem(_:from:)`
143 +     /// - Parameter members: The element in the set to remove.
    |                     ╰─suggestion: Replace 'members' with 'member'
144 |     /// - Returns: A `NIO.EventLoopFuture<Bool>` resolving `true` if `member` was removed from the set; otherwise, `false`.
145 |     public func remove(_ member: Element) -> EventLoopFuture<Bool> {
warning: Parameter 'member' is missing documentation
   --> Sources/RedisTypes/RedisSet.swift:143:63-143:63
141 |     ///
142 |     /// See `RediStack.RedisClient.srem(_:from:)`
143 +     /// - Parameter members: The element in the set to remove.
    |                                                               ╰─suggestion: Document 'member' parameter
144 |     /// - Returns: A `NIO.EventLoopFuture<Bool>` resolving `true` if `member` was removed from the set; otherwise, `false`.
145 |     public func remove(_ member: Element) -> EventLoopFuture<Bool> {
Finished building documentation for 'RedisTypes' (0.05s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/1.6.2
Building for debugging...
[0/3] Write swift-version-2F0A5646E1D333AE.txt
Build of product 'snippet-extract' complete! (1.83s)
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! (2.31s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/1.6.2/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/1.6.2/linkable-paths.json
Target:                   RediStackTestUtils
Extracting symbol information for 'RediStackTestUtils'...
Finished extracting symbol information for 'RediStackTestUtils'. (4.00s)
Building documentation for 'RediStackTestUtils'...
warning: Parameter 'password' is missing documentation
  --> Sources/RediStackTestUtils/_Deprecations.swift:30:44-30:44
28 |     /// - Parameters:
29 |     ///     - eventLoop: The event loop that the connection should execute on.
30 +     ///     - port: The port to connect on.
   |                                            ╰─suggestion: Document 'password' parameter
31 |     /// - Returns: A `NIO.EventLoopFuture` that resolves with the new connection.
32 |     @available(*, deprecated, message: "Use RedisConnection.make(configuration:boundEventLoop:) method")
warning: Parameter 'host' is missing documentation
  --> Sources/RediStackTestUtils/_Deprecations.swift:30:44-30:44
28 |     /// - Parameters:
29 |     ///     - eventLoop: The event loop that the connection should execute on.
30 +     ///     - port: The port to connect on.
   |             ╰─suggestion: Document 'host' parameter
31 |     /// - Returns: A `NIO.EventLoopFuture` that resolves with the new connection.
32 |     @available(*, deprecated, message: "Use RedisConnection.make(configuration:boundEventLoop:) method")
Finished building documentation for 'RediStackTestUtils' (0.06s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/1.6.2
Building for debugging...
[0/3] Write swift-version-2F0A5646E1D333AE.txt
Build of product 'snippet-extract' complete! (1.82s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/8] Compiling RediStackTestUtils RediStack.swift
[3/8] Compiling RediStackTestUtils _Deprecations.swift
[4/8] Compiling RediStackTestUtils RedisIntegrationTestCase.swift
[5/8] Compiling RediStackTestUtils RedisConnectionPoolIntegrationTestCase.swift
[6/8] Compiling RediStackTestUtils General.swift
[7/8] Emitting module RediStackTestUtils
[8/8] Compiling RediStackTestUtils EmbeddedMockRedisServer.swift
Build of target: 'RediStackTestUtils' complete! (2.30s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/1.6.2/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/1.6.2/linkable-paths.json
    2604
18	/Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/1.6.2
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/swift-server/redistack/1.6.2
File count: 2604
Doc size:   18.0MB
Preparing doc bundle ...
Uploading prod-swift-server-redistack-1.6.2-aa99b555.zip to s3://spi-docs-inbox/prod-swift-server-redistack-1.6.2-aa99b555.zip
Copying... [10%]
Copying... [21%]
Copying... [31%]
Copying... [41%]
Copying... [52%]
Copying... [60%]
Copying... [70%]
Copying... [81%]
Copying... [91%]
Copying... [100%]
Done.