The Swift Package Index logo.Swift Package Index

Build Information

Successful build of KeyboardShortcuts, reference 3.1.0 (772133), with Swift 6.3 for macOS (SPM) on 14 Sep 2026 13:39:51 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.5.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.0.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/sindresorhus/KeyboardShortcuts.git
Reference: 3.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/sindresorhus/KeyboardShortcuts
 * tag               3.1.0      -> FETCH_HEAD
HEAD is now at 772133d 3.1.0
Cloned https://github.com/sindresorhus/KeyboardShortcuts.git
Revision (git rev-parse @):
772133d9dbe800fdac0473226822994c5c162c58
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/sindresorhus/KeyboardShortcuts.git at 3.1.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",
  "traits": [
    "default"
  ],
  "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",
      "traits": [
        "default"
      ],
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/sindresorhus/KeyboardShortcuts.git
[1/7328] Fetching keyboardshortcuts
Fetched https://github.com/sindresorhus/KeyboardShortcuts.git from cache (1.29s)
Creating working copy for https://github.com/sindresorhus/KeyboardShortcuts.git
Working copy of https://github.com/sindresorhus/KeyboardShortcuts.git resolved at 3.1.0 (772133d)
warning: '.resolve-product-dependencies': dependency 'keyboardshortcuts' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.3
Building package at path:  $PWD
https://github.com/sindresorhus/KeyboardShortcuts.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.5.0.app xcrun swift build --arch arm64
Building for debugging...
[0/20] Write sources
[1/20] Copying Localizable.strings
[15/20] Copying Info.plist
[15/20] Copying Localizable.strings
[19/20] Write swift-version-69A768CDF2A0BEE1.txt
[21/32] Compiling KeyboardShortcuts Utilities.swift
[22/32] Compiling KeyboardShortcuts ViewModifiers.swift
[23/33] Compiling KeyboardShortcuts Shortcut.swift
[24/33] Compiling KeyboardShortcuts Name.swift
[25/33] Compiling KeyboardShortcuts Recorder.swift
[26/33] Compiling KeyboardShortcuts NSMenuItem++.swift
[27/33] Compiling KeyboardShortcuts Key.swift
[28/33] Compiling KeyboardShortcuts KeyboardShortcuts.swift
[29/33] Compiling KeyboardShortcuts ConflictPolicy.swift
[30/33] Compiling KeyboardShortcuts HotKey.swift
[31/33] Emitting module KeyboardShortcuts
[32/33] Compiling KeyboardShortcuts RecorderCocoa.swift
[33/33] Compiling KeyboardShortcuts resource_bundle_accessor.swift
Build complete! (9.64s)
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/3.1.0
Repository:               sindresorhus/KeyboardShortcuts
Swift version used:       6.3
Target:                   KeyboardShortcuts
Extracting symbol information for 'KeyboardShortcuts'...
Finished extracting symbol information for 'KeyboardShortcuts'. (44.00s)
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:283:56-283:68
281 | 	This can be used to reset the handlers before re-creating them to avoid having multiple handlers for the same shortcut.
282 |
283 + 	- 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>'
284 | 	*/
285 | 	public static func removeAllHandlers() {
warning: 'events(for:)' is ambiguous at '/KeyboardShortcuts/KeyboardShortcuts'
   --> ../KeyboardShortcuts.swift:305:56-305:68
303 | 	- Parameter name: The name of the keyboard shortcut to remove handlers for.
304 |
305 + 	- 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>'
306 | 	*/
307 | 	public static func removeHandler(for name: Name) {
warning: '(Name...)' isn't a disambiguation for 'disable(_:)' at '/KeyboardShortcuts/KeyboardShortcuts'
   --> ../KeyboardShortcuts.swift:327:26-327:36
325 | 	```
326 |
327 + 	- 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])'
328 | 	*/
329 | 	public static func isEnabled(for name: Name) -> Bool {
warning: '(Name...)' isn't a disambiguation for 'enable(_:)' at '/KeyboardShortcuts/KeyboardShortcuts'
   --> ../KeyboardShortcuts.swift:327:55-327:65
325 | 	```
326 |
327 + 	- 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])'
328 | 	*/
329 | 	public static func isEnabled(for name: Name) -> Bool {
warning: 'events(for:)' is ambiguous at '/KeyboardShortcuts/KeyboardShortcuts'
   --> ../KeyboardShortcuts.swift:540:63-540:75
538 | 	You can safely call this even if the user has not yet set a keyboard shortcut. It will just be inactive until they do.
539 |
540 + 	- 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>'
541 |
542 | 	```swift
warning: 'events(for:)' is ambiguous at '/KeyboardShortcuts/KeyboardShortcuts'
   --> ../KeyboardShortcuts.swift:568:63-568:75
566 | 	You can safely call this even if the user has not yet set a keyboard shortcut. It will just be inactive until they do.
567 |
568 + 	- 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>'
569 |
570 | 	```swift
Finished building documentation for 'KeyboardShortcuts' (1.32s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/sindresorhus/keyboardshortcuts/3.1.0
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2345] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.43s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (3.65s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3822] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.38s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (2.07s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
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-69A768CDF2A0BEE1.txt
[6/54] Compiling SymbolKit GenericConstraint.swift
[7/54] Compiling SymbolKit GenericParameter.swift
[8/54] Compiling SymbolKit Generics.swift
[9/54] Compiling SymbolKit Namespace.swift
[10/58] Compiling SymbolKit Names.swift
[11/58] Compiling SymbolKit SPI.swift
[12/58] Compiling SymbolKit Snippet.swift
[13/58] Compiling SymbolKit Extension.swift
[14/58] Compiling SymbolKit DeclarationFragments.swift
[15/58] Compiling SymbolKit Fragment.swift
[16/58] Compiling SymbolKit FragmentKind.swift
[17/58] Compiling SymbolKit FunctionParameter.swift
[18/58] Compiling SymbolKit FunctionSignature.swift
[19/58] Emitting module SymbolKit
[20/58] Compiling Snippets Snippet.swift
[21/58] Emitting module Snippets
[22/58] Compiling Snippets SnippetLanguage.swift
[23/58] Compiling Snippets SnippetParser.swift
[24/58] Compiling SymbolKit SemanticVersion.swift
[25/58] Compiling SymbolKit AccessControl.swift
[26/58] Compiling SymbolKit Availability.swift
[27/58] Compiling SymbolKit AvailabilityItem.swift
[28/58] Compiling SymbolKit Domain.swift
[29/58] Compiling SymbolKit SourceRange.swift
[30/58] Compiling SymbolKit Metadata.swift
[31/58] Compiling SymbolKit Module.swift
[32/58] Compiling SymbolKit OperatingSystem.swift
[33/58] Compiling SymbolKit Platform.swift
[34/58] Compiling SymbolKit Mixin+Equals.swift
[35/58] Compiling SymbolKit Mixin+Hash.swift
[36/58] Compiling SymbolKit Mixin.swift
[37/58] Compiling SymbolKit LineList.swift
[38/58] Compiling SymbolKit Position.swift
[39/58] Compiling SymbolKit Symbol.swift
[40/58] Compiling SymbolKit SymbolKind.swift
[41/58] Compiling SymbolKit SymbolGraph.swift
[42/58] Compiling SymbolKit GraphCollector.swift
[43/58] Compiling SymbolKit Identifier.swift
[44/58] Compiling SymbolKit KindIdentifier.swift
[45/58] Compiling SymbolKit Location.swift
[46/58] Compiling SymbolKit Mutability.swift
[47/58] Compiling SymbolKit Relationship.swift
[48/58] Compiling SymbolKit RelationshipKind.swift
[49/58] Compiling SymbolKit SourceOrigin.swift
[50/58] Compiling SymbolKit GenericConstraints.swift
[51/58] Compiling SymbolKit Swift.swift
[52/58] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[53/58] Compiling SymbolKit UnifiedSymbol.swift
[54/58] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[55/58] Compiling SymbolKit UnifiedSymbolGraph.swift
[56/62] Compiling snippet_extract URL+Status.swift
[57/62] Compiling snippet_extract SymbolGraph+Snippet.swift
[58/62] Emitting module snippet_extract
[59/62] Compiling snippet_extract SnippetBuildCommand.swift
[59/62] Write Objects.LinkFileList
[60/62] Linking snippet-extract-tool
[61/62] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.66s)
Building for debugging...
[0/1] Write swift-version-69A768CDF2A0BEE1.txt
Build of target: 'KeyboardShortcuts' complete! (0.24s)
    2174
15	/Users/admin/builder/spi-builder-workspace/.docs/sindresorhus/keyboardshortcuts/3.1.0
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/sindresorhus/keyboardshortcuts/3.1.0
File count: 2174
Doc size:   15.0MB
Preparing doc bundle ...
Using presigned URL upload - AWS credentials not required
Uploading -sindresorhus-keyboardshortcuts-3.1.0-30271c1f.zip to presigned URL
Starting upload of 3094757 bytes...
Upload completed successfully
Done.