Build Information
Successful build of KeyboardShortcuts, reference 2.3.0 (045cf1
), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 20:17:37 UTC.
Swift 6 data race errors: 17
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.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/sindresorhus/KeyboardShortcuts.git
Reference: 2.3.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/sindresorhus/KeyboardShortcuts
* tag 2.3.0 -> FETCH_HEAD
HEAD is now at 045cf17 Add `Shortcut#nsMenuItemKeyEquivalent` property
Cloned https://github.com/sindresorhus/KeyboardShortcuts.git
Revision (git rev-parse @):
045cf174010beb335fa1d2567d18c057b8787165
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/sindresorhus/KeyboardShortcuts.git at 2.3.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "keyboardshortcuts",
"name": "KeyboardShortcuts",
"url": "https://github.com/sindresorhus/KeyboardShortcuts.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/KeyboardShortcuts",
"dependencies": [
]
}
]
}
Fetching https://github.com/sindresorhus/KeyboardShortcuts.git
[1/6707] Fetching keyboardshortcuts
Fetched https://github.com/sindresorhus/KeyboardShortcuts.git from cache (1.04s)
Creating working copy for https://github.com/sindresorhus/KeyboardShortcuts.git
Working copy of https://github.com/sindresorhus/KeyboardShortcuts.git resolved at 2.3.0 (045cf17)
warning: '.resolve-product-dependencies': dependency 'keyboardshortcuts' 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/sindresorhus/KeyboardShortcuts.git
https://github.com/sindresorhus/KeyboardShortcuts.git
{
"default_localization" : "en",
"dependencies" : [
],
"manifest_display_name" : "KeyboardShortcuts",
"name" : "KeyboardShortcuts",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
}
],
"products" : [
{
"name" : "KeyboardShortcuts",
"targets" : [
"KeyboardShortcuts"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "KeyboardShortcutsTests",
"module_type" : "SwiftTarget",
"name" : "KeyboardShortcutsTests",
"path" : "Tests/KeyboardShortcutsTests",
"sources" : [
"KeyboardShortcutsTests.swift",
"Utilities.swift"
],
"target_dependencies" : [
"KeyboardShortcuts"
],
"type" : "test"
},
{
"c99name" : "KeyboardShortcuts",
"module_type" : "SwiftTarget",
"name" : "KeyboardShortcuts",
"path" : "Sources/KeyboardShortcuts",
"product_memberships" : [
"KeyboardShortcuts"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/ar.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ar"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/cs.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "cs"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/de.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "de"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/en.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/es.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "es"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/fr.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "fr"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/hu.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "hu"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/ja.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ja"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/ko.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ko"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/nl.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "nl"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/pt-BR.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "pt-br"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/ru.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ru"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/sk.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "sk"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/zh-Hans.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "zh-hans"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/zh-TW.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "zh-tw"
}
}
}
],
"sources" : [
"CarbonKeyboardShortcuts.swift",
"Key.swift",
"KeyboardShortcuts.swift",
"NSMenuItem++.swift",
"Name.swift",
"Recorder.swift",
"RecorderCocoa.swift",
"Shortcut.swift",
"Utilities.swift",
"ViewModifiers.swift"
],
"type" : "library"
}
],
"tools_version" : "5.11"
}
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/18] Write sources
[1/18] Copying Localizable.strings
[12/18] Copying Info.plist
[13/18] Copying Localizable.strings
[17/18] Write swift-version-2F0A5646E1D333AE.txt
[19/29] Compiling KeyboardShortcuts NSMenuItem++.swift
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/NSMenuItem++.swift:75:5: warning: capture of 'set()' with non-sendable type '() -> ()' in a '@Sendable' closure
73 |
74 | DispatchQueue.main.async { // TODO: Use `Task { @MainActor`
75 | set()
| |- warning: capture of 'set()' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
[20/29] Compiling KeyboardShortcuts Name.swift
[21/29] Compiling KeyboardShortcuts KeyboardShortcuts.swift
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:8:21: warning: static property 'registeredShortcuts' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
6 | */
7 | public enum KeyboardShortcuts {
8 | private static var registeredShortcuts = Set<Shortcut>()
| |- warning: static property 'registeredShortcuts' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'registeredShortcuts' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'registeredShortcuts' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 |
10 | private static var legacyKeyDownHandlers = [Name: [() -> Void]]()
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:10:21: warning: static property 'legacyKeyDownHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
8 | private static var registeredShortcuts = Set<Shortcut>()
9 |
10 | private static var legacyKeyDownHandlers = [Name: [() -> Void]]()
| |- warning: static property 'legacyKeyDownHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'legacyKeyDownHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'legacyKeyDownHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 | private static var legacyKeyUpHandlers = [Name: [() -> Void]]()
12 |
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:11:21: warning: static property 'legacyKeyUpHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | private static var legacyKeyDownHandlers = [Name: [() -> Void]]()
11 | private static var legacyKeyUpHandlers = [Name: [() -> Void]]()
| |- warning: static property 'legacyKeyUpHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'legacyKeyUpHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'legacyKeyUpHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 | private static var streamKeyDownHandlers = [Name: [UUID: () -> Void]]()
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:13:21: warning: static property 'streamKeyDownHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 | private static var legacyKeyUpHandlers = [Name: [() -> Void]]()
12 |
13 | private static var streamKeyDownHandlers = [Name: [UUID: () -> Void]]()
| |- warning: static property 'streamKeyDownHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'streamKeyDownHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'streamKeyDownHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | private static var streamKeyUpHandlers = [Name: [UUID: () -> Void]]()
15 |
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:14:21: warning: static property 'streamKeyUpHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | private static var streamKeyDownHandlers = [Name: [UUID: () -> Void]]()
14 | private static var streamKeyUpHandlers = [Name: [UUID: () -> Void]]()
| |- warning: static property 'streamKeyUpHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'streamKeyUpHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'streamKeyUpHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | private static var shortcutsForLegacyHandlers: Set<Shortcut> {
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:36:21: warning: static property 'isInitialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
34 | }
35 |
36 | private static var isInitialized = false
| |- warning: static property 'isInitialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'isInitialized' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'isInitialized' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
37 |
38 | private static var openMenuObserver: NSObjectProtocol?
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:38:21: warning: static property 'openMenuObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
36 | private static var isInitialized = false
37 |
38 | private static var openMenuObserver: NSObjectProtocol?
| |- warning: static property 'openMenuObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'openMenuObserver' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'openMenuObserver' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | private static var closeMenuObserver: NSObjectProtocol?
40 |
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:39:21: warning: static property 'closeMenuObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |
38 | private static var openMenuObserver: NSObjectProtocol?
39 | private static var closeMenuObserver: NSObjectProtocol?
| |- warning: static property 'closeMenuObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'closeMenuObserver' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'closeMenuObserver' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | /**
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:44:13: warning: static property 'isPaused' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 | When `true`, event handlers will not be called for registered keyboard shortcuts.
43 | */
44 | static var isPaused = false
| |- warning: static property 'isPaused' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'isPaused' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'isPaused' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 |
46 | /**
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:51:20: warning: static property 'isEnabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 | The default is `true`.
50 | */
51 | public static var isEnabled = true {
| |- warning: static property 'isEnabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'isEnabled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'isEnabled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 | didSet {
53 | guard isEnabled != oldValue else {
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:81:26: warning: static property 'isMenuOpen' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
79 | The main use-case for this is toggling the menu of a menu bar app with a keyboard shortcut.
80 | */
81 | private(set) static var isMenuOpen = false {
| |- warning: static property 'isMenuOpen' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'isMenuOpen' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'isMenuOpen' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
82 | didSet {
83 | guard isMenuOpen != oldValue else {
[22/29] Compiling KeyboardShortcuts CarbonKeyboardShortcuts.swift
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:31:21: warning: static property 'hotKeys' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
29 | }
30 |
31 | private static var hotKeys = [Int: HotKey]()
| |- warning: static property 'hotKeys' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'hotKeys' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'hotKeys' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 |
33 | // `SSKS` is just short for `Sindre Sorhus Keyboard Shortcuts`.
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:38:21: warning: static property 'hotKeyId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
36 | private static let hotKeySignature: UInt32 = 1397967699 // OSType => "SSKS"
37 |
38 | private static var hotKeyId = 0
| |- warning: static property 'hotKeyId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'hotKeyId' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'hotKeyId' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | private static var eventHandler: EventHandlerRef?
40 |
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:39:21: warning: static property 'eventHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |
38 | private static var hotKeyId = 0
39 | private static var eventHandler: EventHandlerRef?
| |- warning: static property 'eventHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'eventHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'eventHandler' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private static let hotKeyEventTypes = [
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:50:21: warning: static property 'keyEventMonitor' is not concurrency-safe because non-'Sendable' type 'RunLoopLocalEventMonitor' may have shared mutable state; this is an error in the Swift 6 language mode
48 | ]
49 |
50 | private static let keyEventMonitor = RunLoopLocalEventMonitor(events: [.keyDown, .keyUp], runLoopMode: .eventTracking) { event in
| |- warning: static property 'keyEventMonitor' is not concurrency-safe because non-'Sendable' type 'RunLoopLocalEventMonitor' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'keyEventMonitor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | guard
52 | let eventRef = OpaquePointer(event.eventRef),
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Utilities.swift:92:13: note: class 'RunLoopLocalEventMonitor' does not conform to the 'Sendable' protocol
90 |
91 |
92 | final class RunLoopLocalEventMonitor {
| `- note: class 'RunLoopLocalEventMonitor' does not conform to the 'Sendable' protocol
93 | private let runLoopMode: RunLoop.Mode
94 | private let callback: (NSEvent) -> NSEvent?
[23/29] Compiling KeyboardShortcuts Key.swift
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:31:21: warning: static property 'hotKeys' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
29 | }
30 |
31 | private static var hotKeys = [Int: HotKey]()
| |- warning: static property 'hotKeys' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'hotKeys' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'hotKeys' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 |
33 | // `SSKS` is just short for `Sindre Sorhus Keyboard Shortcuts`.
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:38:21: warning: static property 'hotKeyId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
36 | private static let hotKeySignature: UInt32 = 1397967699 // OSType => "SSKS"
37 |
38 | private static var hotKeyId = 0
| |- warning: static property 'hotKeyId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'hotKeyId' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'hotKeyId' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | private static var eventHandler: EventHandlerRef?
40 |
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:39:21: warning: static property 'eventHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |
38 | private static var hotKeyId = 0
39 | private static var eventHandler: EventHandlerRef?
| |- warning: static property 'eventHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'eventHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'eventHandler' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private static let hotKeyEventTypes = [
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:50:21: warning: static property 'keyEventMonitor' is not concurrency-safe because non-'Sendable' type 'RunLoopLocalEventMonitor' may have shared mutable state; this is an error in the Swift 6 language mode
48 | ]
49 |
50 | private static let keyEventMonitor = RunLoopLocalEventMonitor(events: [.keyDown, .keyUp], runLoopMode: .eventTracking) { event in
| |- warning: static property 'keyEventMonitor' is not concurrency-safe because non-'Sendable' type 'RunLoopLocalEventMonitor' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'keyEventMonitor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | guard
52 | let eventRef = OpaquePointer(event.eventRef),
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Utilities.swift:92:13: note: class 'RunLoopLocalEventMonitor' does not conform to the 'Sendable' protocol
90 |
91 |
92 | final class RunLoopLocalEventMonitor {
| `- note: class 'RunLoopLocalEventMonitor' does not conform to the 'Sendable' protocol
93 | private let runLoopMode: RunLoop.Mode
94 | private let callback: (NSEvent) -> NSEvent?
[24/29] Emitting module KeyboardShortcuts
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:31:21: warning: static property 'hotKeys' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
29 | }
30 |
31 | private static var hotKeys = [Int: HotKey]()
| |- warning: static property 'hotKeys' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'hotKeys' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'hotKeys' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 |
33 | // `SSKS` is just short for `Sindre Sorhus Keyboard Shortcuts`.
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:38:21: warning: static property 'hotKeyId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
36 | private static let hotKeySignature: UInt32 = 1397967699 // OSType => "SSKS"
37 |
38 | private static var hotKeyId = 0
| |- warning: static property 'hotKeyId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'hotKeyId' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'hotKeyId' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | private static var eventHandler: EventHandlerRef?
40 |
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:39:21: warning: static property 'eventHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |
38 | private static var hotKeyId = 0
39 | private static var eventHandler: EventHandlerRef?
| |- warning: static property 'eventHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'eventHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'eventHandler' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private static let hotKeyEventTypes = [
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/CarbonKeyboardShortcuts.swift:50:21: warning: static property 'keyEventMonitor' is not concurrency-safe because non-'Sendable' type 'RunLoopLocalEventMonitor' may have shared mutable state; this is an error in the Swift 6 language mode
48 | ]
49 |
50 | private static let keyEventMonitor = RunLoopLocalEventMonitor(events: [.keyDown, .keyUp], runLoopMode: .eventTracking) { event in
| |- warning: static property 'keyEventMonitor' is not concurrency-safe because non-'Sendable' type 'RunLoopLocalEventMonitor' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'keyEventMonitor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | guard
52 | let eventRef = OpaquePointer(event.eventRef),
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Utilities.swift:92:13: note: class 'RunLoopLocalEventMonitor' does not conform to the 'Sendable' protocol
90 |
91 |
92 | final class RunLoopLocalEventMonitor {
| `- note: class 'RunLoopLocalEventMonitor' does not conform to the 'Sendable' protocol
93 | private let runLoopMode: RunLoop.Mode
94 | private let callback: (NSEvent) -> NSEvent?
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:8:21: warning: static property 'registeredShortcuts' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
6 | */
7 | public enum KeyboardShortcuts {
8 | private static var registeredShortcuts = Set<Shortcut>()
| |- warning: static property 'registeredShortcuts' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'registeredShortcuts' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'registeredShortcuts' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 |
10 | private static var legacyKeyDownHandlers = [Name: [() -> Void]]()
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:10:21: warning: static property 'legacyKeyDownHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
8 | private static var registeredShortcuts = Set<Shortcut>()
9 |
10 | private static var legacyKeyDownHandlers = [Name: [() -> Void]]()
| |- warning: static property 'legacyKeyDownHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'legacyKeyDownHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'legacyKeyDownHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 | private static var legacyKeyUpHandlers = [Name: [() -> Void]]()
12 |
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:11:21: warning: static property 'legacyKeyUpHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | private static var legacyKeyDownHandlers = [Name: [() -> Void]]()
11 | private static var legacyKeyUpHandlers = [Name: [() -> Void]]()
| |- warning: static property 'legacyKeyUpHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'legacyKeyUpHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'legacyKeyUpHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 | private static var streamKeyDownHandlers = [Name: [UUID: () -> Void]]()
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:13:21: warning: static property 'streamKeyDownHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 | private static var legacyKeyUpHandlers = [Name: [() -> Void]]()
12 |
13 | private static var streamKeyDownHandlers = [Name: [UUID: () -> Void]]()
| |- warning: static property 'streamKeyDownHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'streamKeyDownHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'streamKeyDownHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | private static var streamKeyUpHandlers = [Name: [UUID: () -> Void]]()
15 |
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:14:21: warning: static property 'streamKeyUpHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | private static var streamKeyDownHandlers = [Name: [UUID: () -> Void]]()
14 | private static var streamKeyUpHandlers = [Name: [UUID: () -> Void]]()
| |- warning: static property 'streamKeyUpHandlers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'streamKeyUpHandlers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'streamKeyUpHandlers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | private static var shortcutsForLegacyHandlers: Set<Shortcut> {
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:36:21: warning: static property 'isInitialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
34 | }
35 |
36 | private static var isInitialized = false
| |- warning: static property 'isInitialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'isInitialized' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'isInitialized' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
37 |
38 | private static var openMenuObserver: NSObjectProtocol?
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:38:21: warning: static property 'openMenuObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
36 | private static var isInitialized = false
37 |
38 | private static var openMenuObserver: NSObjectProtocol?
| |- warning: static property 'openMenuObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'openMenuObserver' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'openMenuObserver' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | private static var closeMenuObserver: NSObjectProtocol?
40 |
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:39:21: warning: static property 'closeMenuObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |
38 | private static var openMenuObserver: NSObjectProtocol?
39 | private static var closeMenuObserver: NSObjectProtocol?
| |- warning: static property 'closeMenuObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'closeMenuObserver' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'closeMenuObserver' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | /**
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:44:13: warning: static property 'isPaused' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 | When `true`, event handlers will not be called for registered keyboard shortcuts.
43 | */
44 | static var isPaused = false
| |- warning: static property 'isPaused' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'isPaused' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'isPaused' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 |
46 | /**
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:51:20: warning: static property 'isEnabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 | The default is `true`.
50 | */
51 | public static var isEnabled = true {
| |- warning: static property 'isEnabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'isEnabled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'isEnabled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 | didSet {
53 | guard isEnabled != oldValue else {
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/KeyboardShortcuts.swift:81:26: warning: static property 'isMenuOpen' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
79 | The main use-case for this is toggling the menu of a menu bar app with a keyboard shortcut.
80 | */
81 | private(set) static var isMenuOpen = false {
| |- warning: static property 'isMenuOpen' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'isMenuOpen' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'isMenuOpen' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
82 | didSet {
83 | guard isMenuOpen != oldValue else {
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Shortcut.swift:745:13: warning: main actor-isolated property 'description' cannot be used to satisfy nonisolated requirement from protocol 'CustomStringConvertible'; this is an error in the Swift 6 language mode
720 | }
721 |
722 | extension KeyboardShortcuts.Shortcut: CustomStringConvertible {
| `- note: add '@preconcurrency' to the 'CustomStringConvertible' conformance to defer isolation checking to run time
723 | /**
724 | The string representation of the keyboard shortcut.
:
743 |
744 | @MainActor
745 | public var description: String {
| `- warning: main actor-isolated property 'description' cannot be used to satisfy nonisolated requirement from protocol 'CustomStringConvertible'; this is an error in the Swift 6 language mode
746 | // TODO: `description` needs to be `nonisolated`
747 | presentableDescription
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Utilities.swift:399:13: warning: static property 'functionKeys' is not concurrency-safe because non-'Sendable' type 'Set<NSEvent.SpecialKey>' may have shared mutable state; this is an error in the Swift 6 language mode
397 |
398 | extension NSEvent.SpecialKey {
399 | static let functionKeys: Set<Self> = [
| `- warning: static property 'functionKeys' is not concurrency-safe because non-'Sendable' type 'Set<NSEvent.SpecialKey>' may have shared mutable state; this is an error in the Swift 6 language mode
400 | .f1,
401 | .f2,
AppKit.NSEvent.SpecialKey:2:15: note: struct 'SpecialKey' does not conform to the 'Sendable' protocol
1 | class NSEvent {
2 | public struct SpecialKey : RawRepresentable, Equatable, Hashable {
| `- note: struct 'SpecialKey' does not conform to the 'Sendable' protocol
3 | public init(rawValue: Int)
4 | public let rawValue: Int
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Utilities.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AppKit'
1 | import SwiftUI
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AppKit'
2 |
3 | #if os(macOS)
:
397 |
398 | extension NSEvent.SpecialKey {
399 | static let functionKeys: Set<Self> = [
| |- note: add '@MainActor' to make static property 'functionKeys' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
400 | .f1,
401 | .f2,
[25/29] Compiling KeyboardShortcuts Recorder.swift
[26/30] Compiling KeyboardShortcuts RecorderCocoa.swift
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/RecorderCocoa.swift:126:28: warning: main actor-isolated property 'shortcutName' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
41 | Can be dynamically changed at any time.
42 | */
43 | public var shortcutName: Name {
| `- note: property declared here
44 | didSet {
45 | guard shortcutName != oldValue else {
:
124 | let self,
125 | let nameInNotification = notification.userInfo?["name"] as? KeyboardShortcuts.Name,
126 | nameInNotification == shortcutName
| `- warning: main actor-isolated property 'shortcutName' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
127 | else {
128 | return
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/RecorderCocoa.swift:131:5: warning: call to main actor-isolated instance method 'setStringValue(name:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
112 | }
113 |
114 | private func setStringValue(name: KeyboardShortcuts.Name) {
| |- note: calls to instance method 'setStringValue(name:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSSearchField'
115 | stringValue = getShortcut(for: shortcutName).map { "\($0)" } ?? ""
116 |
:
129 | }
130 |
131 | setStringValue(name: nameInNotification)
| `- warning: call to main actor-isolated instance method 'setStringValue(name:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
132 | }
133 | }
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/RecorderCocoa.swift:186:24: warning: main actor-isolated property 'window' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
184 | guard
185 | let self,
186 | let window = self.window
| `- warning: main actor-isolated property 'window' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
187 | else {
188 | return
/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/KeyboardShortcuts/RecorderCocoa.swift:191:5: warning: call to main actor-isolated instance method 'endRecording()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
133 | }
134 |
135 | private func endRecording() {
| |- note: calls to instance method 'endRecording()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSSearchField'
136 | eventMonitor = nil
137 | placeholderString = "record_shortcut".localized
:
189 | }
190 |
191 | endRecording()
| `- warning: call to main actor-isolated instance method 'endRecording()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
192 | window.makeFirstResponder(nil)
193 | }
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/RecorderCocoa.swift:192:12: warning: call to main actor-isolated instance method 'makeFirstResponder' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
190 |
191 | endRecording()
192 | window.makeFirstResponder(nil)
| `- warning: call to main actor-isolated instance method 'makeFirstResponder' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
193 | }
194 |
AppKit.NSWindow.makeFirstResponder:2:22: note: calls to instance method 'makeFirstResponder' from outside of its actor context are implicitly asynchronous
1 | class NSWindow {
2 | @MainActor open func makeFirstResponder(_ responder: NSResponder?) -> Bool}
| |- note: calls to instance method 'makeFirstResponder' 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/KeyboardShortcuts/RecorderCocoa.swift:197:11: warning: call to main actor-isolated instance method 'preventBecomingKey()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
142 | }
143 |
144 | private func preventBecomingKey() {
| |- note: calls to instance method 'preventBecomingKey()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSSearchField'
145 | canBecomeKey = false
146 |
:
195 | // Ensures the recorder does not receive initial focus when a hidden window becomes unhidden.
196 | windowDidBecomeKeyObserver = NotificationCenter.default.addObserver(forName: NSWindow.didBecomeKeyNotification, object: window, queue: nil) { [weak self] _ in
197 | self?.preventBecomingKey()
| `- warning: call to main actor-isolated instance method 'preventBecomingKey()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
198 | }
199 |
[27/30] Compiling KeyboardShortcuts ViewModifiers.swift
[28/30] Compiling KeyboardShortcuts Shortcut.swift
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Shortcut.swift:745:13: warning: main actor-isolated property 'description' cannot be used to satisfy nonisolated requirement from protocol 'CustomStringConvertible'; this is an error in the Swift 6 language mode
720 | }
721 |
722 | extension KeyboardShortcuts.Shortcut: CustomStringConvertible {
| `- note: add '@preconcurrency' to the 'CustomStringConvertible' conformance to defer isolation checking to run time
723 | /**
724 | The string representation of the keyboard shortcut.
:
743 |
744 | @MainActor
745 | public var description: String {
| `- warning: main actor-isolated property 'description' cannot be used to satisfy nonisolated requirement from protocol 'CustomStringConvertible'; this is an error in the Swift 6 language mode
746 | // TODO: `description` needs to be `nonisolated`
747 | presentableDescription
[29/30] Compiling KeyboardShortcuts Utilities.swift
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Utilities.swift:399:13: warning: static property 'functionKeys' is not concurrency-safe because non-'Sendable' type 'Set<NSEvent.SpecialKey>' may have shared mutable state; this is an error in the Swift 6 language mode
397 |
398 | extension NSEvent.SpecialKey {
399 | static let functionKeys: Set<Self> = [
| `- warning: static property 'functionKeys' is not concurrency-safe because non-'Sendable' type 'Set<NSEvent.SpecialKey>' may have shared mutable state; this is an error in the Swift 6 language mode
400 | .f1,
401 | .f2,
AppKit.NSEvent.SpecialKey:2:15: note: struct 'SpecialKey' does not conform to the 'Sendable' protocol
1 | class NSEvent {
2 | public struct SpecialKey : RawRepresentable, Equatable, Hashable {
| `- note: struct 'SpecialKey' does not conform to the 'Sendable' protocol
3 | public init(rawValue: Int)
4 | public let rawValue: Int
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Utilities.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AppKit'
1 | import SwiftUI
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AppKit'
2 |
3 | #if os(macOS)
:
397 |
398 | extension NSEvent.SpecialKey {
399 | static let functionKeys: Set<Self> = [
| |- note: add '@MainActor' to make static property 'functionKeys' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
400 | .f1,
401 | .f2,
/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Utilities.swift:112:36: warning: call to main actor-isolated instance method 'nextEvent(matching:until:inMode:dequeue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
110 |
111 | // Retrieve all events from the event queue to preserve their order (instead of using the `matching` parameter).
112 | while let eventToHandle = NSApp.nextEvent(matching: .any, until: nil, inMode: .default, dequeue: true) {
| `- warning: call to main actor-isolated instance method 'nextEvent(matching:until:inMode:dequeue:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
113 | eventsToHandle.append(eventToHandle)
114 | }
AppKit.NSApplication.nextEvent:2:22: note: calls to instance method 'nextEvent(matching:until:inMode:dequeue:)' from outside of its actor context are implicitly asynchronous
1 | class NSApplication {
2 | @MainActor open func nextEvent(matching mask: NSEvent.EventTypeMask, until expiration: Date?, inMode mode: RunLoop.Mode, dequeue deqFlag: Bool) -> NSEvent?}
| |- note: calls to instance method 'nextEvent(matching:until:inMode:dequeue:)' 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/KeyboardShortcuts/Utilities.swift:112:30: warning: main actor-isolated var 'NSApp' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
110 |
111 | // Retrieve all events from the event queue to preserve their order (instead of using the `matching` parameter).
112 | while let eventToHandle = NSApp.nextEvent(matching: .any, until: nil, inMode: .default, dequeue: true) {
| `- warning: main actor-isolated var 'NSApp' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
113 | eventsToHandle.append(eventToHandle)
114 | }
/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/KeyboardShortcuts/Utilities.swift:130:11: warning: call to main actor-isolated instance method 'postEvent(_:atStart:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
128 | }
129 |
130 | NSApp.postEvent(handledEvent, atStart: false)
| `- warning: call to main actor-isolated instance method 'postEvent(_:atStart:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
131 | }
132 | }
AppKit.NSApplication.postEvent:2:22: note: calls to instance method 'postEvent(_:atStart:)' from outside of its actor context are implicitly asynchronous
1 | class NSApplication {
2 | @MainActor open func postEvent(_ event: NSEvent, atStart: Bool)}
| |- note: calls to instance method 'postEvent(_:atStart:)' 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/KeyboardShortcuts/Utilities.swift:130:5: warning: main actor-isolated var 'NSApp' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
128 | }
129 |
130 | NSApp.postEvent(handledEvent, atStart: false)
| `- warning: main actor-isolated var 'NSApp' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
131 | }
132 | }
/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/KeyboardShortcuts/Utilities.swift:130:11: warning: sending 'handledEvent' risks causing data races; this is an error in the Swift 6 language mode
128 | }
129 |
130 | NSApp.postEvent(handledEvent, atStart: false)
| |- warning: sending 'handledEvent' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending 'handledEvent' to main actor-isolated instance method 'postEvent(_:atStart:)' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
131 | }
132 | }
[30/30] Compiling KeyboardShortcuts resource_bundle_accessor.swift
Build complete! (8.80s)
Build complete.
{
"default_localization" : "en",
"dependencies" : [
],
"manifest_display_name" : "KeyboardShortcuts",
"name" : "KeyboardShortcuts",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
}
],
"products" : [
{
"name" : "KeyboardShortcuts",
"targets" : [
"KeyboardShortcuts"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "KeyboardShortcutsTests",
"module_type" : "SwiftTarget",
"name" : "KeyboardShortcutsTests",
"path" : "Tests/KeyboardShortcutsTests",
"sources" : [
"KeyboardShortcutsTests.swift",
"Utilities.swift"
],
"target_dependencies" : [
"KeyboardShortcuts"
],
"type" : "test"
},
{
"c99name" : "KeyboardShortcuts",
"module_type" : "SwiftTarget",
"name" : "KeyboardShortcuts",
"path" : "Sources/KeyboardShortcuts",
"product_memberships" : [
"KeyboardShortcuts"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/ar.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ar"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/cs.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "cs"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/de.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "de"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/en.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/es.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "es"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/fr.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "fr"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/hu.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "hu"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/ja.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ja"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/ko.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ko"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/nl.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "nl"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/pt-BR.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "pt-br"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/ru.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "ru"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/sk.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "sk"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/zh-Hans.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "zh-hans"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KeyboardShortcuts/Localization/zh-TW.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "zh-tw"
}
}
}
],
"sources" : [
"CarbonKeyboardShortcuts.swift",
"Key.swift",
"KeyboardShortcuts.swift",
"NSMenuItem++.swift",
"Name.swift",
"Recorder.swift",
"RecorderCocoa.swift",
"Shortcut.swift",
"Utilities.swift",
"ViewModifiers.swift"
],
"type" : "library"
}
],
"tools_version" : "5.11"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/sindresorhus/keyboardshortcuts/2.3.0
Repository: sindresorhus/KeyboardShortcuts
Swift version used: 6.1
Target: KeyboardShortcuts
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/swift-docc-render-artifact/.git/
From https://github.com/swiftlang/swift-docc-render-artifact
* branch release/6.2 -> FETCH_HEAD
* [new branch] release/6.2 -> origin/release/6.2
HEAD is now at 8799b69 Update the artifact
Cloned https://github.com/swiftlang/swift-docc-render-artifact
Extracting symbol information for 'KeyboardShortcuts'...
Finished extracting symbol information for 'KeyboardShortcuts'. (5.42s)
Building documentation for 'KeyboardShortcuts'...
Finished building documentation for 'KeyboardShortcuts' (0.67s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/sindresorhus/keyboardshortcuts/2.3.0
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.47s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.3 (1.14s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.75s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.39s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.3
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Building for debugging...
[0/8] Write sources
[1/8] Write snippet-extract-tool-entitlement.plist
[2/8] Write sources
[4/8] Write swift-version-2F0A5646E1D333AE.txt
[6/53] Compiling Snippets SnippetParser.swift
[7/53] Compiling SymbolKit GenericConstraint.swift
[8/53] Compiling SymbolKit GenericParameter.swift
[9/53] Compiling SymbolKit Generics.swift
[10/53] Compiling SymbolKit Namespace.swift
[11/57] Compiling Snippets Snippet.swift
[12/57] Emitting module Snippets
[13/57] Emitting module SymbolKit
[14/57] Compiling SymbolKit DeclarationFragments.swift
[15/57] Compiling SymbolKit Fragment.swift
[16/57] Compiling SymbolKit FragmentKind.swift
[17/57] Compiling SymbolKit FunctionParameter.swift
[18/57] Compiling SymbolKit FunctionSignature.swift
[19/57] Compiling SymbolKit Relationship.swift
[20/57] Compiling SymbolKit RelationshipKind.swift
[21/57] Compiling SymbolKit SourceOrigin.swift
[22/57] Compiling SymbolKit GenericConstraints.swift
[23/57] Compiling SymbolKit Swift.swift
[24/57] Compiling SymbolKit Identifier.swift
[25/57] Compiling SymbolKit KindIdentifier.swift
[26/57] Compiling SymbolKit Location.swift
[27/57] Compiling SymbolKit Mutability.swift
[28/57] Compiling SymbolKit Names.swift
[29/57] Compiling SymbolKit SPI.swift
[30/57] Compiling SymbolKit Snippet.swift
[31/57] Compiling SymbolKit Extension.swift
[32/57] Compiling SymbolKit Symbol.swift
[33/57] Compiling SymbolKit SymbolKind.swift
[34/57] Compiling SymbolKit SymbolGraph.swift
[35/57] Compiling SymbolKit GraphCollector.swift
[36/57] Compiling SymbolKit SourceRange.swift
[37/57] Compiling SymbolKit Metadata.swift
[38/57] Compiling SymbolKit Module.swift
[39/57] Compiling SymbolKit OperatingSystem.swift
[40/57] Compiling SymbolKit Platform.swift
[41/57] Compiling SymbolKit Mixin+Equals.swift
[42/57] Compiling SymbolKit Mixin+Hash.swift
[43/57] Compiling SymbolKit Mixin.swift
[44/57] Compiling SymbolKit LineList.swift
[45/57] Compiling SymbolKit Position.swift
[46/57] Compiling SymbolKit SemanticVersion.swift
[47/57] Compiling SymbolKit AccessControl.swift
[48/57] Compiling SymbolKit Availability.swift
[49/57] Compiling SymbolKit AvailabilityItem.swift
[50/57] Compiling SymbolKit Domain.swift
[51/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[52/57] Compiling SymbolKit UnifiedSymbol.swift
[53/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[54/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[55/61] Compiling snippet_extract URL+Status.swift
[56/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[57/61] Emitting module snippet_extract
[58/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.17s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/12] Compiling KeyboardShortcuts ViewModifiers.swift
[3/12] Compiling KeyboardShortcuts Shortcut.swift
[4/12] Compiling KeyboardShortcuts Utilities.swift
[5/12] Compiling KeyboardShortcuts Name.swift
[6/12] Compiling KeyboardShortcuts KeyboardShortcuts.swift
[7/12] Compiling KeyboardShortcuts Recorder.swift
[8/12] Emitting module KeyboardShortcuts
[9/12] Compiling KeyboardShortcuts NSMenuItem++.swift
[10/12] Compiling KeyboardShortcuts RecorderCocoa.swift
[11/12] Compiling KeyboardShortcuts CarbonKeyboardShortcuts.swift
[12/12] Compiling KeyboardShortcuts Key.swift
[13/13] Compiling KeyboardShortcuts resource_bundle_accessor.swift
Build of target: 'KeyboardShortcuts' complete! (1.19s)
1864
13 /Users/admin/builder/spi-builder-workspace/.docs/sindresorhus/keyboardshortcuts/2.3.0
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/sindresorhus/keyboardshortcuts/2.3.0
File count: 1864
Doc size: 13.0MB
Preparing doc bundle ...
Uploading prod-sindresorhus-keyboardshortcuts-2.3.0-64b24003.zip to s3://spi-docs-inbox/prod-sindresorhus-keyboardshortcuts-2.3.0-64b24003.zip
Copying... [12%]
Copying... [22%]
Copying... [32%]
Copying... [42%]
Copying... [51%]
Copying... [61%]
Copying... [71%]
Copying... [81%]
Copying... [91%]
Copying... [100%]
Done.