Build Information
Successful build of KeyboardShortcuts, reference main (81caa5), with Swift 6.2 for macOS (SPM) on 27 Feb 2026 00:49:43 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.0.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/sindresorhus/KeyboardShortcuts.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/sindresorhus/KeyboardShortcuts
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 81caa54 Add ability to better control default shortcut blocking
Cloned https://github.com/sindresorhus/KeyboardShortcuts.git
Revision (git rev-parse @):
81caa542dc81b058a2c30daab3cb2fbd6a90db7b
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/sindresorhus/KeyboardShortcuts.git at main
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "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/7213] Fetching keyboardshortcuts
Fetched https://github.com/sindresorhus/KeyboardShortcuts.git from cache (1.09s)
Creating working copy for https://github.com/sindresorhus/KeyboardShortcuts.git
Working copy of https://github.com/sindresorhus/KeyboardShortcuts.git resolved at main (81caa54)
warning: '.resolve-product-dependencies': dependency 'keyboardshortcuts' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.2
Building package at path: $PWD
https://github.com/sindresorhus/KeyboardShortcuts.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0.app xcrun swift build --arch arm64
Building for debugging...
[0/20] Copying Localizable.strings
[9/20] Write sources
[11/20] Copying Localizable.strings
[12/20] Copying Info.plist
[13/20] Copying Localizable.strings
[19/20] Write swift-version-49B95AFC49DCD68C.txt
[21/32] Compiling KeyboardShortcuts ViewModifiers.swift
[22/32] Compiling KeyboardShortcuts Shortcut.swift
[23/32] Compiling KeyboardShortcuts Utilities.swift
[24/33] Compiling KeyboardShortcuts Recorder.swift
[25/33] Compiling KeyboardShortcuts Name.swift
[26/33] Compiling KeyboardShortcuts ConflictPolicy.swift
[27/33] Compiling KeyboardShortcuts HotKey.swift
[28/33] Compiling KeyboardShortcuts NSMenuItem++.swift
[29/33] Emitting module KeyboardShortcuts
[30/33] Compiling KeyboardShortcuts Key.swift
[31/33] Compiling KeyboardShortcuts KeyboardShortcuts.swift
[32/33] Compiling KeyboardShortcuts RecorderCocoa.swift
[33/33] Compiling KeyboardShortcuts resource_bundle_accessor.swift
Build complete! (7.99s)
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",
"RecorderLayoutTests.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/it.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "it"
}
}
},
{
"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/pl.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "pl"
}
}
},
{
"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" : [
"ConflictPolicy.swift",
"HotKey.swift",
"Key.swift",
"KeyboardShortcuts.swift",
"NSMenuItem++.swift",
"Name.swift",
"Recorder.swift",
"RecorderCocoa.swift",
"Shortcut.swift",
"Utilities.swift",
"ViewModifiers.swift"
],
"type" : "library"
}
],
"tools_version" : "6.2"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/sindresorhus/keyboardshortcuts/main
Repository: sindresorhus/KeyboardShortcuts
Swift version used: 6.2
Target: KeyboardShortcuts
Extracting symbol information for 'KeyboardShortcuts'...
Finished extracting symbol information for 'KeyboardShortcuts'. (4.37s)
Building documentation for 'KeyboardShortcuts'...
warning: 'DocumentationExtension' doesn't change default configuration and has no effect
--> KeyboardShortcuts.md:4:2-4:48
2 |
3 | @Metadata {
4 + @DocumentationExtension(mergeBehavior: append)
| ╰─suggestion: Remove this 'DocumentationExtension' directive.
5 | }
6 |
warning: 'DocumentationExtension' doesn't change default configuration and has no effect
--> KeyboardShortcuts.md:4:2-4:48
2 |
3 | @Metadata {
4 + @DocumentationExtension(mergeBehavior: append)
| ╰─suggestion: Remove this 'DocumentationExtension' directive.
5 | }
6 |
warning: 'events(for:)' is ambiguous at '/KeyboardShortcuts/KeyboardShortcuts'
--> ../KeyboardShortcuts.swift:272:56-272:68
270 | This can be used to reset the handlers before re-creating them to avoid having multiple handlers for the same shortcut.
271 |
272 + - Note: This method does not affect listeners using ``events(for:)``.
| ├─suggestion: Insert '-(KeyboardShortcuts.Name)' for '@MainActor static func events(for name: KeyboardShortcuts.Name) -> AsyncStream<KeyboardShortcuts.EventType>'
| ╰─suggestion: Insert '-(KeyboardShortcuts.Shortcut)' for '@MainActor static func events(for shortcut: KeyboardShortcuts.Shortcut) -> AsyncStream<KeyboardShortcuts.EventType>'
273 | */
274 | public static func removeAllHandlers() {
warning: 'events(for:)' is ambiguous at '/KeyboardShortcuts/KeyboardShortcuts'
--> ../KeyboardShortcuts.swift:294:56-294:68
292 | - Parameter name: The name of the keyboard shortcut to remove handlers for.
293 |
294 + - Note: This method does not affect listeners using ``events(for:)``.
| ├─suggestion: Insert '-(KeyboardShortcuts.Name)' for '@MainActor static func events(for name: KeyboardShortcuts.Name) -> AsyncStream<KeyboardShortcuts.EventType>'
| ╰─suggestion: Insert '-(KeyboardShortcuts.Shortcut)' for '@MainActor static func events(for shortcut: KeyboardShortcuts.Shortcut) -> AsyncStream<KeyboardShortcuts.EventType>'
295 | */
296 | public static func removeHandler(for name: Name) {
warning: '(Name...)' isn't a disambiguation for 'disable(_:)' at '/KeyboardShortcuts/KeyboardShortcuts'
--> ../KeyboardShortcuts.swift:316:26-316:36
314 | ```
315 |
316 + - Tip: Use ``disable(_:)-(Name...)`` and ``enable(_:)-(Name...)`` to change the status.
| ├─suggestion: Replace '(Name...)' with '(KeyboardShortcuts.Name...)' for '@MainActor static func disable(_ names: KeyboardShortcuts.Name...)'
| ╰─suggestion: Replace '(Name...)' with '([KeyboardShortcuts.Name])' for '@MainActor static func disable(_ names: [KeyboardShortcuts.Name])'
317 | */
318 | public static func isEnabled(for name: Name) -> Bool {
warning: '(Name...)' isn't a disambiguation for 'enable(_:)' at '/KeyboardShortcuts/KeyboardShortcuts'
--> ../KeyboardShortcuts.swift:316:55-316:65
314 | ```
315 |
316 + - Tip: Use ``disable(_:)-(Name...)`` and ``enable(_:)-(Name...)`` to change the status.
| ├─suggestion: Replace '(Name...)' with '(KeyboardShortcuts.Name...)' for '@MainActor static func enable(_ names: KeyboardShortcuts.Name...)'
| ╰─suggestion: Replace '(Name...)' with '([KeyboardShortcuts.Name])' for '@MainActor static func enable(_ names: [KeyboardShortcuts.Name])'
317 | */
318 | public static func isEnabled(for name: Name) -> Bool {
warning: 'events(for:)' is ambiguous at '/KeyboardShortcuts/KeyboardShortcuts'
--> ../KeyboardShortcuts.swift:529:63-529:75
527 | You can safely call this even if the user has not yet set a keyboard shortcut. It will just be inactive until they do.
528 |
529 + - Important: This will be deprecated in the future. Prefer ``events(for:)`` for new code.
| ├─suggestion: Insert '-(KeyboardShortcuts.Name)' for '@MainActor static func events(for name: KeyboardShortcuts.Name) -> AsyncStream<KeyboardShortcuts.EventType>'
| ╰─suggestion: Insert '-(KeyboardShortcuts.Shortcut)' for '@MainActor static func events(for shortcut: KeyboardShortcuts.Shortcut) -> AsyncStream<KeyboardShortcuts.EventType>'
530 |
531 | ```swift
warning: 'events(for:)' is ambiguous at '/KeyboardShortcuts/KeyboardShortcuts'
--> ../KeyboardShortcuts.swift:557:63-557:75
555 | You can safely call this even if the user has not yet set a keyboard shortcut. It will just be inactive until they do.
556 |
557 + - Important: This will be deprecated in the future. Prefer ``events(for:)`` for new code.
| ├─suggestion: Insert '-(KeyboardShortcuts.Name)' for '@MainActor static func events(for name: KeyboardShortcuts.Name) -> AsyncStream<KeyboardShortcuts.EventType>'
| ╰─suggestion: Insert '-(KeyboardShortcuts.Shortcut)' for '@MainActor static func events(for shortcut: KeyboardShortcuts.Shortcut) -> AsyncStream<KeyboardShortcuts.EventType>'
558 |
559 | ```swift
Finished building documentation for 'KeyboardShortcuts' (0.72s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/sindresorhus/keyboardshortcuts/main
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2171] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.21s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.6 (3.25s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3663] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.30s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.97s)
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.6
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
[3/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version-49B95AFC49DCD68C.txt
[6/53] Compiling Snippets SnippetParser.swift
[7/53] Compiling SymbolKit Mixin+Equals.swift
[8/53] Compiling SymbolKit Mixin+Hash.swift
[9/53] Compiling SymbolKit Mixin.swift
[10/53] Compiling SymbolKit LineList.swift
[11/53] Compiling SymbolKit Position.swift
[12/57] Emitting module Snippets
[13/57] Compiling Snippets Snippet.swift
[14/57] Compiling SymbolKit SourceRange.swift
[15/57] Compiling SymbolKit Metadata.swift
[16/57] Compiling SymbolKit Module.swift
[17/57] Compiling SymbolKit OperatingSystem.swift
[18/57] Compiling SymbolKit Platform.swift
[19/57] Compiling SymbolKit DeclarationFragments.swift
[20/57] Compiling SymbolKit Fragment.swift
[21/57] Compiling SymbolKit FragmentKind.swift
[22/57] Compiling SymbolKit FunctionParameter.swift
[23/57] Compiling SymbolKit FunctionSignature.swift
[24/57] Compiling SymbolKit GenericConstraint.swift
[25/57] Compiling SymbolKit GenericParameter.swift
[26/57] Compiling SymbolKit Generics.swift
[27/57] Compiling SymbolKit Namespace.swift
[28/57] Compiling SymbolKit Identifier.swift
[29/57] Compiling SymbolKit KindIdentifier.swift
[30/57] Compiling SymbolKit Location.swift
[31/57] Compiling SymbolKit Mutability.swift
[32/57] Emitting module SymbolKit
[33/57] Compiling SymbolKit Names.swift
[34/57] Compiling SymbolKit SPI.swift
[35/57] Compiling SymbolKit Snippet.swift
[36/57] Compiling SymbolKit Extension.swift
[37/57] Compiling SymbolKit SemanticVersion.swift
[38/57] Compiling SymbolKit AccessControl.swift
[39/57] Compiling SymbolKit Availability.swift
[40/57] Compiling SymbolKit AvailabilityItem.swift
[41/57] Compiling SymbolKit Domain.swift
[42/57] Compiling SymbolKit Relationship.swift
[43/57] Compiling SymbolKit RelationshipKind.swift
[44/57] Compiling SymbolKit SourceOrigin.swift
[45/57] Compiling SymbolKit GenericConstraints.swift
[46/57] Compiling SymbolKit Swift.swift
[47/57] Compiling SymbolKit Symbol.swift
[48/57] Compiling SymbolKit SymbolKind.swift
[49/57] Compiling SymbolKit SymbolGraph.swift
[50/57] Compiling SymbolKit GraphCollector.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! (3.36s)
Building for debugging...
[0/1] Write swift-version-49B95AFC49DCD68C.txt
Build of target: 'KeyboardShortcuts' complete! (0.24s)
2166
15 /Users/admin/builder/spi-builder-workspace/.docs/sindresorhus/keyboardshortcuts/main
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/sindresorhus/keyboardshortcuts/main
File count: 2166
Doc size: 15.0MB
Preparing doc bundle ...
Uploading prod-sindresorhus-keyboardshortcuts-main-6d51fc00.zip to s3://spi-docs-inbox/prod-sindresorhus-keyboardshortcuts-main-6d51fc00.zip
Copying... [11%]
Copying... [21%]
Copying... [32%]
Copying... [40%]
Copying... [51%]
Copying... [62%]
Copying... [70%]
Copying... [81%]
Copying... [91%]
Copying... [100%]
Done.