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 SwiftFileStore, reference main (dc18e7), with Swift 6.0 for Linux on 30 Jan 2025 00:21:54 UTC.

Swift 6 data race errors: 5

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.60.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/juyan/swift-filestore.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/juyan/swift-filestore
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at dc18e7a Add API to read raw data (#11)
Cloned https://github.com/juyan/swift-filestore.git
Revision (git rev-parse @):
dc18e7af814e896a81b981341a6c77d37f2e6e06
SUCCESS checkout https://github.com/juyan/swift-filestore.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/juyan/swift-filestore.git
https://github.com/juyan/swift-filestore.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SwiftFileStore",
  "name" : "SwiftFileStore",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "14.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftFileStore",
      "targets" : [
        "SwiftFileStore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftFileStoreTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftFileStoreTests",
      "path" : "Tests/SwiftFileStoreTests",
      "sources" : [
        "FileObjectStoreTests.swift",
        "MemoryObjectStoreTests.swift",
        "PersistenceLogTests.swift",
        "TestObject.swift",
        "XCTestCase+.swift"
      ],
      "target_dependencies" : [
        "SwiftFileStore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftFileStore",
      "module_type" : "SwiftTarget",
      "name" : "SwiftFileStore",
      "path" : "Sources/SwiftFileStore",
      "product_memberships" : [
        "SwiftFileStore"
      ],
      "sources" : [
        "FileObjectStore.swift",
        "JSONDataRepresentable.swift",
        "MemoryObjectStore.swift",
        "ObjectStore+Expiry.swift",
        "ObjectStore.swift",
        "Observer.swift",
        "ObserverManager.swift",
        "PersistenceLog.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:081dcf4fb829aea9d08447f4790431afbdfbcc335bfeed728ca69c6f181ae2aa
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/10] Compiling SwiftFileStore ObserverManager.swift
[4/10] Compiling SwiftFileStore ObjectStore.swift
[5/10] Compiling SwiftFileStore Observer.swift
[6/11] Compiling SwiftFileStore FileObjectStore.swift
/host/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:126:1: warning: extension declares a conformance of imported type 'String' to imported protocol 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
124 | }
125 |
126 | extension String: Error {}
    | |- warning: extension declares a conformance of imported type 'String' to imported protocol 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
127 |
/host/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:83:46: warning: non-sendable type 'Observer' returned by call to actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
 81 |
 82 |     public func observe<T>(key: String, namespace: String, objectType: T.Type) async -> AsyncThrowingStream<T?, Error> where T: DataRepresentable {
 83 |         let observer = await observerManager.getObserver(key: key, namespace: namespace)
    |                                              `- warning: non-sendable type 'Observer' returned by call to actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
 84 |         do {
 85 |             let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
/host/spi-builder-workspace/Sources/SwiftFileStore/Observer.swift:7:13: note: class 'Observer' does not conform to the 'Sendable' protocol
 5 | import Foundation
 6 |
 7 | final class Observer {
   |             `- note: class 'Observer' does not conform to the 'Sendable' protocol
 8 |     let key: String
 9 |     let namespace: String
/host/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:99:21: warning: capture of 'observer' with non-sendable type 'Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 97 |                 }
 98 |                 continuation.onTermination = { @Sendable _ in
 99 |                     observer.callbacks.removeValue(forKey: callbackID)
    |                     `- warning: capture of 'observer' with non-sendable type 'Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
100 |                 }
101 |             }
/host/spi-builder-workspace/Sources/SwiftFileStore/Observer.swift:7:13: note: class 'Observer' does not conform to the 'Sendable' protocol
 5 | import Foundation
 6 |
 7 | final class Observer {
   |             `- note: class 'Observer' does not conform to the 'Sendable' protocol
 8 |     let key: String
 9 |     let namespace: String
/host/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:53:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 51 |         try FileManager.default.createDirIfNotExist(url: dirURL)
 52 |         try object.serialize().write(to: fileURL)
 53 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 54 |             await observerManager.publishValue(key: key, namespace: namespace, value: object)
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 55 |         }
 56 |     }
/host/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:54:35: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
 52 |         try object.serialize().write(to: fileURL)
 53 |         Task {
 54 |             await observerManager.publishValue(key: key, namespace: namespace, value: object)
    |                                   |- warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
    |                                   `- note: sending task-isolated 'object' to actor-isolated instance method 'publishValue(key:namespace:value:)' risks causing data races between actor-isolated and task-isolated uses
 55 |         }
 56 |     }
/host/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:64:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 62 |             try FileManager.default.removeItem(at: fileURL)
 63 |         }
 64 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 65 |             await observerManager.publishRemoval(namespace: namespace, key: key)
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 66 |         }
 67 |     }
/host/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:72:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 70 |         let dirURL = rootDir.appendingPathComponent(namespace)
 71 |         try FileManager.default.removeItem(at: dirURL)
 72 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 73 |             await observerManager.publishRemoval(namespace: namespace)
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 74 |         }
 75 |     }
/host/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:87:30: warning: sending 'existingValue' risks causing data races; this is an error in the Swift 6 language mode
 85 |             let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
 86 |             return AsyncThrowingStream { continuation in
 87 |                 continuation.yield(existingValue)
    |                              |- warning: sending 'existingValue' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'existingValue' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 88 |                 let callbackID = UUID().uuidString
 89 |                 observer.registerCallback(id: callbackID) { data in
/host/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:91:38: warning: task-isolated value of type 'T' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
 89 |                 observer.registerCallback(id: callbackID) { data in
 90 |                     if let d = data, let typed = d as? T {
 91 |                         continuation.yield(typed)
    |                                      `- warning: task-isolated value of type 'T' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
 92 |                     } else if data == nil {
 93 |                         continuation.yield(nil)
[7/11] Compiling SwiftFileStore ObjectStore+Expiry.swift
[8/11] Compiling SwiftFileStore JSONDataRepresentable.swift
[9/11] Emitting module SwiftFileStore
/host/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:126:1: warning: extension declares a conformance of imported type 'String' to imported protocol 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
124 | }
125 |
126 | extension String: Error {}
    | |- warning: extension declares a conformance of imported type 'String' to imported protocol 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
127 |
/host/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:18:17: warning: non-sendable type 'T?' returned by actor-isolated instance method 'read(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
16 |     }
17 |
18 |     public func read<T>(key: String, namespace: String, objectType _: T.Type) async throws -> T? where T: DataRepresentable {
   |                 |    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
   |                 `- warning: non-sendable type 'T?' returned by actor-isolated instance method 'read(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
19 |         objects[namespace]?[key].flatMap { try? T.from(data: $0) }
20 |     }
/host/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:22:17: warning: non-sendable type 'T' in parameter of the protocol requirement satisfied by actor-isolated instance method 'write(key:namespace:object:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
20 |     }
21 |
22 |     public func write<T>(key: String, namespace: String, object: T) async throws where T: DataRepresentable {
   |                 `- warning: non-sendable type 'T' in parameter of the protocol requirement satisfied by actor-isolated instance method 'write(key:namespace:object:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
23 |         let data = try object.serialize()
24 |         objects[namespace, default: [:]][key] = data
/host/spi-builder-workspace/Sources/SwiftFileStore/ObjectStore.swift:36:16: note: consider making generic parameter 'T' conform to the 'Sendable' protocol
34 |     ///   - namespace: namespace of the object, such as "Cats"
35 |     ///   - object: The object to write
36 |     func write<T>(key: String, namespace: String, object: T) async throws where T: DataRepresentable
   |                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
37 |
38 |     /// Remove an object from storage
/host/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:42:17: warning: non-sendable type 'AsyncThrowingStream<T?, any Error>' returned by actor-isolated instance method 'observe(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
40 |     }
41 |
42 |     public func observe<T>(key: String, namespace: String, objectType: T.Type) async -> AsyncThrowingStream<T?, Error> where T: DataRepresentable {
   |                 |       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
   |                 `- warning: non-sendable type 'AsyncThrowingStream<T?, any Error>' returned by actor-isolated instance method 'observe(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
43 |         let observer = await observerManager.getObserver(key: key, namespace: namespace)
44 |         do {
/host/spi-builder-workspace/Sources/SwiftFileStore/PersistenceLog.swift:54:17: warning: non-sendable type 'Self.Element' in parameter of the protocol requirement satisfied by actor-isolated instance method 'append(element:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
52 |     }
53 |
54 |     public func append(element: ElementType) async throws {
   |                 `- warning: non-sendable type 'Self.Element' in parameter of the protocol requirement satisfied by actor-isolated instance method 'append(element:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |         try fileHandle.seekToEnd()
56 |         let data = try element.serialize()
/host/spi-builder-workspace/Sources/SwiftFileStore/PersistenceLog.swift:62:17: warning: non-sendable type '[ElementType]' returned by actor-isolated instance method 'flush()' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
15 | }
16 |
17 | public actor PersistenceLogImpl<ElementType>: PersistenceLog where ElementType: DataRepresentable {
   |                                 `- note: consider making generic parameter 'ElementType' conform to the 'Sendable' protocol
18 |     public typealias Element = ElementType
19 |
   :
60 |     }
61 |
62 |     public func flush() async throws -> [ElementType] {
   |                 `- warning: non-sendable type '[ElementType]' returned by actor-isolated instance method 'flush()' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
63 |         try fileHandle.seek(toOffset: 0)
64 |         let fileData = try fileHandle.readToEnd()
[10/11] Compiling SwiftFileStore MemoryObjectStore.swift
/host/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:18:17: warning: non-sendable type 'T?' returned by actor-isolated instance method 'read(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
16 |     }
17 |
18 |     public func read<T>(key: String, namespace: String, objectType _: T.Type) async throws -> T? where T: DataRepresentable {
   |                 |    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
   |                 `- warning: non-sendable type 'T?' returned by actor-isolated instance method 'read(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
19 |         objects[namespace]?[key].flatMap { try? T.from(data: $0) }
20 |     }
/host/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:22:17: warning: non-sendable type 'T' in parameter of the protocol requirement satisfied by actor-isolated instance method 'write(key:namespace:object:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
20 |     }
21 |
22 |     public func write<T>(key: String, namespace: String, object: T) async throws where T: DataRepresentable {
   |                 `- warning: non-sendable type 'T' in parameter of the protocol requirement satisfied by actor-isolated instance method 'write(key:namespace:object:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
23 |         let data = try object.serialize()
24 |         objects[namespace, default: [:]][key] = data
/host/spi-builder-workspace/Sources/SwiftFileStore/ObjectStore.swift:36:16: note: consider making generic parameter 'T' conform to the 'Sendable' protocol
34 |     ///   - namespace: namespace of the object, such as "Cats"
35 |     ///   - object: The object to write
36 |     func write<T>(key: String, namespace: String, object: T) async throws where T: DataRepresentable
   |                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
37 |
38 |     /// Remove an object from storage
/host/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:42:17: warning: non-sendable type 'AsyncThrowingStream<T?, any Error>' returned by actor-isolated instance method 'observe(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
40 |     }
41 |
42 |     public func observe<T>(key: String, namespace: String, objectType: T.Type) async -> AsyncThrowingStream<T?, Error> where T: DataRepresentable {
   |                 |       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
   |                 `- warning: non-sendable type 'AsyncThrowingStream<T?, any Error>' returned by actor-isolated instance method 'observe(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
43 |         let observer = await observerManager.getObserver(key: key, namespace: namespace)
44 |         do {
/host/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:43:46: warning: non-sendable type 'Observer' returned by call to actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
41 |
42 |     public func observe<T>(key: String, namespace: String, objectType: T.Type) async -> AsyncThrowingStream<T?, Error> where T: DataRepresentable {
43 |         let observer = await observerManager.getObserver(key: key, namespace: namespace)
   |                                              `- warning: non-sendable type 'Observer' returned by call to actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
44 |         do {
45 |             let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
/host/spi-builder-workspace/Sources/SwiftFileStore/Observer.swift:7:13: note: class 'Observer' does not conform to the 'Sendable' protocol
 5 | import Foundation
 6 |
 7 | final class Observer {
   |             `- note: class 'Observer' does not conform to the 'Sendable' protocol
 8 |     let key: String
 9 |     let namespace: String
/host/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:59:21: warning: capture of 'observer' with non-sendable type 'Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
57 |                 }
58 |                 continuation.onTermination = { @Sendable _ in
59 |                     observer.callbacks.removeValue(forKey: callbackID)
   |                     `- warning: capture of 'observer' with non-sendable type 'Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
60 |                 }
61 |             }
/host/spi-builder-workspace/Sources/SwiftFileStore/Observer.swift:7:13: note: class 'Observer' does not conform to the 'Sendable' protocol
 5 | import Foundation
 6 |
 7 | final class Observer {
   |             `- note: class 'Observer' does not conform to the 'Sendable' protocol
 8 |     let key: String
 9 |     let namespace: String
/host/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:25:31: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
23 |         let data = try object.serialize()
24 |         objects[namespace, default: [:]][key] = data
25 |         await observerManager.publishValue(key: key, namespace: namespace, value: object)
   |                               |- warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: sending 'self'-isolated 'object' to actor-isolated instance method 'publishValue(key:namespace:value:)' risks causing data races between actor-isolated and 'self'-isolated uses
26 |     }
27 |
/host/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:47:30: warning: sending 'existingValue' risks causing data races; this is an error in the Swift 6 language mode
45 |             let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
46 |             return AsyncThrowingStream { continuation in
47 |                 continuation.yield(existingValue)
   |                              |- warning: sending 'existingValue' risks causing data races; this is an error in the Swift 6 language mode
   |                              `- note: task-isolated 'existingValue' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
48 |                 let callbackID = UUID().uuidString
49 |                 observer.registerCallback(id: callbackID) { data in
/host/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:51:38: warning: task-isolated value of type 'T' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
49 |                 observer.registerCallback(id: callbackID) { data in
50 |                     if let d = data, let typed = d as? T {
51 |                         continuation.yield(typed)
   |                                      `- warning: task-isolated value of type 'T' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
52 |                     } else if data == nil {
53 |                         continuation.yield(nil)
[11/11] Compiling SwiftFileStore PersistenceLog.swift
/host/spi-builder-workspace/Sources/SwiftFileStore/PersistenceLog.swift:54:17: warning: non-sendable type 'Self.Element' in parameter of the protocol requirement satisfied by actor-isolated instance method 'append(element:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
52 |     }
53 |
54 |     public func append(element: ElementType) async throws {
   |                 `- warning: non-sendable type 'Self.Element' in parameter of the protocol requirement satisfied by actor-isolated instance method 'append(element:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |         try fileHandle.seekToEnd()
56 |         let data = try element.serialize()
/host/spi-builder-workspace/Sources/SwiftFileStore/PersistenceLog.swift:62:17: warning: non-sendable type '[ElementType]' returned by actor-isolated instance method 'flush()' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
15 | }
16 |
17 | public actor PersistenceLogImpl<ElementType>: PersistenceLog where ElementType: DataRepresentable {
   |                                 `- note: consider making generic parameter 'ElementType' conform to the 'Sendable' protocol
18 |     public typealias Element = ElementType
19 |
   :
60 |     }
61 |
62 |     public func flush() async throws -> [ElementType] {
   |                 `- warning: non-sendable type '[ElementType]' returned by actor-isolated instance method 'flush()' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
63 |         try fileHandle.seek(toOffset: 0)
64 |         let fileData = try fileHandle.readToEnd()
Build complete! (13.58s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SwiftFileStore",
  "name" : "SwiftFileStore",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "14.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftFileStore",
      "targets" : [
        "SwiftFileStore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftFileStoreTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftFileStoreTests",
      "path" : "Tests/SwiftFileStoreTests",
      "sources" : [
        "FileObjectStoreTests.swift",
        "MemoryObjectStoreTests.swift",
        "PersistenceLogTests.swift",
        "TestObject.swift",
        "XCTestCase+.swift"
      ],
      "target_dependencies" : [
        "SwiftFileStore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftFileStore",
      "module_type" : "SwiftTarget",
      "name" : "SwiftFileStore",
      "path" : "Sources/SwiftFileStore",
      "product_memberships" : [
        "SwiftFileStore"
      ],
      "sources" : [
        "FileObjectStore.swift",
        "JSONDataRepresentable.swift",
        "MemoryObjectStore.swift",
        "ObjectStore+Expiry.swift",
        "ObjectStore.swift",
        "Observer.swift",
        "ObserverManager.swift",
        "PersistenceLog.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:081dcf4fb829aea9d08447f4790431afbdfbcc335bfeed728ca69c6f181ae2aa
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.