The Swift Package Index logo.Swift Package Index

Build Information

Successful build of PerfectRedis, reference main (c47ddd), with Swift 6.4 for Linux on 16 Sep 2026 02:52:32 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-53886770-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1

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 /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
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:         linux
Swift version:             6.4
Building package at path:  $PWD
https://github.com/perfectlysoft/perfect-redis.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-53886770-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:c77fcce225e223ac0fafed844619173fc6de8d62dd560eeb28db3182af6a282b
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest
Fetching https://github.com/swift-server/RediStack.git
[1/4803] Fetching redistack
Fetched https://github.com/swift-server/RediStack.git (0.58s)
Computing version for https://github.com/swift-server/RediStack.git
Computed https://github.com/swift-server/RediStack.git at 1.6.3 (0.76s)
Fetching https://github.com/apple/swift-nio.git
Fetching https://github.com/apple/swift-atomics.git
Fetching https://github.com/apple/swift-log.git
Fetching https://github.com/apple/swift-nio-ssl.git
Fetching https://github.com/apple/swift-metrics.git
[1/8083] Fetching swift-log
[2/11591] Fetching swift-log, swift-metrics
[2355/27655] Fetching swift-log, swift-metrics, swift-nio-ssl
[11831/29530] Fetching swift-log, swift-metrics, swift-nio-ssl, swift-atomics
[29531/115477] Fetching swift-log, swift-metrics, swift-nio-ssl, swift-atomics, swift-nio
Fetched https://github.com/apple/swift-atomics.git (1.08s)
Fetched https://github.com/apple/swift-log.git (1.08s)
[42778/105519] Fetching swift-metrics, swift-nio-ssl, swift-nio
Fetched https://github.com/apple/swift-nio-ssl.git (1.09s)
[27574/89455] Fetching swift-metrics, swift-nio
Fetched https://github.com/apple/swift-metrics.git (2.84s)
Fetched https://github.com/apple/swift-nio.git (2.88s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.3.1 (3.06s)
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.22s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.102.0 (0.37s)
Fetching https://github.com/apple/swift-collections.git
Fetching https://github.com/apple/swift-system.git
[1/27245] Fetching swift-collections
[546/34143] Fetching swift-collections, swift-system
Fetched https://github.com/apple/swift-system.git (0.74s)
[3542/27245] Fetching swift-collections
Fetched https://github.com/apple/swift-collections.git (1.21s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.6.0 (1.51s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.8.1 (0.20s)
Computing version for https://github.com/apple/swift-metrics.git
Computed https://github.com/apple/swift-metrics.git at 2.11.0 (0.18s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.15.1 (0.19s)
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/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-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-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-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.15.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
Building for debugging...
[Computing dependencies]
[Pre-planning 1 / 900]
[Planning deferred tasks]
[Starting]
[48 / 709] NIOSSL
[176 / 742] InternalCollectionsUtilities
[179 / 751] _NIODataStructures
[179 / 751] CoreMetrics
[197 / 751] _NIODataStructures
[208 / 751] NIOConcurrencyHelpers
[210 / 751] _NIOBase64
[216 / 752] _NIOBase64
[218 / 752] _NIOBase64
[219 / 752] NIOConcurrencyHelpers-product
[224 / 753] NIOConcurrencyHelpers
[230 / 754] NIOConcurrencyHelpers
[236 / 754] InternalCollectionsUtilities
[237 / 754] InternalCollectionsUtilities
[239 / 754] CoreMetrics
[245 / 754] CNIOWASI
[258 / 765] CNIOLinux
[266 / 765] CNIOBoringSSL
[267 / 765] CNIOBoringSSL
[268 / 766] CNIOBoringSSL
[272 / 766] CoreMetrics
[273 / 767] CNIOBoringSSL
[276 / 767] CNIOBoringSSL
[284 / 767] CNIOBoringSSL
[285 / 767] CNIOBoringSSL
[287 / 767] CNIOBoringSSL
[288 / 767] CNIOBoringSSL
[292 / 767] Atomics
[293 / 767] CNIOBoringSSL
[300 / 767] CNIOBoringSSL
[302 / 767] CNIOBoringSSL
[306 / 767] CNIOBoringSSL
[309 / 767] CNIOBoringSSL
[318 / 767] CNIOBoringSSL
[320 / 767] CNIOBoringSSL
[323 / 767] CNIOBoringSSL
[324 / 767] CNIOBoringSSL
[327 / 767] CNIOBoringSSL
[330 / 767] CNIOBoringSSL
[333 / 767] CNIOBoringSSL
[335 / 767] CNIOBoringSSL
[338 / 767] CNIOBoringSSL
[342 / 767] CNIOBoringSSL
[344 / 767] CNIOBoringSSL
[349 / 767] CNIOBoringSSL
[350 / 767] CNIOBoringSSL
[351 / 767] CNIOBoringSSL
[354 / 767] CNIOBoringSSL
[357 / 767] CNIOBoringSSL
[362 / 767] CNIOBoringSSL
[366 / 767] CNIOBoringSSL
[367 / 767] CNIOBoringSSL
[369 / 767] CNIOBoringSSL
[373 / 767] CNIOBoringSSL
[377 / 767] CNIOBoringSSL
[378 / 767] CNIOBoringSSL
[379 / 767] CNIOBoringSSL
[381 / 767] CNIOBoringSSL
[383 / 767] CNIOBoringSSL
[386 / 767] CNIOBoringSSL
[388 / 767] CNIOBoringSSL
[397 / 767] CNIOBoringSSL
[412 / 767] CNIOBoringSSL
[422 / 767] CNIOBoringSSL
[424 / 767] CNIOBoringSSL
[428 / 767] CNIOBoringSSL
[431 / 767] CNIOBoringSSL
[434 / 767] CNIOBoringSSL
[436 / 767] CNIOBoringSSL
[438 / 767] CNIOBoringSSL
[441 / 767] CNIOBoringSSL
[446 / 767] CNIOBoringSSL
[447 / 767] CNIOBoringSSL
[450 / 767] CNIOBoringSSL
[455 / 767] CNIOBoringSSL
[460 / 767] CNIOBoringSSL
[461 / 767] CNIOBoringSSL
[466 / 767] CNIOBoringSSL
[469 / 767] CNIOBoringSSL
[471 / 767] CNIOBoringSSL
[482 / 767] CNIOBoringSSL
[486 / 767] CNIOBoringSSL
[492 / 767] CNIOBoringSSL
[495 / 767] CNIOBoringSSL
[497 / 767] CNIOBoringSSL
[502 / 767] CNIOBoringSSL
[505 / 767] CNIOBoringSSL
[513 / 767] CNIOBoringSSL
[521 / 767] CNIOBoringSSL
[524 / 767] CNIOBoringSSL
[531 / 767] CNIOBoringSSL
[534 / 767] CNIOBoringSSL
[537 / 767] CNIOBoringSSL
[541 / 767] CNIOBoringSSL
[544 / 767] CNIOBoringSSL
[548 / 767] CNIOBoringSSL
[549 / 767] CNIOBoringSSL
[551 / 767] CNIOBoringSSL
[555 / 767] CNIOBoringSSL
[558 / 767] CNIOBoringSSL
[561 / 767] CNIOBoringSSL
[562 / 767] CNIOBoringSSL
[564 / 767] CNIOBoringSSL
[566 / 767] CNIOBoringSSL
[570 / 767] CNIOBoringSSL
[572 / 767] CNIOBoringSSL
[575 / 767] CNIOBoringSSL
[576 / 767] CNIOBoringSSL
[581 / 767] CNIOBoringSSL
[584 / 767] CNIOBoringSSL
[594 / 767] CNIOBoringSSL
[605 / 767] CNIOBoringSSL
[610 / 767] CNIOBoringSSL
[614 / 767] CNIOBoringSSL
[618 / 767] CNIOBoringSSL
[622 / 767] CNIOBoringSSL
[624 / 767] CNIOBoringSSL
[634 / 767] CNIOBoringSSL
[642 / 767] CNIOBoringSSL
[651 / 767] CNIOBoringSSL
[652 / 767] CNIOBoringSSL
[654 / 767] CNIOBoringSSL
[657 / 767] CNIOBoringSSL
[659 / 767] CNIOBoringSSL
[661 / 767] CNIOBoringSSL
[664 / 767] CNIOBoringSSL
[675 / 767] CoreMetrics
[678 / 767] CoreMetrics
[681 / 767]
[684 / 770]
[686 / 770] CNIOWindows
[690 / 780] ContainersPreview
[695 / 780] ContainersPreview
[702 / 780] CNIOBoringSSL
[708 / 791] Metrics
[710 / 791] Metrics
[716 / 791] Metrics
[717 / 791] Metrics-product
[718 / 791] Metrics-product
[719 / 791] Metrics-product
[726 / 792] DequeModule
[727 / 793] Atomics
[729 / 793] DequeModule
[729 / 794] DequeModule
[747 / 804] NIOCore
[747 / 804] DequeModule
[747 / 804] NIOCore
[747 / 805] NIOCore
[765 / 820] NIOPosix
[765 / 820] NIOEmbedded
[767 / 820] NIOEmbedded
[768 / 820] NIOEmbedded
[773 / 820] NIOEmbedded
[775 / 821] NIOPosix
[778 / 821] NIOPosix
[790 / 825] NIO
[796 / 832] NIOTLS
[804 / 832] NIOTLS
[806 / 833]
[809 / 842] NIOSSL
[809 / 842] NIOTLS
[811 / 843] NIOTLS
[812 / 843] NIOPosix
[815 / 843] NIOSSL
[816 / 843] NIOSSL
[817 / 843] NIOSSL
[823 / 844] RediStack
[829 / 854] NIOSSL
[833 / 854] RediStack
[834 / 854] RediStack
[835 / 855] RediStack
[839 / 855] NIOTLS
[846 / 856] RediStack
[850 / 862] PerfectRedis
[852 / 862] PerfectRedis
[855 / 863] RediStack
[860 / 863] PerfectRedis
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/RediStack/Sources/RediStack/RedisConnection.swift:88:20: note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 86 | ///
 87 | /// Note: `wait()` is used in the example for simplicity. Never call `wait()` on an event loop.
 88 | public final class RedisConnection: RedisClient, RedisClientWithUserContext {
    |                    `- note: class 'RedisConnection' does not conform to the 'Sendable' protocol
 89 |     /// A unique identifer to represent this connection.
 90 |     public let id = UUID()
/host/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
/host/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 |     }
/host/spi-builder-workspace/.build/checkouts/RediStack/Sources/RediStack/RESP/RESPValue.swift:30:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 28 | ///
 29 | /// See: [https://redis.io/topics/protocol](https://redis.io/topics/protocol)
 30 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 31 |     case null
 32 |     case simpleString(ByteBuffer)
[#AddPreconcurrencyImport]: <https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import>
Build complete! (42.60 secs)
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" : "/host/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"
}
basic-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:c77fcce225e223ac0fafed844619173fc6de8d62dd560eeb28db3182af6a282b
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest
Done.