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 ActionsKit, reference master (f0864e), with Swift 6.0 for macOS (SPM) on 26 Nov 2024 10:38:49 UTC.

Swift 6 data race errors: 5

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/elegantchaos/ActionsKit.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/elegantchaos/ActionsKit
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at f0864e1 added license
Cloned https://github.com/elegantchaos/ActionsKit.git
Revision (git rev-parse @):
f0864e1e7203d4d3bea713581cffb7f3359fbdc9
SUCCESS checkout https://github.com/elegantchaos/ActionsKit.git at master
Fetching https://github.com/elegantchaos/Actions
Fetching https://github.com/elegantchaos/Localization
Fetching https://github.com/elegantchaos/Logger
[1/961] Fetching actions
[21/3012] Fetching actions, logger
[3013/3122] Fetching actions, logger, localization
Fetched https://github.com/elegantchaos/Localization from cache (1.33s)
Fetched https://github.com/elegantchaos/Logger from cache (1.33s)
Fetched https://github.com/elegantchaos/Actions from cache (1.33s)
Computing version for https://github.com/elegantchaos/Localization
Computed https://github.com/elegantchaos/Localization at 1.0.3 (0.55s)
Computing version for https://github.com/elegantchaos/Logger
Computed https://github.com/elegantchaos/Logger at 1.5.3 (0.55s)
Computing version for https://github.com/elegantchaos/Actions
Computed https://github.com/elegantchaos/Actions at 1.5.1 (0.54s)
Creating working copy for https://github.com/elegantchaos/Actions
Working copy of https://github.com/elegantchaos/Actions resolved at 1.5.1
Creating working copy for https://github.com/elegantchaos/Logger
Working copy of https://github.com/elegantchaos/Logger resolved at 1.5.3
Creating working copy for https://github.com/elegantchaos/Localization
Working copy of https://github.com/elegantchaos/Localization resolved at 1.0.3
========================================
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": "actionskit",
      "name": "ActionsKit",
      "url": "https://github.com/elegantchaos/ActionsKit.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/ActionsKit",
      "dependencies": [
        {
          "identity": "actions",
          "name": "Actions",
          "url": "https://github.com/elegantchaos/Actions",
          "version": "1.5.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Actions",
          "dependencies": [
            {
              "identity": "logger",
              "name": "Logger",
              "url": "https://github.com/elegantchaos/Logger",
              "version": "1.8.2",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Logger",
              "dependencies": [
              ]
            }
          ]
        },
        {
          "identity": "logger",
          "name": "Logger",
          "url": "https://github.com/elegantchaos/Logger",
          "version": "1.8.2",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Logger",
          "dependencies": [
          ]
        },
        {
          "identity": "localization",
          "name": "Localization",
          "url": "https://github.com/elegantchaos/Localization",
          "version": "1.0.5",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Localization",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/elegantchaos/ActionsKit.git
[1/158] Fetching actionskit
Fetched https://github.com/elegantchaos/ActionsKit.git from cache (0.68s)
Fetching https://github.com/elegantchaos/Logger from cache
Fetching https://github.com/elegantchaos/Localization from cache
Fetching https://github.com/elegantchaos/Actions from cache
Fetched https://github.com/elegantchaos/Logger from cache (0.55s)
Fetched https://github.com/elegantchaos/Localization from cache (0.58s)
Fetched https://github.com/elegantchaos/Actions from cache (0.58s)
Computing version for https://github.com/elegantchaos/Actions
Computed https://github.com/elegantchaos/Actions at 1.5.1 (0.02s)
Computing version for https://github.com/elegantchaos/Localization
Computed https://github.com/elegantchaos/Localization at 1.0.5 (0.02s)
Computing version for https://github.com/elegantchaos/Logger
Computed https://github.com/elegantchaos/Logger at 1.8.2 (0.58s)
Creating working copy for https://github.com/elegantchaos/ActionsKit.git
Working copy of https://github.com/elegantchaos/ActionsKit.git resolved at master (f0864e1)
Creating working copy for https://github.com/elegantchaos/Actions
Working copy of https://github.com/elegantchaos/Actions resolved at 1.5.1
Creating working copy for https://github.com/elegantchaos/Localization
Working copy of https://github.com/elegantchaos/Localization resolved at 1.0.5
Creating working copy for https://github.com/elegantchaos/Logger
Working copy of https://github.com/elegantchaos/Logger resolved at 1.8.2
warning: '.resolve-product-dependencies': dependency 'actionskit' is not used by any target
Found 3 product dependencies
  - Actions
  - Logger
  - Localization
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/elegantchaos/ActionsKit.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/8] Write sources
[5/8] Write swift-version--7754E27361AE5C74.txt
[7/18] Compiling Logger OSLogHandler.swift
[8/18] Emitting module Logger
[9/18] Compiling Logger PrintHandler.swift
[10/18] Compiling Logger NSLogHandler.swift
[11/18] Emitting module Localization
[12/18] Compiling Localization Localization.swift
[12/18] Write Objects.LinkFileList
[14/18] Compiling Logger Handler.swift
[15/18] Compiling Logger Context.swift
[16/18] Compiling Logger Channel.swift
[17/18] Compiling Logger Manager.swift
[17/18] Archiving libLocalization.a
[19/35] Compiling Actions DecodableWithContext.swift
[20/36] Compiling Actions ActionSerialisation.swift
[21/36] Compiling Actions ActionIdentification.swift
[22/36] Compiling Actions Action.swift
[23/36] Emitting module Actions
[24/36] Compiling Actions DelegatedAction.swift
[25/36] Compiling Actions ActionNotification.swift
[26/36] Compiling Actions ActionKey.swift
[27/36] Compiling Actions ActionInfo.swift
[28/36] Compiling Actions ActionContext.swift
[29/36] Compiling Actions ActionManager.swift
[30/36] Compiling LoggerKit LoggerScene.swift
[31/36] Compiling LoggerKit LoggerSettingsView.swift
[32/36] Compiling LoggerKit ChainableResponder.swift
[33/36] Compiling LoggerKit LoggerMenuUIKit.swift
[34/36] Compiling LoggerKit LoggerApplication.swift
[35/36] Emitting module LoggerKit
[36/36] Compiling LoggerKit LoggerMenuAppKit.swift
[37/45] Compiling ActionsKit UIResponder+Actions.swift
[38/45] Compiling ActionsKit UICommand+Actions.swift
[39/45] Compiling ActionsKit UIView+Actions.swift
[40/45] Compiling ActionsKit UINavigationController+Actions.swift
[41/45] Compiling ActionsKit UIViewController+Actions.swift
[42/45] Compiling ActionsKit UIMenu+Actions.swift
[43/45] Compiling ActionsKit ActionManagerMobile.swift
[44/45] Emitting module ActionsKit
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:13:5: warning: let 'validationChannel' is not concurrency-safe because non-'Sendable' type 'Logger' (aka 'Channel') may have shared mutable state; this is an error in the Swift 6 language mode
 11 | import Localization
 12 |
 13 | let validationChannel = Logger("com.elegantchaos.actions.Validation")
    |     `- warning: let 'validationChannel' is not concurrency-safe because non-'Sendable' type 'Logger' (aka 'Channel') may have shared mutable state; this is an error in the Swift 6 language mode
 14 |
 15 | public class ActionManagerMac: ActionManager {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Logger/Sources/Logger/Channel.swift:15:14: note: class 'Channel' does not conform to the 'Sendable' protocol
 13 |  */
 14 |
 15 | public class Channel {
    |              `- note: class 'Channel' does not conform to the 'Sendable' protocol
 16 |
 17 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logger'
  8 | import AppKit
  9 | import Actions
 10 | import Logger
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logger'
 11 | import Localization
 12 |
 13 | let validationChannel = Logger("com.elegantchaos.actions.Validation")
    |     |- note: annotate 'validationChannel' 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
 14 |
 15 | public class ActionManagerMac: ActionManager {
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:72:16: warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 70 |      */
 71 |
 72 |     public let responder = Responder()
    |                `- warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 73 |
 74 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:163:1: warning: extension declares a conformance of imported type 'NSResponder' to imported protocol 'ActionResponder'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
161 |  */
162 |
163 | extension NSResponder: ActionResponder {
    | |- warning: extension declares a conformance of imported type 'NSResponder' to imported protocol 'ActionResponder'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
164 |     public func next() -> ActionResponder? {
165 |         return nextResponder
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:164:17: warning: main actor-isolated instance method 'next()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
161 |  */
162 |
163 | extension NSResponder: ActionResponder {
    |                        `- note: add '@preconcurrency' to the 'ActionResponder' conformance to defer isolation checking to run time
164 |     public func next() -> ActionResponder? {
    |                 |- warning: main actor-isolated instance method 'next()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'next()' to make this instance method not isolated to the actor
165 |         return nextResponder
166 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Actions/Sources/Actions/ActionManager.swift:17:10: note: mark the protocol requirement 'next()' 'async' to allow actor-isolated conformances
 15 |
 16 | public protocol ActionResponder {
 17 |     func next() -> ActionResponder?
    |          `- note: mark the protocol requirement 'next()' 'async' to allow actor-isolated conformances
 18 | }
 19 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:173:1: warning: extension declares a conformance of imported type 'NSView' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
171 |  */
172 |
173 | extension NSView: ActionIdentification {
    | |- warning: extension declares a conformance of imported type 'NSView' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
174 |     @objc public var actionID: String {
175 |         get { return identifier?.rawValue ?? "" }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:174:22: warning: main actor-isolated property 'actionID' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
171 |  */
172 |
173 | extension NSView: ActionIdentification {
    |                   `- note: add '@preconcurrency' to the 'ActionIdentification' conformance to defer isolation checking to run time
174 |     @objc public var actionID: String {
    |                      `- warning: main actor-isolated property 'actionID' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
175 |         get { return identifier?.rawValue ?? "" }
176 |         set(value) { identifier = NSUserInterfaceItemIdentifier(rawValue: value) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Actions/Sources/Actions/ActionIdentification.swift:10:15: note: 'actionID' declared here
 8 | #if os(macOS) || os(iOS)
 9 | @objc public protocol ActionIdentification {
10 |     @objc var actionID: String { get set }
   |               `- note: 'actionID' declared here
11 | }
12 | #else
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:212:1: warning: extension declares a conformance of imported type 'NSToolbarItem' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
210 |  */
211 |
212 | extension NSToolbarItem: ActionIdentification {
    | |- warning: extension declares a conformance of imported type 'NSToolbarItem' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
213 |     @objc public var actionID: String {
214 |         get { return itemIdentifier.rawValue }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:213:22: warning: main actor-isolated property 'actionID' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
210 |  */
211 |
212 | extension NSToolbarItem: ActionIdentification {
    |                          `- note: add '@preconcurrency' to the 'ActionIdentification' conformance to defer isolation checking to run time
213 |     @objc public var actionID: String {
    |                      `- warning: main actor-isolated property 'actionID' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
214 |         get { return itemIdentifier.rawValue }
215 |         set(value) { fatalError("can't change toolbar item action id") }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Actions/Sources/Actions/ActionIdentification.swift:10:15: note: 'actionID' declared here
 8 | #if os(macOS) || os(iOS)
 9 | @objc public protocol ActionIdentification {
10 |     @objc var actionID: String { get set }
   |               `- note: 'actionID' declared here
11 | }
12 | #else
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:223:1: warning: extension declares a conformance of imported type 'NSMenuItem' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
221 |  */
222 |
223 | extension NSMenuItem: ActionIdentification {
    | |- warning: extension declares a conformance of imported type 'NSMenuItem' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
224 |     @objc public var actionID: String {
225 |         get { return identifier?.rawValue ?? "" }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:234:1: warning: extension declares a conformance of imported type 'NSMenuItem' to imported protocol 'ActionContextProvider'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
232 |  */
233 |
234 | extension NSMenuItem: ActionContextProvider {
    | |- warning: extension declares a conformance of imported type 'NSMenuItem' to imported protocol 'ActionContextProvider'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
235 |     public func provide(context: ActionContext) {
236 |         context[.object] = representedObject
[45/45] Compiling ActionsKit ActionManagerMac.swift
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:13:5: warning: let 'validationChannel' is not concurrency-safe because non-'Sendable' type 'Logger' (aka 'Channel') may have shared mutable state; this is an error in the Swift 6 language mode
 11 | import Localization
 12 |
 13 | let validationChannel = Logger("com.elegantchaos.actions.Validation")
    |     `- warning: let 'validationChannel' is not concurrency-safe because non-'Sendable' type 'Logger' (aka 'Channel') may have shared mutable state; this is an error in the Swift 6 language mode
 14 |
 15 | public class ActionManagerMac: ActionManager {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Logger/Sources/Logger/Channel.swift:15:14: note: class 'Channel' does not conform to the 'Sendable' protocol
 13 |  */
 14 |
 15 | public class Channel {
    |              `- note: class 'Channel' does not conform to the 'Sendable' protocol
 16 |
 17 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logger'
  8 | import AppKit
  9 | import Actions
 10 | import Logger
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logger'
 11 | import Localization
 12 |
 13 | let validationChannel = Logger("com.elegantchaos.actions.Validation")
    |     |- note: annotate 'validationChannel' 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
 14 |
 15 | public class ActionManagerMac: ActionManager {
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:72:16: warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 70 |      */
 71 |
 72 |     public let responder = Responder()
    |                `- warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 73 |
 74 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:163:1: warning: extension declares a conformance of imported type 'NSResponder' to imported protocol 'ActionResponder'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
161 |  */
162 |
163 | extension NSResponder: ActionResponder {
    | |- warning: extension declares a conformance of imported type 'NSResponder' to imported protocol 'ActionResponder'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
164 |     public func next() -> ActionResponder? {
165 |         return nextResponder
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:164:17: warning: main actor-isolated instance method 'next()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
161 |  */
162 |
163 | extension NSResponder: ActionResponder {
    |                        `- note: add '@preconcurrency' to the 'ActionResponder' conformance to defer isolation checking to run time
164 |     public func next() -> ActionResponder? {
    |                 |- warning: main actor-isolated instance method 'next()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'next()' to make this instance method not isolated to the actor
165 |         return nextResponder
166 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Actions/Sources/Actions/ActionManager.swift:17:10: note: mark the protocol requirement 'next()' 'async' to allow actor-isolated conformances
 15 |
 16 | public protocol ActionResponder {
 17 |     func next() -> ActionResponder?
    |          `- note: mark the protocol requirement 'next()' 'async' to allow actor-isolated conformances
 18 | }
 19 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:173:1: warning: extension declares a conformance of imported type 'NSView' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
171 |  */
172 |
173 | extension NSView: ActionIdentification {
    | |- warning: extension declares a conformance of imported type 'NSView' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
174 |     @objc public var actionID: String {
175 |         get { return identifier?.rawValue ?? "" }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:174:22: warning: main actor-isolated property 'actionID' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
171 |  */
172 |
173 | extension NSView: ActionIdentification {
    |                   `- note: add '@preconcurrency' to the 'ActionIdentification' conformance to defer isolation checking to run time
174 |     @objc public var actionID: String {
    |                      `- warning: main actor-isolated property 'actionID' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
175 |         get { return identifier?.rawValue ?? "" }
176 |         set(value) { identifier = NSUserInterfaceItemIdentifier(rawValue: value) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Actions/Sources/Actions/ActionIdentification.swift:10:15: note: 'actionID' declared here
 8 | #if os(macOS) || os(iOS)
 9 | @objc public protocol ActionIdentification {
10 |     @objc var actionID: String { get set }
   |               `- note: 'actionID' declared here
11 | }
12 | #else
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:212:1: warning: extension declares a conformance of imported type 'NSToolbarItem' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
210 |  */
211 |
212 | extension NSToolbarItem: ActionIdentification {
    | |- warning: extension declares a conformance of imported type 'NSToolbarItem' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
213 |     @objc public var actionID: String {
214 |         get { return itemIdentifier.rawValue }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:213:22: warning: main actor-isolated property 'actionID' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
210 |  */
211 |
212 | extension NSToolbarItem: ActionIdentification {
    |                          `- note: add '@preconcurrency' to the 'ActionIdentification' conformance to defer isolation checking to run time
213 |     @objc public var actionID: String {
    |                      `- warning: main actor-isolated property 'actionID' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
214 |         get { return itemIdentifier.rawValue }
215 |         set(value) { fatalError("can't change toolbar item action id") }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Actions/Sources/Actions/ActionIdentification.swift:10:15: note: 'actionID' declared here
 8 | #if os(macOS) || os(iOS)
 9 | @objc public protocol ActionIdentification {
10 |     @objc var actionID: String { get set }
   |               `- note: 'actionID' declared here
11 | }
12 | #else
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:223:1: warning: extension declares a conformance of imported type 'NSMenuItem' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
221 |  */
222 |
223 | extension NSMenuItem: ActionIdentification {
    | |- warning: extension declares a conformance of imported type 'NSMenuItem' to imported protocol 'ActionIdentification'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
224 |     @objc public var actionID: String {
225 |         get { return identifier?.rawValue ?? "" }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:234:1: warning: extension declares a conformance of imported type 'NSMenuItem' to imported protocol 'ActionContextProvider'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
232 |  */
233 |
234 | extension NSMenuItem: ActionContextProvider {
    | |- warning: extension declares a conformance of imported type 'NSMenuItem' to imported protocol 'ActionContextProvider'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
235 |     public func provide(context: ActionContext) {
236 |         context[.object] = representedObject
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:80:33: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 78 |
 79 |     public override func responderChains(for item: Any) -> [ActionResponder] {
 80 |         let app = NSApplication.shared
    |                                 `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 81 |         let keyWindow = app.keyWindow
 82 |         let mainWindow = app.mainWindow
AppKit.NSApplication:2:31: note: class property declared here
  1 | @MainActor open class NSApplication : NSResponder, NSUserInterfaceValidations, NSMenuItemValidation, NSAccessibilityElementProtocol, NSAccessibilityProtocol {
  2 |     @MainActor open class var shared: NSApplication { get }
    |                               `- note: class property declared here
  3 |     @available(swift, obsoleted: 3, renamed: "shared")
  4 |     open class var sharedApplication: NSApplication { get }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:81:29: warning: main actor-isolated property 'keyWindow' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 79 |     public override func responderChains(for item: Any) -> [ActionResponder] {
 80 |         let app = NSApplication.shared
 81 |         let keyWindow = app.keyWindow
    |                             `- warning: main actor-isolated property 'keyWindow' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 82 |         let mainWindow = app.mainWindow
 83 |         var responders = super.responderChains(for: item)
AppKit.NSApplication:13:19: note: property declared here
 11 |     open func windowWithWindowNumber(_ windowNum: Int) -> NSWindow?
 12 |     weak open var mainWindow: NSWindow? { get }
 13 |     weak open var keyWindow: NSWindow? { get }
    |                   `- note: property declared here
 14 |     open var isActive: Bool { get }
 15 |     @available(swift, obsoleted: 3, renamed: "isActive")
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:82:30: warning: main actor-isolated property 'mainWindow' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 80 |         let app = NSApplication.shared
 81 |         let keyWindow = app.keyWindow
 82 |         let mainWindow = app.mainWindow
    |                              `- warning: main actor-isolated property 'mainWindow' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 83 |         var responders = super.responderChains(for: item)
 84 |         if let responder = keyWindow?.firstResponder {
AppKit.NSApplication:12:19: note: property declared here
 10 |     @available(swift, obsoleted: 3, renamed: "window(withWindowNumber:)")
 11 |     open func windowWithWindowNumber(_ windowNum: Int) -> NSWindow?
 12 |     weak open var mainWindow: NSWindow? { get }
    |                   `- note: property declared here
 13 |     weak open var keyWindow: NSWindow? { get }
 14 |     open var isActive: Bool { get }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:84:39: warning: main actor-isolated property 'firstResponder' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 82 |         let mainWindow = app.mainWindow
 83 |         var responders = super.responderChains(for: item)
 84 |         if let responder = keyWindow?.firstResponder {
    |                                       `- warning: main actor-isolated property 'firstResponder' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 85 |             responders.append(responder)
 86 |         }
AppKit.NSWindow:93:30: note: property declared here
  91 |     open func update()
  92 |     open func makeFirstResponder(_ responder: NSResponder?) -> Bool
  93 |     @MainActor weak open var firstResponder: NSResponder? { get }
     |                              `- note: property declared here
  94 |     open var resizeFlags: NSEvent.ModifierFlags { get }
  95 |     open func close()
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:87:65: warning: main actor-isolated property 'firstResponder' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 85 |             responders.append(responder)
 86 |         }
 87 |         if keyWindow != mainWindow, let responder = mainWindow?.firstResponder {
    |                                                                 `- warning: main actor-isolated property 'firstResponder' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 88 |             responders.append(responder)
 89 |         }
AppKit.NSWindow:93:30: note: property declared here
  91 |     open func update()
  92 |     open func makeFirstResponder(_ responder: NSResponder?) -> Bool
  93 |     @MainActor weak open var firstResponder: NSResponder? { get }
     |                              `- note: property declared here
  94 |     open var resizeFlags: NSEvent.ModifierFlags { get }
  95 |     open func close()
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:106:48: warning: main actor-isolated property 'delegate' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
104 |     public override func providers(for item: Any) -> [ActionContextProvider] {
105 |         var result = super.providers(for: item)
106 |         if let provider = NSApplication.shared.delegate as? ActionContextProvider {
    |                                                `- warning: main actor-isolated property 'delegate' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |             result.append(provider)
108 |         }
AppKit.NSApplication:5:19: note: property declared here
  3 |     @available(swift, obsoleted: 3, renamed: "shared")
  4 |     open class var sharedApplication: NSApplication { get }
  5 |     weak open var delegate: (any NSApplicationDelegate)? { get set }
    |                   `- note: property declared here
  6 |     open func hide(_ sender: Any?)
  7 |     open func unhide(_ sender: Any?)
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:106:41: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
104 |     public override func providers(for item: Any) -> [ActionContextProvider] {
105 |         var result = super.providers(for: item)
106 |         if let provider = NSApplication.shared.delegate as? ActionContextProvider {
    |                                         `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 |             result.append(provider)
108 |         }
AppKit.NSApplication:2:31: note: class property declared here
  1 | @MainActor open class NSApplication : NSResponder, NSUserInterfaceValidations, NSMenuItemValidation, NSAccessibilityElementProtocol, NSAccessibilityProtocol {
  2 |     @MainActor open class var shared: NSApplication { get }
    |                               `- note: class property declared here
  3 |     @available(swift, obsoleted: 3, renamed: "shared")
  4 |     open class var sharedApplication: NSApplication { get }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:118:19: warning: main actor-isolated property 'manager' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 20 |
 21 |     public class Responder: NSResponder, NSUserInterfaceValidations {
 22 |         weak var manager: ActionManager! = nil
    |                  `- note: mutation of this property is only permitted within the actor
 23 |
 24 |         /**
    :
115 |      */
116 |
117 |     public func installResponder() {
    |                 `- note: add '@MainActor' to make instance method 'installResponder()' part of global actor 'MainActor'
118 |         responder.manager = self
    |                   `- warning: main actor-isolated property 'manager' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
119 |         responder.nextResponder = NSApp.nextResponder
120 |         NSApp.nextResponder = responder
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:119:19: warning: main actor-isolated property 'nextResponder' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
115 |      */
116 |
117 |     public func installResponder() {
    |                 `- note: add '@MainActor' to make instance method 'installResponder()' part of global actor 'MainActor'
118 |         responder.manager = self
119 |         responder.nextResponder = NSApp.nextResponder
    |                   `- warning: main actor-isolated property 'nextResponder' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
120 |         NSApp.nextResponder = responder
121 |     }
AppKit.NSResponder:4:41: note: mutation of this property is only permitted within the actor
  2 |     @MainActor public init()
  3 |     @MainActor public init?(coder: NSCoder)
  4 |     @MainActor unowned(unsafe) open var nextResponder: NSResponder? { get set }
    |                                         `- note: mutation of this property is only permitted within the actor
  5 |     open func tryToPerform(_ action: Selector, with object: Any?) -> Bool
  6 |     open func performKeyEquivalent(with event: NSEvent) -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:119:41: warning: main actor-isolated property 'nextResponder' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
115 |      */
116 |
117 |     public func installResponder() {
    |                 `- note: add '@MainActor' to make instance method 'installResponder()' part of global actor 'MainActor'
118 |         responder.manager = self
119 |         responder.nextResponder = NSApp.nextResponder
    |                                         `- warning: main actor-isolated property 'nextResponder' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
120 |         NSApp.nextResponder = responder
121 |     }
AppKit.NSResponder:4:41: note: property declared here
  2 |     @MainActor public init()
  3 |     @MainActor public init?(coder: NSCoder)
  4 |     @MainActor unowned(unsafe) open var nextResponder: NSResponder? { get set }
    |                                         `- note: property declared here
  5 |     open func tryToPerform(_ action: Selector, with object: Any?) -> Bool
  6 |     open func performKeyEquivalent(with event: NSEvent) -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:119:35: warning: main actor-isolated var 'NSApp' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
115 |      */
116 |
117 |     public func installResponder() {
    |                 `- note: add '@MainActor' to make instance method 'installResponder()' part of global actor 'MainActor'
118 |         responder.manager = self
119 |         responder.nextResponder = NSApp.nextResponder
    |                                   `- warning: main actor-isolated var 'NSApp' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
120 |         NSApp.nextResponder = responder
121 |     }
AppKit.NSApp:1:23: note: var declared here
1 | @MainActor public var NSApp: NSApplication!
  |                       `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:120:15: warning: main actor-isolated property 'nextResponder' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
115 |      */
116 |
117 |     public func installResponder() {
    |                 `- note: add '@MainActor' to make instance method 'installResponder()' part of global actor 'MainActor'
118 |         responder.manager = self
119 |         responder.nextResponder = NSApp.nextResponder
120 |         NSApp.nextResponder = responder
    |               `- warning: main actor-isolated property 'nextResponder' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
121 |     }
122 |
AppKit.NSResponder:4:41: note: mutation of this property is only permitted within the actor
  2 |     @MainActor public init()
  3 |     @MainActor public init?(coder: NSCoder)
  4 |     @MainActor unowned(unsafe) open var nextResponder: NSResponder? { get set }
    |                                         `- note: mutation of this property is only permitted within the actor
  5 |     open func tryToPerform(_ action: Selector, with object: Any?) -> Bool
  6 |     open func performKeyEquivalent(with event: NSEvent) -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:120:9: warning: main actor-isolated var 'NSApp' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
115 |      */
116 |
117 |     public func installResponder() {
    |                 `- note: add '@MainActor' to make instance method 'installResponder()' part of global actor 'MainActor'
118 |         responder.manager = self
119 |         responder.nextResponder = NSApp.nextResponder
120 |         NSApp.nextResponder = responder
    |         `- warning: main actor-isolated var 'NSApp' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
121 |     }
122 |
AppKit.NSApp:1:23: note: var declared here
1 | @MainActor public var NSApp: NSApplication!
  |                       `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:129:14: warning: call to main actor-isolated instance method 'appendValidatableControls(to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
125 |     */
126 |
127 |     public func validateControls(of view: NSView) {
    |                 `- note: add '@MainActor' to make instance method 'validateControls(of:)' part of global actor 'MainActor'
128 |         var items = [NSControl]()
129 |         view.appendValidatableControls(to: &items)
    |              `- warning: call to main actor-isolated instance method 'appendValidatableControls(to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
130 |         for item in items {
131 |             if let button = item as? NSButton, let identifier = item.identifier?.rawValue {
    :
191 |     */
192 |
193 |     public func appendValidatableControls(to items: inout [NSControl]) {
    |                 `- note: calls to instance method 'appendValidatableControls(to:)' from outside of its actor context are implicitly asynchronous
194 |         let selector = ActionManagerMac.Responder.performActionSelector
195 |         if let viewItem = self as? NSControl, let identifier = viewItem.identifier?.rawValue {
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:131:70: warning: main actor-isolated property 'identifier' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
125 |     */
126 |
127 |     public func validateControls(of view: NSView) {
    |                 `- note: add '@MainActor' to make instance method 'validateControls(of:)' part of global actor 'MainActor'
128 |         var items = [NSControl]()
129 |         view.appendValidatableControls(to: &items)
130 |         for item in items {
131 |             if let button = item as? NSButton, let identifier = item.identifier?.rawValue {
    |                                                                      `- warning: main actor-isolated property 'identifier' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
132 |                 let validation = validate(identifier: identifier, info: ActionInfo(sender: button))
133 |                 button.isEnabled = validation.enabled
AppKit.NSView:357:25: note: property declared here
355 |     @available(macOS 10.5, *)
356 |     open var animations: [NSAnimatablePropertyKey : Any] { get set }
357 |     @MainActor open var identifier: NSUserInterfaceItemIdentifier? { get set }
    |                         `- note: property declared here
358 |     @available(macOS 10.9, *)
359 |     open var appearance: NSAppearance? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:133:24: warning: main actor-isolated property 'isEnabled' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
125 |     */
126 |
127 |     public func validateControls(of view: NSView) {
    |                 `- note: add '@MainActor' to make instance method 'validateControls(of:)' part of global actor 'MainActor'
128 |         var items = [NSControl]()
129 |         view.appendValidatableControls(to: &items)
    :
131 |             if let button = item as? NSButton, let identifier = item.identifier?.rawValue {
132 |                 let validation = validate(identifier: identifier, info: ActionInfo(sender: button))
133 |                 button.isEnabled = validation.enabled
    |                        `- warning: main actor-isolated property 'isEnabled' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
134 |                 button.isHidden = !validation.visible
135 |                 button.title = validation.shortName.localized(with: validation.localizationInfo)
AppKit.NSControl:11:25: note: mutation of this property is only permitted within the actor
 9 |     @available(swift, obsoleted: 3, renamed: "isContinuous")
10 |     open var continuous: Bool { get set }
11 |     @MainActor open var isEnabled: Bool { get set }
   |                         `- note: mutation of this property is only permitted within the actor
12 |     @available(swift, obsoleted: 3, renamed: "isEnabled")
13 |     open var enabled: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:134:24: warning: main actor-isolated property 'isHidden' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
125 |     */
126 |
127 |     public func validateControls(of view: NSView) {
    |                 `- note: add '@MainActor' to make instance method 'validateControls(of:)' part of global actor 'MainActor'
128 |         var items = [NSControl]()
129 |         view.appendValidatableControls(to: &items)
    :
132 |                 let validation = validate(identifier: identifier, info: ActionInfo(sender: button))
133 |                 button.isEnabled = validation.enabled
134 |                 button.isHidden = !validation.visible
    |                        `- warning: main actor-isolated property 'isHidden' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
135 |                 button.title = validation.shortName.localized(with: validation.localizationInfo)
136 |             }
AppKit.NSView:14:14: note: mutation of this property is only permitted within the actor
 12 |     open func ancestorSharedWithView(_ view: NSView) -> NSView?
 13 |     unowned(unsafe) open var opaqueAncestor: NSView? { get }
 14 |     open var isHidden: Bool { get set }
    |              `- note: mutation of this property is only permitted within the actor
 15 |     @available(swift, obsoleted: 3, renamed: "isHidden")
 16 |     open var hidden: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:135:24: warning: main actor-isolated property 'title' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
125 |     */
126 |
127 |     public func validateControls(of view: NSView) {
    |                 `- note: add '@MainActor' to make instance method 'validateControls(of:)' part of global actor 'MainActor'
128 |         var items = [NSControl]()
129 |         view.appendValidatableControls(to: &items)
    :
133 |                 button.isEnabled = validation.enabled
134 |                 button.isHidden = !validation.visible
135 |                 button.title = validation.shortName.localized(with: validation.localizationInfo)
    |                        `- warning: main actor-isolated property 'title' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
136 |             }
137 |         }
AppKit.NSButton:28:25: note: mutation of this property is only permitted within the actor
26 |     open class func radioButtonWithTitle(_ title: String, target: Any?, action: Selector?) -> Self
27 |     open func setButtonType(_ type: NSButton.ButtonType)
28 |     @MainActor open var title: String { get set }
   |                         `- note: mutation of this property is only permitted within the actor
29 |     @NSCopying open var attributedTitle: NSAttributedString { get set }
30 |     open var alternateTitle: String { get set }
/Users/admin/builder/spi-builder-workspace/Sources/ActionsKit/ActionManagerMac.swift:151:13: warning: capture of 'self' with non-sendable type 'ActionManagerMac' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 13 | let validationChannel = Logger("com.elegantchaos.actions.Validation")
 14 |
 15 | public class ActionManagerMac: ActionManager {
    |              `- note: class 'ActionManagerMac' does not conform to the 'Sendable' protocol
 16 |
 17 |     /**
    :
149 |         //       causing the contents of the subview to be validated twice
150 |         OperationQueue.main.addOperation {
151 |             self.validateControls(of: view)
    |             `- warning: capture of 'self' with non-sendable type 'ActionManagerMac' in a `@Sendable` closure; this is an error in the Swift 6 language mode
152 |         }
153 |     }
Build complete! (16.46s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "actions",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/elegantchaos/Actions"
    },
    {
      "identity" : "logger",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.3",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/elegantchaos/Logger"
    },
    {
      "identity" : "localization",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.3",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/elegantchaos/Localization"
    }
  ],
  "manifest_display_name" : "ActionsKit",
  "name" : "ActionsKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "ActionsKit",
      "targets" : [
        "ActionsKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ActionsKitTests",
      "module_type" : "SwiftTarget",
      "name" : "ActionsKitTests",
      "path" : "Tests/ActionsKitTests",
      "sources" : [
        "ActionsKitTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "ActionsKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ActionsKit",
      "module_type" : "SwiftTarget",
      "name" : "ActionsKit",
      "path" : "Sources/ActionsKit",
      "product_dependencies" : [
        "Actions",
        "Localization",
        "Logger",
        "LoggerKit"
      ],
      "product_memberships" : [
        "ActionsKit"
      ],
      "sources" : [
        "ActionManagerMac.swift",
        "ActionManagerMobile.swift",
        "UICommand+Actions.swift",
        "UIMenu+Actions.swift",
        "UINavigationController+Actions.swift",
        "UIResponder+Actions.swift",
        "UIView+Actions.swift",
        "UIViewController+Actions.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Done.