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 Balam, reference 1.0.0 (d3be40), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 04:11:14 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.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.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/catverse/balam.git
Reference: 1.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/catverse/balam
 * tag               1.0.0      -> FETCH_HEAD
HEAD is now at d3be40e Test replace saves
Cloned https://github.com/catverse/balam.git
Revision (git rev-parse @):
d3be40eec44f3d725ceeef0f913d567740133855
SUCCESS checkout https://github.com/catverse/balam.git at 1.0.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": "balam",
      "name": "Balam",
      "url": "https://github.com/catverse/balam.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/balam",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/catverse/balam.git
[1/868] Fetching balam
Fetched https://github.com/catverse/balam.git from cache (0.65s)
Creating working copy for https://github.com/catverse/balam.git
Working copy of https://github.com/catverse/balam.git resolved at 1.0.0 (d3be40e)
warning: '.resolve-product-dependencies': dependency 'balam' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/catverse/balam.git
https://github.com/catverse/balam.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Balam",
  "name" : "Balam",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "Balam",
      "targets" : [
        "Balam"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Tests",
      "module_type" : "SwiftTarget",
      "name" : "Tests",
      "path" : "Tests",
      "sources" : [
        "AddBatchTests.swift",
        "AddTests.swift",
        "BalamTests.swift",
        "EnumTests.swift",
        "GetTests.swift",
        "Mocks.swift",
        "NodeTests.swift",
        "PropertyTests.swift",
        "RemoveTests.swift",
        "UpdateTests.swift"
      ],
      "target_dependencies" : [
        "Balam"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Balam",
      "module_type" : "SwiftTarget",
      "name" : "Balam",
      "path" : "Sources",
      "product_memberships" : [
        "Balam"
      ],
      "sources" : [
        "Balam.swift",
        "Mirror.swift",
        "Node.swift",
        "Property.swift",
        "Set.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.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-2F0A5646E1D333AE.txt
[3/8] Compiling Balam Set.swift
[4/8] Compiling Balam Node.swift
[5/8] Compiling Balam Property.swift
[6/8] Emitting module Balam
[7/8] Compiling Balam Mirror.swift
[8/8] Compiling Balam Balam.swift
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:20:17: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 18 |                 let nodes = try? JSONDecoder().decode(Set<Node>.self, from: (.init(contentsOf: url) as NSData).decompressed(using: .lzfse) as Data)
 19 |             else {
 20 |                 self.save()
    |                 `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
 21 |                 return
 22 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:29:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 27 |     public func add<T>(_ node: T) where T : Codable {
 28 |         queue.async {
 29 |             self.items.add(node)
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
 30 |             self.save()
 31 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:29:28: warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 25 |     }
 26 |
 27 |     public func add<T>(_ node: T) where T : Codable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 28 |         queue.async {
 29 |             self.items.add(node)
    |                            `- warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 30 |             self.save()
 31 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:36:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 34 |     public func add<T>(_ node: T) where T : Codable & Equatable {
 35 |         queue.async {
 36 |             self.items.add(node) { node == $0 }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
 37 |             self.save()
 38 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:36:28: warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 32 |     }
 33 |
 34 |     public func add<T>(_ node: T) where T : Codable & Equatable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 35 |         queue.async {
 36 |             self.items.add(node) { node == $0 }
    |                            `- warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 37 |             self.save()
 38 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:36:36: warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
 32 |     }
 33 |
 34 |     public func add<T>(_ node: T) where T : Codable & Equatable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 35 |         queue.async {
 36 |             self.items.add(node) { node == $0 }
    |                                    `- warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
 37 |             self.save()
 38 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:43:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 41 |     public func add<T>(_ node: T) where T : Codable & Identifiable {
 42 |         queue.async {
 43 |             self.items.add(node) { node.id == $0.id }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
 44 |             self.save()
 45 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:43:28: warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 39 |     }
 40 |
 41 |     public func add<T>(_ node: T) where T : Codable & Identifiable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 42 |         queue.async {
 43 |             self.items.add(node) { node.id == $0.id }
    |                            `- warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 44 |             self.save()
 45 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:43:36: warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
 39 |     }
 40 |
 41 |     public func add<T>(_ node: T) where T : Codable & Identifiable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 42 |         queue.async {
 43 |             self.items.add(node) { node.id == $0.id }
    |                                    `- warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
 44 |             self.save()
 45 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:50:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 48 |     public func add<T>(_ node: T) where T : Codable & Equatable & Identifiable {
 49 |         queue.async {
 50 |             self.items.add(node) { node.id == $0.id && node == $0 }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
 51 |             self.save()
 52 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:50:28: warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 46 |     }
 47 |
 48 |     public func add<T>(_ node: T) where T : Codable & Equatable & Identifiable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 49 |         queue.async {
 50 |             self.items.add(node) { node.id == $0.id && node == $0 }
    |                            `- warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 51 |             self.save()
 52 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:50:36: warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
 46 |     }
 47 |
 48 |     public func add<T>(_ node: T) where T : Codable & Equatable & Identifiable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 49 |         queue.async {
 50 |             self.items.add(node) { node.id == $0.id && node == $0 }
    |                                    `- warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
 51 |             self.save()
 52 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:50:56: warning: implicit capture of 'node' requires that 'T' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 46 |     }
 47 |
 48 |     public func add<T>(_ node: T) where T : Codable & Equatable & Identifiable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 49 |         queue.async {
 50 |             self.items.add(node) { node.id == $0.id && node == $0 }
    |                                                        `- warning: implicit capture of 'node' requires that 'T' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 51 |             self.save()
 52 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:57:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 55 |     public func add<T>(_ nodes: [T]) where T : Codable {
 56 |         queue.async {
 57 |             self.items.add(nodes)
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
 58 |             self.save()
 59 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:57:28: warning: capture of 'nodes' with non-sendable type '[T]' in a '@Sendable' closure
 53 |     }
 54 |
 55 |     public func add<T>(_ nodes: [T]) where T : Codable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 56 |         queue.async {
 57 |             self.items.add(nodes)
    |                            `- warning: capture of 'nodes' with non-sendable type '[T]' in a '@Sendable' closure
 58 |             self.save()
 59 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:64:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 62 |     public func add<T>(_ nodes: [T]) where T : Codable & Equatable {
 63 |         queue.async {
 64 |             self.items.add(nodes) { $0 == $1 }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
 65 |             self.save()
 66 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:64:28: warning: capture of 'nodes' with non-sendable type '[T]' in a '@Sendable' closure
 60 |     }
 61 |
 62 |     public func add<T>(_ nodes: [T]) where T : Codable & Equatable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 63 |         queue.async {
 64 |             self.items.add(nodes) { $0 == $1 }
    |                            `- warning: capture of 'nodes' with non-sendable type '[T]' in a '@Sendable' closure
 65 |             self.save()
 66 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:71:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 69 |     public func add<T>(_ nodes: [T]) where T : Codable & Identifiable {
 70 |         queue.async {
 71 |             self.items.add(nodes) { $0.id == $1.id }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
 72 |             self.save()
 73 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:71:28: warning: capture of 'nodes' with non-sendable type '[T]' in a '@Sendable' closure
 67 |     }
 68 |
 69 |     public func add<T>(_ nodes: [T]) where T : Codable & Identifiable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 70 |         queue.async {
 71 |             self.items.add(nodes) { $0.id == $1.id }
    |                            `- warning: capture of 'nodes' with non-sendable type '[T]' in a '@Sendable' closure
 72 |             self.save()
 73 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:78:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 76 |     public func add<T>(_ nodes: [T]) where T : Codable & Equatable & Identifiable {
 77 |         queue.async {
 78 |             self.items.add(nodes) { $0.id == $1.id && $0 == $1 }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
 79 |             self.save()
 80 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:78:28: warning: capture of 'nodes' with non-sendable type '[T]' in a '@Sendable' closure
 74 |     }
 75 |
 76 |     public func add<T>(_ nodes: [T]) where T : Codable & Equatable & Identifiable {
    |                     `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 77 |         queue.async {
 78 |             self.items.add(nodes) { $0.id == $1.id && $0 == $1 }
    |                            `- warning: capture of 'nodes' with non-sendable type '[T]' in a '@Sendable' closure
 79 |             self.save()
 80 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:85:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 83 |     public func update<T>(_ node: T) where T : Codable & Equatable {
 84 |         queue.async {
 85 |             self.items.update(node) { node == $0 }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
 86 |             self.save()
 87 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:85:31: warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 81 |     }
 82 |
 83 |     public func update<T>(_ node: T) where T : Codable & Equatable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 84 |         queue.async {
 85 |             self.items.update(node) { node == $0 }
    |                               `- warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 86 |             self.save()
 87 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:85:39: warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
 81 |     }
 82 |
 83 |     public func update<T>(_ node: T) where T : Codable & Equatable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 84 |         queue.async {
 85 |             self.items.update(node) { node == $0 }
    |                                       `- warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
 86 |             self.save()
 87 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:92:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 90 |     public func update<T>(_ node: T) where T : Codable & Identifiable {
 91 |         queue.async {
 92 |             self.items.update(node) { node.id == $0.id }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
 93 |             self.save()
 94 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:92:31: warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 88 |     }
 89 |
 90 |     public func update<T>(_ node: T) where T : Codable & Identifiable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 91 |         queue.async {
 92 |             self.items.update(node) { node.id == $0.id }
    |                               `- warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 93 |             self.save()
 94 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:92:39: warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
 88 |     }
 89 |
 90 |     public func update<T>(_ node: T) where T : Codable & Identifiable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 91 |         queue.async {
 92 |             self.items.update(node) { node.id == $0.id }
    |                                       `- warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
 93 |             self.save()
 94 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:99:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
 97 |     public func update<T>(_ node: T) where T : Codable & Equatable & Identifiable {
 98 |         queue.async {
 99 |             self.items.update(node) { node.id == $0.id && node == $0 }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
100 |             self.save()
101 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:99:31: warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
 95 |     }
 96 |
 97 |     public func update<T>(_ node: T) where T : Codable & Equatable & Identifiable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 98 |         queue.async {
 99 |             self.items.update(node) { node.id == $0.id && node == $0 }
    |                               `- warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
100 |             self.save()
101 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:99:39: warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
 95 |     }
 96 |
 97 |     public func update<T>(_ node: T) where T : Codable & Equatable & Identifiable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 98 |         queue.async {
 99 |             self.items.update(node) { node.id == $0.id && node == $0 }
    |                                       `- warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
100 |             self.save()
101 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:99:59: warning: implicit capture of 'node' requires that 'T' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 95 |     }
 96 |
 97 |     public func update<T>(_ node: T) where T : Codable & Equatable & Identifiable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 98 |         queue.async {
 99 |             self.items.update(node) { node.id == $0.id && node == $0 }
    |                                                           `- warning: implicit capture of 'node' requires that 'T' conforms to 'Sendable'; this is an error in the Swift 6 language mode
100 |             self.save()
101 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:106:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
104 |     public func update<T>(_ type: T.Type, with: @escaping (inout T) -> Void) where T : Codable {
105 |         queue.async {
106 |             self.items.update(type, with: with)
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
107 |             self.save()
108 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:106:43: warning: capture of 'with' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
104 |     public func update<T>(_ type: T.Type, with: @escaping (inout T) -> Void) where T : Codable {
105 |         queue.async {
106 |             self.items.update(type, with: with)
    |                                           |- warning: capture of 'with' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
    |                                           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
107 |             self.save()
108 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:113:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
111 |     public func replace<T>(_ type: T.Type, with: T) where T : Codable {
112 |         queue.async {
113 |             self.items.replace(type, with: with)
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
114 |             self.save()
115 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:113:44: warning: capture of 'with' with non-sendable type 'T' in a '@Sendable' closure
109 |     }
110 |
111 |     public func replace<T>(_ type: T.Type, with: T) where T : Codable {
    |                         `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
112 |         queue.async {
113 |             self.items.replace(type, with: with)
    |                                            `- warning: capture of 'with' with non-sendable type 'T' in a '@Sendable' closure
114 |             self.save()
115 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:120:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
118 |     public func remove<T>(_ node: T) where T : Codable {
119 |         queue.async {
120 |             self.items.delete(node)
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
121 |             self.save()
122 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:120:31: warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
116 |     }
117 |
118 |     public func remove<T>(_ node: T) where T : Codable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
119 |         queue.async {
120 |             self.items.delete(node)
    |                               `- warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
121 |             self.save()
122 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:127:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
125 |     public func remove<T>(_ node: T) where T : Codable & Equatable {
126 |         queue.async {
127 |             self.items.delete(node) { node == $0 }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
128 |             self.save()
129 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:127:31: warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
123 |     }
124 |
125 |     public func remove<T>(_ node: T) where T : Codable & Equatable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
126 |         queue.async {
127 |             self.items.delete(node) { node == $0 }
    |                               `- warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
128 |             self.save()
129 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:127:39: warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
123 |     }
124 |
125 |     public func remove<T>(_ node: T) where T : Codable & Equatable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
126 |         queue.async {
127 |             self.items.delete(node) { node == $0 }
    |                                       `- warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
128 |             self.save()
129 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:134:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
132 |     public func remove<T>(_ node: T) where T : Codable & Identifiable {
133 |         queue.async {
134 |             self.items.delete(node) { node.id == $0.id }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
135 |             self.save()
136 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:134:31: warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
130 |     }
131 |
132 |     public func remove<T>(_ node: T) where T : Codable & Identifiable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
133 |         queue.async {
134 |             self.items.delete(node) { node.id == $0.id }
    |                               `- warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
135 |             self.save()
136 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:134:39: warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
130 |     }
131 |
132 |     public func remove<T>(_ node: T) where T : Codable & Identifiable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
133 |         queue.async {
134 |             self.items.delete(node) { node.id == $0.id }
    |                                       `- warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
135 |             self.save()
136 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:141:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
139 |     public func remove<T>(_ node: T) where T : Codable & Equatable & Identifiable {
140 |         queue.async {
141 |             self.items.delete(node) { node.id == $0.id && node == $0 }
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
142 |             self.save()
143 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:141:31: warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
137 |     }
138 |
139 |     public func remove<T>(_ node: T) where T : Codable & Equatable & Identifiable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
140 |         queue.async {
141 |             self.items.delete(node) { node.id == $0.id && node == $0 }
    |                               `- warning: capture of 'node' with non-sendable type 'T' in a '@Sendable' closure
142 |             self.save()
143 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:141:39: warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
137 |     }
138 |
139 |     public func remove<T>(_ node: T) where T : Codable & Equatable & Identifiable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
140 |         queue.async {
141 |             self.items.delete(node) { node.id == $0.id && node == $0 }
    |                                       `- warning: capture of 'node' with non-sendable type 'T' in an isolated closure; this is an error in the Swift 6 language mode
142 |             self.save()
143 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:141:59: warning: implicit capture of 'node' requires that 'T' conforms to 'Sendable'; this is an error in the Swift 6 language mode
137 |     }
138 |
139 |     public func remove<T>(_ node: T) where T : Codable & Equatable & Identifiable {
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
140 |         queue.async {
141 |             self.items.delete(node) { node.id == $0.id && node == $0 }
    |                                                           `- warning: implicit capture of 'node' requires that 'T' conforms to 'Sendable'; this is an error in the Swift 6 language mode
142 |             self.save()
143 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:148:13: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
146 |     public func remove<T>(_ type: T.Type, when: @escaping (T) -> Bool) where T : Codable {
147 |         queue.async {
148 |             self.items.delete(when)
    |             `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
149 |             self.save()
150 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:148:31: warning: capture of 'when' with non-sendable type '(T) -> Bool' in a '@Sendable' closure
146 |     public func remove<T>(_ type: T.Type, when: @escaping (T) -> Bool) where T : Codable {
147 |         queue.async {
148 |             self.items.delete(when)
    |                               |- warning: capture of 'when' with non-sendable type '(T) -> Bool' in a '@Sendable' closure
    |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
149 |             self.save()
150 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:156:57: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
154 |         .init { promise in
155 |             self.queue.async {
156 |                 let result = Result<[T], Never>.success(self.items.first { $0 == type }?.decoding() ?? [])
    |                                                         `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
157 |                 DispatchQueue.main.async {
158 |                     promise(result)
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:158:21: warning: capture of 'promise' with non-sendable type '(Result<[T], Never>) -> Void' in a '@Sendable' closure
156 |                 let result = Result<[T], Never>.success(self.items.first { $0 == type }?.decoding() ?? [])
157 |                 DispatchQueue.main.async {
158 |                     promise(result)
    |                     |- warning: capture of 'promise' with non-sendable type '(Result<[T], Never>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
159 |                 }
160 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:167:57: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
165 |         .init { promise in
166 |             self.queue.async {
167 |                 let result = Result<[T], Never>.success(self.items.nodes(type, isIncluded: isIncluded))
    |                                                         `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
168 |                 DispatchQueue.main.async {
169 |                     promise(result)
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:167:92: warning: capture of 'isIncluded' with non-sendable type '(T) -> Bool' in a '@Sendable' closure
165 |         .init { promise in
166 |             self.queue.async {
167 |                 let result = Result<[T], Never>.success(self.items.nodes(type, isIncluded: isIncluded))
    |                                                                                            |- warning: capture of 'isIncluded' with non-sendable type '(T) -> Bool' in a '@Sendable' closure
    |                                                                                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
168 |                 DispatchQueue.main.async {
169 |                     promise(result)
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:169:21: warning: capture of 'promise' with non-sendable type '(Result<[T], Never>) -> Void' in a '@Sendable' closure
167 |                 let result = Result<[T], Never>.success(self.items.nodes(type, isIncluded: isIncluded))
168 |                 DispatchQueue.main.async {
169 |                     promise(result)
    |                     |- warning: capture of 'promise' with non-sendable type '(Result<[T], Never>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
170 |                 }
171 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:178:63: warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
  2 | import Combine
  3 |
  4 | public final class Balam {
    |                    `- note: class 'Balam' does not conform to the 'Sendable' protocol
  5 |     private(set) var items = Set<Node>()
  6 |     private let url: URL
    :
176 |         .init { promise in
177 |             self.queue.async {
178 |                 let result = Result<Set<Node>, Never>.success(self.items)
    |                                                               `- warning: capture of 'self' with non-sendable type 'Balam' in a '@Sendable' closure
179 |                 DispatchQueue.main.async {
180 |                     promise(result)
/Users/admin/builder/spi-builder-workspace/Sources/Balam.swift:180:21: warning: capture of 'promise' with non-sendable type '(Result<Set<Node>, Never>) -> Void' in a '@Sendable' closure
178 |                 let result = Result<Set<Node>, Never>.success(self.items)
179 |                 DispatchQueue.main.async {
180 |                     promise(result)
    |                     |- warning: capture of 'promise' with non-sendable type '(Result<Set<Node>, Never>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
181 |                 }
182 |             }
Build complete! (5.25s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Balam",
  "name" : "Balam",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "Balam",
      "targets" : [
        "Balam"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Tests",
      "module_type" : "SwiftTarget",
      "name" : "Tests",
      "path" : "Tests",
      "sources" : [
        "AddBatchTests.swift",
        "AddTests.swift",
        "BalamTests.swift",
        "EnumTests.swift",
        "GetTests.swift",
        "Mocks.swift",
        "NodeTests.swift",
        "PropertyTests.swift",
        "RemoveTests.swift",
        "UpdateTests.swift"
      ],
      "target_dependencies" : [
        "Balam"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Balam",
      "module_type" : "SwiftTarget",
      "name" : "Balam",
      "path" : "Sources",
      "product_memberships" : [
        "Balam"
      ],
      "sources" : [
        "Balam.swift",
        "Mirror.swift",
        "Node.swift",
        "Property.swift",
        "Set.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
Done.