Build Information
Successful build of ActionsKit, reference v1.1.0 (3a1a4c
), with Swift 6.0 for macOS (SPM) on 26 Nov 2024 10:38:45 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: v1.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/elegantchaos/ActionsKit
* tag v1.1.0 -> FETCH_HEAD
HEAD is now at 3a1a4c9 Need Swift 5.1 in order to check for Catalyst.
Cloned https://github.com/elegantchaos/ActionsKit.git
Revision (git rev-parse @):
3a1a4c924964404ead8fe6b75b9e00ab30550095
SUCCESS checkout https://github.com/elegantchaos/ActionsKit.git at v1.1.0
Fetching https://github.com/elegantchaos/Logger
Fetching https://github.com/elegantchaos/Actions
Fetching https://github.com/elegantchaos/Localization
[1/961] Fetching actions
[223/3012] Fetching actions, logger
[265/3122] Fetching actions, logger, localization
Fetched https://github.com/elegantchaos/Actions from cache (0.89s)
Fetched https://github.com/elegantchaos/Localization from cache (0.89s)
[206/2051] Fetching logger
Fetched https://github.com/elegantchaos/Logger from cache (1.08s)
Computing version for https://github.com/elegantchaos/Localization
Computed https://github.com/elegantchaos/Localization at 1.0.3 (0.57s)
Computing version for https://github.com/elegantchaos/Logger
Computed https://github.com/elegantchaos/Logger at 1.5.3 (0.59s)
Computing version for https://github.com/elegantchaos/Actions
Computed https://github.com/elegantchaos/Actions at 1.5.1 (0.59s)
Creating working copy for https://github.com/elegantchaos/Localization
Working copy of https://github.com/elegantchaos/Localization resolved at 1.0.3
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
========================================
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.64s)
Fetching https://github.com/elegantchaos/Logger from cache
Fetching https://github.com/elegantchaos/Actions from cache
Fetching https://github.com/elegantchaos/Localization from cache
Fetched https://github.com/elegantchaos/Logger from cache (0.78s)
Fetched https://github.com/elegantchaos/Actions from cache (0.78s)
Fetched https://github.com/elegantchaos/Localization from cache (0.78s)
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.57s)
Creating working copy for https://github.com/elegantchaos/ActionsKit.git
Working copy of https://github.com/elegantchaos/ActionsKit.git resolved at v1.1.0 (3a1a4c9)
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
Creating working copy for https://github.com/elegantchaos/Actions
Working copy of https://github.com/elegantchaos/Actions resolved at 1.5.1
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 Handler.swift
[8/18] Compiling Logger PrintHandler.swift
[9/18] Compiling Localization Localization.swift
[10/18] Emitting module Localization
[10/18] Write Objects.LinkFileList
[12/18] Emitting module Logger
[13/18] Compiling Logger Channel.swift
[14/18] Compiling Logger NSLogHandler.swift
[15/18] Compiling Logger OSLogHandler.swift
[16/18] Compiling Logger Manager.swift
[17/18] Compiling Logger Context.swift
[17/18] Archiving libLocalization.a
[19/35] Compiling Actions DecodableWithContext.swift
[20/36] Compiling Actions ActionSerialisation.swift
[21/36] Compiling Actions ActionNotification.swift
[22/36] Compiling Actions DelegatedAction.swift
[23/36] Compiling Actions ActionKey.swift
[24/36] Compiling Actions ActionContext.swift
[25/36] Compiling Actions ActionIdentification.swift
[26/36] Compiling Actions ActionInfo.swift
[27/36] Emitting module Actions
[28/36] Compiling Actions Action.swift
[29/36] Compiling Actions ActionManager.swift
[30/36] Compiling LoggerKit LoggerSettingsView.swift
[31/36] Compiling LoggerKit LoggerMenuUIKit.swift
[32/36] Compiling LoggerKit LoggerScene.swift
[33/36] Compiling LoggerKit LoggerApplication.swift
[34/36] Emitting module LoggerKit
[35/36] Compiling LoggerKit LoggerMenuAppKit.swift
[36/36] Compiling LoggerKit ChainableResponder.swift
[37/45] Compiling ActionsKit UINavigationController+Actions.swift
[38/45] Compiling ActionsKit UIView+Actions.swift
[39/45] Compiling ActionsKit UIViewController+Actions.swift
[40/45] Compiling ActionsKit UICommand+Actions.swift
[41/45] Compiling ActionsKit ActionManagerMobile.swift
[42/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
[43/45] Compiling ActionsKit UIMenu+Actions.swift
[44/45] Compiling ActionsKit UIResponder+Actions.swift
[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! (17.75s)
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.