The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of Tray, reference main (e11106), with Swift 6.1 for macOS (SPM) on 29 Apr 2025 00:37:33 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/boybeak/Tray.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/boybeak/Tray
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at e11106b Update README.md
Cloned https://github.com/boybeak/Tray.git
Revision (git rev-parse @):
e11106b62dd9e8c8fa1221eb1d33dd5ce052360d
SUCCESS checkout https://github.com/boybeak/Tray.git at main
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "tray",
      "name": "Tray",
      "url": "https://github.com/boybeak/Tray.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Tray",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/boybeak/Tray.git
[1/75] Fetching tray
Fetched https://github.com/boybeak/Tray.git from cache (0.70s)
Creating working copy for https://github.com/boybeak/Tray.git
Working copy of https://github.com/boybeak/Tray.git resolved at main (e11106b)
warning: '.resolve-product-dependencies': dependency 'tray' 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/boybeak/Tray.git
https://github.com/boybeak/Tray.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Tray",
  "name" : "Tray",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Tray",
      "targets" : [
        "Tray"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TrayTests",
      "module_type" : "SwiftTarget",
      "name" : "TrayTests",
      "path" : "Tests/TrayTests",
      "sources" : [
        "TrayTests.swift"
      ],
      "target_dependencies" : [
        "Tray"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Tray",
      "module_type" : "SwiftTarget",
      "name" : "Tray",
      "path" : "Sources/Tray",
      "product_memberships" : [
        "Tray"
      ],
      "sources" : [
        "Tray.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
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/4] Emitting module Tray
[4/4] Compiling Tray Tray.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:63:21: warning: main actor-isolated property 'image' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 55 |     }
 56 |
 57 |     public func setIcon(icon: NSImage) {
    |                 `- note: add '@MainActor' to make instance method 'setIcon(icon:)' part of global actor 'MainActor'
 58 |         if statusItem == nil {
 59 |             statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
    :
 61 |         if let menuBtn = statusItem?.button {
 62 |             icon.isTemplate = true
 63 |             menuBtn.image = icon
    |                     `- warning: main actor-isolated property 'image' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 64 |             menuBtn.target = self
 65 |             menuBtn.action = #selector(menuBtnAction)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSButton.h:126:39: note: mutation of this property is only permitted within the actor
124 |
125 | /*! The image that appears on the button when it’s in an off state, or nil if there is no such image. */
126 | @property (nullable, strong) NSImage *image;
    |                                       `- note: mutation of this property is only permitted within the actor
127 |
128 | /*! An alternate image that appears on the button when the button is in an on state, or nil if there is no such image. Note that some button types do not display an alternate image. */
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:64:21: warning: main actor-isolated property 'target' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 55 |     }
 56 |
 57 |     public func setIcon(icon: NSImage) {
    |                 `- note: add '@MainActor' to make instance method 'setIcon(icon:)' part of global actor 'MainActor'
 58 |         if statusItem == nil {
 59 |             statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
    :
 62 |             icon.isTemplate = true
 63 |             menuBtn.image = icon
 64 |             menuBtn.target = self
    |                     `- warning: main actor-isolated property 'target' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 65 |             menuBtn.action = #selector(menuBtnAction)
 66 |             menuBtn.sendAction(on: [.leftMouseUp, .rightMouseUp])
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSControl.h:24:31: note: mutation of this property is only permitted within the actor
 22 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 23 |
 24 | @property (nullable, weak) id target; // Target is weak for zeroing-weak compatible objects in apps linked on 10.10 or later. Otherwise the behavior of this property is 'assign’.
    |                               `- note: mutation of this property is only permitted within the actor
 25 | @property (nullable) SEL action;
 26 | @property NSInteger tag;
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:65:21: warning: main actor-isolated property 'action' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 55 |     }
 56 |
 57 |     public func setIcon(icon: NSImage) {
    |                 `- note: add '@MainActor' to make instance method 'setIcon(icon:)' part of global actor 'MainActor'
 58 |         if statusItem == nil {
 59 |             statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
    :
 63 |             menuBtn.image = icon
 64 |             menuBtn.target = self
 65 |             menuBtn.action = #selector(menuBtnAction)
    |                     `- warning: main actor-isolated property 'action' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 66 |             menuBtn.sendAction(on: [.leftMouseUp, .rightMouseUp])
 67 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSControl.h:25:26: note: mutation of this property is only permitted within the actor
 23 |
 24 | @property (nullable, weak) id target; // Target is weak for zeroing-weak compatible objects in apps linked on 10.10 or later. Otherwise the behavior of this property is 'assign’.
 25 | @property (nullable) SEL action;
    |                          `- note: mutation of this property is only permitted within the actor
 26 | @property NSInteger tag;
 27 | @property BOOL ignoresMultiClick;
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:66:21: warning: call to main actor-isolated instance method 'sendAction(on:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 55 |     }
 56 |
 57 |     public func setIcon(icon: NSImage) {
    |                 `- note: add '@MainActor' to make instance method 'setIcon(icon:)' part of global actor 'MainActor'
 58 |         if statusItem == nil {
 59 |             statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
    :
 64 |             menuBtn.target = self
 65 |             menuBtn.action = #selector(menuBtnAction)
 66 |             menuBtn.sendAction(on: [.leftMouseUp, .rightMouseUp])
    |                     `- warning: call to main actor-isolated instance method 'sendAction(on:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 67 |         }
 68 |     }
AppKit.NSControl.sendAction:2:22: note: calls to instance method 'sendAction(on:)' from outside of its actor context are implicitly asynchronous
1 | class NSControl {
2 | @MainActor open func sendAction(on mask: NSEvent.EventTypeMask) -> Int}
  |                      |- note: calls to instance method 'sendAction(on:)' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSView'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:73:23: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 68 |     }
 69 |
 70 |     public func setView(viewController: NSViewController, behavior: NSPopover.Behavior = .transient, level: NSWindow.Level = .floating, size: CGSize? = nil) {
    |                 `- note: add '@MainActor' to make instance method 'setView(viewController:behavior:level:size:)' part of global actor 'MainActor'
 71 |         self.viewController = viewController
 72 |         if popover == nil {
 73 |             popover = NSPopover()
    |                       `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 74 |             popover?.animates = true
 75 |             popover?.behavior = behavior
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSPopover.h:62:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 60 | #endif
 61 |
 62 | - (instancetype)init NS_DESIGNATED_INITIALIZER;
    | |- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
    | `- note: main actor isolation inferred from inheritance from class 'NSResponder'
 63 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 64 |
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:74:22: warning: main actor-isolated property 'animates' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 68 |     }
 69 |
 70 |     public func setView(viewController: NSViewController, behavior: NSPopover.Behavior = .transient, level: NSWindow.Level = .floating, size: CGSize? = nil) {
    |                 `- note: add '@MainActor' to make instance method 'setView(viewController:behavior:level:size:)' part of global actor 'MainActor'
 71 |         self.viewController = viewController
 72 |         if popover == nil {
 73 |             popover = NSPopover()
 74 |             popover?.animates = true
    |                      `- warning: main actor-isolated property 'animates' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 75 |             popover?.behavior = behavior
 76 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSPopover.h:117:16: note: mutation of this property is only permitted within the actor
115 | /*  Should the popover be animated when it shows, closes, or appears to transition to a detachable window.  This property also controls whether the popover animates when the content view or content size changes. AppKit does not guarantee which behaviors will be animated or that this property will be respected; it is regarded as a hint.  The default value is YES.
116 |  */
117 | @property BOOL animates;
    |                `- note: mutation of this property is only permitted within the actor
118 |
119 | /*  The view controller that manages the content of the popover.  The default value is nil.  You must set the content view controller of the popover to a non-nil value before the popover is shown.  Changes to the popover's content view controller while the popover is shown will animate (provided animates is YES).
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:75:22: warning: main actor-isolated property 'behavior' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 68 |     }
 69 |
 70 |     public func setView(viewController: NSViewController, behavior: NSPopover.Behavior = .transient, level: NSWindow.Level = .floating, size: CGSize? = nil) {
    |                 `- note: add '@MainActor' to make instance method 'setView(viewController:behavior:level:size:)' part of global actor 'MainActor'
 71 |         self.viewController = viewController
 72 |         if popover == nil {
 73 |             popover = NSPopover()
 74 |             popover?.animates = true
 75 |             popover?.behavior = behavior
    |                      `- warning: main actor-isolated property 'behavior' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 76 |         }
 77 |         popover?.contentViewController = viewController
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSPopover.h:113:29: note: mutation of this property is only permitted within the actor
111 | /*  The behavior of the popover.  The default behavior is NSPopoverBehaviorApplicationDefined. See the declaration of NSPopoverBehavior above for more information about popover behaviors.
112 |  */
113 | @property NSPopoverBehavior behavior;
    |                             `- note: mutation of this property is only permitted within the actor
114 |
115 | /*  Should the popover be animated when it shows, closes, or appears to transition to a detachable window.  This property also controls whether the popover animates when the content view or content size changes. AppKit does not guarantee which behaviors will be animated or that this property will be respected; it is regarded as a hint.  The default value is YES.
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:77:18: warning: main actor-isolated property 'contentViewController' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 68 |     }
 69 |
 70 |     public func setView(viewController: NSViewController, behavior: NSPopover.Behavior = .transient, level: NSWindow.Level = .floating, size: CGSize? = nil) {
    |                 `- note: add '@MainActor' to make instance method 'setView(viewController:behavior:level:size:)' part of global actor 'MainActor'
 71 |         self.viewController = viewController
 72 |         if popover == nil {
    :
 75 |             popover?.behavior = behavior
 76 |         }
 77 |         popover?.contentViewController = viewController
    |                  `- warning: main actor-isolated property 'contentViewController' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 78 |         self.level = level
 79 |         if size != nil {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSPopover.h:121:56: note: mutation of this property is only permitted within the actor
119 | /*  The view controller that manages the content of the popover.  The default value is nil.  You must set the content view controller of the popover to a non-nil value before the popover is shown.  Changes to the popover's content view controller while the popover is shown will animate (provided animates is YES).
120 |  */
121 | @property(nullable, retain) IBOutlet NSViewController *contentViewController;
    |                                                        `- note: mutation of this property is only permitted within the actor
122 |
123 | /*  The content size of the popover.  The popover's content size is set to match the size of the content view when the content view controller is set.  Changes to the content size of the popover will animate while the popover is shown (provided animates is YES).
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:80:50: warning: main actor-isolated property 'frame' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 68 |     }
 69 |
 70 |     public func setView(viewController: NSViewController, behavior: NSPopover.Behavior = .transient, level: NSWindow.Level = .floating, size: CGSize? = nil) {
    |                 `- note: add '@MainActor' to make instance method 'setView(viewController:behavior:level:size:)' part of global actor 'MainActor'
 71 |         self.viewController = viewController
 72 |         if popover == nil {
    :
 78 |         self.level = level
 79 |         if size != nil {
 80 |             popover?.contentViewController?.view.frame = NSRect(x: 0, y: 0, width: size!.width, height: size!.height)
    |                                                  `- warning: main actor-isolated property 'frame' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 81 |         }
 82 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:129:18: note: mutation of this property is only permitted within the actor
127 | - (void)setFrameOrigin:(NSPoint)newOrigin;
128 | - (void)setFrameSize:(NSSize)newSize;
129 | @property NSRect frame;
    |                  `- note: mutation of this property is only permitted within the actor
130 | @property CGFloat frameRotation;
131 | @property CGFloat frameCenterRotation API_AVAILABLE(macos(10.5));
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:80:45: warning: main actor-isolated property 'view' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 68 |     }
 69 |
 70 |     public func setView(viewController: NSViewController, behavior: NSPopover.Behavior = .transient, level: NSWindow.Level = .floating, size: CGSize? = nil) {
    |                 `- note: add '@MainActor' to make instance method 'setView(viewController:behavior:level:size:)' part of global actor 'MainActor'
 71 |         self.viewController = viewController
 72 |         if popover == nil {
    :
 78 |         self.level = level
 79 |         if size != nil {
 80 |             popover?.contentViewController?.view.frame = NSRect(x: 0, y: 0, width: size!.width, height: size!.height)
    |                                             `- warning: main actor-isolated property 'view' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 81 |         }
 82 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSViewController.h:78:37: note: property declared here
 76 | /* The default implementation of the getter first invokes [self loadView] if the view hasn't been set yet. After -loadView is called, -viewDidLoad will be called. The setter can be used to assign a view that's created in a different manner than what -view's default implementation would do.
 77 | */
 78 | @property (strong) IBOutlet NSView *view;
    |                                     `- note: property declared here
 79 |
 80 | /* Returns the view controller's view, or nil if the view has not been loaded.
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:80:22: warning: main actor-isolated property 'contentViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 68 |     }
 69 |
 70 |     public func setView(viewController: NSViewController, behavior: NSPopover.Behavior = .transient, level: NSWindow.Level = .floating, size: CGSize? = nil) {
    |                 `- note: add '@MainActor' to make instance method 'setView(viewController:behavior:level:size:)' part of global actor 'MainActor'
 71 |         self.viewController = viewController
 72 |         if popover == nil {
    :
 78 |         self.level = level
 79 |         if size != nil {
 80 |             popover?.contentViewController?.view.frame = NSRect(x: 0, y: 0, width: size!.width, height: size!.height)
    |                      `- warning: main actor-isolated property 'contentViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 81 |         }
 82 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSPopover.h:121:56: note: property declared here
119 | /*  The view controller that manages the content of the popover.  The default value is nil.  You must set the content view controller of the popover to a non-nil value before the popover is shown.  Changes to the popover's content view controller while the popover is shown will animate (provided animates is YES).
120 |  */
121 | @property(nullable, retain) IBOutlet NSViewController *contentViewController;
    |                                                        `- note: property declared here
122 |
123 | /*  The content size of the popover.  The popover's content size is set to match the size of the content view when the content view controller is set.  Changes to the content size of the popover will animate while the popover is shown (provided animates is YES).
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:86:30: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 83 |     }
 84 |
 85 |     public func setView(view: NSView, behavior: NSPopover.Behavior = .transient, level: NSWindow.Level = .floating, size: CGSize? = nil) {
    |                 `- note: add '@MainActor' to make instance method 'setView(view:behavior:level:size:)' part of global actor 'MainActor'
 86 |         let viewController = NSViewController()
    |                              `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 87 |         viewController.view = view
 88 |         self.setView(viewController: viewController, behavior: behavior, level: level, size: size)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h:23:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 21 | @interface NSResponder : NSObject <NSCoding>
 22 |
 23 | - (instancetype)init NS_DESIGNATED_INITIALIZER;
    | |- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
    | `- note: main actor isolation inferred from inheritance from class 'NSResponder'
 24 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 25 |
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:87:24: warning: main actor-isolated property 'view' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 83 |     }
 84 |
 85 |     public func setView(view: NSView, behavior: NSPopover.Behavior = .transient, level: NSWindow.Level = .floating, size: CGSize? = nil) {
    |                 `- note: add '@MainActor' to make instance method 'setView(view:behavior:level:size:)' part of global actor 'MainActor'
 86 |         let viewController = NSViewController()
 87 |         viewController.view = view
    |                        `- warning: main actor-isolated property 'view' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 88 |         self.setView(viewController: viewController, behavior: behavior, level: level, size: size)
 89 |     }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSViewController.h:78:37: note: mutation of this property is only permitted within the actor
 76 | /* The default implementation of the getter first invokes [self loadView] if the view hasn't been set yet. After -loadView is called, -viewDidLoad will be called. The setter can be used to assign a view that's created in a different manner than what -view's default implementation would do.
 77 | */
 78 | @property (strong) IBOutlet NSView *view;
    |                                     `- note: mutation of this property is only permitted within the actor
 79 |
 80 | /* Returns the view controller's view, or nil if the view has not been loaded.
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:93:28: warning: call to main actor-isolated initializer 'init(rootView:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 90 |
 91 |     @available(macOS 10.15, *)
 92 |     public func setView<Content: View>(content: Content, behavior: NSPopover.Behavior = .transient, level: NSWindow.Level = .floating, size: CGSize? = nil) {
    |                 `- note: add '@MainActor' to make instance method 'setView(content:behavior:level:size:)' part of global actor 'MainActor'
 93 |         self.setView(view: NSHostingView(rootView: content), behavior: behavior, level: level, size: size)
    |                            `- warning: call to main actor-isolated initializer 'init(rootView:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 94 |     }
 95 |
SwiftUI.NSHostingView.init:2:44: note: calls to initializer 'init(rootView:)' from outside of its actor context are implicitly asynchronous
1 | generic class NSHostingView {
2 | @MainActor @preconcurrency required public init(rootView: Content)}
  |                                            `- note: calls to initializer 'init(rootView:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:108:33: warning: main actor-isolated property 'currentEvent' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
105 |     }
106 |
107 |     @objc private func menuBtnAction(sender: AnyObject) {
    |                        `- note: add '@MainActor' to make instance method 'menuBtnAction(sender:)' part of global actor 'MainActor'
108 |         guard let event = NSApp.currentEvent else { return }
    |                                 `- warning: main actor-isolated property 'currentEvent' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
109 |         switch event.type {
110 |         case .rightMouseUp:
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:349:49: note: property declared here
347 | - (void)sendEvent:(NSEvent *)event;
348 | - (void)postEvent:(NSEvent *)event atStart:(BOOL)atStart;
349 | @property (nullable, readonly, strong) NSEvent *currentEvent;
    |                                                 `- note: property declared here
350 | - (nullable NSEvent *)nextEventMatchingMask:(NSEventMask)mask untilDate:(nullable NSDate *)expiration inMode:(NSRunLoopMode)mode dequeue:(BOOL)deqFlag;
351 | - (void)discardEventsMatchingMask:(NSEventMask)mask beforeEvent:(nullable NSEvent *)lastEvent;
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:108:27: warning: main actor-isolated var 'NSApp' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
105 |     }
106 |
107 |     @objc private func menuBtnAction(sender: AnyObject) {
    |                        `- note: add '@MainActor' to make instance method 'menuBtnAction(sender:)' part of global actor 'MainActor'
108 |         guard let event = NSApp.currentEvent else { return }
    |                           `- warning: main actor-isolated var 'NSApp' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
109 |         switch event.type {
110 |         case .rightMouseUp:
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:191:58: note: var declared here
189 | @interface NSApplication : NSResponder <NSUserInterfaceValidations, NSMenuItemValidation, NSAccessibilityElement, NSAccessibility>
190 |
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
    |                                                          `- note: var declared here
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:132:21: warning: main actor-isolated property 'isShown' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
    |                     `- warning: main actor-isolated property 'isShown' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
133 |             popover?.performClose(sender)
134 |         } else {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSPopover.h:129:42: note: property declared here
127 | /*  YES if the popover is being shown, NO otherwise. The popover is considered to be shown from the point when -showRelativeToRect:ofView:preferredEdge: is invoked until the popover is closed in response to an invocation of either -close or -performClose:.
128 |  */
129 | @property(readonly, getter=isShown) BOOL shown;
    |                                          `- note: property declared here
130 |
131 | /// Returns \c YES if the window is detached to an implicitly created detached window, \c NO otherwise. This method does not apply when the popover is detached to a window returned with \c -detachableWindowForPopover:.
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:133:22: warning: call to main actor-isolated instance method 'performClose' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
    |                      `- warning: call to main actor-isolated instance method 'performClose' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
134 |         } else {
135 |             if let menuBtn = statusItem?.button {
AppKit.NSPopover.performClose:2:32: note: calls to instance method 'performClose' from outside of its actor context are implicitly asynchronous
1 | class NSPopover {
2 | @IBAction @MainActor open func performClose(_ sender: Any?)}
  |                                |- note: calls to instance method 'performClose' from outside of its actor context are implicitly asynchronous
  |                                `- note: main actor isolation inferred from inheritance from class 'NSResponder'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:136:26: warning: call to main actor-isolated instance method 'show(relativeTo:of:preferredEdge:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
134 |         } else {
135 |             if let menuBtn = statusItem?.button {
136 |                 popover?.show(relativeTo: menuBtn.bounds, of: menuBtn, preferredEdge: .minY)
    |                          `- warning: call to main actor-isolated instance method 'show(relativeTo:of:preferredEdge:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
137 |                 popover?.contentViewController?.view.window?.level = self.level
138 |                 popover?.contentViewController?.view.window?.makeKey()
AppKit.NSPopover.show:2:22: note: calls to instance method 'show(relativeTo:of:preferredEdge:)' from outside of its actor context are implicitly asynchronous
1 | class NSPopover {
2 | @MainActor open func show(relativeTo positioningRect: NSRect, of positioningView: NSView, preferredEdge: NSRectEdge)}
  |                      |- note: calls to instance method 'show(relativeTo:of:preferredEdge:)' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSResponder'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:136:51: warning: main actor-isolated property 'bounds' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
134 |         } else {
135 |             if let menuBtn = statusItem?.button {
136 |                 popover?.show(relativeTo: menuBtn.bounds, of: menuBtn, preferredEdge: .minY)
    |                                                   `- warning: main actor-isolated property 'bounds' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
137 |                 popover?.contentViewController?.view.window?.level = self.level
138 |                 popover?.contentViewController?.view.window?.makeKey()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:139:18: note: property declared here
137 | - (void)scaleUnitSquareToSize:(NSSize)newUnitSize;
138 | - (void)rotateByAngle:(CGFloat)angle;
139 | @property NSRect bounds;
    |                  `- note: property declared here
140 |
141 | @property (getter=isFlipped, readonly) BOOL flipped;
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:137:62: warning: main actor-isolated property 'level' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
    :
135 |             if let menuBtn = statusItem?.button {
136 |                 popover?.show(relativeTo: menuBtn.bounds, of: menuBtn, preferredEdge: .minY)
137 |                 popover?.contentViewController?.view.window?.level = self.level
    |                                                              `- warning: main actor-isolated property 'level' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
138 |                 popover?.contentViewController?.view.window?.makeKey()
139 |             }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h:504:25: note: mutation of this property is only permitted within the actor
 502 |
 503 | @property NSBackingStoreType backingType;
 504 | @property NSWindowLevel level;
     |                         `- note: mutation of this property is only permitted within the actor
 505 | @property NSWindowDepth depthLimit;
 506 | - (void)setDynamicDepthLimit:(BOOL)flag;
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:137:54: warning: main actor-isolated property 'window' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
    :
135 |             if let menuBtn = statusItem?.button {
136 |                 popover?.show(relativeTo: menuBtn.bounds, of: menuBtn, preferredEdge: .minY)
137 |                 popover?.contentViewController?.view.window?.level = self.level
    |                                                      `- warning: main actor-isolated property 'window' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
138 |                 popover?.contentViewController?.view.window?.makeKey()
139 |             }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:86:61: note: mutation of this property is only permitted within the actor
 84 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 85 |
 86 | @property (nullable, readonly, unsafe_unretained) NSWindow *window;
    |                                                             `- note: mutation of this property is only permitted within the actor
 87 | @property (nullable, readonly, unsafe_unretained) NSView *superview;
 88 | @property (copy) NSArray<__kindof NSView *> *subviews;
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:137:49: warning: main actor-isolated property 'view' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
    :
135 |             if let menuBtn = statusItem?.button {
136 |                 popover?.show(relativeTo: menuBtn.bounds, of: menuBtn, preferredEdge: .minY)
137 |                 popover?.contentViewController?.view.window?.level = self.level
    |                                                 `- warning: main actor-isolated property 'view' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
138 |                 popover?.contentViewController?.view.window?.makeKey()
139 |             }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSViewController.h:78:37: note: property declared here
 76 | /* The default implementation of the getter first invokes [self loadView] if the view hasn't been set yet. After -loadView is called, -viewDidLoad will be called. The setter can be used to assign a view that's created in a different manner than what -view's default implementation would do.
 77 | */
 78 | @property (strong) IBOutlet NSView *view;
    |                                     `- note: property declared here
 79 |
 80 | /* Returns the view controller's view, or nil if the view has not been loaded.
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:137:26: warning: main actor-isolated property 'contentViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
    :
135 |             if let menuBtn = statusItem?.button {
136 |                 popover?.show(relativeTo: menuBtn.bounds, of: menuBtn, preferredEdge: .minY)
137 |                 popover?.contentViewController?.view.window?.level = self.level
    |                          `- warning: main actor-isolated property 'contentViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
138 |                 popover?.contentViewController?.view.window?.makeKey()
139 |             }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSPopover.h:121:56: note: property declared here
119 | /*  The view controller that manages the content of the popover.  The default value is nil.  You must set the content view controller of the popover to a non-nil value before the popover is shown.  Changes to the popover's content view controller while the popover is shown will animate (provided animates is YES).
120 |  */
121 | @property(nullable, retain) IBOutlet NSViewController *contentViewController;
    |                                                        `- note: property declared here
122 |
123 | /*  The content size of the popover.  The popover's content size is set to match the size of the content view when the content view controller is set.  Changes to the content size of the popover will animate while the popover is shown (provided animates is YES).
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:138:62: warning: call to main actor-isolated instance method 'makeKey()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
    :
136 |                 popover?.show(relativeTo: menuBtn.bounds, of: menuBtn, preferredEdge: .minY)
137 |                 popover?.contentViewController?.view.window?.level = self.level
138 |                 popover?.contentViewController?.view.window?.makeKey()
    |                                                              `- warning: call to main actor-isolated instance method 'makeKey()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
139 |             }
140 |         }
AppKit.NSWindow.makeKey:2:22: note: calls to instance method 'makeKey()' from outside of its actor context are implicitly asynchronous
1 | class NSWindow {
2 | @MainActor open func makeKey()}
  |                      |- note: calls to instance method 'makeKey()' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSResponder'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:138:54: warning: main actor-isolated property 'window' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
    :
136 |                 popover?.show(relativeTo: menuBtn.bounds, of: menuBtn, preferredEdge: .minY)
137 |                 popover?.contentViewController?.view.window?.level = self.level
138 |                 popover?.contentViewController?.view.window?.makeKey()
    |                                                      `- warning: main actor-isolated property 'window' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
139 |             }
140 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:86:61: note: property declared here
 84 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 85 |
 86 | @property (nullable, readonly, unsafe_unretained) NSWindow *window;
    |                                                             `- note: property declared here
 87 | @property (nullable, readonly, unsafe_unretained) NSView *superview;
 88 | @property (copy) NSArray<__kindof NSView *> *subviews;
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:138:49: warning: main actor-isolated property 'view' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
    :
136 |                 popover?.show(relativeTo: menuBtn.bounds, of: menuBtn, preferredEdge: .minY)
137 |                 popover?.contentViewController?.view.window?.level = self.level
138 |                 popover?.contentViewController?.view.window?.makeKey()
    |                                                 `- warning: main actor-isolated property 'view' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
139 |             }
140 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSViewController.h:78:37: note: property declared here
 76 | /* The default implementation of the getter first invokes [self loadView] if the view hasn't been set yet. After -loadView is called, -viewDidLoad will be called. The setter can be used to assign a view that's created in a different manner than what -view's default implementation would do.
 77 | */
 78 | @property (strong) IBOutlet NSView *view;
    |                                     `- note: property declared here
 79 |
 80 | /* Returns the view controller's view, or nil if the view has not been loaded.
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:138:26: warning: main actor-isolated property 'contentViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
129 |     }
130 |
131 |     private func togglePopover(sender: AnyObject) {
    |                  `- note: add '@MainActor' to make instance method 'togglePopover(sender:)' part of global actor 'MainActor'
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
    :
136 |                 popover?.show(relativeTo: menuBtn.bounds, of: menuBtn, preferredEdge: .minY)
137 |                 popover?.contentViewController?.view.window?.level = self.level
138 |                 popover?.contentViewController?.view.window?.makeKey()
    |                          `- warning: main actor-isolated property 'contentViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
139 |             }
140 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSPopover.h:121:56: note: property declared here
119 | /*  The view controller that manages the content of the popover.  The default value is nil.  You must set the content view controller of the popover to a non-nil value before the popover is shown.  Changes to the popover's content view controller while the popover is shown will animate (provided animates is YES).
120 |  */
121 | @property(nullable, retain) IBOutlet NSViewController *contentViewController;
    |                                                        `- note: property declared here
122 |
123 | /*  The content size of the popover.  The popover's content size is set to match the size of the content view when the content view controller is set.  Changes to the content size of the popover will animate while the popover is shown (provided animates is YES).
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:93:28: warning: sending 'content' risks causing data races; this is an error in the Swift 6 language mode
 91 |     @available(macOS 10.15, *)
 92 |     public func setView<Content: View>(content: Content, behavior: NSPopover.Behavior = .transient, level: NSWindow.Level = .floating, size: CGSize? = nil) {
 93 |         self.setView(view: NSHostingView(rootView: content), behavior: behavior, level: level, size: size)
    |                            |- warning: sending 'content' risks causing data races; this is an error in the Swift 6 language mode
    |                            `- note: sending task-isolated 'content' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 94 |     }
 95 |
/Users/admin/builder/spi-builder-workspace/Sources/Tray/Tray.swift:133:22: warning: sending 'sender.some' risks causing data races; this is an error in the Swift 6 language mode
131 |     private func togglePopover(sender: AnyObject) {
132 |         if popover?.isShown == true {
133 |             popover?.performClose(sender)
    |                      |- warning: sending 'sender.some' risks causing data races; this is an error in the Swift 6 language mode
    |                      `- note: sending task-isolated 'sender.some' to main actor-isolated instance method 'performClose' risks causing data races between main actor-isolated and task-isolated uses
134 |         } else {
135 |             if let menuBtn = statusItem?.button {
Build complete! (8.29s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Tray",
  "name" : "Tray",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Tray",
      "targets" : [
        "Tray"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TrayTests",
      "module_type" : "SwiftTarget",
      "name" : "TrayTests",
      "path" : "Tests/TrayTests",
      "sources" : [
        "TrayTests.swift"
      ],
      "target_dependencies" : [
        "Tray"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Tray",
      "module_type" : "SwiftTarget",
      "name" : "Tray",
      "path" : "Sources/Tray",
      "product_memberships" : [
        "Tray"
      ],
      "sources" : [
        "Tray.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
Done.