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 Causality, reference master (da261a), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 23:49:17 UTC.

Swift 6 data race errors: 2

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/dannys42/Causality.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dannys42/Causality
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at da261a5 Add link to FayeSwift project
Cloned https://github.com/dannys42/Causality.git
Revision (git rev-parse @):
da261a50546d538a0610d07bd1737f5312138466
SUCCESS checkout https://github.com/dannys42/Causality.git at master
========================================
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": "causality",
      "name": "Causality",
      "url": "https://github.com/dannys42/Causality.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Causality",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/dannys42/Causality.git
[10/496] Fetching causality
Fetched https://github.com/dannys42/Causality.git from cache (0.84s)
Creating working copy for https://github.com/dannys42/Causality.git
Working copy of https://github.com/dannys42/Causality.git resolved at master (da261a5)
warning: '.resolve-product-dependencies': dependency 'causality' 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/dannys42/Causality.git
https://github.com/dannys42/Causality.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Causality",
  "name" : "Causality",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Causality",
      "targets" : [
        "Causality"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CausalityTests",
      "module_type" : "SwiftTarget",
      "name" : "CausalityTests",
      "path" : "Tests/CausalityTests",
      "sources" : [
        "EventTests.swift",
        "StateTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "Causality"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Causality",
      "module_type" : "SwiftTarget",
      "name" : "Causality",
      "path" : "Sources/Causality",
      "product_memberships" : [
        "Causality"
      ],
      "sources" : [
        "Address.swift",
        "Bus.swift",
        "Causality.swift",
        "Event.swift",
        "Internal/CausalityAnySubscription.swift",
        "Internal/EncodableExtension.swift",
        "Internal/EventSubscription.swift",
        "Internal/StateSubscription.swift",
        "Message.swift",
        "State.swift",
        "WorkQueue.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
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/13] Compiling Causality Message.swift
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Message.swift:18:29: warning: static property 'message' is not concurrency-safe because non-'Sendable' type 'Causality.NoMessage' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 |     /// A convenience message that can be included for events that have no associated data
13 |     struct NoMessage: Message {
   |            `- note: consider making struct 'NoMessage' conform to the 'Sendable' protocol
14 |
15 |         /// Users of the library are not expected to create these messages
16 |         private init() {
17 |         }
18 |         internal static let message = NoMessage()
   |                             |- warning: static property 'message' is not concurrency-safe because non-'Sendable' type 'Causality.NoMessage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: add '@MainActor' to make static property 'message' part of global actor 'MainActor'
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |     }
20 |
[4/13] Compiling Causality CausalityAnySubscription.swift
[5/13] Compiling Causality Event.swift
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Event.swift:164:34: warning: capture of 'self' with non-sendable type 'Causality.Bus' in a '@Sendable' closure
162 |     public func unsubscribe<Event: Causality.AnyEvent<Message>, Message: Causality.Message>(_ subscriptions: [Causality.EventSubscription<Event, Message>]) {
163 |         self.queue.async {
164 |             var newSubscribers = self.eventSubscribers
    |                                  `- warning: capture of 'self' with non-sendable type 'Causality.Bus' in a '@Sendable' closure
165 |             for subscription in subscriptions {
166 |                 newSubscribers.removeValue(forKey: subscription.id)
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Bus.swift:32:11: note: class 'Bus' does not conform to the 'Sendable' protocol
30 |
31 |     /// A Bus for events to go from publishers to subscribers
32 |     class Bus {
   |           `- note: class 'Bus' does not conform to the 'Sendable' protocol
33 |         /// A name for the bus.
34 |         public private(set) var label: String
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Event.swift:165:33: warning: capture of 'subscriptions' with non-sendable type '[Causality.EventSubscription<Event, Message>]' in a '@Sendable' closure
163 |         self.queue.async {
164 |             var newSubscribers = self.eventSubscribers
165 |             for subscription in subscriptions {
    |                                 `- warning: capture of 'subscriptions' with non-sendable type '[Causality.EventSubscription<Event, Message>]' in a '@Sendable' closure
166 |                 newSubscribers.removeValue(forKey: subscription.id)
167 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Internal/EventSubscription.swift:19:18: note: generic class 'EventSubscription' does not conform to the 'Sendable' protocol
17 |     /// Subscription handler for Events.
18 |     /// Used to `unsubscribe()` or determine the `bus` or `state` that triggered an update.
19 |     public class EventSubscription<Event: Causality.AnyEvent<Message>, Message: Causality.Message>: CausalityAnyEventSubscription {
   |                  `- note: generic class 'EventSubscription' does not conform to the 'Sendable' protocol
20 |         typealias SubscriptionHandler = (EventSubscription<Event,Message>, Message)->Void
21 |
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Event.swift:184:13: warning: capture of 'self' with non-sendable type 'Causality.Bus' in a '@Sendable' closure
182 |         let subscriber = Causality.EventSubscription(bus: self, event: event, handler: handler, workQueue: workQueue)
183 |         self.queue.async {
184 |             self.eventSubscribers[subscriber.id] = subscriber
    |             `- warning: capture of 'self' with non-sendable type 'Causality.Bus' in a '@Sendable' closure
185 |         }
186 |
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Bus.swift:32:11: note: class 'Bus' does not conform to the 'Sendable' protocol
30 |
31 |     /// A Bus for events to go from publishers to subscribers
32 |     class Bus {
   |           `- note: class 'Bus' does not conform to the 'Sendable' protocol
33 |         /// A name for the bus.
34 |         public private(set) var label: String
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Event.swift:184:35: warning: capture of 'subscriber' with non-sendable type 'Causality.EventSubscription<Event, Message>' in a '@Sendable' closure
182 |         let subscriber = Causality.EventSubscription(bus: self, event: event, handler: handler, workQueue: workQueue)
183 |         self.queue.async {
184 |             self.eventSubscribers[subscriber.id] = subscriber
    |                                   `- warning: capture of 'subscriber' with non-sendable type 'Causality.EventSubscription<Event, Message>' in a '@Sendable' closure
185 |         }
186 |
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Internal/EventSubscription.swift:19:18: note: generic class 'EventSubscription' does not conform to the 'Sendable' protocol
17 |     /// Subscription handler for Events.
18 |     /// Used to `unsubscribe()` or determine the `bus` or `state` that triggered an update.
19 |     public class EventSubscription<Event: Causality.AnyEvent<Message>, Message: Causality.Message>: CausalityAnyEventSubscription {
   |                  `- note: generic class 'EventSubscription' does not conform to the 'Sendable' protocol
20 |         typealias SubscriptionHandler = (EventSubscription<Event,Message>, Message)->Void
21 |
[6/13] Compiling Causality EncodableExtension.swift
[7/13] Compiling Causality Causality.swift
[8/13] Emitting module Causality
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Bus.swift:15:16: warning: static property 'bus' is not concurrency-safe because non-'Sendable' type 'Causality.Bus' may have shared mutable state; this is an error in the Swift 6 language mode
13 |     static let globalQueue = DispatchQueue(label: "Causality.global", qos: .default, attributes: [], autoreleaseFrequency: .inherit, target: .global(qos: .default))
14 |     /// A default/global bus
15 |     static let bus = Bus(label: "global", queue: globalQueue)
   |                |- warning: static property 'bus' is not concurrency-safe because non-'Sendable' type 'Causality.Bus' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'bus' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |
17 |     /// Subscriptions can have the following statuses:
   :
30 |
31 |     /// A Bus for events to go from publishers to subscribers
32 |     class Bus {
   |           `- note: class 'Bus' does not conform to the 'Sendable' protocol
33 |         /// A name for the bus.
34 |         public private(set) var label: String
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Message.swift:18:29: warning: static property 'message' is not concurrency-safe because non-'Sendable' type 'Causality.NoMessage' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 |     /// A convenience message that can be included for events that have no associated data
13 |     struct NoMessage: Message {
   |            `- note: consider making struct 'NoMessage' conform to the 'Sendable' protocol
14 |
15 |         /// Users of the library are not expected to create these messages
16 |         private init() {
17 |         }
18 |         internal static let message = NoMessage()
   |                             |- warning: static property 'message' is not concurrency-safe because non-'Sendable' type 'Causality.NoMessage' may have shared mutable state; this is an error in the Swift 6 language mode
   |                             |- note: add '@MainActor' to make static property 'message' part of global actor 'MainActor'
   |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |     }
20 |
[9/13] Compiling Causality StateSubscription.swift
[10/13] Compiling Causality Address.swift
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Bus.swift:15:16: warning: static property 'bus' is not concurrency-safe because non-'Sendable' type 'Causality.Bus' may have shared mutable state; this is an error in the Swift 6 language mode
13 |     static let globalQueue = DispatchQueue(label: "Causality.global", qos: .default, attributes: [], autoreleaseFrequency: .inherit, target: .global(qos: .default))
14 |     /// A default/global bus
15 |     static let bus = Bus(label: "global", queue: globalQueue)
   |                |- warning: static property 'bus' is not concurrency-safe because non-'Sendable' type 'Causality.Bus' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'bus' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |
17 |     /// Subscriptions can have the following statuses:
   :
30 |
31 |     /// A Bus for events to go from publishers to subscribers
32 |     class Bus {
   |           `- note: class 'Bus' does not conform to the 'Sendable' protocol
33 |         /// A name for the bus.
34 |         public private(set) var label: String
[11/13] Compiling Causality Bus.swift
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Bus.swift:15:16: warning: static property 'bus' is not concurrency-safe because non-'Sendable' type 'Causality.Bus' may have shared mutable state; this is an error in the Swift 6 language mode
13 |     static let globalQueue = DispatchQueue(label: "Causality.global", qos: .default, attributes: [], autoreleaseFrequency: .inherit, target: .global(qos: .default))
14 |     /// A default/global bus
15 |     static let bus = Bus(label: "global", queue: globalQueue)
   |                |- warning: static property 'bus' is not concurrency-safe because non-'Sendable' type 'Causality.Bus' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'bus' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |
17 |     /// Subscriptions can have the following statuses:
   :
30 |
31 |     /// A Bus for events to go from publishers to subscribers
32 |     class Bus {
   |           `- note: class 'Bus' does not conform to the 'Sendable' protocol
33 |         /// A name for the bus.
34 |         public private(set) var label: String
[12/13] Compiling Causality EventSubscription.swift
[13/13] Compiling Causality State.swift
/Users/admin/builder/spi-builder-workspace/Sources/Causality/State.swift:186:34: warning: capture of 'self' with non-sendable type 'Causality.Bus' in a '@Sendable' closure
184 |     public func unsubscribe<State: Causality.AnyState<Value>, Value: Causality.StateValue>(_ subscriptions: [Causality.StateSubscription<State, Value>]) {
185 |         self.queue.async {
186 |             var newSubscribers = self.eventSubscribers
    |                                  `- warning: capture of 'self' with non-sendable type 'Causality.Bus' in a '@Sendable' closure
187 |             for subscription in subscriptions {
188 |                 newSubscribers.removeValue(forKey: subscription.id)
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Bus.swift:32:11: note: class 'Bus' does not conform to the 'Sendable' protocol
30 |
31 |     /// A Bus for events to go from publishers to subscribers
32 |     class Bus {
   |           `- note: class 'Bus' does not conform to the 'Sendable' protocol
33 |         /// A name for the bus.
34 |         public private(set) var label: String
/Users/admin/builder/spi-builder-workspace/Sources/Causality/State.swift:187:33: warning: capture of 'subscriptions' with non-sendable type '[Causality.StateSubscription<State, Value>]' in a '@Sendable' closure
185 |         self.queue.async {
186 |             var newSubscribers = self.eventSubscribers
187 |             for subscription in subscriptions {
    |                                 `- warning: capture of 'subscriptions' with non-sendable type '[Causality.StateSubscription<State, Value>]' in a '@Sendable' closure
188 |                 newSubscribers.removeValue(forKey: subscription.id)
189 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Internal/StateSubscription.swift:18:11: note: generic class 'StateSubscription' does not conform to the 'Sendable' protocol
16 |     /// Subscription handler for States.
17 |     /// Used to `unsubscribe()` or determine the `bus` or `state` that triggered an update.
18 |     class StateSubscription<State: Causality.AnyState<Value>, Value: Causality.StateValue>: CausalityAnyStateSubscription {
   |           `- note: generic class 'StateSubscription' does not conform to the 'Sendable' protocol
19 |         typealias SubscriptionHandler = (Causality.StateSubscription<State,Value>, Value)->Void
20 |
/Users/admin/builder/spi-builder-workspace/Sources/Causality/State.swift:205:13: warning: capture of 'self' with non-sendable type 'Causality.Bus' in a '@Sendable' closure
203 |         let subscriber = Causality.StateSubscription(bus: self, state: state, handler: handler, workQueue: workQueue)
204 |         self.queue.async {
205 |             self.stateSubscribers[subscriber.id] = subscriber
    |             `- warning: capture of 'self' with non-sendable type 'Causality.Bus' in a '@Sendable' closure
206 |
207 |             if let lastState = self.state[state.causalityStateId] as? Value {
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Bus.swift:32:11: note: class 'Bus' does not conform to the 'Sendable' protocol
30 |
31 |     /// A Bus for events to go from publishers to subscribers
32 |     class Bus {
   |           `- note: class 'Bus' does not conform to the 'Sendable' protocol
33 |         /// A name for the bus.
34 |         public private(set) var label: String
/Users/admin/builder/spi-builder-workspace/Sources/Causality/State.swift:205:35: warning: capture of 'subscriber' with non-sendable type 'Causality.StateSubscription<State, Value>' in a '@Sendable' closure
203 |         let subscriber = Causality.StateSubscription(bus: self, state: state, handler: handler, workQueue: workQueue)
204 |         self.queue.async {
205 |             self.stateSubscribers[subscriber.id] = subscriber
    |                                   `- warning: capture of 'subscriber' with non-sendable type 'Causality.StateSubscription<State, Value>' in a '@Sendable' closure
206 |
207 |             if let lastState = self.state[state.causalityStateId] as? Value {
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Internal/StateSubscription.swift:18:11: note: generic class 'StateSubscription' does not conform to the 'Sendable' protocol
16 |     /// Subscription handler for States.
17 |     /// Used to `unsubscribe()` or determine the `bus` or `state` that triggered an update.
18 |     class StateSubscription<State: Causality.AnyState<Value>, Value: Causality.StateValue>: CausalityAnyStateSubscription {
   |           `- note: generic class 'StateSubscription' does not conform to the 'Sendable' protocol
19 |         typealias SubscriptionHandler = (Causality.StateSubscription<State,Value>, Value)->Void
20 |
/Users/admin/builder/spi-builder-workspace/Sources/Causality/State.swift:207:43: warning: capture of 'state' with non-sendable type 'State' in a '@Sendable' closure
199 |     ///   - workQueue: The queue on which to execute the handler
200 |     ///   - handler: A handler that is called when the state changes.  If there was a previous value, the handler be called immediately with the old value.
201 |     private func subscribe<State: Causality.AnyState<Value>, Value: Causality.StateValue>(_ state: State, workQueue: WorkQueue, handler: @escaping (Causality.StateSubscription<State, Value>, Value)->Void) -> Causality.StateSubscription<State, Value> {
    |                            `- note: consider making generic parameter 'State' conform to the 'Sendable' protocol
202 |
203 |         let subscriber = Causality.StateSubscription(bus: self, state: state, handler: handler, workQueue: workQueue)
    :
205 |             self.stateSubscribers[subscriber.id] = subscriber
206 |
207 |             if let lastState = self.state[state.causalityStateId] as? Value {
    |                                           `- warning: capture of 'state' with non-sendable type 'State' in a '@Sendable' closure
208 |                 let runQueue = subscriber.workQueue.withDefault(workQueue)
209 |                 runQueue.execute {
/Users/admin/builder/spi-builder-workspace/Sources/Causality/State.swift:210:21: warning: capture of 'subscriber' with non-sendable type 'Causality.StateSubscription<State, Value>' in an isolated closure; this is an error in the Swift 6 language mode
208 |                 let runQueue = subscriber.workQueue.withDefault(workQueue)
209 |                 runQueue.execute {
210 |                     subscriber.handler(subscriber, lastState)
    |                     `- warning: capture of 'subscriber' with non-sendable type 'Causality.StateSubscription<State, Value>' in an isolated closure; this is an error in the Swift 6 language mode
211 |                 }
212 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Causality/Internal/StateSubscription.swift:18:11: note: generic class 'StateSubscription' does not conform to the 'Sendable' protocol
16 |     /// Subscription handler for States.
17 |     /// Used to `unsubscribe()` or determine the `bus` or `state` that triggered an update.
18 |     class StateSubscription<State: Causality.AnyState<Value>, Value: Causality.StateValue>: CausalityAnyStateSubscription {
   |           `- note: generic class 'StateSubscription' does not conform to the 'Sendable' protocol
19 |         typealias SubscriptionHandler = (Causality.StateSubscription<State,Value>, Value)->Void
20 |
[14/14] Compiling Causality WorkQueue.swift
/Users/admin/builder/spi-builder-workspace/Sources/Causality/WorkQueue.swift:51:17: warning: capture of 'work' with non-sendable type '() -> Void' in a '@Sendable' closure
49 |         case .dispatch(let q):
50 |             q.async {
51 |                 work()
   |                 |- warning: capture of 'work' with non-sendable type '() -> Void' in a '@Sendable' closure
   |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
52 |             }
53 |         case .operation(let q):
/Users/admin/builder/spi-builder-workspace/Sources/Causality/WorkQueue.swift:55:17: warning: capture of 'work' with non-sendable type '() -> Void' in a '@Sendable' closure
53 |         case .operation(let q):
54 |             q.addOperation {
55 |                 work()
   |                 |- warning: capture of 'work' with non-sendable type '() -> Void' in a '@Sendable' closure
   |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
56 |             }
57 |         }
Build complete! (4.75s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Causality",
  "name" : "Causality",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Causality",
      "targets" : [
        "Causality"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CausalityTests",
      "module_type" : "SwiftTarget",
      "name" : "CausalityTests",
      "path" : "Tests/CausalityTests",
      "sources" : [
        "EventTests.swift",
        "StateTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "Causality"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Causality",
      "module_type" : "SwiftTarget",
      "name" : "Causality",
      "path" : "Sources/Causality",
      "product_memberships" : [
        "Causality"
      ],
      "sources" : [
        "Address.swift",
        "Bus.swift",
        "Causality.swift",
        "Event.swift",
        "Internal/CausalityAnySubscription.swift",
        "Internal/EncodableExtension.swift",
        "Internal/EventSubscription.swift",
        "Internal/StateSubscription.swift",
        "Message.swift",
        "State.swift",
        "WorkQueue.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
Done.