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 Eazy, reference main (8bc6d6), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 23:45:14 UTC.

Swift 6 data race errors: 4

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/bangerang/swift-eazy.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bangerang/swift-eazy
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 8bc6d6c Add license
Cloned https://github.com/bangerang/swift-eazy.git
Revision (git rev-parse @):
8bc6d6c7e53329c31be18cca0f17dbe83be49e62
SUCCESS checkout https://github.com/bangerang/swift-eazy.git at main
Fetching https://github.com/pointfreeco/xctest-dynamic-overlay from cache
Fetching https://github.com/pointfreeco/swift-custom-dump from cache
Fetched https://github.com/pointfreeco/swift-custom-dump from cache (0.50s)
Computing version for https://github.com/pointfreeco/swift-custom-dump
Fetched https://github.com/pointfreeco/xctest-dynamic-overlay from cache (0.50s)
Computed https://github.com/pointfreeco/swift-custom-dump at 0.4.0 (1.16s)
Computing version for https://github.com/pointfreeco/xctest-dynamic-overlay
Computed https://github.com/pointfreeco/xctest-dynamic-overlay at 0.2.1 (0.64s)
Creating working copy for https://github.com/pointfreeco/swift-custom-dump
Working copy of https://github.com/pointfreeco/swift-custom-dump resolved at 0.4.0
Creating working copy for https://github.com/pointfreeco/xctest-dynamic-overlay
Working copy of https://github.com/pointfreeco/xctest-dynamic-overlay resolved at 0.2.1
========================================
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-eazy",
      "name": "Eazy",
      "url": "https://github.com/bangerang/swift-eazy.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-eazy",
      "dependencies": [
        {
          "identity": "swift-custom-dump",
          "name": "swift-custom-dump",
          "url": "https://github.com/pointfreeco/swift-custom-dump",
          "version": "0.4.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-custom-dump",
          "dependencies": [
            {
              "identity": "xctest-dynamic-overlay",
              "name": "xctest-dynamic-overlay",
              "url": "https://github.com/pointfreeco/xctest-dynamic-overlay",
              "version": "0.9.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/xctest-dynamic-overlay",
              "dependencies": [
              ]
            }
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/bangerang/swift-eazy.git
[1/528] Fetching swift-eazy
Fetched https://github.com/bangerang/swift-eazy.git from cache (0.81s)
Fetching https://github.com/pointfreeco/swift-custom-dump from cache
Fetched https://github.com/pointfreeco/swift-custom-dump from cache (0.46s)
Computing version for https://github.com/pointfreeco/swift-custom-dump
Computed https://github.com/pointfreeco/swift-custom-dump at 0.4.0 (0.52s)
Fetching https://github.com/pointfreeco/xctest-dynamic-overlay from cache
Fetched https://github.com/pointfreeco/xctest-dynamic-overlay from cache (0.42s)
Computing version for https://github.com/pointfreeco/xctest-dynamic-overlay
Computed https://github.com/pointfreeco/xctest-dynamic-overlay at 0.9.0 (1.08s)
Creating working copy for https://github.com/pointfreeco/swift-custom-dump
Working copy of https://github.com/pointfreeco/swift-custom-dump resolved at 0.4.0
Creating working copy for https://github.com/pointfreeco/xctest-dynamic-overlay
Working copy of https://github.com/pointfreeco/xctest-dynamic-overlay resolved at 0.9.0
Creating working copy for https://github.com/bangerang/swift-eazy.git
Working copy of https://github.com/bangerang/swift-eazy.git resolved at main (8bc6d6c)
warning: '.resolve-product-dependencies': dependency 'swift-eazy' is not used by any target
Found 1 product dependencies
  - swift-custom-dump
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/bangerang/swift-eazy.git
https://github.com/bangerang/swift-eazy.git
{
  "dependencies" : [
    {
      "identity" : "swift-custom-dump",
      "requirement" : {
        "exact" : [
          "0.4.0"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/pointfreeco/swift-custom-dump"
    }
  ],
  "manifest_display_name" : "Eazy",
  "name" : "Eazy",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "tvos",
      "version" : "14.0"
    },
    {
      "name" : "watchos",
      "version" : "7.0"
    }
  ],
  "products" : [
    {
      "name" : "Eazy",
      "targets" : [
        "Eazy"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "EazyTests",
      "module_type" : "SwiftTarget",
      "name" : "EazyTests",
      "path" : "Tests/EazyTests",
      "sources" : [
        "EazyTests.swift",
        "UIKitTests.swift"
      ],
      "target_dependencies" : [
        "Eazy"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Eazy",
      "module_type" : "SwiftTarget",
      "name" : "Eazy",
      "path" : "Sources/Eazy",
      "product_dependencies" : [
        "CustomDump"
      ],
      "product_memberships" : [
        "Eazy"
      ],
      "sources" : [
        "Action.swift",
        "Debug.swift",
        "Extensions/Equatable.swift",
        "Extensions/Publisher.swift",
        "Extensions/UIKit.swift",
        "Hooks.swift",
        "Interactor.swift",
        "Store.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
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/4] Write sources
[3/4] Write swift-version-2F0A5646E1D333AE.txt
[5/6] Compiling XCTestDynamicOverlay XCTFail.swift
[6/6] Emitting module XCTestDynamicOverlay
[7/30] Compiling CustomDump CustomDumpRepresentable.swift
[8/30] Compiling CustomDump CustomDumpStringConvertible.swift
[9/32] Emitting module CustomDump
[10/32] Compiling CustomDump String.swift
[11/32] Compiling CustomDump XCTAssertNoDifference.swift
[12/32] Compiling CustomDump Foundation.swift
[13/32] Compiling CustomDump GameKit.swift
[14/32] Compiling CustomDump KeyPath.swift
[15/32] Compiling CustomDump Swift.swift
[16/32] Compiling CustomDump SwiftUI.swift
[17/32] Compiling CustomDump UIKit.swift
[18/32] Compiling CustomDump CoreImage.swift
[19/32] Compiling CustomDump CoreLocation.swift
[20/32] Compiling CustomDump CoreMotion.swift
[21/32] Compiling CustomDump UserNotifications.swift
[22/32] Compiling CustomDump UserNotificationsUI.swift
[23/32] Compiling CustomDump CustomDumpReflectable.swift
[24/32] Compiling CustomDump AnyType.swift
[25/32] Compiling CustomDump Box.swift
[26/32] Compiling CustomDump Diff.swift
[27/32] Compiling CustomDump Dump.swift
[28/32] Compiling CustomDump Photos.swift
[29/32] Compiling CustomDump Speech.swift
[30/32] Compiling CustomDump StoreKit.swift
[31/32] Compiling CustomDump CollectionDifference.swift
[32/32] Compiling CustomDump Mirror.swift
[33/41] Compiling Eazy Interactor.swift
[34/41] Compiling Eazy UIKit.swift
[35/41] Compiling Eazy Debug.swift
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:7:23: warning: static property 'print' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  5 |
  6 |     /// The default handler for managing log output.
  7 |     public static var print: (String) -> Void = { message in
    |                       |- warning: static property 'print' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'print' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'print' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  8 |         if NSClassFromString("XCTest") == nil {
  9 |             Swift.print(message)
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:30:29: warning: static property 'logEnabledType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     static private(set) var logEnabledType: LogEnabledType = .none
    |                             |- warning: static property 'logEnabledType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                             |- note: convert 'logEnabledType' to a 'let' constant to make 'Sendable' shared state immutable
    |                             |- note: add '@MainActor' to make static property 'logEnabledType' part of global actor 'MainActor'
    |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |
 32 |     public enum FilterOption {
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:88:24: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
 83 |     static private let queue = DispatchQueue(label: "Eazy Logger", qos: .background)
 84 |
 85 |     static func logInitialState<T>(_ value: T, print: @escaping (String) -> Void) {
    |                                 `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 86 |         queue.async {
 87 |             var output = ""
 88 |             customDump(value, to: &output)
    |                        `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
 89 |             let message = "Eazy - Initial state:\n\(output)"
 90 |             print(message)
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:90:13: warning: capture of 'print' with non-sendable type '(String) -> Void' in a '@Sendable' closure
 88 |             customDump(value, to: &output)
 89 |             let message = "Eazy - Initial state:\n\(output)"
 90 |             print(message)
    |             |- warning: capture of 'print' with non-sendable type '(String) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 91 |         }
 92 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:97:13: warning: capture of 'print' with non-sendable type '(String) -> Void' in a '@Sendable' closure
 95 |         queue.async {
 96 |             let message = "Eazy - Triggered action:\n\(action)"
 97 |             print(message)
    |             |- warning: capture of 'print' with non-sendable type '(String) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 98 |         }
 99 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:104:24: warning: capture of 'action' with non-sendable type 'Action' in a '@Sendable' closure
 99 |     }
100 |
101 |     static func logAction<Action>(_ action: Action, print: @escaping (String) -> Void) {
    |                           `- note: consider making generic parameter 'Action' conform to the 'Sendable' protocol
102 |         queue.async {
103 |             var output = ""
104 |             customDump(action, to: &output)
    |                        `- warning: capture of 'action' with non-sendable type 'Action' in a '@Sendable' closure
105 |             let message = "Eazy - Triggered action:\n\(output)"
106 |             print(message)
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:106:13: warning: capture of 'print' with non-sendable type '(String) -> Void' in a '@Sendable' closure
104 |             customDump(action, to: &output)
105 |             let message = "Eazy - Triggered action:\n\(output)"
106 |             print(message)
    |             |- warning: capture of 'print' with non-sendable type '(String) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
107 |         }
108 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:113:24: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
108 |     }
109 |
110 |     static func logHook<Hook, T>(_ hook: Hook, _ value: T, print: @escaping (String) -> Void) {
    |                               `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
111 |         queue.async {
112 |             var valueOutput = ""
113 |             customDump(value, to: &valueOutput)
    |                        `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
114 |             let message = "Eazy - Hook fired:\n\(hook) \(valueOutput)"
115 |             print(message)
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:114:50: warning: capture of 'hook' with non-sendable type 'Hook' in a '@Sendable' closure
108 |     }
109 |
110 |     static func logHook<Hook, T>(_ hook: Hook, _ value: T, print: @escaping (String) -> Void) {
    |                         `- note: consider making generic parameter 'Hook' conform to the 'Sendable' protocol
111 |         queue.async {
112 |             var valueOutput = ""
113 |             customDump(value, to: &valueOutput)
114 |             let message = "Eazy - Hook fired:\n\(hook) \(valueOutput)"
    |                                                  `- warning: capture of 'hook' with non-sendable type 'Hook' in a '@Sendable' closure
115 |             print(message)
116 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:115:13: warning: capture of 'print' with non-sendable type '(String) -> Void' in a '@Sendable' closure
113 |             customDump(value, to: &valueOutput)
114 |             let message = "Eazy - Hook fired:\n\(hook) \(valueOutput)"
115 |             print(message)
    |             |- warning: capture of 'print' with non-sendable type '(String) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
116 |         }
117 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:121:29: warning: capture of 'old' with non-sendable type 'T?' in a '@Sendable' closure
117 |     }
118 |
119 |     static func logStateChange<T>(old: T?, new: T, print: @escaping (String) -> Void) {
    |                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
120 |         queue.async {
121 |             guard let old = old else {
    |                             `- warning: capture of 'old' with non-sendable type 'T?' in a '@Sendable' closure
122 |                 return
123 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:124:39: warning: capture of 'new' with non-sendable type 'T' in a '@Sendable' closure
117 |     }
118 |
119 |     static func logStateChange<T>(old: T?, new: T, print: @escaping (String) -> Void) {
    |                                `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
120 |         queue.async {
121 |             guard let old = old else {
122 |                 return
123 |             }
124 |             if let output = diff(old, new).map({ "\($0)\n" }) {
    |                                       `- warning: capture of 'new' with non-sendable type 'T' in a '@Sendable' closure
125 |                 let message = "Eazy - State changed:\n" + output
126 |                 print(message)
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:126:17: warning: capture of 'print' with non-sendable type '(String) -> Void' in a '@Sendable' closure
124 |             if let output = diff(old, new).map({ "\($0)\n" }) {
125 |                 let message = "Eazy - State changed:\n" + output
126 |                 print(message)
    |                 |- warning: capture of 'print' with non-sendable type '(String) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
127 |             }
128 |         }
[36/41] Compiling Eazy Publisher.swift
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Extensions/Publisher.swift:9:24: warning: sending 'animation' risks causing data races; this is an error in the Swift 6 language mode
  7 |         return sink { [weak store] value in
  8 |             Task { @MainActor [weak store] in
  9 |                 switch animation {
    |                        |- warning: sending 'animation' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: task-isolated 'animation' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 10 |                 case .none:
 11 |                     store?.set(keyPath, value, forceUpdate: forceUpdate)
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Extensions/Publisher.swift:11:32: warning: sending 'keyPath' risks causing data races; this is an error in the Swift 6 language mode
  9 |                 switch animation {
 10 |                 case .none:
 11 |                     store?.set(keyPath, value, forceUpdate: forceUpdate)
    |                                |- warning: sending 'keyPath' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: task-isolated 'keyPath' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 12 |                 case .`default`:
 13 |                     withAnimation {
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Extensions/Publisher.swift:11:41: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
  9 |                 switch animation {
 10 |                 case .none:
 11 |                     store?.set(keyPath, value, forceUpdate: forceUpdate)
    |                                         |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                         `- note: task-isolated 'value' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 12 |                 case .`default`:
 13 |                     withAnimation {
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Extensions/Publisher.swift:29:33: warning: sending 'action' risks causing data races; this is an error in the Swift 6 language mode
 27 |         return sink { [weak store] value in
 28 |             Task { @MainActor [weak store] in
 29 |                 store?.dispatch(action)
    |                                 |- warning: sending 'action' risks causing data races; this is an error in the Swift 6 language mode
    |                                 `- note: task-isolated 'action' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 30 |             }
 31 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Extensions/Publisher.swift:37:33: warning: sending 'action' risks causing data races; this is an error in the Swift 6 language mode
 35 |         return sink { [weak store] value in
 36 |             Task { @MainActor [weak store] in
 37 |                 store?.dispatch(action(value))
    |                                 |- warning: sending 'action' risks causing data races; this is an error in the Swift 6 language mode
    |                                 `- note: task-isolated 'action' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 38 |             }
 39 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Extensions/Publisher.swift:37:40: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
 35 |         return sink { [weak store] value in
 36 |             Task { @MainActor [weak store] in
 37 |                 store?.dispatch(action(value))
    |                                        |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                        `- note: task-isolated 'value' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 38 |             }
 39 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Extensions/Publisher.swift:64:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
 62 |                     cancellable?.cancel()
 63 |                 }, receiveValue: { value in
 64 |                     continuation.yield(value)
    |                                  |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 65 |                 }
 66 |             )
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Extensions/Publisher.swift:80:38: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
 78 |                         cancellable?.cancel()
 79 |                     }, receiveValue: { value in
 80 |                         continuation.yield(value)
    |                                      |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 81 |                     }
 82 |                 )
[37/41] Compiling Eazy Action.swift
[38/41] Emitting module Eazy
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:7:23: warning: static property 'print' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  5 |
  6 |     /// The default handler for managing log output.
  7 |     public static var print: (String) -> Void = { message in
    |                       |- warning: static property 'print' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'print' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'print' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  8 |         if NSClassFromString("XCTest") == nil {
  9 |             Swift.print(message)
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Debug.swift:30:29: warning: static property 'logEnabledType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     static private(set) var logEnabledType: LogEnabledType = .none
    |                             |- warning: static property 'logEnabledType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                             |- note: convert 'logEnabledType' to a 'let' constant to make 'Sendable' shared state immutable
    |                             |- note: add '@MainActor' to make static property 'logEnabledType' part of global actor 'MainActor'
    |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |
 32 |     public enum FilterOption {
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Hooks.swift:29:16: warning: static property 'hookReceivedOutput' is not concurrency-safe because non-'Sendable' type 'PassthroughSubject<(hook: String, value: Any), Never>' may have shared mutable state; this is an error in the Swift 6 language mode
27 |
28 | class HookRepository {
29 |     static let hookReceivedOutput = PassthroughSubject<(hook: String, value: Any), Never>()
   |                `- warning: static property 'hookReceivedOutput' is not concurrency-safe because non-'Sendable' type 'PassthroughSubject<(hook: String, value: Any), Never>' may have shared mutable state; this is an error in the Swift 6 language mode
30 |     static var hooks: [String] = []
31 | }
Combine.PassthroughSubject:2:20: note: generic class 'PassthroughSubject' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class PassthroughSubject<Output, Failure> : Subject where Failure : Error {
   |                    `- note: generic class 'PassthroughSubject' does not conform to the 'Sendable' protocol
 3 |     public init()
 4 |     @objc deinit
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Hooks.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
 1 | import Foundation
 2 | import Combine
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
 3 | import CustomDump
 4 |
   :
27 |
28 | class HookRepository {
29 |     static let hookReceivedOutput = PassthroughSubject<(hook: String, value: Any), Never>()
   |                |- note: add '@MainActor' to make static property 'hookReceivedOutput' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 |     static var hooks: [String] = []
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Hooks.swift:30:16: warning: static property 'hooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
28 | class HookRepository {
29 |     static let hookReceivedOutput = PassthroughSubject<(hook: String, value: Any), Never>()
30 |     static var hooks: [String] = []
   |                |- warning: static property 'hooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'hooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'hooks' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | }
32 |
[39/41] Compiling Eazy Store.swift
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Store.swift:32:16: warning: main actor-isolated property 'store' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 27 | @propertyWrapper
 28 | public struct StateStore<State: Equatable, Action: Equatable>: DynamicProperty {
 29 |     @StateObject private var store: Store<State, Action>
    |                              `- note: property declared here
 30 |
 31 |     public var wrappedValue: Store<State, Action> {
 32 |         return store
    |                `- warning: main actor-isolated property 'store' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 33 |     }
 34 |
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Store.swift:36:16: warning: main actor-isolated property 'store' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 27 | @propertyWrapper
 28 | public struct StateStore<State: Equatable, Action: Equatable>: DynamicProperty {
 29 |     @StateObject private var store: Store<State, Action>
    |                              `- note: property declared here
 30 |
 31 |     public var wrappedValue: Store<State, Action> {
    :
 34 |
 35 |     public var projectedValue: Store<State, Action>.Binder {
 36 |         return store.binder
    |                `- warning: main actor-isolated property 'store' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 37 |     }
 38 |
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Store.swift:83:9: warning: main actor-isolated property 'provider' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 56 |     var explicitKeyPathChange: PartialKeyPath<State>?
 57 |
 58 |     private let provider: Provider
    |                 `- note: property declared here
 59 |
 60 |     init(provider: Provider) {
    :
 81 |
 82 |     public nonisolated func receive<S>(subscriber: S) where S : Subscriber, Never == S.Failure, State == S.Input {
 83 |         provider
    |         `- warning: main actor-isolated property 'provider' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 84 |             .objectChanged()
 85 |             .removeDuplicates()
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Store.swift:580:76: warning: non-sendable result type 'AsyncStream<Publishers.Output<PassthroughSubject<(hook: String, value: Any), Never>>.Output>' (aka 'AsyncStream<(hook: String, value: Any)>') cannot be sent from nonisolated context in call to instance method 'stream(timeout:scheduler:)'; this is an error in the Swift 6 language mode
578 |
579 |         await Task { @MainActor in
580 |             let stream = await HookRepository.hookReceivedOutput.prefix(1).stream()
    |                                                                            `- warning: non-sendable result type 'AsyncStream<Publishers.Output<PassthroughSubject<(hook: String, value: Any), Never>>.Output>' (aka 'AsyncStream<(hook: String, value: Any)>') cannot be sent from nonisolated context in call to instance method 'stream(timeout:scheduler:)'; this is an error in the Swift 6 language mode
581 |             trigger()
582 |             for await data in stream {
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Store.swift:582:13: warning: non-sendable result type 'Publishers.Output<PassthroughSubject<(hook: String, value: Any), Never>>.Output?' (aka 'Optional<(hook: String, value: Any)>') cannot be sent from nonisolated context in call to instance method 'next()'; this is an error in the Swift 6 language mode
580 |             let stream = await HookRepository.hookReceivedOutput.prefix(1).stream()
581 |             trigger()
582 |             for await data in stream {
    |             `- warning: non-sendable result type 'Publishers.Output<PassthroughSubject<(hook: String, value: Any), Never>>.Output?' (aka 'Optional<(hook: String, value: Any)>') cannot be sent from nonisolated context in call to instance method 'next()'; this is an error in the Swift 6 language mode
583 |                 if data.hook == identifier {
584 |                     store.didTriggerHook = true
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Store.swift:608:54: warning: non-sendable result type 'Action?' cannot be sent from nonisolated context in call to instance method 'first(timeout:scheduler:)'; this is an error in the Swift 6 language mode
553 |
554 | /// A ``TestStore`` is a test utility that can be used for writing test code.
555 | public class TestStore<State: Equatable, Action: Equatable>: Store<State, Action> {
    |                                          `- note: consider making generic parameter 'Action' conform to the 'Sendable' protocol
556 |
557 |     public private(set) var stateUpdates: [State] = []
    :
606 |
607 |     public func didTrigger(_ action: Action) async -> Bool {
608 |         return await mutatingStore.didDispatchAction.first() == action
    |                                                      `- warning: non-sendable result type 'Action?' cannot be sent from nonisolated context in call to instance method 'first(timeout:scheduler:)'; this is an error in the Swift 6 language mode
609 |     }
610 |
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Store.swift:608:54: warning: sending value of non-Sendable type 'PassthroughSubject<Action, Never>' risks causing data races; this is an error in the Swift 6 language mode
606 |
607 |     public func didTrigger(_ action: Action) async -> Bool {
608 |         return await mutatingStore.didDispatchAction.first() == action
    |                                                      |- warning: sending value of non-Sendable type 'PassthroughSubject<Action, Never>' risks causing data races; this is an error in the Swift 6 language mode
    |                                                      `- note: sending main actor-isolated value of non-Sendable type 'PassthroughSubject<Action, Never>' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
609 |     }
610 |
[40/41] Compiling Eazy Equatable.swift
[41/41] Compiling Eazy Hooks.swift
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Hooks.swift:29:16: warning: static property 'hookReceivedOutput' is not concurrency-safe because non-'Sendable' type 'PassthroughSubject<(hook: String, value: Any), Never>' may have shared mutable state; this is an error in the Swift 6 language mode
27 |
28 | class HookRepository {
29 |     static let hookReceivedOutput = PassthroughSubject<(hook: String, value: Any), Never>()
   |                `- warning: static property 'hookReceivedOutput' is not concurrency-safe because non-'Sendable' type 'PassthroughSubject<(hook: String, value: Any), Never>' may have shared mutable state; this is an error in the Swift 6 language mode
30 |     static var hooks: [String] = []
31 | }
Combine.PassthroughSubject:2:20: note: generic class 'PassthroughSubject' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class PassthroughSubject<Output, Failure> : Subject where Failure : Error {
   |                    `- note: generic class 'PassthroughSubject' does not conform to the 'Sendable' protocol
 3 |     public init()
 4 |     @objc deinit
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Hooks.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
 1 | import Foundation
 2 | import Combine
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
 3 | import CustomDump
 4 |
   :
27 |
28 | class HookRepository {
29 |     static let hookReceivedOutput = PassthroughSubject<(hook: String, value: Any), Never>()
   |                |- note: add '@MainActor' to make static property 'hookReceivedOutput' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 |     static var hooks: [String] = []
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Hooks.swift:30:16: warning: static property 'hooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
28 | class HookRepository {
29 |     static let hookReceivedOutput = PassthroughSubject<(hook: String, value: Any), Never>()
30 |     static var hooks: [String] = []
   |                |- warning: static property 'hooks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'hooks' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'hooks' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | }
32 |
Build complete! (19.75s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-custom-dump",
      "requirement" : {
        "exact" : [
          "0.4.0"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/pointfreeco/swift-custom-dump"
    }
  ],
  "manifest_display_name" : "Eazy",
  "name" : "Eazy",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "tvos",
      "version" : "14.0"
    },
    {
      "name" : "watchos",
      "version" : "7.0"
    }
  ],
  "products" : [
    {
      "name" : "Eazy",
      "targets" : [
        "Eazy"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "EazyTests",
      "module_type" : "SwiftTarget",
      "name" : "EazyTests",
      "path" : "Tests/EazyTests",
      "sources" : [
        "EazyTests.swift",
        "UIKitTests.swift"
      ],
      "target_dependencies" : [
        "Eazy"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Eazy",
      "module_type" : "SwiftTarget",
      "name" : "Eazy",
      "path" : "Sources/Eazy",
      "product_dependencies" : [
        "CustomDump"
      ],
      "product_memberships" : [
        "Eazy"
      ],
      "sources" : [
        "Action.swift",
        "Debug.swift",
        "Extensions/Equatable.swift",
        "Extensions/Publisher.swift",
        "Extensions/UIKit.swift",
        "Hooks.swift",
        "Interactor.swift",
        "Store.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.