The Swift Package Index logo.Swift Package Index

Build Information

Successful build of KeyboardShortcuts, reference main (81caa5), with Swift 6.3 for macOS (SPM) on 17 Apr 2026 00:39:53 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.70.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",
  "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/7235] Fetching keyboardshortcuts
Fetched https://github.com/sindresorhus/KeyboardShortcuts.git from cache (1.00s)
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.3
Building package at path:  $PWD
https://github.com/sindresorhus/KeyboardShortcuts.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
Building for debugging...
[0/20] Write sources
[0/20] Copying Localizable.strings
[14/20] Copying Info.plist
[16/20] Copying Localizable.strings
[19/20] Write swift-version--6988338F2F200930.txt
[21/32] Emitting module KeyboardShortcuts
[22/32] Compiling KeyboardShortcuts NSMenuItem++.swift
[23/32] Compiling KeyboardShortcuts Utilities.swift
[24/32] Compiling KeyboardShortcuts Key.swift
[25/32] Compiling KeyboardShortcuts KeyboardShortcuts.swift
[26/32] Compiling KeyboardShortcuts RecorderCocoa.swift
[27/32] Compiling KeyboardShortcuts Name.swift
[28/32] Compiling KeyboardShortcuts ViewModifiers.swift
[29/32] Compiling KeyboardShortcuts Shortcut.swift
[30/32] Compiling KeyboardShortcuts ConflictPolicy.swift
[31/32] Compiling KeyboardShortcuts HotKey.swift
[32/32] Compiling KeyboardShortcuts Recorder.swift
[33/33] Compiling KeyboardShortcuts resource_bundle_accessor.swift
Build complete! (10.42s)
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.3
Target:                   KeyboardShortcuts
Extracting symbol information for 'KeyboardShortcuts'...
Finished extracting symbol information for 'KeyboardShortcuts'. (43.96s)
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' (1.17s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/sindresorhus/keyboardshortcuts/main
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2277] 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.84s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3672] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.18s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (2.01s)
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
[1/8] Write snippet-extract-tool-entitlement.plist
[1/8] Write sources
[4/8] Write swift-version--6988338F2F200930.txt
[6/53] Emitting module SymbolKit
[7/57] Compiling SymbolKit SemanticVersion.swift
[8/57] Compiling SymbolKit AccessControl.swift
[9/57] Compiling SymbolKit Availability.swift
[10/57] Compiling SymbolKit AvailabilityItem.swift
[11/57] Compiling SymbolKit Domain.swift
[12/57] Compiling SymbolKit DeclarationFragments.swift
[13/57] Compiling SymbolKit Fragment.swift
[14/57] Compiling SymbolKit FragmentKind.swift
[15/57] Compiling SymbolKit FunctionParameter.swift
[16/57] Compiling SymbolKit FunctionSignature.swift
[17/57] Compiling SymbolKit SourceRange.swift
[18/57] Compiling SymbolKit Metadata.swift
[19/57] Compiling SymbolKit Module.swift
[20/57] Compiling SymbolKit OperatingSystem.swift
[21/57] Compiling SymbolKit Platform.swift
[22/57] Compiling SymbolKit Mixin+Equals.swift
[23/57] Compiling SymbolKit Mixin+Hash.swift
[24/57] Compiling SymbolKit Mixin.swift
[25/57] Compiling SymbolKit LineList.swift
[26/57] Compiling SymbolKit Position.swift
[27/57] Compiling SymbolKit GenericConstraint.swift
[28/57] Compiling SymbolKit GenericParameter.swift
[29/57] Compiling SymbolKit Generics.swift
[30/57] Compiling SymbolKit Namespace.swift
[31/57] Compiling Snippets Snippet.swift
[32/57] Emitting module Snippets
[33/57] Compiling Snippets SnippetParser.swift
[34/57] Compiling SymbolKit Names.swift
[35/57] Compiling SymbolKit SPI.swift
[36/57] Compiling SymbolKit Snippet.swift
[37/57] Compiling SymbolKit Extension.swift
[38/57] Compiling SymbolKit Identifier.swift
[39/57] Compiling SymbolKit KindIdentifier.swift
[40/57] Compiling SymbolKit Location.swift
[41/57] Compiling SymbolKit Mutability.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! (5.90s)
Building for debugging...
[0/1] Write swift-version--6988338F2F200930.txt
Build of target: 'KeyboardShortcuts' complete! (0.25s)
    2172
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: 2172
Doc size:   15.0MB
Preparing doc bundle ...
Uploading prod-sindresorhus-keyboardshortcuts-main-681b1a97.zip to s3://spi-docs-inbox/prod-sindresorhus-keyboardshortcuts-main-681b1a97.zip
Copying... [11%]
Copying... [21%]
Copying... [32%]
Copying... [40%]
Copying... [51%]
Copying... [61%]
Copying... [72%]
Copying... [80%]
Copying... [91%]
Copying... [100%]
Done.