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 2.0.0-gamma.1.1 (8ac2d7), with Swift 6.0 for macOS (SPM) on 28 Nov 2024 15:42:58 UTC.

Swift 6 data race errors: 21

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.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

    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 |         keyword: String,
505 |         _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:208:36: warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 |
207 |                 return operation(connection)
208 |                     .always { _ in returnConnection(connection, logger) }
    |                                    |- warning: capture of 'returnConnection' with non-sendable type '(RedisConnection, Logger) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 |             },
210 |             preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnectionPool.swift:208:53: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 |
207 |                 return operation(connection)
208 |                     .always { _ in returnConnection(connection, logger) }
    |                                                     `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
209 |             },
210 |             preferredConnection: nil,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisMetrics.swift:47:23: warning: static property 'activeConnectionCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 45 |
 46 |     /// The wrapped `Metrics.Gauge` maintaining the current number of connections this library has active.
 47 |     public static var activeConnectionCount = IncrementalGauge(.activeConnectionCount)
    |                       |- warning: static property 'activeConnectionCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'activeConnectionCount' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'activeConnectionCount' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 48 |     /// The wrapped `Metrics.Gauge` maintaining the current number of subscriptions to channels.
 49 |     public static var activeChannelSubscriptions = IncrementalGauge(.activeChannelSubscriptions)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisMetrics.swift:49:23: warning: static property 'activeChannelSubscriptions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     public static var activeConnectionCount = IncrementalGauge(.activeConnectionCount)
 48 |     /// The wrapped `Metrics.Gauge` maintaining the current number of subscriptions to channels.
 49 |     public static var activeChannelSubscriptions = IncrementalGauge(.activeChannelSubscriptions)
    |                       |- warning: static property 'activeChannelSubscriptions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'activeChannelSubscriptions' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'activeChannelSubscriptions' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |     /// The wrapped `Metrics.Gauge` maintaining the current number of subscriptions to channel patterns.
 51 |     public static var activePatternSubscriptions = IncrementalGauge(.activePatternSubscriptions)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisMetrics.swift:51:23: warning: static property 'activePatternSubscriptions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 49 |     public static var activeChannelSubscriptions = IncrementalGauge(.activeChannelSubscriptions)
 50 |     /// The wrapped `Metrics.Gauge` maintaining the current number of subscriptions to channel patterns.
 51 |     public static var activePatternSubscriptions = IncrementalGauge(.activePatternSubscriptions)
    |                       |- warning: static property 'activePatternSubscriptions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'activePatternSubscriptions' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'activePatternSubscriptions' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 52 |     /// The `Metrics.Counter` that retains the number of connections made since application startup.
 53 |     public static let totalConnectionCount = Counter(label: .totalConnectionCount)
[265/277] Compiling RediStack RESPTranslator.swift
[266/277] Compiling RediStack RESPValue.swift
[267/277] Compiling RediStack RESPValueConvertible.swift
[268/277] Compiling RediStack ConnectionPoolErrors.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Extensions/SwiftNIO.swift:114:14: warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
112 |
113 |         return self.handler(type: RedisPubSubHandler.self)
114 |             .flatMapError {
    |              `- warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
115 |                 // if it doesn't exist, add it to the pipeline
116 |                 guard
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 92 |
 93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
 94 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 95 |     private var state: State = .default
 96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Extensions/SwiftNIO.swift:122:22: warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
120 |
121 |                 return self.handler(type: RedisCommandHandler.self)
122 |                     .flatMap {
    |                      `- warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
123 |                         let pubsubHandler = RedisPubSubHandler(eventLoop: self.eventLoop)
124 |                         return self.addHandler(pubsubHandler, name: "RediStack.PubSubHandler", position: .before($0))
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 92 |
 93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
 94 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 95 |     private var state: State = .default
 96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Extensions/SwiftNIO.swift:125:36: warning: capture of 'pubsubHandler' with non-sendable type 'RedisPubSubHandler' in a `@Sendable` closure; this is an error in the Swift 6 language mode
123 |                         let pubsubHandler = RedisPubSubHandler(eventLoop: self.eventLoop)
124 |                         return self.addHandler(pubsubHandler, name: "RediStack.PubSubHandler", position: .before($0))
125 |                             .map { pubsubHandler }
    |                                    `- warning: capture of 'pubsubHandler' with non-sendable type 'RedisPubSubHandler' in a `@Sendable` closure; this is an error in the Swift 6 language mode
126 |                     }
127 |             }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 92 |
 93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
 94 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 95 |     private var state: State = .default
 96 |
