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 v0.7.0 (61aa52), with Swift 6.0 for macOS (SPM) on 30 Nov 2024 13:40:43 UTC.

Swift 6 data race errors: 5

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -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

Build Log

========================================
RunAll
========================================
Builder version: 4.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/juyan/swift-filestore.git
Reference: v0.7.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/juyan/swift-filestore
 * tag               v0.7.0     -> FETCH_HEAD
HEAD is now at 61aa52c platform support (#9)
Cloned https://github.com/juyan/swift-filestore.git
Revision (git rev-parse @):
61aa52c514e39a70c17ce6421d70807f46282154
SUCCESS checkout https://github.com/juyan/swift-filestore.git at v0.7.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "swift-filestore",
      "name": "SwiftFileStore",
      "url": "https://github.com/juyan/swift-filestore.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-filestore",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/juyan/swift-filestore.git
[1/204] Fetching swift-filestore
Fetched https://github.com/juyan/swift-filestore.git from cache (0.63s)
Creating working copy for https://github.com/juyan/swift-filestore.git
Working copy of https://github.com/juyan/swift-filestore.git resolved at v0.7.0 (61aa52c)
warning: '.resolve-product-dependencies': dependency 'swift-filestore' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/juyan/swift-filestore.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SwiftFileStore",
  "name" : "SwiftFileStore",
  "path" : "/Users/admin/builder/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 ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -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
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--7754E27361AE5C74.txt
[3/11] Compiling SwiftFileStore ObjectStore.swift
[4/11] Compiling SwiftFileStore ObjectStore+Expiry.swift
[5/11] Compiling SwiftFileStore ObserverManager.swift
[6/11] Compiling SwiftFileStore MemoryObjectStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:14: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
12 |     public init() {}
13 |
14 |     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
15 |         objects[namespace]?[key].flatMap { try? T.from(data: $0) }
16 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:18: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
16 |     }
17 |
18 |     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
19 |         let data = try object.serialize()
20 |         objects[namespace, default: [:]][key] = data
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/ObjectStore.swift:29:16: note: consider making generic parameter 'T' conform to the 'Sendable' protocol
27 |     ///   - namespace: namespace of the object, such as "Cats"
28 |     ///   - object: The object to write
29 |     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
30 |
31 |     /// Remove an object from storage
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:38: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
36 |     }
37 |
38 |     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
39 |         let observer = await observerManager.getObserver(key: key, namespace: namespace)
40 |         do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:39: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
37 |
38 |     public func observe<T>(key: String, namespace: String, objectType: T.Type) async -> AsyncThrowingStream<T?, Error> where T: DataRepresentable {
39 |         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
40 |         do {
41 |             let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
/Users/admin/builder/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
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:55:21: warning: capture of 'observer' with non-sendable type 'Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
53 |                 }
54 |                 continuation.onTermination = { @Sendable _ in
55 |                     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
56 |                 }
57 |             }
/Users/admin/builder/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
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:21:31: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
19 |         let data = try object.serialize()
20 |         objects[namespace, default: [:]][key] = data
21 |         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
22 |     }
23 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:43:30: warning: sending 'existingValue' risks causing data races; this is an error in the Swift 6 language mode
41 |             let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
42 |             return AsyncThrowingStream { continuation in
43 |                 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
44 |                 let callbackID = UUID().uuidString
45 |                 observer.registerCallback(id: callbackID) { data in
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:47: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
45 |                 observer.registerCallback(id: callbackID) { data in
46 |                     if let d = data, let typed = d as? T {
47 |                         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
48 |                     } else if data == nil {
49 |                         continuation.yield(nil)
[7/11] Compiling SwiftFileStore PersistenceLog.swift
/Users/admin/builder/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()
/Users/admin/builder/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()
[8/11] Compiling SwiftFileStore Observer.swift
[9/11] Compiling SwiftFileStore FileObjectStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:114: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
112 | }
113 |
114 | 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
115 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:71: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
 69 |
 70 |     public func observe<T>(key: String, namespace: String, objectType: T.Type) async -> AsyncThrowingStream<T?, Error> where T: DataRepresentable {
 71 |         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
 72 |         do {
 73 |             let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
/Users/admin/builder/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
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:87:21: warning: capture of 'observer' with non-sendable type 'Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 85 |                 }
 86 |                 continuation.onTermination = { @Sendable _ in
 87 |                     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
 88 |                 }
 89 |             }
/Users/admin/builder/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
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:41: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
 39 |         try FileManager.default.createDirIfNotExist(url: dirURL)
 40 |         try object.serialize().write(to: fileURL)
 41 |         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
 42 |             await observerManager.publishValue(key: key, namespace: namespace, value: object)
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 43 |         }
 44 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:42:35: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
 40 |         try object.serialize().write(to: fileURL)
 41 |         Task {
 42 |             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
 43 |         }
 44 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:52: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
 50 |             try FileManager.default.removeItem(at: fileURL)
 51 |         }
 52 |         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
 53 |             await observerManager.publishRemoval(namespace: namespace, key: key)
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 54 |         }
 55 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:60: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
 58 |         let dirURL = rootDir.appendingPathComponent(namespace)
 59 |         try FileManager.default.removeItem(at: dirURL)
 60 |         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
 61 |             await observerManager.publishRemoval(namespace: namespace)
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 62 |         }
 63 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:75:30: warning: sending 'existingValue' risks causing data races; this is an error in the Swift 6 language mode
 73 |             let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
 74 |             return AsyncThrowingStream { continuation in
 75 |                 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
 76 |                 let callbackID = UUID().uuidString
 77 |                 observer.registerCallback(id: callbackID) { data in
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:79: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
 77 |                 observer.registerCallback(id: callbackID) { data in
 78 |                     if let d = data, let typed = d as? T {
 79 |                         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
 80 |                     } else if data == nil {
 81 |                         continuation.yield(nil)
[10/11] Emitting module SwiftFileStore
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:114: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
112 | }
113 |
114 | 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
115 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:14: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
12 |     public init() {}
13 |
14 |     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
15 |         objects[namespace]?[key].flatMap { try? T.from(data: $0) }
16 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:18: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
16 |     }
17 |
18 |     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
19 |         let data = try object.serialize()
20 |         objects[namespace, default: [:]][key] = data
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/ObjectStore.swift:29:16: note: consider making generic parameter 'T' conform to the 'Sendable' protocol
27 |     ///   - namespace: namespace of the object, such as "Cats"
28 |     ///   - object: The object to write
29 |     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
30 |
31 |     /// Remove an object from storage
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:38: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
36 |     }
37 |
38 |     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
39 |         let observer = await observerManager.getObserver(key: key, namespace: namespace)
40 |         do {
/Users/admin/builder/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()
/Users/admin/builder/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()
[11/11] Compiling SwiftFileStore JSONDataRepresentable.swift
Build complete! (13.42s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SwiftFileStore",
  "name" : "SwiftFileStore",
  "path" : "/Users/admin/builder/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"
}
Done.