The Swift Package Index logo.Swift Package Index

Build Information

Successful build of PerfectRedis, reference main (c47ddd), with Swift 6.4 for macOS (SPM) on 16 Sep 2026 03:13:00 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/perfectlysoft/perfect-redis.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/perfectlysoft/perfect-redis
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at c47ddd8 Merge pull request #22 from PerfectlySoft/swift6-modernization
Cloned https://github.com/perfectlysoft/perfect-redis.git
Revision (git rev-parse @):
c47ddd85e1ca705e0750ff9fc7b4c709795513aa
SUCCESS checkout https://github.com/perfectlysoft/perfect-redis.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/perfectlysoft/perfect-redis.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Constructing description]
[Pre-planning 1 / 958]
[Planning deferred tasks]
[Writing build description]
[175 / 767]
[186 / 767]
[204 / 774] CNIOWindows
[208 / 797]
[218 / 809] Atomics
[223 / 831]
[239 / 873]
[248 / 873] InternalCollectionsUtilities
[256 / 873]
[266 / 873]
[271 / 873] CNIOBoringSSL
[278 / 873] CNIOBoringSSL
[283 / 873] CNIOBoringSSL
[284 / 873] CNIOBoringSSL
[287 / 873] NIOConcurrencyHelpers
[298 / 873] _NIODataStructures
[302 / 873] _NIODataStructures
[325 / 873] CoreMetrics
[333 / 873] CNIOBoringSSL
[340 / 873] CNIOBoringSSL
[345 / 873] CNIOBoringSSL
[349 / 873] CNIOBoringSSL
[354 / 873] CNIOBoringSSL
[359 / 873] CNIOBoringSSL
[362 / 873] CNIOBoringSSL
[365 / 873] CNIOBoringSSL
[369 / 873] CNIOBoringSSL
[371 / 873] CNIOBoringSSL
[377 / 873] CNIOBoringSSL
[378 / 873] CNIOBoringSSL
[383 / 873] CNIOBoringSSL
[386 / 873] CNIOBoringSSL
[392 / 873] CNIOBoringSSL
[393 / 873] CNIOBoringSSL
[396 / 873] CNIOBoringSSL
[398 / 873] CNIOBoringSSL
[403 / 873] CNIOBoringSSL
[407 / 873] CNIOBoringSSL
[410 / 873] CNIOBoringSSL
[415 / 873] CNIOBoringSSL
[427 / 873] CNIOBoringSSL
[442 / 873] CNIOBoringSSL
[449 / 873] CNIOBoringSSL
[450 / 873] CNIOBoringSSL
[456 / 873] CNIOBoringSSL
[460 / 873] CNIOBoringSSL
[467 / 873] CNIOBoringSSL
[469 / 873] CNIOBoringSSL
[472 / 873] CNIOBoringSSL
[473 / 873] CNIOBoringSSL
[478 / 873] CNIOBoringSSL
[480 / 873] CNIOBoringSSL
[483 / 873] CNIOBoringSSL
[486 / 873] CNIOBoringSSL
[491 / 873] CNIOBoringSSL
[493 / 873] CNIOBoringSSL
[501 / 873] CNIOBoringSSL
[513 / 873] CNIOBoringSSL
[517 / 873] CNIOBoringSSL
[523 / 873] CNIOBoringSSL
[527 / 873] CNIOBoringSSL
[530 / 873] CNIOBoringSSL
[540 / 873] CNIOBoringSSL
[550 / 873] CNIOBoringSSL
[553 / 873] CNIOBoringSSL
[556 / 873] CNIOBoringSSL
[563 / 873] CNIOBoringSSL
[565 / 873] CNIOBoringSSL
[571 / 873] CNIOBoringSSL
[573 / 873] CNIOBoringSSL
[575 / 873] CNIOBoringSSL
[581 / 873] CNIOBoringSSL
[583 / 873] CNIOBoringSSL
[587 / 873] CNIOBoringSSL
[589 / 873] CNIOBoringSSL
[592 / 873] CNIOBoringSSL
[596 / 873] CNIOBoringSSL
[598 / 873] CNIOBoringSSL
[603 / 873] CNIOBoringSSL
[606 / 873] CNIOBoringSSL
[610 / 873] CNIOBoringSSL
[620 / 873] CNIOBoringSSL
[629 / 873] CNIOBoringSSL
[636 / 873] CNIOBoringSSL
[639 / 873] CNIOBoringSSL
[643 / 873] CNIOBoringSSL
[647 / 873] CNIOBoringSSL
[650 / 873] CNIOBoringSSL
[658 / 873] CNIOBoringSSL
[669 / 873] CNIOBoringSSL
[678 / 873] CNIOBoringSSL
[679 / 873] CNIOBoringSSL
[680 / 873] CNIOBoringSSL
[687 / 873] CNIOBoringSSL
[688 / 873] CNIOBoringSSL
[693 / 873]
[707 / 873]
[713 / 873]
[718 / 873] NIOConcurrencyHelpers
[720 / 873]
[726 / 873] Logging-product
[728 / 873] Logging-product
[738 / 873] NIOConcurrencyHelpers
[745 / 873] InternalCollectionsUtilities
[751 / 873] CNIODarwin
[763 / 875]
[771 / 891] Atomics
[781 / 891] Atomics
[786 / 891]
[793 / 893]
[801 / 904] ContainersPreview
[807 / 904] ContainersPreview
[817 / 905]
[830 / 916] DequeModule
[835 / 936]
[840 / 936] DequeModule
[841 / 936]
[843 / 936] DequeModule
[845 / 936]
[848 / 936]
[849 / 936]
[850 / 936] DequeModule
[857 / 937] DequeModule
[860 / 937] NIOCore
[869 / 949] NIOCore
[870 / 949] Metrics
[871 / 949] NIOCore
[872 / 949] Metrics
[880 / 949] Metrics
[880 / 949] NIOCore
[882 / 949] CNIOAtomics
[884 / 949] NIOCore
[894 / 951] NIOEmbedded
[898 / 955] NIOPosix
[918 / 971] NIOPosix
[919 / 971] NIOPosix
[920 / 971] NIOPosix
[922 / 971] NIOPosix
[929 / 972] NIOPosix
[931 / 974] NIO
[939 / 975] NIOPosix
[939 / 975] NIOTLS
[945 / 981] NIOTLS
[952 / 982] NIOTLS
[953 / 982] NIOSSL
[954 / 995]
[965 / 995] NIOSSL
[966 / 995] NIOSSL
[967 / 995] NIOSSL
[973 / 996] NIOSSL
[973 / 996] RediStack
[984 / 1036]
[992 / 1036] NIOSSL
[992 / 1036]
[997 / 1036]
[999 / 1036]
[1002 / 1036]
[1005 / 1036]
[1007 / 1036]
[1008 / 1036]
[1019 / 1036] RediStack
[1026 / 1037] RediStack
[1028 / 1037] PerfectRedis
[1034 / 1043] PerfectRedis
[1040 / 1043] PerfectRedis
Build complete! (31.36 sec)
Fetching https://github.com/swift-server/RediStack.git
[1/4803] Fetching redistack
Fetched https://github.com/swift-server/RediStack.git (1.24s)
Computing version for https://github.com/swift-server/RediStack.git
Computed https://github.com/swift-server/RediStack.git at 1.6.3 (1.83s)
Fetching https://github.com/apple/swift-log.git
Fetching https://github.com/apple/swift-nio.git
Fetching https://github.com/apple/swift-nio-ssl.git
Fetching https://github.com/apple/swift-atomics.git
Fetching https://github.com/apple/swift-metrics.git
[1/1875] Fetching swift-atomics
[20/5383] Fetching swift-atomics, swift-metrics
[21/13466] Fetching swift-atomics, swift-metrics, swift-log
[132/29530] Fetching swift-atomics, swift-metrics, swift-log, swift-nio-ssl
[19251/115477] Fetching swift-atomics, swift-metrics, swift-log, swift-nio-ssl, swift-nio
Fetched https://github.com/apple/swift-nio-ssl.git (2.48s)
Fetched https://github.com/apple/swift-log.git (2.49s)
[20854/91330] Fetching swift-atomics, swift-metrics, swift-nio
Fetched https://github.com/apple/swift-nio.git (11.13s)
Fetched https://github.com/apple/swift-atomics.git (11.13s)
Fetched https://github.com/apple/swift-metrics.git (11.13s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.3.1 (11.74s)
Computing version for https://github.com/apple/swift-nio-ssl.git
Computed https://github.com/apple/swift-nio-ssl.git at 2.37.4 (0.71s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.102.0 (0.65s)
Fetching https://github.com/apple/swift-collections.git
Fetching https://github.com/apple/swift-system.git
[1/6898] Fetching swift-system
[898/34143] Fetching swift-system, swift-collections
Fetched https://github.com/apple/swift-collections.git (2.66s)
Fetched https://github.com/apple/swift-system.git (2.66s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.6.0 (3.25s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.8.1 (0.56s)
Computing version for https://github.com/apple/swift-metrics.git
Computed https://github.com/apple/swift-metrics.git at 2.11.0 (0.53s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.15.1 (0.56s)
Creating working copy for https://github.com/apple/swift-nio-ssl.git
Working copy of https://github.com/apple/swift-nio-ssl.git resolved at 2.37.4
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.6.0
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.3.1
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.8.1
Creating working copy for https://github.com/apple/swift-nio.git
Working copy of https://github.com/apple/swift-nio.git resolved at 2.102.0
Creating working copy for https://github.com/swift-server/RediStack.git
Working copy of https://github.com/swift-server/RediStack.git resolved at 1.6.3
Creating working copy for https://github.com/apple/swift-metrics.git
Working copy of https://github.com/apple/swift-metrics.git resolved at 2.11.0
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.15.1
/Users/admin/builder/spi-builder-workspace/Sources/PerfectRedis/PerfectRedis.swift:165:11: warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
163 |             configuration: config,
164 |             boundEventLoop: eventLoop
165 |         ).get()
    |           `- warning: type 'RedisConnection' does not conform to the 'Sendable' protocol
166 |         return RedisClient(connection: connection)
167 |     }
RediStack.RedisConnection:1:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 1 | final public class RedisConnection : RediStack.RedisClient {
   |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 2 |     public let id: UUID
 3 |     public var eventLoop: any NIOCore.EventLoop { get }
/Users/admin/builder/spi-builder-workspace/Sources/PerfectRedis/PerfectRedis.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'RediStack' as warnings [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import\AddPreconcurrencyImport]8;;\]
  1 | import Foundation
  2 | import RediStack
    | `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'RediStack' as warnings [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import\AddPreconcurrencyImport]8;;\]
  3 | import NIOCore
  4 | import NIOPosix
