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 main (b6c40a), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 22:45:22 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.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/pjechris/CohesionKit.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/pjechris/CohesionKit
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at b6c40a8 tech(registry): Use Identifier object (#75)
Cloned https://github.com/pjechris/CohesionKit.git
Revision (git rev-parse @):
b6c40a80bd30f5fdc5b75d624ec4e3aba7730a65
SUCCESS checkout https://github.com/pjechris/CohesionKit.git at main
========================================
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/2680] 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 main (b6c40a8)
warning: '.resolve-product-dependencies': dependency 'cohesionkit' 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/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",
        "Identifier.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.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/23] 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/25] Compiling CohesionKit AliasKey.swift
[5/25] Compiling CohesionKit EntityObserver+Publisher.swift
[6/25] Compiling CohesionKit Publisher+CohesionKit.swift
[7/25] Compiling CohesionKit NestedEntitiesVisitor.swift
[8/25] Compiling CohesionKit Weak.swift
[9/25] 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 |
[10/25] 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 |
[11/25] Compiling CohesionKit EntityStore.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 |
[12/25] Compiling CohesionKit ObserverRegistry.swift
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:92:40: warning: capture of 'changes' with non-sendable type '[Identifier : any AnyWeak]' in a '@Sendable' closure
 90 |
 91 |         queue.async {
 92 |             for (hashKey, weakNode) in changes {
    |                                        `- warning: capture of 'changes' with non-sendable type '[Identifier : any AnyWeak]' in a '@Sendable' closure
 93 |                 // node was released: no one to notify
 94 |                 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:98:32: warning: capture of 'handlers' with non-sendable type '[Identifier : Set<ObserverRegistry.Handler>]' in a '@Sendable' closure
 96 |                 }
 97 |
 98 |                 for handler in handlers[hashKey] ?? [] {
    |                                `- warning: capture of 'handlers' with non-sendable type '[Identifier : Set<ObserverRegistry.Handler>]' in a '@Sendable' closure
 99 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
100 |                     guard !executedHandlers.contains(handler) else {
    :
123 | extension ObserverRegistry {
124 |     /// Handle observation for a given node
125 |     class Handler: Hashable {
    |           `- note: class 'Handler' does not conform to the 'Sendable' protocol
126 |         let executor: (Any) -> Void
127 |
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:100:28: warning: capture of 'executedHandlers' with non-sendable type 'Set<ObserverRegistry.Handler>' in a '@Sendable' closure
 98 |                 for handler in handlers[hashKey] ?? [] {
 99 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
100 |                     guard !executedHandlers.contains(handler) else {
    |                            `- warning: capture of 'executedHandlers' with non-sendable type 'Set<ObserverRegistry.Handler>' in a '@Sendable' closure
101 |                         continue
102 |                     }
    :
123 | extension ObserverRegistry {
124 |     /// Handle observation for a given node
125 |     class Handler: Hashable {
    |           `- note: class 'Handler' does not conform to the 'Sendable' protocol
126 |         let executor: (Any) -> Void
127 |
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:100:28: warning: reference to captured var 'executedHandlers' in concurrently-executing code
 98 |                 for handler in handlers[hashKey] ?? [] {
 99 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
100 |                     guard !executedHandlers.contains(handler) else {
    |                            `- warning: reference to captured var 'executedHandlers' in concurrently-executing code
101 |                         continue
102 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:105:21: warning: mutation of captured var 'executedHandlers' in concurrently-executing code
103 |
104 |                     handler(node)
105 |                     executedHandlers.insert(handler)
    |                     `- warning: mutation of captured var 'executedHandlers' in concurrently-executing code
106 |                 }
107 |             }
[13/25] Compiling CohesionKit Subscription.swift
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:92:40: warning: capture of 'changes' with non-sendable type '[Identifier : any AnyWeak]' in a '@Sendable' closure
 90 |
 91 |         queue.async {
 92 |             for (hashKey, weakNode) in changes {
    |                                        `- warning: capture of 'changes' with non-sendable type '[Identifier : any AnyWeak]' in a '@Sendable' closure
 93 |                 // node was released: no one to notify
 94 |                 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:98:32: warning: capture of 'handlers' with non-sendable type '[Identifier : Set<ObserverRegistry.Handler>]' in a '@Sendable' closure
 96 |                 }
 97 |
 98 |                 for handler in handlers[hashKey] ?? [] {
    |                                `- warning: capture of 'handlers' with non-sendable type '[Identifier : Set<ObserverRegistry.Handler>]' in a '@Sendable' closure
 99 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
100 |                     guard !executedHandlers.contains(handler) else {
    :
123 | extension ObserverRegistry {
124 |     /// Handle observation for a given node
125 |     class Handler: Hashable {
    |           `- note: class 'Handler' does not conform to the 'Sendable' protocol
126 |         let executor: (Any) -> Void
127 |
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:100:28: warning: capture of 'executedHandlers' with non-sendable type 'Set<ObserverRegistry.Handler>' in a '@Sendable' closure
 98 |                 for handler in handlers[hashKey] ?? [] {
 99 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
100 |                     guard !executedHandlers.contains(handler) else {
    |                            `- warning: capture of 'executedHandlers' with non-sendable type 'Set<ObserverRegistry.Handler>' in a '@Sendable' closure
101 |                         continue
102 |                     }
    :
123 | extension ObserverRegistry {
124 |     /// Handle observation for a given node
125 |     class Handler: Hashable {
    |           `- note: class 'Handler' does not conform to the 'Sendable' protocol
126 |         let executor: (Any) -> Void
127 |
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:100:28: warning: reference to captured var 'executedHandlers' in concurrently-executing code
 98 |                 for handler in handlers[hashKey] ?? [] {
 99 |                     // if some handlers are used multiple times (like for collections), make sure we don't notify them multiple times
100 |                     guard !executedHandlers.contains(handler) else {
    |                            `- warning: reference to captured var 'executedHandlers' in concurrently-executing code
101 |                         continue
102 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/CohesionKit/Observer/ObserverRegistry.swift:105:21: warning: mutation of captured var 'executedHandlers' in concurrently-executing code
103 |
104 |                     handler(node)
105 |                     executedHandlers.insert(handler)
    |                     `- warning: mutation of captured var 'executedHandlers' in concurrently-executing code
106 |                 }
107 |             }
[14/25] Compiling CohesionKit Date+Stamp.swift
[15/25] Compiling CohesionKit StampError.swift
[16/25] Compiling CohesionKit EntityContext.swift
[17/25] Compiling CohesionKit EntityStoreVisitor.swift
[18/25] Compiling CohesionKit Logger.swift
[19/25] Compiling CohesionKit EntityObserver.swift
[20/25] Compiling CohesionKit AliasContainer.swift
[21/25] Compiling CohesionKit AliasStorage.swift
[22/25] Compiling CohesionKit Identifier.swift
[23/25] Compiling CohesionKit PartialIdentifiableKeyPath.swift
[24/25] Compiling CohesionKit EntitiesStorage.swift
[25/25] Compiling CohesionKit EntityNode.swift
Build complete! (5.96s)
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",
        "Identifier.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.