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 CohesionKit, reference 0.17.0 (7e9630), with Swift 6.0 for macOS (SPM) on 14 Mar 2025 09:27:42 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.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.60.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/pjechris/CohesionKit.git
Reference: 0.17.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/pjechris/CohesionKit
 * tag               0.17.0     -> FETCH_HEAD
HEAD is now at 7e96304 tech(Observable) Remove observable object (#74)
Cloned https://github.com/pjechris/CohesionKit.git
Revision (git rev-parse @):
7e963048dc8be9b2848df748af27843caaffef05
SUCCESS checkout https://github.com/pjechris/CohesionKit.git at 0.17.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": "cohesionkit",
      "name": "CohesionKit",
      "url": "https://github.com/pjechris/CohesionKit.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/CohesionKit",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/pjechris/CohesionKit.git
[1/2679] Fetching cohesionkit
Fetched https://github.com/pjechris/CohesionKit.git from cache (1.10s)
Creating working copy for https://github.com/pjechris/CohesionKit.git
Working copy of https://github.com/pjechris/CohesionKit.git resolved at 0.17.0 (7e96304)
warning: '.resolve-product-dependencies': dependency 'cohesionkit' 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/pjechris/CohesionKit.git
https://github.com/pjechris/CohesionKit.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "CohesionKit",
  "name" : "CohesionKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "ios",
      "version" : "14.0"
    }
  ],
  "products" : [
    {
      "name" : "CohesionKit",
      "targets" : [
        "CohesionKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CohesionKitTests",
      "module_type" : "SwiftTarget",
      "name" : "CohesionKitTests",
      "path" : "Tests/CohesionKitTests",
      "sources" : [
        "Combine/EntityObserverTests+Publisher.swift",
        "EntityStoreTests.swift",
        "KeyPath/PartialIdentifiableKeyPathTests.swift",
        "LoggerMock.swift",
        "Observer/ObserverRegistryTests.swift",
        "Observer/Stub/ObserverRegistryStub.swift",
        "RootFixture.swift",
        "Storage/AliasContainerTests.swift",
        "Storage/AliasStorageTests.swift",
        "Storage/EntitiesStorageTests.swift",
        "Storage/EntityNodeTests.swift",
        "Visitor/EntityStoreVisitorTests.swift"
      ],
      "target_dependencies" : [
        "CohesionKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CohesionKit",
      "module_type" : "SwiftTarget",
      "name" : "CohesionKit",
      "path" : "Sources/CohesionKit",
      "product_memberships" : [
        "CohesionKit"
      ],
      "sources" : [
        "AliasKey.swift",
        "Combine/EntityObserver+Publisher.swift",
        "Combine/Publisher+CohesionKit.swift",
        "Entity/Aggregate.swift",
        "Entity/EntityWrapper.swift",
        "EntityStore.swift",
        "KeyPath/PartialIdentifiableKeyPath.swift",
        "Logger.swift",
        "Observer/EntityObserver.swift",
        "Observer/ObserverRegistry.swift",
        "Observer/Subscription.swift",
        "Stamp/Date+Stamp.swift",
        "Stamp/StampError.swift",
        "Storage/AliasContainer.swift",
        "Storage/AliasStorage.swift",
        "Storage/EntitiesStorage.swift",
        "Storage/EntityNode.swift",
        "Visitor/EntityContext.swift",
        "Visitor/EntityStoreVisitor.swift",
        "Visitor/NestedEntitiesVisitor.swift",
        "Weak.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.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-5BDAB9E9C0126B9D.txt
[3/22] Emitting module CohesionKit
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Entity/EntityWrapper.swift:1:2: warning: unknown platform 'unavailable' for attribute 'available'
 1 | @available(unavailable, renamed: "EntityWrapper")
   |  `- warning: unknown platform 'unavailable' for attribute 'available'
 2 | public typealias EntityEnumWrapper = EntityWrapper
 3 |
[4/24] Compiling CohesionKit NestedEntitiesVisitor.swift
[5/24] Compiling CohesionKit Weak.swift
[6/24] Compiling CohesionKit AliasKey.swift
[7/24] Compiling CohesionKit EntityObserver+Publisher.swift
[8/24] Compiling CohesionKit Publisher+CohesionKit.swift
[9/24] Compiling CohesionKit Logger.swift
[10/24] Compiling CohesionKit EntityObserver.swift
[11/24] Compiling CohesionKit EntityStore.swift
[12/24] Compiling CohesionKit PartialIdentifiableKeyPath.swift
[13/24] Compiling CohesionKit Date+Stamp.swift
[14/24] Compiling CohesionKit StampError.swift
[15/24] Compiling CohesionKit EntityContext.swift
[16/24] Compiling CohesionKit EntityStoreVisitor.swift
[17/24] Compiling CohesionKit EntitiesStorage.swift
[18/24] Compiling CohesionKit EntityNode.swift
[19/24] Compiling CohesionKit Aggregate.swift
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Entity/EntityWrapper.swift:1:2: warning: unknown platform 'unavailable' for attribute 'available'
 1 | @available(unavailable, renamed: "EntityWrapper")
   |  `- warning: unknown platform 'unavailable' for attribute 'available'
 2 | public typealias EntityEnumWrapper = EntityWrapper
 3 |
[20/24] Compiling CohesionKit EntityWrapper.swift
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Entity/EntityWrapper.swift:1:2: warning: unknown platform 'unavailable' for attribute 'available'
 1 | @available(unavailable, renamed: "EntityWrapper")
   |  `- warning: unknown platform 'unavailable' for attribute 'available'
 2 | public typealias EntityEnumWrapper = EntityWrapper
 3 |
[21/24] Compiling CohesionKit AliasContainer.swift
[22/24] Compiling CohesionKit AliasStorage.swift
[23/24] Compiling CohesionKit ObserverRegistry.swift
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:107:40: warning: capture of 'changes' with non-sendable type '[ObjectKey : any AnyWeak]' (aka 'Dictionary<Int, any AnyWeak>') in a `@Sendable` closure
105 |
106 |         queue.async {
107 |             for (hashKey, weakNode) in changes {
    |                                        `- warning: capture of 'changes' with non-sendable type '[ObjectKey : any AnyWeak]' (aka 'Dictionary<Int, any AnyWeak>') in a `@Sendable` closure
108 |                 // node was released: no one to notify
109 |                 guard let node = weakNode.unwrap() else {
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Weak.swift:3:10: note: protocol 'AnyWeak' does not conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | protocol AnyWeak: AnyObject {
   |          `- note: protocol 'AnyWeak' does not conform to the 'Sendable' protocol
 4 |     func unwrap() -> Any?
 5 | }
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:113:32: warning: capture of 'handlers' with non-sendable type '[ObjectKey : Set<ObserverRegistry.Handler>]' (aka 'Dictionary<Int, Set<ObserverRegistry.Handler>>') in a `@Sendable` closure
111 |                 }
112 |
113 |                 for handler in handlers[hashKey] ?? [] {
    |                                `- warning: capture of 'handlers' with non-sendable type '[ObjectKey : Set<ObserverRegistry.Handler>]' (aka 'Dictionary<Int, Set<ObserverRegistry.Handler>>') in a `@Sendable` closure
114 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
115 |                     guard !executedHandlers.contains(handler) else {
    :
138 | extension ObserverRegistry {
139 |     /// Handle observation for a given node
140 |     class Handler: Hashable {
    |           `- note: class 'Handler' does not conform to the 'Sendable' protocol
141 |         let executor: (Any) -> Void
142 |
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:115:28: warning: capture of 'executedHandlers' with non-sendable type 'Set<ObserverRegistry.Handler>' in a `@Sendable` closure
113 |                 for handler in handlers[hashKey] ?? [] {
114 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
115 |                     guard !executedHandlers.contains(handler) else {
    |                            `- warning: capture of 'executedHandlers' with non-sendable type 'Set<ObserverRegistry.Handler>' in a `@Sendable` closure
116 |                         continue
117 |                     }
    :
138 | extension ObserverRegistry {
139 |     /// Handle observation for a given node
140 |     class Handler: Hashable {
    |           `- note: class 'Handler' does not conform to the 'Sendable' protocol
141 |         let executor: (Any) -> Void
142 |
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:115:28: warning: reference to captured var 'executedHandlers' in concurrently-executing code
113 |                 for handler in handlers[hashKey] ?? [] {
114 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
115 |                     guard !executedHandlers.contains(handler) else {
    |                            `- warning: reference to captured var 'executedHandlers' in concurrently-executing code
116 |                         continue
117 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:120:21: warning: mutation of captured var 'executedHandlers' in concurrently-executing code
118 |
119 |                     handler(node)
120 |                     executedHandlers.insert(handler)
    |                     `- warning: mutation of captured var 'executedHandlers' in concurrently-executing code
121 |                 }
122 |             }
[24/24] Compiling CohesionKit Subscription.swift
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:107:40: warning: capture of 'changes' with non-sendable type '[ObjectKey : any AnyWeak]' (aka 'Dictionary<Int, any AnyWeak>') in a `@Sendable` closure
105 |
106 |         queue.async {
107 |             for (hashKey, weakNode) in changes {
    |                                        `- warning: capture of 'changes' with non-sendable type '[ObjectKey : any AnyWeak]' (aka 'Dictionary<Int, any AnyWeak>') in a `@Sendable` closure
108 |                 // node was released: no one to notify
109 |                 guard let node = weakNode.unwrap() else {
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Weak.swift:3:10: note: protocol 'AnyWeak' does not conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | protocol AnyWeak: AnyObject {
   |          `- note: protocol 'AnyWeak' does not conform to the 'Sendable' protocol
 4 |     func unwrap() -> Any?
 5 | }
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:113:32: warning: capture of 'handlers' with non-sendable type '[ObjectKey : Set<ObserverRegistry.Handler>]' (aka 'Dictionary<Int, Set<ObserverRegistry.Handler>>') in a `@Sendable` closure
111 |                 }
112 |
113 |                 for handler in handlers[hashKey] ?? [] {
    |                                `- warning: capture of 'handlers' with non-sendable type '[ObjectKey : Set<ObserverRegistry.Handler>]' (aka 'Dictionary<Int, Set<ObserverRegistry.Handler>>') in a `@Sendable` closure
114 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
115 |                     guard !executedHandlers.contains(handler) else {
    :
138 | extension ObserverRegistry {
139 |     /// Handle observation for a given node
140 |     class Handler: Hashable {
    |           `- note: class 'Handler' does not conform to the 'Sendable' protocol
141 |         let executor: (Any) -> Void
142 |
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:115:28: warning: capture of 'executedHandlers' with non-sendable type 'Set<ObserverRegistry.Handler>' in a `@Sendable` closure
113 |                 for handler in handlers[hashKey] ?? [] {
114 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
115 |                     guard !executedHandlers.contains(handler) else {
    |                            `- warning: capture of 'executedHandlers' with non-sendable type 'Set<ObserverRegistry.Handler>' in a `@Sendable` closure
116 |                         continue
117 |                     }
    :
138 | extension ObserverRegistry {
139 |     /// Handle observation for a given node
140 |     class Handler: Hashable {
    |           `- note: class 'Handler' does not conform to the 'Sendable' protocol
141 |         let executor: (Any) -> Void
142 |
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:115:28: warning: reference to captured var 'executedHandlers' in concurrently-executing code
113 |                 for handler in handlers[hashKey] ?? [] {
114 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
115 |                     guard !executedHandlers.contains(handler) else {
    |                            `- warning: reference to captured var 'executedHandlers' in concurrently-executing code
116 |                         continue
117 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:120:21: warning: mutation of captured var 'executedHandlers' in concurrently-executing code
118 |
119 |                     handler(node)
120 |                     executedHandlers.insert(handler)
    |                     `- warning: mutation of captured var 'executedHandlers' in concurrently-executing code
121 |                 }
122 |             }
Build complete! (13.05s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "CohesionKit",
  "name" : "CohesionKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "ios",
      "version" : "14.0"
    }
  ],
  "products" : [
    {
      "name" : "CohesionKit",
      "targets" : [
        "CohesionKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CohesionKitTests",
      "module_type" : "SwiftTarget",
      "name" : "CohesionKitTests",
      "path" : "Tests/CohesionKitTests",
      "sources" : [
        "Combine/EntityObserverTests+Publisher.swift",
        "EntityStoreTests.swift",
        "KeyPath/PartialIdentifiableKeyPathTests.swift",
        "LoggerMock.swift",
        "Observer/ObserverRegistryTests.swift",
        "Observer/Stub/ObserverRegistryStub.swift",
        "RootFixture.swift",
        "Storage/AliasContainerTests.swift",
        "Storage/AliasStorageTests.swift",
        "Storage/EntitiesStorageTests.swift",
        "Storage/EntityNodeTests.swift",
        "Visitor/EntityStoreVisitorTests.swift"
      ],
      "target_dependencies" : [
        "CohesionKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CohesionKit",
      "module_type" : "SwiftTarget",
      "name" : "CohesionKit",
      "path" : "Sources/CohesionKit",
      "product_memberships" : [
        "CohesionKit"
      ],
      "sources" : [
        "AliasKey.swift",
        "Combine/EntityObserver+Publisher.swift",
        "Combine/Publisher+CohesionKit.swift",
        "Entity/Aggregate.swift",
        "Entity/EntityWrapper.swift",
        "EntityStore.swift",
        "KeyPath/PartialIdentifiableKeyPath.swift",
        "Logger.swift",
        "Observer/EntityObserver.swift",
        "Observer/ObserverRegistry.swift",
        "Observer/Subscription.swift",
        "Stamp/Date+Stamp.swift",
        "Stamp/StampError.swift",
        "Storage/AliasContainer.swift",
        "Storage/AliasStorage.swift",
        "Storage/EntitiesStorage.swift",
        "Storage/EntityNode.swift",
        "Visitor/EntityContext.swift",
        "Visitor/EntityStoreVisitor.swift",
        "Visitor/NestedEntitiesVisitor.swift",
        "Weak.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.