/Users/admin/builder/spi-builder-workspace/Sources/PerfectRedis/PerfectRedis.swift:179:78: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
177 |     // All public commands route through here.
178 |     func send(_ command: String, _ args: [RESPValue] = []) async throws -> RedisResponse {
179 |         let result = try await connection.send(command: command, with: args).get()
    |                                                                              `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
180 |         return RedisResponse(result)
181 |     }
RediStack.RESPValue:1:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
1 | public enum RESPValue {
  |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
2 |     case null
3 |     case simpleString(NIOCore.ByteBuffer)
[#AddPreconcurrencyImport]: <https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import>
Build complete.
{
  "dependencies" : [
    {
      "identity" : "redistack",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.6.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/swift-server/RediStack.git"
    }
  ],
  "manifest_display_name" : "PerfectRedis",
  "name" : "PerfectRedis",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "PerfectRedis",
      "targets" : [
        "PerfectRedis"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "PerfectRedisTests",
      "module_type" : "SwiftTarget",
      "name" : "PerfectRedisTests",
      "path" : "Tests/PerfectRedisTests",
      "sources" : [
        "HashTests.swift",
        "PerfectRedisTests.swift"
      ],
      "target_dependencies" : [
        "PerfectRedis"
      ],
      "type" : "test"
    },
    {
      "c99name" : "PerfectRedis",
      "module_type" : "SwiftTarget",
      "name" : "PerfectRedis",
      "path" : "Sources/PerfectRedis",
      "product_dependencies" : [
        "RediStack"
      ],
      "product_memberships" : [
        "PerfectRedis"
      ],
      "sources" : [
        "PerfectRedis.swift",
        "RedisClientSync.swift",
        "RedisHash.swift",
        "RedisList.swift",
        "RedisSet.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.2"
}
Done.