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 0.1.0 (8bc6d6), with Swift 6.0 for macOS (SPM) on 28 Nov 2024 18:10:48 UTC.

Swift 6 data race errors: 4

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.58.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bangerang/swift-eazy.git
Reference: 0.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bangerang/swift-eazy
 * tag               0.1.0      -> FETCH_HEAD
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 0.1.0
Fetching https://github.com/pointfreeco/xctest-dynamic-overlay
Fetching https://github.com/pointfreeco/swift-custom-dump
[1/4511] Fetching swift-custom-dump
[1490/9521] Fetching swift-custom-dump, xctest-dynamic-overlay
Fetched https://github.com/pointfreeco/xctest-dynamic-overlay from cache (1.43s)
Fetched https://github.com/pointfreeco/swift-custom-dump from cache (1.43s)
Computing version for https://github.com/pointfreeco/swift-custom-dump
Computed https://github.com/pointfreeco/swift-custom-dump at 0.4.0 (0.55s)
Computing version for https://github.com/pointfreeco/xctest-dynamic-overlay
Computed https://github.com/pointfreeco/xctest-dynamic-overlay at 0.2.1 (0.55s)
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
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
========================================
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.95s)
Fetching https://github.com/pointfreeco/swift-custom-dump from cache
Fetched https://github.com/pointfreeco/swift-custom-dump from cache (0.48s)
Computing version for https://github.com/pointfreeco/swift-custom-dump
Computed https://github.com/pointfreeco/swift-custom-dump at 0.4.0 (0.05s)
Fetching https://github.com/pointfreeco/xctest-dynamic-overlay from cache
Fetched https://github.com/pointfreeco/xctest-dynamic-overlay from cache (0.55s)
Computing version for https://github.com/pointfreeco/xctest-dynamic-overlay
Computed https://github.com/pointfreeco/xctest-dynamic-overlay at 0.9.0 (0.53s)
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/bangerang/swift-eazy.git
Working copy of https://github.com/bangerang/swift-eazy.git resolved at 0.1.0 (8bc6d6c)
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
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.0
Building package at path:  $PWD
https://github.com/bangerang/swift-eazy.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/4] Write sources
[3/4] Write swift-version--7754E27361AE5C74.txt
[5/6] Emitting module XCTestDynamicOverlay
[6/6] Compiling XCTestDynamicOverlay XCTFail.swift
[7/30] Compiling CustomDump CustomDumpRepresentable.swift
[8/30] Compiling CustomDump CustomDumpStringConvertible.swift
[9/32] Compiling CustomDump AnyType.swift
[10/32] Compiling CustomDump Box.swift
[11/32] Compiling CustomDump String.swift
[12/32] Compiling CustomDump XCTAssertNoDifference.swift
[13/32] Emitting module CustomDump
[14/32] Compiling CustomDump CoreImage.swift
[15/32] Compiling CustomDump CoreLocation.swift
[16/32] Compiling CustomDump CoreMotion.swift
[17/32] Compiling CustomDump Diff.swift
[18/32] Compiling CustomDump Dump.swift
[19/32] Compiling CustomDump UserNotifications.swift
[20/32] Compiling CustomDump UserNotificationsUI.swift
[21/32] Compiling CustomDump CustomDumpReflectable.swift
[22/32] Compiling CustomDump CollectionDifference.swift
[23/32] Compiling CustomDump Mirror.swift
[24/32] Compiling CustomDump Foundation.swift
[25/32] Compiling CustomDump GameKit.swift
[26/32] Compiling CustomDump KeyPath.swift
[27/32] Compiling CustomDump Photos.swift
[28/32] Compiling CustomDump Speech.swift
[29/32] Compiling CustomDump StoreKit.swift
[30/32] Compiling CustomDump Swift.swift
[31/32] Compiling CustomDump SwiftUI.swift
[32/32] Compiling CustomDump UIKit.swift
[33/41] Compiling Eazy UIKit.swift
[34/41] Compiling Eazy Action.swift
[35/41] Compiling Eazy Equatable.swift
[36/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: annotate 'print' with '@MainActor' if property should only be accessed from the main actor
    |                       `- 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: annotate 'logEnabledType' with '@MainActor' if property should only be accessed from the main actor
    |                             `- 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: annotate 'hookReceivedOutput' with '@MainActor' if property should only be accessed from the main actor
   |                `- 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: annotate 'hooks' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | }
32 |
[37/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: annotate 'print' with '@MainActor' if property should only be accessed from the main actor
    |                       `- 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: annotate 'logEnabledType' with '@MainActor' if property should only be accessed from the main actor
    |                             `- 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
    |             `- 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
    |             `- 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
    |             `- 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
    |             `- 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
127 |             }
128 |         }
[38/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: annotate 'hookReceivedOutput' with '@MainActor' if property should only be accessed from the main actor
   |                `- 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: annotate 'hooks' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | }
32 |
[39/41] Compiling Eazy Interactor.swift
[40/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/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: annotate 'logEnabledType' with '@MainActor' if property should only be accessed from the main actor
    |                             `- 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: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: annotate 'print' with '@MainActor' if property should only be accessed from the main actor
    |                       `- 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/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: annotate 'hooks' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | }
32 |
/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: annotate 'hookReceivedOutput' with '@MainActor' if property should only be accessed from the main actor
   |                `- 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/Store.swift:580:76: warning: non-sendable type 'AsyncStream<Publishers.Output<PassthroughSubject<(hook: String, value: Any), Never>>.Output>' (aka 'AsyncStream<(hook: String, value: Any)>') returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'AsyncStream<Publishers.Output<PassthroughSubject<(hook: String, value: Any), Never>>.Output>' (aka 'AsyncStream<(hook: String, value: Any)>') returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Publishers.Output<PassthroughSubject<(hook: String, value: Any), Never>>.Output?' (aka 'Optional<(hook: String, value: Any)>') returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Publishers.Output<PassthroughSubject<(hook: String, value: Any), Never>>.Output?' (aka 'Optional<(hook: String, value: Any)>') returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Action?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Action?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 main actor-isolated value of type 'PassthroughSubject<Action, Never>' with later accesses to nonisolated context 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 main actor-isolated value of type 'PassthroughSubject<Action, Never>' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
609 |     }
610 |
[41/41] Compiling Eazy Publisher.swift
/Users/admin/builder/spi-builder-workspace/Sources/Eazy/Extensions/Publisher.swift:11:21: warning: sending 'store' 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 'store' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: task-isolated 'store' 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:11:61: warning: sending 'forceUpdate' 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 'forceUpdate' risks causing data races; this is an error in the Swift 6 language mode
    |                                                             `- note: task-isolated 'forceUpdate' 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:28:18: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
 26 |     func assign<Root, Action>(toAction action: Action, using store: MutatingStore<Root, Action>) -> AnyCancellable {
 27 |         return sink { [weak store] value in
 28 |             Task { @MainActor [weak store] in
    |                  `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
 29 |                 store?.dispatch(action)
 30 |             }
/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:36:18: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
 34 |     func assign<Root, Action>(toAction action: @escaping (Output) -> Action, using store: MutatingStore<Root, Action>) -> AnyCancellable {
 35 |         return sink { [weak store] value in
 36 |             Task { @MainActor [weak store] in
    |                  `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
 37 |                 store?.dispatch(action(value))
 38 |             }
/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 |                 )
Build complete! (23.79s)
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.