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 arm64Build 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: [1;33mwarning: [1;39mtype 'RedisConnection' does not conform to the 'Sendable' protocol[0;0m
[0;36m163 |[0;0m configuration: config,
[0;36m164 |[0;0m boundEventLoop: eventLoop
[0;36m165 |[0;0m ).get()
[0;36m|[0;0m `- [1;33mwarning: [1;39mtype 'RedisConnection' does not conform to the 'Sendable' protocol[0;0m
[0;36m166 |[0;0m return RedisClient(connection: connection)
[0;36m167 |[0;0m }
RediStack.RedisConnection:1:20: [1;39mnote: [1;39mclass 'RedisConnection' does not conform to the 'Sendable' protocol[0;0m
[0;36m1 |[0;0m final public class RedisConnection : RediStack.RedisClient {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'RedisConnection' does not conform to the 'Sendable' protocol[0;0m
[0;36m2 |[0;0m public let id: UUID
[0;36m3 |[0;0m public var eventLoop: any NIOCore.EventLoop { get }
/Users/admin/builder/spi-builder-workspace/Sources/PerfectRedis/PerfectRedis.swift:2:1: [1;33mwarning: [1;39madd '@preconcurrency' to treat 'Sendable'-related errors from module 'RediStack' as warnings[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import\AddPreconcurrencyImport]8;;\]
[0;36m1 |[0;0m import Foundation
[0;36m2 |[0;0m import RediStack
[0;36m|[0;0m `- [1;33mwarning: [1;39madd '@preconcurrency' to treat 'Sendable'-related errors from module 'RediStack' as warnings[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import\AddPreconcurrencyImport]8;;\]
[0;36m3 |[0;0m import NIOCore
[0;36m4 |[0;0m import NIOPosix
/Users/admin/builder/spi-builder-workspace/Sources/PerfectRedis/PerfectRedis.swift:179:78: [1;33mwarning: [1;39mtype 'RESPValue' does not conform to the 'Sendable' protocol[0;0m
[0;36m177 |[0;0m // All public commands route through here.
[0;36m178 |[0;0m func send(_ command: String, _ args: [RESPValue] = []) async throws -> RedisResponse {
[0;36m179 |[0;0m let result = try await connection.send(command: command, with: args).get()
[0;36m|[0;0m `- [1;33mwarning: [1;39mtype 'RESPValue' does not conform to the 'Sendable' protocol[0;0m
[0;36m180 |[0;0m return RedisResponse(result)
[0;36m181 |[0;0m }
RediStack.RESPValue:1:13: [1;39mnote: [1;39menum 'RESPValue' does not conform to the 'Sendable' protocol[0;0m
[0;36m1 |[0;0m public enum RESPValue {
[0;36m|[0;0m `- [1;39mnote: [1;39menum 'RESPValue' does not conform to the 'Sendable' protocol[0;0m
[0;36m2 |[0;0m case null
[0;36m3 |[0;0m 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.