[269/277] Compiling RediStack StandardLibrary.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Extensions/SwiftNIO.swift:114:14: warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
112 |
113 |         return self.handler(type: RedisPubSubHandler.self)
114 |             .flatMapError {
    |              `- warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
115 |                 // if it doesn't exist, add it to the pipeline
116 |                 guard
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 92 |
 93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
 94 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 95 |     private var state: State = .default
 96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Extensions/SwiftNIO.swift:122:22: warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
120 |
121 |                 return self.handler(type: RedisCommandHandler.self)
122 |                     .flatMap {
    |                      `- warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
123 |                         let pubsubHandler = RedisPubSubHandler(eventLoop: self.eventLoop)
124 |                         return self.addHandler(pubsubHandler, name: "RediStack.PubSubHandler", position: .before($0))
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 92 |
 93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
 94 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 95 |     private var state: State = .default
 96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Extensions/SwiftNIO.swift:125:36: warning: capture of 'pubsubHandler' with non-sendable type 'RedisPubSubHandler' in a `@Sendable` closure; this is an error in the Swift 6 language mode
123 |                         let pubsubHandler = RedisPubSubHandler(eventLoop: self.eventLoop)
124 |                         return self.addHandler(pubsubHandler, name: "RediStack.PubSubHandler", position: .before($0))
125 |                             .map { pubsubHandler }
    |                                    `- warning: capture of 'pubsubHandler' with non-sendable type 'RedisPubSubHandler' in a `@Sendable` closure; this is an error in the Swift 6 language mode
126 |                     }
127 |             }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 92 |
 93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
 94 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 95 |     private var state: State = .default
 96 |
[270/277] Compiling RediStack SwiftNIO.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Extensions/SwiftNIO.swift:114:14: warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
112 |
113 |         return self.handler(type: RedisPubSubHandler.self)
114 |             .flatMapError {
    |              `- warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
115 |                 // if it doesn't exist, add it to the pipeline
116 |                 guard
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 92 |
 93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
 94 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 95 |     private var state: State = .default
 96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Extensions/SwiftNIO.swift:122:22: warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
120 |
121 |                 return self.handler(type: RedisCommandHandler.self)
122 |                     .flatMap {
    |                      `- warning: type 'RedisPubSubHandler' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
123 |                         let pubsubHandler = RedisPubSubHandler(eventLoop: self.eventLoop)
124 |                         return self.addHandler(pubsubHandler, name: "RediStack.PubSubHandler", position: .before($0))
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 92 |
 93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
 94 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 95 |     private var state: State = .default
 96 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Extensions/SwiftNIO.swift:125:36: warning: capture of 'pubsubHandler' with non-sendable type 'RedisPubSubHandler' in a `@Sendable` closure; this is an error in the Swift 6 language mode
123 |                         let pubsubHandler = RedisPubSubHandler(eventLoop: self.eventLoop)
124 |                         return self.addHandler(pubsubHandler, name: "RediStack.PubSubHandler", position: .before($0))
125 |                             .map { pubsubHandler }
    |                                    `- warning: capture of 'pubsubHandler' with non-sendable type 'RedisPubSubHandler' in a `@Sendable` closure; this is an error in the Swift 6 language mode
126 |                     }
127 |             }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ChannelHandlers/RedisPubSubHandler.swift:94:20: note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 92 |
 93 | /// A channel handler that stores a map of closures and channel or pattern names subscribed to in Redis using Pub/Sub.
 94 | public final class RedisPubSubHandler {
    |                    `- note: class 'RedisPubSubHandler' does not conform to the 'Sendable' protocol
 95 |     private var state: State = .default
 96 |
[271/277] Compiling RediStack ConnectionCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 |     fileprivate static func _bpop<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 |         keyword: String,
548 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
[272/277] Compiling RediStack HashCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 |     fileprivate static func _bpop<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 |         keyword: String,
548 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
[273/277] Compiling RediStack KeyCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 |     fileprivate static func _bpop<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 |         keyword: String,
548 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
[274/277] Compiling RediStack ListCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 |     fileprivate static func _bpop<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 |         keyword: String,
548 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
[275/277] Compiling RediStack SortedSetCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1183:23: warning: static property 'allElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1179 | ///
1180 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options).
1181 | public struct RedisZaddInsertBehavior {
     |               `- note: consider making struct 'RedisZaddInsertBehavior' conform to the 'Sendable' protocol
1182 |     /// Insert new elements and update the score of existing elements.
1183 |     public static let allElements = RedisZaddInsertBehavior(nil)
     |                       |- warning: static property 'allElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'allElements' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1184 |     /// Only insert new elements; do not update the score of existing elements.
1185 |     public static let onlyNewElements = RedisZaddInsertBehavior(.nx)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1214:23: warning: static property 'insertedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1208 | ///
1209 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options)
1210 | public struct RedisZaddReturnBehavior {
     |               `- note: consider making struct 'RedisZaddReturnBehavior' conform to the 'Sendable' protocol
1211 |     /// Count both new elements that were inserted into the SortedSet and existing elements that had their score updated.
1212 |     public static let changedElementsCount = RedisZaddReturnBehavior(.ch)
1213 |     /// Count only new elements that were inserted into the SortedSet.
1214 |     public static let insertedElementsCount = RedisZaddReturnBehavior(nil)
     |                       |- warning: static property 'insertedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'insertedElementsCount' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1215 |
1216 |     @usableFromInline
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1185:23: warning: static property 'onlyNewElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1179 | ///
1180 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options).
1181 | public struct RedisZaddInsertBehavior {
     |               `- note: consider making struct 'RedisZaddInsertBehavior' conform to the 'Sendable' protocol
1182 |     /// Insert new elements and update the score of existing elements.
1183 |     public static let allElements = RedisZaddInsertBehavior(nil)
1184 |     /// Only insert new elements; do not update the score of existing elements.
1185 |     public static let onlyNewElements = RedisZaddInsertBehavior(.nx)
     |                       |- warning: static property 'onlyNewElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'onlyNewElements' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1186 |     /// Only update the score of existing elements; do not insert new elements.
1187 |     public static let onlyExistingElements = RedisZaddInsertBehavior(.xx)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1187:23: warning: static property 'onlyExistingElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1179 | ///
1180 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options).
1181 | public struct RedisZaddInsertBehavior {
     |               `- note: consider making struct 'RedisZaddInsertBehavior' conform to the 'Sendable' protocol
1182 |     /// Insert new elements and update the score of existing elements.
1183 |     public static let allElements = RedisZaddInsertBehavior(nil)
     :
1185 |     public static let onlyNewElements = RedisZaddInsertBehavior(.nx)
1186 |     /// Only update the score of existing elements; do not insert new elements.
1187 |     public static let onlyExistingElements = RedisZaddInsertBehavior(.xx)
     |                       |- warning: static property 'onlyExistingElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'onlyExistingElements' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1188 |
1189 |     @usableFromInline
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1212:23: warning: static property 'changedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1208 | ///
1209 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options)
1210 | public struct RedisZaddReturnBehavior {
     |               `- note: consider making struct 'RedisZaddReturnBehavior' conform to the 'Sendable' protocol
1211 |     /// Count both new elements that were inserted into the SortedSet and existing elements that had their score updated.
1212 |     public static let changedElementsCount = RedisZaddReturnBehavior(.ch)
     |                       |- warning: static property 'changedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'changedElementsCount' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1213 |     /// Count only new elements that were inserted into the SortedSet.
1214 |     public static let insertedElementsCount = RedisZaddReturnBehavior(nil)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1268:23: warning: static property 'sum' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
1264 | ///
1265 | /// See the documentation for each individual command that uses this object for more details.
1266 | public struct RedisSortedSetAggregateMethod {
     |               `- note: consider making struct 'RedisSortedSetAggregateMethod' conform to the 'Sendable' protocol
1267 |     /// Add the score of all matching elements in the source SortedSets.
1268 |     public static let sum = RedisSortedSetAggregateMethod(.sum)
     |                       |- warning: static property 'sum' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'sum' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1269 |     /// Use the minimum score of the matching elements in the source SortedSets.
1270 |     public static let min = RedisSortedSetAggregateMethod(.min)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1270:23: warning: static property 'min' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
1264 | ///
1265 | /// See the documentation for each individual command that uses this object for more details.
1266 | public struct RedisSortedSetAggregateMethod {
     |               `- note: consider making struct 'RedisSortedSetAggregateMethod' conform to the 'Sendable' protocol
1267 |     /// Add the score of all matching elements in the source SortedSets.
1268 |     public static let sum = RedisSortedSetAggregateMethod(.sum)
1269 |     /// Use the minimum score of the matching elements in the source SortedSets.
1270 |     public static let min = RedisSortedSetAggregateMethod(.min)
     |                       |- warning: static property 'min' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'min' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1271 |     /// Use the maximum score of the matching elements in the source SortedSets.
1272 |     public static let max = RedisSortedSetAggregateMethod(.max)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1272:23: warning: static property 'max' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
1264 | ///
1265 | /// See the documentation for each individual command that uses this object for more details.
1266 | public struct RedisSortedSetAggregateMethod {
     |               `- note: consider making struct 'RedisSortedSetAggregateMethod' conform to the 'Sendable' protocol
1267 |     /// Add the score of all matching elements in the source SortedSets.
1268 |     public static let sum = RedisSortedSetAggregateMethod(.sum)
     :
1270 |     public static let min = RedisSortedSetAggregateMethod(.min)
1271 |     /// Use the maximum score of the matching elements in the source SortedSets.
1272 |     public static let max = RedisSortedSetAggregateMethod(.max)
     |                       |- warning: static property 'max' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'max' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1273 |
1274 |     internal var string: String { self.option.rawValue }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1347:36: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1345 | // MARK: - Shared implementations
1346 | extension RedisCommand {
1347 |     fileprivate static func _bzpop<ResultType>(
     |                                    `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1348 |         keyword: String,
1349 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1401:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1399 |     }
1400 |
1401 |     fileprivate static func _zpop<ResultType>(
     |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1402 |         keyword: String,
1403 |         _ count: Int?,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:410: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
406 | ///
407 | /// See [SET](https://redis.io/commands/set)
408 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
409 |     /// No condition is required to be met in order to set the key's value.
410 |     public static let none = RedisSetCommandCondition(.none)
    |                       |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'none' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
411 |
412 |     /// Only set the key if it already exists.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:415: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
406 | ///
407 | /// See [SET](https://redis.io/commands/set)
408 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
409 |     /// No condition is required to be met in order to set the key's value.
410 |     public static let none = RedisSetCommandCondition(.none)
    :
413 |     ///
414 |     /// Redis documentation refers to this as the option "XX".
415 |     public static let keyExists = RedisSetCommandCondition(.keyExists)
    |                       |- warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keyExists' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
416 |
417 |     /// Only set the key if it does not already exist.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:420: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
406 | ///
407 | /// See [SET](https://redis.io/commands/set)
408 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
409 |     /// No condition is required to be met in order to set the key's value.
410 |     public static let none = RedisSetCommandCondition(.none)
    :
418 |     ///
419 |     /// Redis documentation refers to this as the option "NX".
420 |     public static let keyDoesNotExist = RedisSetCommandCondition(.keyDoesNotExist)
    |                       |- warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keyDoesNotExist' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
421 |
422 |     private enum Condition: String, Hashable {
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:447: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
440 | ///
441 | /// See [SET](https://redis.io/commands/set)
442 | public struct RedisSetCommandExpiration: Hashable {
    |               `- note: consider making struct 'RedisSetCommandExpiration' conform to the 'Sendable' protocol
443 |     /// Retain the existing expiration associated with the key, if one exists.
444 |     ///
445 |     /// Redis documentation refers to this as "KEEPTTL".
446 |     /// - 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.
447 |     public static let keepExisting = RedisSetCommandExpiration(.keepExisting)
    |                       |- warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keepExisting' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
448 |
449 |     /// Expire the key after the given number of seconds.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:503:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
501 |
502 | extension RedisCommand {
503 |     fileprivate static func _mset<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 |         keyword: String,
505 |         _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:127:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
125 |         } else {
126 |             self.loop.execute {
127 |                 self.refillConnections(logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
128 |             }
129 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:139:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
137 |         } else {
138 |             self.loop.execute {
139 |                 self.closePool(promise: promise, logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
140 |             }
141 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:149:30: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |             return self._leaseConnection(logger: logger, deadline: deadline)
148 |         } else {
149 |             return self.loop.flatSubmit {
    |                              `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |                 return self._leaseConnection(logger: logger, deadline: deadline)
151 |             }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:150:24: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
148 |         } else {
149 |             return self.loop.flatSubmit {
150 |                 return self._leaseConnection(logger: logger, deadline: deadline)
    |                        `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
151 |             }
152 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:160:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
158 |         } else {
159 |             return self.loop.execute {
160 |                 self._returnLeasedConnection(connection, logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
161 |             }
162 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:160:46: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
158 |         } else {
159 |             return self.loop.execute {
160 |                 self._returnLeasedConnection(connection, logger: logger)
    |                                              `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
161 |             }
162 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:196:13: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
194 |
195 |         self.loop.scheduleTask(in: delay) {
196 |             self.connectionFactory(self.loop)
    |             `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
197 |                 .whenComplete { result in
198 |                     self.loop.preconditionInEventLoop()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:198:21: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
196 |             self.connectionFactory(self.loop)
197 |                 .whenComplete { result in
198 |                     self.loop.preconditionInEventLoop()
    |                     `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
199 |
200 |                     self.pendingConnectionCount -= 1
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:233:64: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
231 |             // Great, we want this. We'll be "returning" it to the pool. First,
232 |             // attach the close callback to it.
233 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
234 |             self._returnConnection(connection, logger: logger)
235 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:233:90: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |             // Great, we want this. We'll be "returning" it to the pool. First,
232 |             // attach the close callback to it.
233 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                                          `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
234 |             self._returnConnection(connection, logger: logger)
235 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:493:70: warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
489 |         }
490 |
491 |         mutating func scheduleDeadline(loop: EventLoop, deadline: NIODeadline, _ onTimeout: @escaping () -> Void) {
    |                                                                                  `- note: parameter 'onTimeout' is implicitly non-sendable
492 |             assert(self.timeoutTask == nil)
493 |             self.timeoutTask = loop.scheduleTask(deadline: deadline, onTimeout)
    |                                                                      `- warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
494 |         }
495 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:498:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
496 |         func succeed(_ connection: RedisConnection) {
497 |             self.timeoutTask?.cancel()
498 |             self.result.succeed(connection)
    |                         `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
499 |         }
500 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
[276/277] Compiling RediStack StringCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1183:23: warning: static property 'allElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1179 | ///
1180 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options).
1181 | public struct RedisZaddInsertBehavior {
     |               `- note: consider making struct 'RedisZaddInsertBehavior' conform to the 'Sendable' protocol
1182 |     /// Insert new elements and update the score of existing elements.
1183 |     public static let allElements = RedisZaddInsertBehavior(nil)
     |                       |- warning: static property 'allElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'allElements' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1184 |     /// Only insert new elements; do not update the score of existing elements.
1185 |     public static let onlyNewElements = RedisZaddInsertBehavior(.nx)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1214:23: warning: static property 'insertedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1208 | ///
1209 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options)
1210 | public struct RedisZaddReturnBehavior {
     |               `- note: consider making struct 'RedisZaddReturnBehavior' conform to the 'Sendable' protocol
1211 |     /// Count both new elements that were inserted into the SortedSet and existing elements that had their score updated.
1212 |     public static let changedElementsCount = RedisZaddReturnBehavior(.ch)
1213 |     /// Count only new elements that were inserted into the SortedSet.
1214 |     public static let insertedElementsCount = RedisZaddReturnBehavior(nil)
     |                       |- warning: static property 'insertedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'insertedElementsCount' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1215 |
1216 |     @usableFromInline
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1185:23: warning: static property 'onlyNewElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1179 | ///
1180 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options).
1181 | public struct RedisZaddInsertBehavior {
     |               `- note: consider making struct 'RedisZaddInsertBehavior' conform to the 'Sendable' protocol
1182 |     /// Insert new elements and update the score of existing elements.
1183 |     public static let allElements = RedisZaddInsertBehavior(nil)
1184 |     /// Only insert new elements; do not update the score of existing elements.
1185 |     public static let onlyNewElements = RedisZaddInsertBehavior(.nx)
     |                       |- warning: static property 'onlyNewElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'onlyNewElements' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1186 |     /// Only update the score of existing elements; do not insert new elements.
1187 |     public static let onlyExistingElements = RedisZaddInsertBehavior(.xx)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1187:23: warning: static property 'onlyExistingElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1179 | ///
1180 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options).
1181 | public struct RedisZaddInsertBehavior {
     |               `- note: consider making struct 'RedisZaddInsertBehavior' conform to the 'Sendable' protocol
1182 |     /// Insert new elements and update the score of existing elements.
1183 |     public static let allElements = RedisZaddInsertBehavior(nil)
     :
1185 |     public static let onlyNewElements = RedisZaddInsertBehavior(.nx)
1186 |     /// Only update the score of existing elements; do not insert new elements.
1187 |     public static let onlyExistingElements = RedisZaddInsertBehavior(.xx)
     |                       |- warning: static property 'onlyExistingElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'onlyExistingElements' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1188 |
1189 |     @usableFromInline
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1212:23: warning: static property 'changedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1208 | ///
1209 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options)
1210 | public struct RedisZaddReturnBehavior {
     |               `- note: consider making struct 'RedisZaddReturnBehavior' conform to the 'Sendable' protocol
1211 |     /// Count both new elements that were inserted into the SortedSet and existing elements that had their score updated.
1212 |     public static let changedElementsCount = RedisZaddReturnBehavior(.ch)
     |                       |- warning: static property 'changedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'changedElementsCount' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1213 |     /// Count only new elements that were inserted into the SortedSet.
1214 |     public static let insertedElementsCount = RedisZaddReturnBehavior(nil)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1268:23: warning: static property 'sum' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
1264 | ///
1265 | /// See the documentation for each individual command that uses this object for more details.
1266 | public struct RedisSortedSetAggregateMethod {
     |               `- note: consider making struct 'RedisSortedSetAggregateMethod' conform to the 'Sendable' protocol
1267 |     /// Add the score of all matching elements in the source SortedSets.
1268 |     public static let sum = RedisSortedSetAggregateMethod(.sum)
     |                       |- warning: static property 'sum' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'sum' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1269 |     /// Use the minimum score of the matching elements in the source SortedSets.
1270 |     public static let min = RedisSortedSetAggregateMethod(.min)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1270:23: warning: static property 'min' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
1264 | ///
1265 | /// See the documentation for each individual command that uses this object for more details.
1266 | public struct RedisSortedSetAggregateMethod {
     |               `- note: consider making struct 'RedisSortedSetAggregateMethod' conform to the 'Sendable' protocol
1267 |     /// Add the score of all matching elements in the source SortedSets.
1268 |     public static let sum = RedisSortedSetAggregateMethod(.sum)
1269 |     /// Use the minimum score of the matching elements in the source SortedSets.
1270 |     public static let min = RedisSortedSetAggregateMethod(.min)
     |                       |- warning: static property 'min' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'min' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1271 |     /// Use the maximum score of the matching elements in the source SortedSets.
1272 |     public static let max = RedisSortedSetAggregateMethod(.max)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1272:23: warning: static property 'max' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
1264 | ///
1265 | /// See the documentation for each individual command that uses this object for more details.
1266 | public struct RedisSortedSetAggregateMethod {
     |               `- note: consider making struct 'RedisSortedSetAggregateMethod' conform to the 'Sendable' protocol
1267 |     /// Add the score of all matching elements in the source SortedSets.
1268 |     public static let sum = RedisSortedSetAggregateMethod(.sum)
     :
1270 |     public static let min = RedisSortedSetAggregateMethod(.min)
1271 |     /// Use the maximum score of the matching elements in the source SortedSets.
1272 |     public static let max = RedisSortedSetAggregateMethod(.max)
     |                       |- warning: static property 'max' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'max' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1273 |
1274 |     internal var string: String { self.option.rawValue }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1347:36: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1345 | // MARK: - Shared implementations
1346 | extension RedisCommand {
1347 |     fileprivate static func _bzpop<ResultType>(
     |                                    `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1348 |         keyword: String,
1349 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1401:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1399 |     }
1400 |
1401 |     fileprivate static func _zpop<ResultType>(
     |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1402 |         keyword: String,
1403 |         _ count: Int?,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:410: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
406 | ///
407 | /// See [SET](https://redis.io/commands/set)
408 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
409 |     /// No condition is required to be met in order to set the key's value.
410 |     public static let none = RedisSetCommandCondition(.none)
    |                       |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'none' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
411 |
412 |     /// Only set the key if it already exists.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:415: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
406 | ///
407 | /// See [SET](https://redis.io/commands/set)
408 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
409 |     /// No condition is required to be met in order to set the key's value.
410 |     public static let none = RedisSetCommandCondition(.none)
    :
413 |     ///
414 |     /// Redis documentation refers to this as the option "XX".
415 |     public static let keyExists = RedisSetCommandCondition(.keyExists)
    |                       |- warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keyExists' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
416 |
417 |     /// Only set the key if it does not already exist.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:420: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
406 | ///
407 | /// See [SET](https://redis.io/commands/set)
408 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
409 |     /// No condition is required to be met in order to set the key's value.
410 |     public static let none = RedisSetCommandCondition(.none)
    :
418 |     ///
419 |     /// Redis documentation refers to this as the option "NX".
420 |     public static let keyDoesNotExist = RedisSetCommandCondition(.keyDoesNotExist)
    |                       |- warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keyDoesNotExist' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
421 |
422 |     private enum Condition: String, Hashable {
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:447: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
440 | ///
441 | /// See [SET](https://redis.io/commands/set)
442 | public struct RedisSetCommandExpiration: Hashable {
    |               `- note: consider making struct 'RedisSetCommandExpiration' conform to the 'Sendable' protocol
443 |     /// Retain the existing expiration associated with the key, if one exists.
444 |     ///
445 |     /// Redis documentation refers to this as "KEEPTTL".
446 |     /// - 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.
447 |     public static let keepExisting = RedisSetCommandExpiration(.keepExisting)
    |                       |- warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keepExisting' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
448 |
449 |     /// Expire the key after the given number of seconds.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:503:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
501 |
502 | extension RedisCommand {
503 |     fileprivate static func _mset<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 |         keyword: String,
505 |         _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:127:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
125 |         } else {
126 |             self.loop.execute {
127 |                 self.refillConnections(logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
128 |             }
129 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:139:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
137 |         } else {
138 |             self.loop.execute {
139 |                 self.closePool(promise: promise, logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
140 |             }
141 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:149:30: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |             return self._leaseConnection(logger: logger, deadline: deadline)
148 |         } else {
149 |             return self.loop.flatSubmit {
    |                              `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |                 return self._leaseConnection(logger: logger, deadline: deadline)
151 |             }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:150:24: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
148 |         } else {
149 |             return self.loop.flatSubmit {
150 |                 return self._leaseConnection(logger: logger, deadline: deadline)
    |                        `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
151 |             }
152 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:160:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
158 |         } else {
159 |             return self.loop.execute {
160 |                 self._returnLeasedConnection(connection, logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
161 |             }
162 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:160:46: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
158 |         } else {
159 |             return self.loop.execute {
160 |                 self._returnLeasedConnection(connection, logger: logger)
    |                                              `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
161 |             }
162 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:196:13: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
194 |
195 |         self.loop.scheduleTask(in: delay) {
196 |             self.connectionFactory(self.loop)
    |             `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
197 |                 .whenComplete { result in
198 |                     self.loop.preconditionInEventLoop()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:198:21: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
196 |             self.connectionFactory(self.loop)
197 |                 .whenComplete { result in
198 |                     self.loop.preconditionInEventLoop()
    |                     `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
199 |
200 |                     self.pendingConnectionCount -= 1
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:233:64: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
231 |             // Great, we want this. We'll be "returning" it to the pool. First,
232 |             // attach the close callback to it.
233 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
234 |             self._returnConnection(connection, logger: logger)
235 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:233:90: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |             // Great, we want this. We'll be "returning" it to the pool. First,
232 |             // attach the close callback to it.
233 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                                          `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
234 |             self._returnConnection(connection, logger: logger)
235 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:493:70: warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
489 |         }
490 |
491 |         mutating func scheduleDeadline(loop: EventLoop, deadline: NIODeadline, _ onTimeout: @escaping () -> Void) {
    |                                                                                  `- note: parameter 'onTimeout' is implicitly non-sendable
492 |             assert(self.timeoutTask == nil)
493 |             self.timeoutTask = loop.scheduleTask(deadline: deadline, onTimeout)
    |                                                                      `- warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
494 |         }
495 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:498:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
496 |         func succeed(_ connection: RedisConnection) {
497 |             self.timeoutTask?.cancel()
498 |             self.result.succeed(connection)
    |                         `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
499 |         }
500 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
[277/277] Compiling RediStack ConnectionPool.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1183:23: warning: static property 'allElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1179 | ///
1180 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options).
1181 | public struct RedisZaddInsertBehavior {
     |               `- note: consider making struct 'RedisZaddInsertBehavior' conform to the 'Sendable' protocol
1182 |     /// Insert new elements and update the score of existing elements.
1183 |     public static let allElements = RedisZaddInsertBehavior(nil)
     |                       |- warning: static property 'allElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'allElements' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1184 |     /// Only insert new elements; do not update the score of existing elements.
1185 |     public static let onlyNewElements = RedisZaddInsertBehavior(.nx)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1214:23: warning: static property 'insertedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1208 | ///
1209 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options)
1210 | public struct RedisZaddReturnBehavior {
     |               `- note: consider making struct 'RedisZaddReturnBehavior' conform to the 'Sendable' protocol
1211 |     /// Count both new elements that were inserted into the SortedSet and existing elements that had their score updated.
1212 |     public static let changedElementsCount = RedisZaddReturnBehavior(.ch)
1213 |     /// Count only new elements that were inserted into the SortedSet.
1214 |     public static let insertedElementsCount = RedisZaddReturnBehavior(nil)
     |                       |- warning: static property 'insertedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'insertedElementsCount' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1215 |
1216 |     @usableFromInline
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1185:23: warning: static property 'onlyNewElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1179 | ///
1180 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options).
1181 | public struct RedisZaddInsertBehavior {
     |               `- note: consider making struct 'RedisZaddInsertBehavior' conform to the 'Sendable' protocol
1182 |     /// Insert new elements and update the score of existing elements.
1183 |     public static let allElements = RedisZaddInsertBehavior(nil)
1184 |     /// Only insert new elements; do not update the score of existing elements.
1185 |     public static let onlyNewElements = RedisZaddInsertBehavior(.nx)
     |                       |- warning: static property 'onlyNewElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'onlyNewElements' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1186 |     /// Only update the score of existing elements; do not insert new elements.
1187 |     public static let onlyExistingElements = RedisZaddInsertBehavior(.xx)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1187:23: warning: static property 'onlyExistingElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1179 | ///
1180 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options).
1181 | public struct RedisZaddInsertBehavior {
     |               `- note: consider making struct 'RedisZaddInsertBehavior' conform to the 'Sendable' protocol
1182 |     /// Insert new elements and update the score of existing elements.
1183 |     public static let allElements = RedisZaddInsertBehavior(nil)
     :
1185 |     public static let onlyNewElements = RedisZaddInsertBehavior(.nx)
1186 |     /// Only update the score of existing elements; do not insert new elements.
1187 |     public static let onlyExistingElements = RedisZaddInsertBehavior(.xx)
     |                       |- warning: static property 'onlyExistingElements' is not concurrency-safe because non-'Sendable' type 'RedisZaddInsertBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'onlyExistingElements' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1188 |
1189 |     @usableFromInline
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1212:23: warning: static property 'changedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
1208 | ///
1209 | /// See [ZADD Options](https://redis.io/commands/zadd#zadd-options)
1210 | public struct RedisZaddReturnBehavior {
     |               `- note: consider making struct 'RedisZaddReturnBehavior' conform to the 'Sendable' protocol
1211 |     /// Count both new elements that were inserted into the SortedSet and existing elements that had their score updated.
1212 |     public static let changedElementsCount = RedisZaddReturnBehavior(.ch)
     |                       |- warning: static property 'changedElementsCount' is not concurrency-safe because non-'Sendable' type 'RedisZaddReturnBehavior' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'changedElementsCount' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1213 |     /// Count only new elements that were inserted into the SortedSet.
1214 |     public static let insertedElementsCount = RedisZaddReturnBehavior(nil)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1268:23: warning: static property 'sum' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
1264 | ///
1265 | /// See the documentation for each individual command that uses this object for more details.
1266 | public struct RedisSortedSetAggregateMethod {
     |               `- note: consider making struct 'RedisSortedSetAggregateMethod' conform to the 'Sendable' protocol
1267 |     /// Add the score of all matching elements in the source SortedSets.
1268 |     public static let sum = RedisSortedSetAggregateMethod(.sum)
     |                       |- warning: static property 'sum' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'sum' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1269 |     /// Use the minimum score of the matching elements in the source SortedSets.
1270 |     public static let min = RedisSortedSetAggregateMethod(.min)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1270:23: warning: static property 'min' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
1264 | ///
1265 | /// See the documentation for each individual command that uses this object for more details.
1266 | public struct RedisSortedSetAggregateMethod {
     |               `- note: consider making struct 'RedisSortedSetAggregateMethod' conform to the 'Sendable' protocol
1267 |     /// Add the score of all matching elements in the source SortedSets.
1268 |     public static let sum = RedisSortedSetAggregateMethod(.sum)
1269 |     /// Use the minimum score of the matching elements in the source SortedSets.
1270 |     public static let min = RedisSortedSetAggregateMethod(.min)
     |                       |- warning: static property 'min' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'min' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1271 |     /// Use the maximum score of the matching elements in the source SortedSets.
1272 |     public static let max = RedisSortedSetAggregateMethod(.max)
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1272:23: warning: static property 'max' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
1264 | ///
1265 | /// See the documentation for each individual command that uses this object for more details.
1266 | public struct RedisSortedSetAggregateMethod {
     |               `- note: consider making struct 'RedisSortedSetAggregateMethod' conform to the 'Sendable' protocol
1267 |     /// Add the score of all matching elements in the source SortedSets.
1268 |     public static let sum = RedisSortedSetAggregateMethod(.sum)
     :
1270 |     public static let min = RedisSortedSetAggregateMethod(.min)
1271 |     /// Use the maximum score of the matching elements in the source SortedSets.
1272 |     public static let max = RedisSortedSetAggregateMethod(.max)
     |                       |- warning: static property 'max' is not concurrency-safe because non-'Sendable' type 'RedisSortedSetAggregateMethod' may have shared mutable state; this is an error in the Swift 6 language mode
     |                       |- note: annotate 'max' with '@MainActor' if property should only be accessed from the main actor
     |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
1273 |
1274 |     internal var string: String { self.option.rawValue }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1347:36: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1345 | // MARK: - Shared implementations
1346 | extension RedisCommand {
1347 |     fileprivate static func _bzpop<ResultType>(
     |                                    `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1348 |         keyword: String,
1349 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1401:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1399 |     }
1400 |
1401 |     fileprivate static func _zpop<ResultType>(
     |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1402 |         keyword: String,
1403 |         _ count: Int?,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:410: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
406 | ///
407 | /// See [SET](https://redis.io/commands/set)
408 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
409 |     /// No condition is required to be met in order to set the key's value.
410 |     public static let none = RedisSetCommandCondition(.none)
    |                       |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'none' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
411 |
412 |     /// Only set the key if it already exists.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:415: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
406 | ///
407 | /// See [SET](https://redis.io/commands/set)
408 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
409 |     /// No condition is required to be met in order to set the key's value.
410 |     public static let none = RedisSetCommandCondition(.none)
    :
413 |     ///
414 |     /// Redis documentation refers to this as the option "XX".
415 |     public static let keyExists = RedisSetCommandCondition(.keyExists)
    |                       |- warning: static property 'keyExists' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keyExists' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
416 |
417 |     /// Only set the key if it does not already exist.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:420: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
406 | ///
407 | /// See [SET](https://redis.io/commands/set)
408 | public struct RedisSetCommandCondition: Hashable {
    |               `- note: consider making struct 'RedisSetCommandCondition' conform to the 'Sendable' protocol
409 |     /// No condition is required to be met in order to set the key's value.
410 |     public static let none = RedisSetCommandCondition(.none)
    :
418 |     ///
419 |     /// Redis documentation refers to this as the option "NX".
420 |     public static let keyDoesNotExist = RedisSetCommandCondition(.keyDoesNotExist)
    |                       |- warning: static property 'keyDoesNotExist' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandCondition' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keyDoesNotExist' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
421 |
422 |     private enum Condition: String, Hashable {
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:447: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
440 | ///
441 | /// See [SET](https://redis.io/commands/set)
442 | public struct RedisSetCommandExpiration: Hashable {
    |               `- note: consider making struct 'RedisSetCommandExpiration' conform to the 'Sendable' protocol
443 |     /// Retain the existing expiration associated with the key, if one exists.
444 |     ///
445 |     /// Redis documentation refers to this as "KEEPTTL".
446 |     /// - 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.
447 |     public static let keepExisting = RedisSetCommandExpiration(.keepExisting)
    |                       |- warning: static property 'keepExisting' is not concurrency-safe because non-'Sendable' type 'RedisSetCommandExpiration' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'keepExisting' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
448 |
449 |     /// Expire the key after the given number of seconds.
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:503:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
501 |
502 | extension RedisCommand {
503 |     fileprivate static func _mset<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 |         keyword: String,
505 |         _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:127:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
125 |         } else {
126 |             self.loop.execute {
127 |                 self.refillConnections(logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
128 |             }
129 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:139:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
137 |         } else {
138 |             self.loop.execute {
139 |                 self.closePool(promise: promise, logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
140 |             }
141 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:149:30: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
147 |             return self._leaseConnection(logger: logger, deadline: deadline)
148 |         } else {
149 |             return self.loop.flatSubmit {
    |                              `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
150 |                 return self._leaseConnection(logger: logger, deadline: deadline)
151 |             }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:150:24: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
148 |         } else {
149 |             return self.loop.flatSubmit {
150 |                 return self._leaseConnection(logger: logger, deadline: deadline)
    |                        `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
151 |             }
152 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:160:17: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
158 |         } else {
159 |             return self.loop.execute {
160 |                 self._returnLeasedConnection(connection, logger: logger)
    |                 `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
161 |             }
162 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:160:46: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
158 |         } else {
159 |             return self.loop.execute {
160 |                 self._returnLeasedConnection(connection, logger: logger)
    |                                              `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
161 |             }
162 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:196:13: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
194 |
195 |         self.loop.scheduleTask(in: delay) {
196 |             self.connectionFactory(self.loop)
    |             `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
197 |                 .whenComplete { result in
198 |                     self.loop.preconditionInEventLoop()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:198:21: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
196 |             self.connectionFactory(self.loop)
197 |                 .whenComplete { result in
198 |                     self.loop.preconditionInEventLoop()
    |                     `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
199 |
200 |                     self.pendingConnectionCount -= 1
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:233:64: warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 36 | /// and being used, at the cost of incurring more reconnects under low load. Of course, when we're under low load we don't
 37 | /// really care how many reconnects there are.
 38 | internal final class ConnectionPool {
    |                      `- note: class 'ConnectionPool' does not conform to the 'Sendable' protocol
 39 |     /// A function used to create Redis connections.
 40 |     private let connectionFactory: (EventLoop) -> EventLoopFuture<RedisConnection>
    :
231 |             // Great, we want this. We'll be "returning" it to the pool. First,
232 |             // attach the close callback to it.
233 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                `- warning: capture of 'self' with non-sendable type 'ConnectionPool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
234 |             self._returnConnection(connection, logger: logger)
235 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:233:90: warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
231 |             // Great, we want this. We'll be "returning" it to the pool. First,
232 |             // attach the close callback to it.
233 |             connection.channel.closeFuture.whenComplete { _ in self.poolConnectionClosed(connection, logger: logger) }
    |                                                                                          `- warning: capture of 'connection' with non-sendable type 'RedisConnection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
234 |             self._returnConnection(connection, logger: logger)
235 |         }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:493:70: warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
489 |         }
490 |
491 |         mutating func scheduleDeadline(loop: EventLoop, deadline: NIODeadline, _ onTimeout: @escaping () -> Void) {
    |                                                                                  `- note: parameter 'onTimeout' is implicitly non-sendable
492 |             assert(self.timeoutTask == nil)
493 |             self.timeoutTask = loop.scheduleTask(deadline: deadline, onTimeout)
    |                                                                      `- warning: passing non-sendable parameter 'onTimeout' to function expecting a @Sendable closure
494 |         }
495 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/ConnectionPool/ConnectionPool.swift:498:25: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
496 |         func succeed(_ connection: RedisConnection) {
497 |             self.timeoutTask?.cancel()
498 |             self.result.succeed(connection)
    |                         `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
499 |         }
500 |
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
[278/286] Emitting module RedisTypes
[279/286] Compiling RedisTypes RedisSet.swift
/Users/admin/builder/spi-builder-workspace/Sources/RedisTypes/RedisSet.swift:210:55: warning: type 'Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 58 | ///
 59 | /// See [https://redis.io/topics/data-types-intro#sets](https://redis.io/topics/data-types-intro#sets)
 60 | public struct RedisSet<Element> where Element: RESPValueConvertible {
    |                        `- note: consider making generic parameter 'Element' conform to the 'Sendable' protocol
 61 |     /// The key in Redis that this instance is a reference to.
 62 |     public var identifier: RedisKey { return self.id }
    :
208 |     public func popRandomElements(max count: Int) -> EventLoopFuture<[Element]> {
209 |         guard count >= 0 else { return self.eventLoop.makeFailedFuture(RedisError.indexOutOfRange) }
210 |         guard count >= 1 else { return self.eventLoop.makeSucceededFuture([]) }
    |                                                       `- warning: type 'Element' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
211 |         return self.send(.spop(from: self.id, max: count))
212 |             .map { return $0.compactMap(Element.init) }
[280/286] Compiling RediStackTestUtils _Deprecations.swift
[281/286] Compiling RediStackTestUtils RedisConnectionPoolIntegrationTestCase.swift
[282/286] Compiling RediStackTestUtils General.swift
[283/286] 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; this is an error in the Swift 6 language mode
21 | ///
22 | /// See `RedisConnection.make(configuration:boundEventLoop:)` to understand how connections are made.
23 | open class RedisIntegrationTestCase: XCTestCase {
   |            `- note: class 'RedisIntegrationTestCase' does not conform to the 'Sendable' protocol
24 |     /// An overridable value of the Redis instance's hostname to connect to for the test suite(s).
25 |     ///
   :
67 |             if self.connection.isConnected {
68 |                 _ = try self.connection.send(.flushall)
69 |                     .flatMap { _ in self.connection.close() }
   |                                     `- warning: capture of 'self' with non-sendable type 'RedisIntegrationTestCase' in a `@Sendable` closure; this is an error in the Swift 6 language mode
70 |                     .wait()
71 |             }
/Users/admin/builder/spi-builder-workspace/Sources/RediStackTestUtils/RedisIntegrationTestCase.swift:91:11: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
89 |             ),
90 |             boundEventLoop: eventLoopGroup.next()
91 |         ).wait()
   |           `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
92 |     }
93 | }
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/RedisConnection.swift:99:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 97 | ///
 98 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 99 | public final class RedisConnection: RedisClient {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
100 |     /// A unique identifer to represent this connection.
101 |     public let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/RediStackTestUtils/RedisIntegrationTestCase.swift:17:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
15 | import NIOCore
16 | import NIOPosix
17 | import RediStack
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'RediStack'
18 | import XCTest
19 |
[284/286] Emitting module RediStackTestUtils
[285/286] 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; this is an error in the Swift 6 language mode
 60 |             // We always allow this.
 61 |             let response = RESPValue.simpleString("OK".byteBuffer)
 62 |             data.responsePromise.succeed(response)
    |                                  `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 63 |
 64 |         default:
/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; this is an error in the Swift 6 language mode
 26 | /// This is not really a Redis server: it's just something that lets us stub out the connection management in order to let
 27 | /// us test the connection pool.
 28 | internal final class EmbeddedMockRedisServer {
    |                      `- note: class 'EmbeddedMockRedisServer' does not conform to the 'Sendable' protocol
 29 |     var channels: ArraySlice<EmbeddedChannel> = []
 30 |     var loop: EmbeddedEventLoop = EmbeddedEventLoop()
    :
 71 |         let channel = EmbeddedChannel(handler: GracefulShutdownToCloseHandler(), loop: self.loop)
 72 |         channel.closeFuture.whenComplete { _ in
 73 |             self.channels.removeAll(where: { $0 === channel })
    |             `- warning: capture of 'self' with non-sendable type 'EmbeddedMockRedisServer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 74 |         }
 75 |
[286/286] Compiling RediStackTestUtils RediStack.swift
Build complete! (46.24s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    },
    {
      "identity" : "swift-metrics",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-metrics.git"
    },
    {
      "identity" : "swift-nio",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.43.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-nio.git"
    },
    {
      "identity" : "swift-atomics",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.2",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-atomics.git"
    },
    {
      "identity" : "swift-service-discovery",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-service-discovery"
    }
  ],
  "manifest_display_name" : "RediStack",
  "name" : "RediStack",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "RediStack",
      "targets" : [
        "RediStack"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "RediStackTestUtils",
      "targets" : [
        "RediStackTestUtils"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "RedisTypes",
      "targets" : [
        "RedisTypes"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RedisTypesTests",
      "module_type" : "SwiftTarget",
      "name" : "RedisTypesTests",
      "path" : "Tests/RedisTypesTests",
      "product_dependencies" : [
        "NIOCore"
      ],
      "sources" : [
        "RedisSetTests.swift",
        "RedisTypesIntegrationTestCase.swift"
      ],
      "target_dependencies" : [
        "RediStack",
        "RedisTypes",
        "RediStackTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RedisTypes",
      "module_type" : "SwiftTarget",
      "name" : "RedisTypes",
      "path" : "Sources/RedisTypes",
      "product_memberships" : [
        "RedisTypes"
      ],
      "sources" : [
        "RedisSet.swift"
      ],
      "target_dependencies" : [
        "RediStack"
      ],
      "type" : "library"
    },
    {
      "c99name" : "RediStackTests",
      "module_type" : "SwiftTarget",
      "name" : "RediStackTests",
      "path" : "Tests/RediStackTests",
      "product_dependencies" : [
        "NIOCore",
        "NIOPosix",
        "NIOEmbedded",
        "NIOTestUtils"
      ],
      "sources" : [
        "ChannelHandlers/RedisByteDecoderTests.swift",
        "ChannelHandlers/RedisCommandHandlerTests.swift",
        "ChannelHandlers/RedisMessageEncoderTests.swift",
        "ConfigurationTests.swift",
        "ConnectionPoolTests.swift",
        "RESPTranslatorTests.swift",
        "RESPValueTests.swift",
        "RedisCommandTests.swift",
        "RedisConnectionTests.swift",
        "RedisKeyLifetime.swift"
      ],
      "target_dependencies" : [
        "RediStack",
        "RediStackTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RediStackTestUtils",
      "module_type" : "SwiftTarget",
      "name" : "RediStackTestUtils",
      "path" : "Sources/RediStackTestUtils",
      "product_dependencies" : [
        "NIOCore",
        "NIOPosix",
        "NIOEmbedded"
      ],
      "product_memberships" : [
        "RediStackTestUtils"
      ],
      "sources" : [
        "EmbeddedMockRedisServer.swift",
        "Extensions/General.swift",
        "Extensions/RediStack.swift",
        "RedisConnectionPoolIntegrationTestCase.swift",
        "RedisIntegrationTestCase.swift",
        "_Deprecations.swift"
      ],
      "target_dependencies" : [
        "RediStack"
      ],
      "type" : "library"
    },
    {
      "c99name" : "RediStackIntegrationTests",
      "module_type" : "SwiftTarget",
      "name" : "RediStackIntegrationTests",
      "path" : "Tests/RediStackIntegrationTests",
      "product_dependencies" : [
        "NIO",
        "ServiceDiscovery"
      ],
      "sources" : [
        "Commands/ConnectionCommandsTests.swift",
        "Commands/HashCommandsTests.swift",
        "Commands/KeyCommandsTests.swift",
        "Commands/ListCommandsTests.swift",
        "Commands/PubSubCommandsTests.swift",
        "Commands/ServerCommandsTests.swift",
        "Commands/SetCommandsTests.swift",
        "Commands/SortedSetCommandsTests.swift",
        "Commands/StringCommandsTests.swift",
        "RediStackIntegrationTestCase.swift",
        "RedisConnectionPoolTests.swift",
        "RedisConnectionTests.swift",
        "RedisLoggingTests.swift",
        "RedisServiceDiscoveryTests.swift"
      ],
      "target_dependencies" : [
        "RediStack",
        "RediStackTestUtils"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RediStack",
      "module_type" : "SwiftTarget",
      "name" : "RediStack",
      "path" : "Sources/RediStack",
      "product_dependencies" : [
        "Atomics",
        "NIOCore",
        "NIOPosix",
        "Logging",
        "Metrics",
        "ServiceDiscovery"
      ],
      "product_memberships" : [
        "RediStack",
        "RediStackTestUtils",
        "RedisTypes"
      ],
      "sources" : [
        "ChannelHandlers/RedisByteDecoder.swift",
        "ChannelHandlers/RedisCommandHandler.swift",
        "ChannelHandlers/RedisMessageEncoder.swift",
        "ChannelHandlers/RedisPubSubHandler.swift",
        "Commands/ConnectionCommands.swift",
        "Commands/HashCommands.swift",
        "Commands/KeyCommands.swift",
        "Commands/ListCommands.swift",
        "Commands/PubSubCommands.swift",
        "Commands/RedisCommand.swift",
        "Commands/ServerCommands.swift",
        "Commands/SetCommands.swift",
        "Commands/SortedSetCommands.swift",
        "Commands/StringCommands.swift",
        "ConnectionPool/ConnectionPool.swift",
        "ConnectionPool/ConnectionPoolErrors.swift",
        "Extensions/StandardLibrary.swift",
        "Extensions/SwiftNIO.swift",
        "RESP/RESPTranslator.swift",
        "RESP/RESPValue.swift",
        "RESP/RESPValueConvertible.swift",
        "RedisChannelName.swift",
        "RedisClient.swift",
        "RedisConnection+Configuration.swift",
        "RedisConnection.swift",
        "RedisConnectionPool+Configuration.swift",
        "RedisConnectionPool.swift",
        "RedisError.swift",
        "RedisKey+TTL.swift",
        "RedisKey.swift",
        "RedisLogging.swift",
        "RedisMetrics.swift",
        "_Deprecations.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/swift-server/redistack/2.0.0-gamma.1.1
Repository:               swift-server/RediStack
Swift version used:       6.0
Target:                   RediStack
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/swift-docc-render-artifact/.git/
From https://github.com/swiftlang/swift-docc-render-artifact
 * branch            88815688627177b9716a01ca41da19397bd30e47 -> FETCH_HEAD
HEAD is now at 8881568 Update the artifact
Extracting symbol information for 'RediStack'...
Finished extracting symbol information for 'RediStack'. (8.04s)
Building documentation for 'RediStack'...
warning: Parameter 'key' not found in type method declaration
  --> ../Commands/ListCommands.swift:82:15-82:18
80 |     ///     It is **highly** recommended to set a reasonable `timeout` or to use the non-blocking `rpop` method where possible.
81 |     /// - Parameters:
82 +     ///     - key: The key of the list to pop from.
   |               ╰─suggestion: Replace 'key' with 'keys'
83 |     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
84 |     /// - Returns: The popped value and the key of its source list, otherwise `nil`.
warning: Parameter 'keys' is missing documentation
  --> ../Commands/ListCommands.swift:83:103-83:103
81 |     /// - Parameters:
82 |     ///     - key: The key of the list to pop from.
83 +     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
   |             ╰─suggestion: Document 'keys' parameter
84 |     /// - Returns: The popped value and the key of its source list, otherwise `nil`.
85 |     public static func brpop(from keys: [RedisKey], timeout: TimeAmount = .seconds(0)) -> RedisCommand<(RedisKey, RESPValue)?> {
warning: Parameter 'key' not found in type method declaration
  --> ../Commands/ListCommands.swift:95:15-95:18
93 |     ///     It is **highly** recommended to set a reasonable `timeout` or to use the non-blocking `rpop` method where possible.
94 |     /// - Parameters:
95 +     ///     - key: The key of the list to pop from.
   |               ╰─suggestion: Replace 'key' with 'keys'
96 |     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
97 |     /// - Returns: The popped value and the key of its source list, otherwise `nil`.
warning: Parameter 'keys' is missing documentation
  --> ../Commands/ListCommands.swift:96:103-96:103
94 |     /// - Parameters:
95 |     ///     - key: The key of the list to pop from.
96 +     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
   |             ╰─suggestion: Document 'keys' parameter
97 |     /// - Returns: The popped value and the key of its source list, otherwise `nil`.
98 |     public static func brpop(
warning: External name 'sources' used to document parameter
  --> ../Commands/SetCommands.swift:68:15-68:22
66 |     /// - Parameters:
67 |     ///     - destination: The key of the new set from the result.
68 +     ///     - sources: The list of source sets to calculate the difference of.
   |               ╰─suggestion: Replace 'sources' with 'keys'
69 |     public static func sdiffstore(as destination: RedisKey, sources keys: [RedisKey]) -> RedisCommand<Int> {
70 |         assert(!keys.isEmpty, "at least 1 key should be provided")
warning: External name 'sources' used to document parameter
  --> ../Commands/SetCommands.swift:95:15-95:22
93 |     /// - Parameters:
94 |     ///     - destination: The key of the new set from the result.
95 +     ///     - sources: A list of source sets to calculate the intersection of.
   |               ╰─suggestion: Replace 'sources' with 'keys'
96 |     public static func sinterstore(as destination: RedisKey, sources keys: [RedisKey]) -> RedisCommand<Int> {
97 |         assert(!keys.isEmpty, "at least 1 key should be provided")
warning: External name 'sources' used to document parameter
   --> ../Commands/SetCommands.swift:221:15-221:22
219 |     /// - Parameters:
220 |     ///     - destination: The key of the new set from the result.
221 +     ///     - sources: A list of source sets to calculate the union of.
    |               ╰─suggestion: Replace 'sources' with 'keys'
222 |     public static func sunionstore(as destination: RedisKey, sources keys: [RedisKey]) -> RedisCommand<Int> {
223 |         assert(!keys.isEmpty, "at least 1 key should be provided")
warning: Parameter 'key' not found in type method declaration
  --> ../Commands/SortedSetCommands.swift:87:15-87:18
85 |     ///     It is **highly** recommended to set a reasonable `timeout` or to use the non-blocking `zpopmax` method where possible.
86 |     /// - Parameters:
87 +     ///     - key: The key identifying the sorted set in Redis.
   |               ╰─suggestion: Replace 'key' with 'keys'
88 |     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
89 |     public static func bzpopmax(
warning: Parameter 'keys' is missing documentation
  --> ../Commands/SortedSetCommands.swift:88:103-88:103
86 |     /// - Parameters:
87 |     ///     - key: The key identifying the sorted set in Redis.
88 +     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
   |             ╰─suggestion: Document 'keys' parameter
89 |     public static func bzpopmax(
90 |         from keys: [RedisKey],
warning: Parameter 'key' not found in type method declaration
   --> ../Commands/SortedSetCommands.swift:100:15-100:18
98  |     ///     It is **highly** recommended to set a reasonable `timeout` or to use the non-blocking `zpopmax` method where possible.
99  |     /// - Parameters:
100 +     ///     - key: The key identifying the sorted set in Redis.
    |               ╰─suggestion: Replace 'key' with 'keys'
101 |     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
102 |     public static func bzpopmax(
warning: Parameter 'keys' is missing documentation
   --> ../Commands/SortedSetCommands.swift:101:103-101:103
99  |     /// - Parameters:
100 |     ///     - key: The key identifying the sorted set in Redis.
101 +     ///     - timeout: The max time to wait for a value to use. `0`seconds means to wait indefinitely.
    |             ╰─suggestion: Document 'keys' parameter
102 |     public static func bzpopmax(
103 |         from keys: RedisKey...,
warning: External name 'aggregateMethod' used to document parameter
   --> ../Commands/SortedSetCommands.swift:266:15-266:30
264 |     ///     - sources: The list of sorted set keys to treat as the source of the intersection.
265 |     ///     - weights: The multiplying factor to apply to the corresponding `sources` key based on index of the two parameters.
266 +     ///     - aggregateMethod: The method of aggregating the values of the intersection. If one isn't specified, Redis will default to `.sum`.
    |               ╰─suggestion: Replace 'aggregateMethod' with 'aggregate'
267 |     public static func zinterstore(
268 |         as destination: RedisKey,
warning: External name 'limitBy' used to document parameter
   --> ../Commands/SortedSetCommands.swift:468:15-468:22
466 |     ///     - key: The key of the SortedSet that will be counted.
467 |     ///     - range: The min and max value bounds for filtering elements by.
468 +     ///     - limitBy: The optional offset and count of elements to query.
    |               ╰─suggestion: Replace 'limitBy' with 'limit'
469 |     @inlinable
470 |     public static func zrangebylex<Value: CustomStringConvertible>(
warning: Parameter 'minValue' not found in type method declaration
   --> ../Commands/SortedSetCommands.swift:503:15-503:23
501 |     /// - Parameters:
502 |     ///     - key: The key of the SortedSet.
503 +     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
    |               ╰─suggestion: Replace 'minValue' with 'maxValue'
504 |     ///     - limit: The optional offset and count of elements to query
505 |     @inlinable
warning: Parameter 'maxValue' is missing documentation
   --> ../Commands/SortedSetCommands.swift:504:72-504:72
502 |     ///     - key: The key of the SortedSet.
503 |     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
504 +     ///     - limit: The optional offset and count of elements to query
    |             ╰─suggestion: Document 'maxValue' parameter
505 |     @inlinable
506 |     public static func zrangebylex<Value: CustomStringConvertible>(
warning: External name 'limitBy' used to document parameter
   --> ../Commands/SortedSetCommands.swift:522:15-522:22
520 |     ///     - key: The key of the SortedSet that will be counted.
521 |     ///     - range: The min and max value bounds for filtering elements by.
522 +     ///     - limitBy: The optional offset and count of elements to query.
    |               ╰─suggestion: Replace 'limitBy' with 'limit'
523 |     @inlinable
524 |     public static func zrevrangebylex<Value: CustomStringConvertible>(
warning: Parameter 'minValue' not found in type method declaration
   --> ../Commands/SortedSetCommands.swift:557:15-557:23
555 |     /// - Parameters:
556 |     ///     - key: The key of the SortedSet.
557 +     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
    |               ╰─suggestion: Replace 'minValue' with 'maxValue'
558 |     ///     - limit: The optional offset and count of elements to query
559 |     @inlinable
warning: Parameter 'maxValue' is missing documentation
   --> ../Commands/SortedSetCommands.swift:558:72-558:72
556 |     ///     - key: The key of the SortedSet.
557 |     ///     - minValue: The maximum lexiographical value an element in the SortedSet should have to be included in the result set.
558 +     ///     - limit: The optional offset and count of elements to query
    |             ╰─suggestion: Document 'maxValue' parameter
559 |     @inlinable
560 |     public static func zrevrangebylex<Value: CustomStringConvertible>(
warning: Parameter 'range' not found in type method declaration
   --> ../Commands/SortedSetCommands.swift:641:13-641:117
639 |     /// - Parameters:
640 |     ///     - key: The key of the SortedSet.
641 +     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
    |             ╰─suggestion: Remove 'range' parameter documentation
642 |     ///     - limit: The optional offset and count of elements to query.
643 |     ///     - resultOption: What information should be returned in the result?
warning: Parameter 'minScore' is missing documentation
   --> ../Commands/SortedSetCommands.swift:643:79-643:79
641 |     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
642 |     ///     - limit: The optional offset and count of elements to query.
    |             ╰─suggestion: Document 'minScore' parameter
643 +     ///     - resultOption: What information should be returned in the result?
644 |     @inlinable
645 |     public static func zrangebyscore<T>(
warning: Parameter 'range' not found in type method declaration
   --> ../Commands/SortedSetCommands.swift:665:13-665:117
663 |     /// - Parameters:
664 |     ///     - key: The key of the SortedSet.
665 +     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
    |             ╰─suggestion: Remove 'range' parameter documentation
666 |     ///     - limit: The optional offset and count of elements to query.
667 |     ///     - resultOption: What information should be returned in the result?
warning: Parameter 'maxScore' is missing documentation
   --> ../Commands/SortedSetCommands.swift:667:79-667:79
665 |     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
666 |     ///     - limit: The optional offset and count of elements to query.
    |             ╰─suggestion: Document 'maxScore' parameter
667 +     ///     - resultOption: What information should be returned in the result?
668 |     @inlinable
669 |     public static func zrangebyscore<T>(
warning: Parameter 'minScore' not found in type method declaration
   --> ../Commands/SortedSetCommands.swift:865:15-865:23
863 |     /// - Parameters:
864 |     ///     - key: The key of the SortedSet to remove elements from.
865 +     ///     - minScore: The maximum score bound an element in the SortedSet should have to be removed.
    |               ╰─suggestion: Replace 'minScore' with 'maxScore'
866 |     public static func zremrangebyscore(from key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> RedisCommand<Int> {
867 |         return .zremrangebyscore(from: key, withScoresBetween: (.inclusive(-.infinity), maxScore))
warning: Parameter 'maxScore' is missing documentation
   --> ../Commands/SortedSetCommands.swift:865:103-865:103
863 |     /// - Parameters:
864 |     ///     - key: The key of the SortedSet to remove elements from.
865 +     ///     - minScore: The maximum score bound an element in the SortedSet should have to be removed.
    |                                                                                                       ╰─suggestion: Document 'maxScore' parameter
866 |     public static func zremrangebyscore(from key: RedisKey, withMaximumScoreOf maxScore: RedisZScoreBound) -> RedisCommand<Int> {
867 |         return .zremrangebyscore(from: key, withScoresBetween: (.inclusive(-.infinity), maxScore))
warning: Parameter 'range' not found in type method declaration
    --> ../Commands/SortedSetCommands.swift:1043:13-1043:117
1041 |     /// - Parameters:
1042 |     ///     - key: The key of the SortedSet.
1043 +     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1044 |     ///     - limit: The optional offset and count of elements to query.
1045 |     ///     - resultOption: What information should be returned in the result?
warning: Parameter 'minScore' is missing documentation
    --> ../Commands/SortedSetCommands.swift:1045:79-1045:79
1043 |     ///     - range: The minimum score bound an element in the SortedSet should have to be included in the response.
1044 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'minScore' parameter
1045 +     ///     - resultOption: What information should be returned in the result?
1046 |     @inlinable
1047 |     public static func zrevrangebyscore<T>(
warning: Parameter 'range' not found in type method declaration
    --> ../Commands/SortedSetCommands.swift:1067:13-1067:117
1065 |     /// - Parameters:
1066 |     ///     - key: The key of the SortedSet.
1067 +     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
     |             ╰─suggestion: Remove 'range' parameter documentation
1068 |     ///     - limit: The optional offset and count of elements to query.
1069 |     ///     - resultOption: What information should be returned in the result?
warning: Parameter 'maxScore' is missing documentation
    --> ../Commands/SortedSetCommands.swift:1069:79-1069:79
1067 |     ///     - range: The maximum score bound an element in the SortedSet should have to be included in the response.
1068 |     ///     - limit: The optional offset and count of elements to query.
     |             ╰─suggestion: Document 'maxScore' parameter
1069 +     ///     - resultOption: What information should be returned in the result?
1070 |     @inlinable
1071 |     public static func zrevrangebyscore<T>(
warning: External name 'aggregateMethod' used to document parameter
    --> ../Commands/SortedSetCommands.swift:1120:15-1120:30
1118 |     ///     - sources: The list of sorted set keys to treat as the source of the union.
1119 |     ///     - weights: The multiplying factor to apply to the corresponding `sources` key based on index of the two parameters.
1120 +     ///     - aggregateMethod: The method of aggregating the values of the union. If one isn't specified, Redis will default to `.sum`.
     |               ╰─suggestion: Replace 'aggregateMethod' with 'aggregate'
1121 |     public static func zunionstore(
1122 |         as destination: RedisKey,
warning: Parameter 'encoder' is missing documentation
   --> ../Commands/StringCommands.swift:381:95-381:95
379 |     ///     - expiration: The expiration to set on the `key` when setting the value. If `nil`, no expiration will be set.
380 |     ///     - eventLoop: An optional event loop to hop to for any further chaining on the returned event loop future.
    |             ╰─suggestion: Document 'encoder' parameter
381 +     ///     - logger: An optional logger instance to use for logs generated from this command.
382 |     /// - Returns: A `NIO.EventLoopFuture` indicating the result of the operation; `.ok` if successful and `.conditionNotMet` if the given `condition` was not meth.
383 |     ///
warning: Parameter 'encoder' is missing documentation
   --> ../Commands/StringCommands.swift:381:95-381:95
379 |     ///     - expiration: The expiration to set on the `key` when setting the value. If `nil`, no expiration will be set.
380 |     ///     - eventLoop: An optional event loop to hop to for any further chaining on the returned event loop future.
    |             ╰─suggestion: Document 'encoder' parameter
381 +     ///     - logger: An optional logger instance to use for logs generated from this command.
382 |     /// - Returns: A `NIO.EventLoopFuture` indicating the result of the operation; `.ok` if successful and `.conditionNotMet` if the given `condition` was not meth.
383 |     ///
warning: Parameter 'encoder' is missing documentation
   --> ../Commands/StringCommands.swift:381:95-381:95
379 |     ///     - expiration: The expiration to set on the `key` when setting the value. If `nil`, no expiration will be set.
380 |     ///     - eventLoop: An optional event loop to hop to for any further chaining on the returned event loop future.
    |             ╰─suggestion: Document 'encoder' parameter
381 +     ///     - logger: An optional logger instance to use for logs generated from this command.
382 |     /// - Returns: A `NIO.EventLoopFuture` indicating the result of the operation; `.ok` if successful and `.conditionNotMet` if the given `condition` was not meth.
383 |     ///
warning: 'DocumentationExtension' doesn't change default configuration and has no effect
 --> Symbol Extensions/RedisCommand.md:4:5-4:51
2 |
3 | @Metadata {
4 +     @DocumentationExtension(mergeBehavior: append)
  |     ╰─suggestion: Remove this 'DocumentationExtension' directive.
5 | }
6 |
warning: Parameter 'eventLoop' is missing documentation
   --> ../RedisConnection.swift:290:82-290:82
288 |     ///     - logger: An optional logger instance to use while trying to close the connection.
    |             ╰─suggestion: Document 'eventLoop' parameter
289 |     ///
290 +     ///       If one is not provided, the connection will use its default logger.
291 |     /// - Returns: A `NIO.EventLoopFuture` that resolves when the connection has been closed.
292 |     @discardableResultFinished building documentation for 'RediStack' (0.45s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/2.0.0-gamma.1.1
Updating https://github.com/apple/swift-collections.git
Updating https://github.com/apple/swift-metrics.git
Updating https://github.com/apple/swift-log.git
Updating https://github.com/apple/swift-nio.git
Updating https://github.com/apple/swift-system.git
Updating https://github.com/apple/swift-service-discovery
Updating https://github.com/apple/swift-atomics.git
Updated https://github.com/apple/swift-metrics.git (0.49s)
Fetching https://github.com/swiftlang/swift-docc-plugin
Updated https://github.com/apple/swift-log.git (0.55s)
Updated https://github.com/apple/swift-service-discovery (0.55s)
Updated https://github.com/apple/swift-collections.git (0.60s)
Updated https://github.com/apple/swift-nio.git (0.74s)
Updated https://github.com/apple/swift-system.git (0.74s)
Updated https://github.com/apple/swift-atomics.git (0.74s)
[1/2038] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.25s)
Computing version for https://github.com/apple/swift-service-discovery
Computed https://github.com/apple/swift-service-discovery at 1.3.0 (0.53s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.2.0 (0.43s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.77.0 (0.61s)
Computing version for https://github.com/apple/swift-metrics.git
Computed https://github.com/apple/swift-metrics.git at 2.5.0 (0.41s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.2 (0.41s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.4.0 (0.42s)
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.55s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3186] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.32s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.57s)
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
[3/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version--7754E27361AE5C74.txt
[6/53] Compiling SymbolKit DeclarationFragments.swift
[7/53] Compiling SymbolKit Fragment.swift
[8/53] Compiling SymbolKit FragmentKind.swift
[9/53] Compiling SymbolKit FunctionParameter.swift
[10/53] Compiling SymbolKit FunctionSignature.swift
[11/57] Compiling SymbolKit SemanticVersion.swift
[12/57] Compiling SymbolKit AccessControl.swift
[13/57] Compiling SymbolKit Availability.swift
[14/57] Compiling SymbolKit AvailabilityItem.swift
[15/57] Compiling SymbolKit Domain.swift
[16/57] Emitting module SymbolKit
[17/57] Compiling SymbolKit Names.swift
[18/57] Compiling SymbolKit SPI.swift
[19/57] Compiling SymbolKit Snippet.swift
[20/57] Compiling SymbolKit Extension.swift
[21/57] Compiling SymbolKit Mixin+Equals.swift
[22/57] Compiling SymbolKit Mixin+Hash.swift
[23/57] Compiling SymbolKit Mixin.swift
[24/57] Compiling SymbolKit LineList.swift
[25/57] Compiling SymbolKit Position.swift
[26/57] Compiling SymbolKit GenericConstraint.swift
[27/57] Compiling SymbolKit GenericParameter.swift
[28/57] Compiling SymbolKit Generics.swift
[29/57] Compiling SymbolKit Namespace.swift
[30/57] Compiling SymbolKit SourceRange.swift
[31/57] Compiling SymbolKit Metadata.swift
[32/57] Compiling SymbolKit Module.swift
[33/57] Compiling SymbolKit OperatingSystem.swift
[34/57] Compiling SymbolKit Platform.swift
[35/57] Compiling SymbolKit Relationship.swift
[36/57] Compiling SymbolKit RelationshipKind.swift
[37/57] Compiling SymbolKit SourceOrigin.swift
[38/57] Compiling SymbolKit GenericConstraints.swift
[39/57] Compiling SymbolKit Swift.swift
[40/57] Compiling SymbolKit Identifier.swift
[41/57] Compiling SymbolKit KindIdentifier.swift
[42/57] Compiling SymbolKit Location.swift
[43/57] Compiling SymbolKit Mutability.swift
[44/57] Compiling SymbolKit Symbol.swift
[45/57] Compiling SymbolKit SymbolKind.swift
[46/57] Compiling SymbolKit SymbolGraph.swift
[47/57] Compiling SymbolKit GraphCollector.swift
[48/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[49/57] Compiling SymbolKit UnifiedSymbol.swift
[50/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[51/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[52/57] Compiling Snippets Snippet.swift
[53/57] Compiling Snippets SnippetParser.swift
[54/57] Emitting module Snippets
[55/61] Compiling snippet_extract URL+Status.swift
[56/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[57/61] 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! (3.69s)
Building for debugging...
[0/1] Write swift-version--7754E27361AE5C74.txt
[2/58] Compiling Atomics AtomicMemoryOrderings.swift
[3/58] Compiling Atomics DoubleWord.swift
[4/59] Compiling InternalCollectionsUtilities UnsafeBufferPointer+Extras.swift
[5/59] Compiling Atomics Primitives.shims.swift
[6/59] Compiling Atomics AtomicInteger.swift
[7/61] Compiling Logging MetadataProvider.swift
[8/61] Compiling Atomics ManagedAtomic.swift
[9/61] Compiling Atomics ManagedAtomicLazyReference.swift
[10/61] Compiling Atomics AtomicOptionalWrappable.swift
[11/61] Compiling Atomics AtomicReference.swift
[12/61] Compiling Atomics UnsafeAtomic.swift
[13/61] Compiling Atomics UnsafeAtomicLazyReference.swift
[16/61] Compiling Logging Locks.swift
[19/61] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[20/61] Emitting module Logging
[21/61] Compiling NIOConcurrencyHelpers NIOLock.swift
[22/61] Compiling Atomics OptionalRawRepresentable.swift
[23/61] Compiling Atomics RawRepresentable.swift
[24/61] Compiling Atomics AtomicBool.swift
[25/61] Compiling Atomics IntegerConformances.swift
[26/61] Compiling Atomics PointerConformances.swift
[27/61] Compiling Atomics Primitives.native.swift
[28/61] Compiling _NIOBase64 Base64.swift
[29/61] Emitting module _NIOBase64
[30/61] Compiling _NIODataStructures _TinyArray.swift
[31/61] Compiling _NIODataStructures PriorityQueue.swift
[32/61] Compiling _NIODataStructures Heap.swift
[33/61] Compiling Atomics IntegerOperations.swift
[34/61] Compiling Atomics Unmanaged extensions.swift
[35/61] Emitting module _NIODataStructures
[36/61] Compiling NIOConcurrencyHelpers NIOAtomic.swift
[37/61] Compiling NIOConcurrencyHelpers lock.swift
[38/61] Compiling NIOConcurrencyHelpers NIOLockedValueBox.swift
[39/61] Compiling NIOConcurrencyHelpers atomics.swift
[40/61] Compiling Atomics AtomicStorage.swift
[41/61] Compiling Atomics AtomicValue.swift
[44/61] Emitting module NIOConcurrencyHelpers
[45/61] Emitting module InternalCollectionsUtilities
[50/61] Compiling CoreMetrics Locks.swift
[51/61] Compiling CoreMetrics Metrics.swift
[52/61] Emitting module CoreMetrics
[55/61] Compiling Logging LogHandler.swift
[56/61] Compiling Logging Logging.swift
[57/79] Compiling DequeModule Deque+Codable.swift
[58/79] Compiling DequeModule Deque+Collection.swift
[59/79] Compiling DequeModule Deque+Extras.swift
[60/79] Compiling DequeModule Deque+Hashable.swift
[61/79] Compiling DequeModule _DequeSlot.swift
[62/79] Compiling DequeModule _DequeBufferHeader.swift
[63/80] Emitting module Metrics
[64/80] Compiling Metrics Metrics.swift
[65/80] Compiling DequeModule _DequeBuffer.swift
[68/80] Compiling DequeModule Deque+Equatable.swift
[69/80] Compiling DequeModule Deque+ExpressibleByArrayLiteral.swift
[70/80] Compiling DequeModule Deque._UnsafeHandle.swift
[71/80] Compiling DequeModule Deque.swift
[72/80] Compiling DequeModule Deque+Testing.swift
[73/80] Compiling DequeModule Deque._Storage.swift
[74/80] Compiling DequeModule _UnsafeWrappedBuffer.swift
[75/80] Emitting module Atomics
[76/80] Emitting module DequeModule
[79/80] Compiling DequeModule Deque+CustomReflectable.swift
[80/80] Compiling DequeModule Deque+Descriptions.swift
[81/152] Emitting module ServiceDiscovery
[82/152] Compiling ServiceDiscovery ServiceDiscovery.swift
[83/152] Compiling ServiceDiscovery MapServiceServiceDiscovery.swift
[84/152] Compiling ServiceDiscovery ServiceDiscovery+TypeErased.swift
[85/152] Compiling ServiceDiscovery ServiceDiscovery+Combinators.swift
[86/152] Compiling ServiceDiscovery MapInstanceServiceDiscovery.swift
[87/152] Compiling ServiceDiscovery ServiceDiscovery+AsyncAwait.swift
[88/152] Compiling ServiceDiscovery HostPort.swift
[89/152] Compiling ServiceDiscovery FilterInstanceServiceDiscovery.swift
[90/152] Compiling ServiceDiscovery InMemoryServiceDiscovery.swift
[91/152] Compiling NIOCore Linux.swift
[92/152] Compiling NIOCore MarkedCircularBuffer.swift
[93/152] Compiling NIOCore MulticastChannel.swift
[94/152] Compiling NIOCore NIOAny.swift
[95/152] Compiling NIOCore NIOCloseOnErrorHandler.swift
[96/152] Compiling NIOCore NIOLoopBound.swift
[97/158] Compiling NIOCore GlobalSingletons.swift
[98/158] Compiling NIOCore IO.swift
[99/158] Compiling NIOCore IOData.swift
[100/158] Compiling NIOCore IPProtocol.swift
[101/158] Compiling NIOCore IntegerBitPacking.swift
[102/158] Compiling NIOCore IntegerTypes.swift
[103/158] Compiling NIOCore Interfaces.swift
[104/158] Compiling NIOCore SocketOptionProvider.swift
[105/158] Compiling NIOCore SystemCallHelpers.swift
[106/158] Compiling NIOCore TimeAmount+Duration.swift
[107/158] Compiling NIOCore TypeAssistedChannelHandler.swift
[108/158] Compiling NIOCore UniversalBootstrapSupport.swift
[109/158] Compiling NIOCore Utilities.swift
[110/158] Compiling NIOCore NIOAsyncSequenceProducerStrategies.swift
[111/158] Compiling NIOCore NIOAsyncWriter.swift
[112/158] Compiling NIOCore NIOThrowingAsyncSequenceProducer.swift
[113/158] Compiling NIOCore BSDSocketAPI.swift
[114/158] Compiling NIOCore ByteBuffer-aux.swift
[115/158] Compiling NIOCore ByteBuffer-binaryEncodedLengthPrefix.swift
[116/158] Compiling NIOCore ByteBuffer-conversions.swift
[117/158] Compiling NIOCore AddressedEnvelope.swift
[118/158] Compiling NIOCore AsyncAwaitSupport.swift
[119/158] Compiling NIOCore AsyncChannel.swift
[120/158] Compiling NIOCore AsyncChannelHandler.swift
[121/158] Compiling NIOCore AsyncChannelInboundStream.swift
[122/158] Compiling NIOCore AsyncChannelOutboundWriter.swift
[123/158] Compiling NIOCore NIOAsyncSequenceProducer.swift
[124/158] Compiling NIOCore NIOScheduledCallback.swift
[125/158] Compiling NIOCore NIOSendable.swift
[126/158] Compiling NIOCore PointerHelpers.swift
[127/158] Compiling NIOCore RecvByteBufferAllocator.swift
[128/158] Compiling NIOCore SingleStepByteToMessageDecoder.swift
[129/158] Compiling NIOCore SocketAddresses.swift
[130/158] Compiling NIOCore Codec.swift
[131/158] Compiling NIOCore ConvenienceOptionSupport.swift
[132/158] Compiling NIOCore DeadChannel.swift
[133/158] Compiling NIOCore DispatchQueue+WithFuture.swift
[134/158] Compiling NIOCore EventLoop+Deprecated.swift
[135/158] Compiling NIOCore EventLoop+SerialExecutor.swift
[136/158] Compiling NIOCore EventLoop.swift
[137/158] Compiling NIOCore ByteBuffer-core.swift
[138/158] Compiling NIOCore ByteBuffer-hex.swift
[139/158] Compiling NIOCore ByteBuffer-int.swift
[140/158] Compiling NIOCore ByteBuffer-lengthPrefix.swift
[141/158] Compiling NIOCore ByteBuffer-multi-int.swift
[142/158] Compiling NIOCore ByteBuffer-quicBinaryEncodingStrategy.swift
[143/158] Compiling NIOCore ByteBuffer-views.swift
[144/158] Compiling NIOCore Channel.swift
[145/158] Compiling NIOCore ChannelHandler.swift
[146/158] Compiling NIOCore ChannelHandlers.swift
[147/158] Compiling NIOCore ChannelInvoker.swift
[148/158] Compiling NIOCore ChannelOption.swift
[149/158] Compiling NIOCore ChannelPipeline.swift
[150/158] Compiling NIOCore CircularBuffer.swift
[151/158] Compiling NIOCore EventLoopFuture+AssumeIsolated.swift
[152/158] Compiling NIOCore EventLoopFuture+Deprecated.swift
[153/158] Compiling NIOCore EventLoopFuture+WithEventLoop.swift
[154/158] Compiling NIOCore EventLoopFuture.swift
[155/158] Compiling NIOCore FileDescriptor.swift
[156/158] Compiling NIOCore FileHandle.swift
[157/158] Compiling NIOCore FileRegion.swift
[158/158] Emitting module NIOCore
[159/208] Compiling NIOPosix GetaddrinfoResolver.swift
[160/208] Compiling NIOPosix HappyEyeballs.swift
[161/208] Compiling NIOPosix IO.swift
[162/208] Compiling NIOPosix IntegerBitPacking.swift
[163/208] Compiling NIOPosix IntegerTypes.swift
[164/208] Compiling NIOPosix Linux.swift
[165/213] Compiling NIOPosix SocketProtocols.swift
[166/213] Compiling NIOPosix System.swift
[167/213] Compiling NIOPosix Thread.swift
[168/213] Compiling NIOPosix ThreadPosix.swift
[169/213] Compiling NIOPosix ThreadWindows.swift
[170/213] Compiling NIOPosix PendingWritesManager.swift
[171/213] Compiling NIOPosix PipeChannel.swift
[172/213] Compiling NIOPosix PipePair.swift
[173/213] Compiling NIOPosix PointerHelpers.swift
[174/213] Compiling NIOPosix Pool.swift
[175/213] Compiling NIOPosix Selectable.swift
[176/213] Compiling NIOPosix SelectableChannel.swift
[177/213] Compiling NIOPosix SelectableEventLoop.swift
[178/213] Compiling NIOPosix SelectorEpoll.swift
[179/213] Compiling NIOPosix SelectorGeneric.swift
[180/213] Compiling NIOPosix BSDSocketAPICommon.swift
[181/213] Compiling NIOPosix BSDSocketAPIPosix.swift
[182/213] Compiling NIOPosix BSDSocketAPIWindows.swift
[183/213] Compiling NIOPosix BaseSocket.swift
[184/213] Compiling NIOPosix BaseSocketChannel+SocketOptionProvider.swift
[185/213] Compiling NIOPosix BaseSocketChannel.swift
[186/213] Emitting module NIOPosix
[187/213] Compiling NIOPosix UnsafeTransfer.swift
[188/213] Compiling NIOPosix Utilities.swift
[189/213] Compiling NIOPosix VsockAddress.swift
[190/213] Compiling NIOPosix VsockChannelEvents.swift
[191/213] Compiling NIOPosix resource_bundle_accessor.swift
[192/213] Compiling NIOPosix BaseStreamSocketChannel.swift
[193/213] Compiling NIOPosix Bootstrap.swift
[194/213] Compiling NIOPosix ControlMessage.swift
[195/213] Compiling NIOPosix DatagramVectorReadManager.swift
[196/213] Compiling NIOPosix Errors+Any.swift
[197/213] Compiling NIOPosix FileDescriptor.swift
[198/213] Compiling NIOPosix PooledRecvBufferAllocator.swift
[199/213] Compiling NIOPosix PosixSingletons+ConcurrencyTakeOver.swift
[200/213] Compiling NIOPosix PosixSingletons.swift
[201/213] Compiling NIOPosix RawSocketBootstrap.swift
[202/213] Compiling NIOPosix Resolver.swift
[203/213] Compiling NIOPosix SelectorKqueue.swift
[204/213] Compiling NIOPosix SelectorUring.swift
[205/213] Compiling NIOPosix ServerSocket.swift
[206/213] Compiling NIOPosix Socket.swift
[207/213] Compiling NIOPosix SocketChannel.swift
[208/213] Compiling NIOPosix LinuxCPUSet.swift
[209/213] Compiling NIOPosix LinuxUring.swift
[210/213] Compiling NIOPosix MultiThreadedEventLoopGroup.swift
[211/213] Compiling NIOPosix NIOThreadPool.swift
[212/213] Compiling NIOPosix NonBlockingFileIO.swift
[213/213] Compiling NIOPosix PendingDatagramWritesManager.swift
[214/244] Compiling RediStack RedisError.swift
[215/244] Compiling RediStack RedisKey+TTL.swift
[216/244] Compiling RediStack RedisKey.swift
[217/247] Compiling RediStack RedisChannelName.swift
[218/247] Compiling RediStack RedisClient.swift
[219/247] Compiling RediStack RedisConnection+Configuration.swift
[220/247] Compiling RediStack ConnectionCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 |     fileprivate static func _bpop<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 |         keyword: String,
548 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
[221/247] Compiling RediStack HashCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 |     fileprivate static func _bpop<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 |         keyword: String,
548 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
[222/247] Compiling RediStack KeyCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 |     fileprivate static func _bpop<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 |         keyword: String,
548 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
[223/247] Compiling RediStack ListCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 |     fileprivate static func _bpop<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 |         keyword: String,
548 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
[224/247] Compiling RediStack RedisByteDecoder.swift
[225/247] Compiling RediStack RedisCommandHandler.swift
[226/247] Compiling RediStack RedisMessageEncoder.swift
[227/247] Compiling RediStack RedisPubSubHandler.swift
[228/247] Emitting module RediStack
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/ListCommands.swift:546:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
544 | // MARK: - Shared implementations
545 | extension RedisCommand {
546 |     fileprivate static func _bpop<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
547 |         keyword: String,
548 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1347:36: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1345 | // MARK: - Shared implementations
1346 | extension RedisCommand {
1347 |     fileprivate static func _bzpop<ResultType>(
     |                                    `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1348 |         keyword: String,
1349 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1401:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1399 |     }
1400 |
1401 |     fileprivate static func _zpop<ResultType>(
     |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1402 |         keyword: String,
1403 |         _ count: Int?,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:503:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
501 |
502 | extension RedisCommand {
503 |     fileprivate static func _mset<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 |         keyword: String,
505 |         _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
[229/247] Compiling RediStack ConnectionPoolErrors.swift
[230/247] Compiling RediStack StandardLibrary.swift
[231/247] Compiling RediStack SwiftNIO.swift
[232/247] Compiling RediStack RedisConnection.swift
[233/247] Compiling RediStack RedisConnectionPool+Configuration.swift
[234/247] Compiling RediStack RedisConnectionPool.swift
[235/247] Compiling RediStack RESPTranslator.swift
[236/247] Compiling RediStack RESPValue.swift
[237/247] Compiling RediStack RESPValueConvertible.swift
[238/247] Compiling RediStack PubSubCommands.swift
[239/247] Compiling RediStack RedisCommand.swift
[240/247] Compiling RediStack ServerCommands.swift
[241/247] Compiling RediStack SetCommands.swift
[242/247] Compiling RediStack RedisLogging.swift
[243/247] Compiling RediStack RedisMetrics.swift
[244/247] Compiling RediStack _Deprecations.swift
[245/247] Compiling RediStack SortedSetCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1347:36: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1345 | // MARK: - Shared implementations
1346 | extension RedisCommand {
1347 |     fileprivate static func _bzpop<ResultType>(
     |                                    `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1348 |         keyword: String,
1349 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1401:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1399 |     }
1400 |
1401 |     fileprivate static func _zpop<ResultType>(
     |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1402 |         keyword: String,
1403 |         _ count: Int?,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:503:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
501 |
502 | extension RedisCommand {
503 |     fileprivate static func _mset<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 |         keyword: String,
505 |         _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
[246/247] Compiling RediStack StringCommands.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1347:36: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1345 | // MARK: - Shared implementations
1346 | extension RedisCommand {
1347 |     fileprivate static func _bzpop<ResultType>(
     |                                    `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1348 |         keyword: String,
1349 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1401:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1399 |     }
1400 |
1401 |     fileprivate static func _zpop<ResultType>(
     |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1402 |         keyword: String,
1403 |         _ count: Int?,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:503:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
501 |
502 | extension RedisCommand {
503 |     fileprivate static func _mset<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 |         keyword: String,
505 |         _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
[247/247] Compiling RediStack ConnectionPool.swift
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1347:36: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1345 | // MARK: - Shared implementations
1346 | extension RedisCommand {
1347 |     fileprivate static func _bzpop<ResultType>(
     |                                    `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1348 |         keyword: String,
1349 |         _ keys: [RedisKey],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/SortedSetCommands.swift:1401:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1399 |     }
1400 |
1401 |     fileprivate static func _zpop<ResultType>(
     |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
1402 |         keyword: String,
1403 |         _ count: Int?,
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/StringCommands.swift:503:35: warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
501 |
502 | extension RedisCommand {
503 |     fileprivate static func _mset<ResultType>(
    |                                   `- warning: generic parameter 'ResultType' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
504 |         keyword: String,
505 |         _ operations: [RedisKey: RESPValueConvertible],
/Users/admin/builder/spi-builder-workspace/Sources/RediStack/Commands/RedisCommand.swift:24:28: note: 'ResultType' previously declared here
 22 | ///
 23 | /// When creating a `RedisCommand`, a closure is provided for transforming an arbitrary `RESPValue` instance into the `ResultType`.
 24 | public struct RedisCommand<ResultType> {
    |                            `- note: 'ResultType' previously declared here
 25 |     public let keyword: String
 26 |     public let arguments: [RESPValue]
Build of target: 'RediStack' complete! (5.70s)
Target:                   RedisTypes
Extracting symbol information for 'RedisTypes'...
Finished extracting symbol information for 'RedisTypes'. (0.72s)
Building documentation for 'RedisTypes'...
warning: Parameter 'members' not found in instance method declaration
   --> Sources/RedisTypes/RedisSet.swift:154:21-154:28
152 |     ///
153 |     /// See `RediStack.RedisClient.srem(_:from:)`
154 +     /// - Parameter members: The element in the set to remove.
    |                     ╰─suggestion: Replace 'members' with 'member'
155 |     /// - Returns: A `NIO.EventLoopFuture<Bool>` resolving `true` if `member` was removed from the set; otherwise, `false`.
156 |     public func remove(_ member: Element) -> EventLoopFuture<Bool> {
warning: Parameter 'member' is missing documentation
   --> Sources/RedisTypes/RedisSet.swift:154:63-154:63
152 |     ///
153 |     /// See `RediStack.RedisClient.srem(_:from:)`
154 +     /// - Parameter members: The element in the set to remove.
    |                                                               ╰─suggestion: Document 'member' parameter
155 |     /// - Returns: A `NIO.EventLoopFuture<Bool>` resolving `true` if `member` was removed from the set; otherwise, `false`.
156 |     public func remove(_ member: Element) -> EventLoopFuture<Bool> {Finished building documentation for 'RedisTypes' (0.10s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/2.0.0-gamma.1.1
Building for debugging...
[0/3] Write swift-version--7754E27361AE5C74.txt
Build of product 'snippet-extract' complete! (0.25s)
Building for debugging...
[0/1] Write swift-version--7754E27361AE5C74.txt
[2/3] Emitting module RedisTypes
[3/3] Compiling RedisTypes RedisSet.swift
Build of target: 'RedisTypes' complete! (0.56s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/2.0.0-gamma.1.1/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/2.0.0-gamma.1.1/linkable-paths.json
Target:                   RediStackTestUtils
Extracting symbol information for 'RediStackTestUtils'...
Finished extracting symbol information for 'RediStackTestUtils'. (3.14s)
Building documentation for 'RediStackTestUtils'...
Finished building documentation for 'RediStackTestUtils' (0.05s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/2.0.0-gamma.1.1
Building for debugging...
[0/3] Write swift-version--7754E27361AE5C74.txt
Build of product 'snippet-extract' complete! (0.24s)
Building for debugging...
[0/1] Write swift-version--7754E27361AE5C74.txt
[2/5] Emitting module NIOEmbedded
[3/5] Compiling NIOEmbedded Embedded.swift
[4/5] Compiling NIOEmbedded AsyncTestingEventLoop.swift
[5/5] Compiling NIOEmbedded AsyncTestingChannel.swift
[6/12] Compiling RediStackTestUtils _Deprecations.swift
[7/12] Compiling RediStackTestUtils RedisIntegrationTestCase.swift
[8/12] Compiling RediStackTestUtils RediStack.swift
[9/12] Compiling RediStackTestUtils RedisConnectionPoolIntegrationTestCase.swift
[10/12] Compiling RediStackTestUtils General.swift
[11/12] Emitting module RediStackTestUtils
[12/12] Compiling RediStackTestUtils EmbeddedMockRedisServer.swift
Build of target: 'RediStackTestUtils' complete! (1.24s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/2.0.0-gamma.1.1/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/swift-server/redistack/2.0.0-gamma.1.1/linkable-paths.json
    1748
24	/Users/admin/builder/spi-builder-workspace/.docs/swift-server/redistack/2.0.0-gamma.1.1
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/swift-server/redistack/2.0.0-gamma.1.1
File count: 1748
Doc size:   24.0MB
Preparing doc bundle ...
Uploading prod-swift-server-redistack-2.0.0-gamma.1.1-22eb13de.zip to s3://spi-docs-inbox/prod-swift-server-redistack-2.0.0-gamma.1.1-22eb13de.zip
Copying... [11%]
Copying... [21%]
Copying... [30%]
Copying... [42%]
Copying... [51%]
Copying... [61%]
Copying... [70%]
Copying... [81%]
Copying... [91%]
Copying... [100%]
Done.