This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

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 RedisClient with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 1

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/reswifq/redis-client.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/reswifq/redis-client
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 898b043 updated pool dependency to 1.3.0
Cloned https://github.com/reswifq/redis-client.git
Revision (git rev-parse @):
898b043d0a54d2b523e6e603d0bbabde4f21b4a5
SUCCESS checkout https://github.com/reswifq/redis-client.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/reswifq/redis-client.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-6F35C1178C84523A.txt
[4/5] Compiling Pool Pool.swift
[5/5] Emitting module Pool
[6/9] Compiling RedisClient RedisClientResponse.swift
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClientResponse.swift:48:5: warning: 'public' modifier is redundant for enum declared in a public extension
 46 | public extension RedisClientResponse {
 47 |
 48 |     public enum Status: String {
    |     `- warning: 'public' modifier is redundant for enum declared in a public extension
 49 |         case ok = "OK"
 50 |         case queued = "QUEUED"
[7/9] Compiling RedisClient RedisClientPool.swift
[8/9] Compiling RedisClient RedisClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:28:10: warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'RedisClientError' has non-sendable type 'RedisClientResponse'; this is an error in the Swift 6 language mode
 26 | public enum RedisClientError: Error {
 27 |
 28 |     case invalidResponse(RedisClientResponse)
    |          `- warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'RedisClientError' has non-sendable type 'RedisClientResponse'; this is an error in the Swift 6 language mode
 29 |     case transactionAborted
 30 |     case enqueueCommandError
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClientResponse.swift:24:13: note: consider making enum 'RedisClientResponse' conform to the 'Sendable' protocol
 22 | import Foundation
 23 |
 24 | public enum RedisClientResponse {
    |             `- note: consider making enum 'RedisClientResponse' conform to the 'Sendable' protocol
 25 |
 26 |     /// An array response from a Redis server. The value is an array of the individual
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:47:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 45 | public extension RedisClient {
 46 |
 47 |     public func execute(_ command: String, arguments: String...) throws -> RedisClientResponse {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
 48 |         return try self.execute(command, arguments: arguments)
 49 |     }
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:55:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 53 |
 54 |     @discardableResult
 55 |     public func get(_ key: String) throws -> String? {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
 56 |
 57 |         let response = try self.execute("GET", arguments: key)
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:70:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 68 |
 69 |     @discardableResult
 70 |     public func incr(_ key: String) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
 71 |
 72 |         let response = try self.execute("INCR", arguments: key)
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:82:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 80 |
 81 |     @discardableResult
 82 |     public func del(_ keys: String...) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
 83 |         return try self.del(keys)
 84 |     }
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:87:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 85 |
 86 |     @discardableResult
 87 |     public func del(_ keys: [String]) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
 88 |
 89 |         let response = try self.execute("DEL", arguments: keys)
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:99:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 97 |
 98 |     @discardableResult
 99 |     public func lpush(_ key: String, values: String...) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
100 |         return try self.lpush(key, values: values)
101 |     }
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:104:5: warning: 'public' modifier is redundant for instance method declared in a public extension
102 |
103 |     @discardableResult
104 |     public func lpush(_ key: String, values: [String]) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
105 |
106 |         var arguments = [key]
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:119:5: warning: 'public' modifier is redundant for instance method declared in a public extension
117 |
118 |     @discardableResult
119 |     public func rpush(_ key: String, values: String...) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
120 |         return try self.rpush(key, values: values)
121 |     }
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:124:5: warning: 'public' modifier is redundant for instance method declared in a public extension
122 |
123 |     @discardableResult
124 |     public func rpush(_ key: String, values: [String]) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
125 |
126 |         var arguments = [key]
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:139:5: warning: 'public' modifier is redundant for instance method declared in a public extension
137 |
138 |     @discardableResult
139 |     public func rpoplpush(source: String, destination: String) throws -> String? {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
140 |
141 |         let response = try self.execute("RPOPLPUSH", arguments: [source, destination])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:154:5: warning: 'public' modifier is redundant for instance method declared in a public extension
152 |
153 |     @discardableResult
154 |     public func brpoplpush(source: String, destination: String, count: Int = 0) throws -> String {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
155 |
156 |         let response = try self.execute("BRPOPLPUSH", arguments: [source, destination, String(count)])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:165:5: warning: 'public' modifier is redundant for instance method declared in a public extension
163 |     }
164 |
165 |     public func setex(_ key: String, timeout: TimeInterval, value: String) throws {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
166 |
167 |         let response = try self.execute("SETEX", arguments: [key, String(Int(timeout)), value])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:175:5: warning: 'public' modifier is redundant for instance method declared in a public extension
173 |
174 |     @discardableResult
175 |     public func lrem(_ key: String, value: String, count: Int? = nil) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
176 |
177 |         var arguments = [key]
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:193:5: warning: 'public' modifier is redundant for instance method declared in a public extension
191 |
192 |     @discardableResult
193 |     public func lrange(_ key: String, start: Int, stop: Int) throws -> [String] {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
194 |
195 |         let response = try self.execute("LRANGE", arguments: [key, String(start), String(stop)])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:205:5: warning: 'public' modifier is redundant for instance method declared in a public extension
203 |
204 |     @discardableResult
205 |     public func zadd(_ key: String, values: (score: Double, member: String)...) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
206 |         return try self.zadd(key, values: values)
207 |     }
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:210:5: warning: 'public' modifier is redundant for instance method declared in a public extension
208 |
209 |     @discardableResult
210 |     public func zadd(_ key: String, values: [(score: Double, member: String)]) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
211 |
212 |         var arguments = [key]
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:229:5: warning: 'public' modifier is redundant for instance method declared in a public extension
227 |
228 |     @discardableResult
229 |     public func zrange(_ key: String, start: Int, stop: Int) throws -> [String] {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
230 |
231 |         let response = try self.execute("ZRANGE", arguments: [key, String(start), String(stop)])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:241:5: warning: 'public' modifier is redundant for instance method declared in a public extension
239 |
240 |     @discardableResult
241 |     public func zrangebyscore(_ key: String, min: Double, max: Double, includeMin: Bool = false, includeMax: Bool = true) throws -> [String] {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
242 |
243 |         var arguments = [key]
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:261:5: warning: 'public' modifier is redundant for instance method declared in a public extension
259 |
260 |     @discardableResult
261 |     public func zrem(_ key: String, member: String) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
262 |
263 |         let response = try self.execute("ZREM", arguments: [key, member])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:292:5: warning: 'public' modifier is redundant for instance method declared in a public extension
290 |
291 |     @discardableResult
292 |     public func multi(_ commands: (RedisClient, RedisClientTransaction) throws -> Void) throws -> [RedisClientResponse] {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
293 |
294 |         let response = try self.execute("MULTI", arguments: nil)
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:201:23: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
199 |         }
200 |
201 |         return result.flatMap { $0.string }
    |                       |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                       `- note: use 'compactMap(_:)' instead
202 |     }
203 |
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:237:23: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
235 |         }
236 |
237 |         return result.flatMap { $0.string }
    |                       |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                       `- note: use 'compactMap(_:)' instead
238 |     }
239 |
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:257:23: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
255 |         }
256 |
257 |         return result.flatMap { $0.string }
    |                       |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                       `- note: use 'compactMap(_:)' instead
258 |     }
259 |
[9/9] Emitting module RedisClient
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:28:10: warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'RedisClientError' has non-sendable type 'RedisClientResponse'; this is an error in the Swift 6 language mode
 26 | public enum RedisClientError: Error {
 27 |
 28 |     case invalidResponse(RedisClientResponse)
    |          `- warning: associated value 'invalidResponse' of 'Sendable'-conforming enum 'RedisClientError' has non-sendable type 'RedisClientResponse'; this is an error in the Swift 6 language mode
 29 |     case transactionAborted
 30 |     case enqueueCommandError
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClientResponse.swift:24:13: note: consider making enum 'RedisClientResponse' conform to the 'Sendable' protocol
 22 | import Foundation
 23 |
 24 | public enum RedisClientResponse {
    |             `- note: consider making enum 'RedisClientResponse' conform to the 'Sendable' protocol
 25 |
 26 |     /// An array response from a Redis server. The value is an array of the individual
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:47:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 45 | public extension RedisClient {
 46 |
 47 |     public func execute(_ command: String, arguments: String...) throws -> RedisClientResponse {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
 48 |         return try self.execute(command, arguments: arguments)
 49 |     }
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:55:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 53 |
 54 |     @discardableResult
 55 |     public func get(_ key: String) throws -> String? {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
 56 |
 57 |         let response = try self.execute("GET", arguments: key)
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:70:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 68 |
 69 |     @discardableResult
 70 |     public func incr(_ key: String) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
 71 |
 72 |         let response = try self.execute("INCR", arguments: key)
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:82:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 80 |
 81 |     @discardableResult
 82 |     public func del(_ keys: String...) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
 83 |         return try self.del(keys)
 84 |     }
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:87:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 85 |
 86 |     @discardableResult
 87 |     public func del(_ keys: [String]) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
 88 |
 89 |         let response = try self.execute("DEL", arguments: keys)
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:99:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 97 |
 98 |     @discardableResult
 99 |     public func lpush(_ key: String, values: String...) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
100 |         return try self.lpush(key, values: values)
101 |     }
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:104:5: warning: 'public' modifier is redundant for instance method declared in a public extension
102 |
103 |     @discardableResult
104 |     public func lpush(_ key: String, values: [String]) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
105 |
106 |         var arguments = [key]
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:119:5: warning: 'public' modifier is redundant for instance method declared in a public extension
117 |
118 |     @discardableResult
119 |     public func rpush(_ key: String, values: String...) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
120 |         return try self.rpush(key, values: values)
121 |     }
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:124:5: warning: 'public' modifier is redundant for instance method declared in a public extension
122 |
123 |     @discardableResult
124 |     public func rpush(_ key: String, values: [String]) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
125 |
126 |         var arguments = [key]
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:139:5: warning: 'public' modifier is redundant for instance method declared in a public extension
137 |
138 |     @discardableResult
139 |     public func rpoplpush(source: String, destination: String) throws -> String? {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
140 |
141 |         let response = try self.execute("RPOPLPUSH", arguments: [source, destination])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:154:5: warning: 'public' modifier is redundant for instance method declared in a public extension
152 |
153 |     @discardableResult
154 |     public func brpoplpush(source: String, destination: String, count: Int = 0) throws -> String {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
155 |
156 |         let response = try self.execute("BRPOPLPUSH", arguments: [source, destination, String(count)])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:165:5: warning: 'public' modifier is redundant for instance method declared in a public extension
163 |     }
164 |
165 |     public func setex(_ key: String, timeout: TimeInterval, value: String) throws {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
166 |
167 |         let response = try self.execute("SETEX", arguments: [key, String(Int(timeout)), value])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:175:5: warning: 'public' modifier is redundant for instance method declared in a public extension
173 |
174 |     @discardableResult
175 |     public func lrem(_ key: String, value: String, count: Int? = nil) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
176 |
177 |         var arguments = [key]
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:193:5: warning: 'public' modifier is redundant for instance method declared in a public extension
191 |
192 |     @discardableResult
193 |     public func lrange(_ key: String, start: Int, stop: Int) throws -> [String] {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
194 |
195 |         let response = try self.execute("LRANGE", arguments: [key, String(start), String(stop)])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:205:5: warning: 'public' modifier is redundant for instance method declared in a public extension
203 |
204 |     @discardableResult
205 |     public func zadd(_ key: String, values: (score: Double, member: String)...) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
206 |         return try self.zadd(key, values: values)
207 |     }
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:210:5: warning: 'public' modifier is redundant for instance method declared in a public extension
208 |
209 |     @discardableResult
210 |     public func zadd(_ key: String, values: [(score: Double, member: String)]) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
211 |
212 |         var arguments = [key]
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:229:5: warning: 'public' modifier is redundant for instance method declared in a public extension
227 |
228 |     @discardableResult
229 |     public func zrange(_ key: String, start: Int, stop: Int) throws -> [String] {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
230 |
231 |         let response = try self.execute("ZRANGE", arguments: [key, String(start), String(stop)])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:241:5: warning: 'public' modifier is redundant for instance method declared in a public extension
239 |
240 |     @discardableResult
241 |     public func zrangebyscore(_ key: String, min: Double, max: Double, includeMin: Bool = false, includeMax: Bool = true) throws -> [String] {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
242 |
243 |         var arguments = [key]
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:261:5: warning: 'public' modifier is redundant for instance method declared in a public extension
259 |
260 |     @discardableResult
261 |     public func zrem(_ key: String, member: String) throws -> Int64 {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
262 |
263 |         let response = try self.execute("ZREM", arguments: [key, member])
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClient.swift:292:5: warning: 'public' modifier is redundant for instance method declared in a public extension
290 |
291 |     @discardableResult
292 |     public func multi(_ commands: (RedisClient, RedisClientTransaction) throws -> Void) throws -> [RedisClientResponse] {
    |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
293 |
294 |         let response = try self.execute("MULTI", arguments: nil)
/Users/admin/builder/spi-builder-workspace/Sources/RedisClient/RedisClientResponse.swift:48:5: warning: 'public' modifier is redundant for enum declared in a public extension
 46 | public extension RedisClientResponse {
 47 |
 48 |     public enum Status: String {
    |     `- warning: 'public' modifier is redundant for enum declared in a public extension
 49 |         case ok = "OK"
 50 |         case queued = "QUEUED"
Build complete! (18.71s)
Fetching https://github.com/reswifq/pool.git
[1/69] Fetching pool
Fetched https://github.com/reswifq/pool.git from cache (0.72s)
Computing version for https://github.com/reswifq/pool.git
Computed https://github.com/reswifq/pool.git at 1.3.0 (0.66s)
Creating working copy for https://github.com/reswifq/pool.git
Working copy of https://github.com/reswifq/pool.git resolved at 1.3.0
Build complete.
{
  "dependencies" : [
    {
      "identity" : "pool",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.3.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/reswifq/pool.git"
    }
  ],
  "manifest_display_name" : "RedisClient",
  "name" : "RedisClient",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "RedisClient",
      "targets" : [
        "RedisClient"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RedisClientTests",
      "module_type" : "SwiftTarget",
      "name" : "RedisClientTests",
      "path" : "Tests/RedisClientTests",
      "sources" : [
        "RedisClientPoolTests.swift",
        "RedisClientResponseTests.swift",
        "RedisClientTests.swift"
      ],
      "target_dependencies" : [
        "RedisClient"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RedisClient",
      "module_type" : "SwiftTarget",
      "name" : "RedisClient",
      "path" : "Sources/RedisClient",
      "product_dependencies" : [
        "Pool"
      ],
      "product_memberships" : [
        "RedisClient"
      ],
      "sources" : [
        "RedisClient.swift",
        "RedisClientPool.swift",
        "RedisClientResponse.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "4.0"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.