Build Information
Successful build of StreamDeck, reference main (0e88fe), with Swift 6.2 for macOS (SPM) on 26 Apr 2026 05:22:26 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/emorydunn/StreamDeckPlugin.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/emorydunn/StreamDeckPlugin
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 0e88fe8 Update date
Cloned https://github.com/emorydunn/StreamDeckPlugin.git
Revision (git rev-parse @):
0e88fe83ced2f2e213e3d67bc6a3a2e6eda7e84a
SUCCESS checkout https://github.com/emorydunn/StreamDeckPlugin.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.2
Building package at path: $PWD
https://github.com/emorydunn/StreamDeckPlugin.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
[3/3] Compiling plugin GenerateManual
[4/4] Compiling plugin GenerateDoccReference
Building for debugging...
[4/16] Write sources
[13/16] Write swift-version--3CB7CFEC50E0D141.txt
[15/61] Compiling ArgumentParserToolInfo ToolInfo.swift
[16/61] Emitting module ArgumentParserToolInfo
[17/61] Compiling ArgumentParserToolInfo ToolInfo.swift
[18/61] Emitting module ArgumentParserToolInfo
[19/155] Emitting module ArgumentParser
[20/160] Compiling ArgumentParser ArgumentDiscussion.swift
[21/160] Compiling ArgumentParser ArgumentHelp.swift
[22/160] Compiling ArgumentParser ArgumentVisibility.swift
[23/160] Compiling ArgumentParser CompletionKind.swift
[24/160] Compiling ArgumentParser Errors.swift
[29/165] Compiling ArgumentParser Flag.swift
[30/165] Emitting module ArgumentParser
[31/165] Compiling ArgumentParser BashCompletionsGenerator.swift
[32/165] Compiling ArgumentParser CompletionsGenerator.swift
[33/165] Compiling ArgumentParser FishCompletionsGenerator.swift
[34/165] Compiling ArgumentParser ZshCompletionsGenerator.swift
[35/165] Compiling ArgumentParser Argument.swift
[37/165] Compiling ArgumentParser ParsableCommand.swift
[40/166] Compiling ArgumentParser ArgumentDecoder.swift
[41/166] Compiling ArgumentParser ArgumentDefinition.swift
[52/166] Emitting module SDPlusLayout
[57/166] Compiling ArgumentParser ArgumentSet.swift
[58/166] Compiling ArgumentParser CommandParser.swift
[59/166] Compiling SDPlusLayout ModifiedItem.swift
[66/167] Emitting module SDPlusLayout
[71/167] Compiling SDPlusLayout ModifiedItem.swift
[72/167] Compiling StreamDeckMacros Plugin.swift
[73/167] Compiling StreamDeckMacros SharedKeyMacro.swift
[74/167] Compiling StreamDeckMacros KeyMacros.swift
[75/167] Emitting module StreamDeckMacros
[76/167] Compiling StreamDeckMacros EntryMacro.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeckMacros/EntryMacro.swift:41:49: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
39 | static func identifier(of declaration: some DeclSyntaxProtocol) throws -> String {
40 | guard let variableDecl = declaration.as(VariableDeclSyntax.self),
41 | let patternBinding = variableDecl.bindings.as(PatternBindingListSyntax.self)?.first?.as(PatternBindingSyntax.self),
| `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
42 | let identifier = patternBinding.pattern.as(IdentifierPatternSyntax.self)?.identifier.text
43 | else {
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeckMacros/EntryMacro.swift:41:91: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
39 | static func identifier(of declaration: some DeclSyntaxProtocol) throws -> String {
40 | guard let variableDecl = declaration.as(VariableDeclSyntax.self),
41 | let patternBinding = variableDecl.bindings.as(PatternBindingListSyntax.self)?.first?.as(PatternBindingSyntax.self),
| `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
42 | let identifier = patternBinding.pattern.as(IdentifierPatternSyntax.self)?.identifier.text
43 | else {
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeckMacros/EntryMacro.swift:53:49: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
51 | static func initializer(of declaration: some DeclSyntaxProtocol) throws -> InitializerClauseSyntax {
52 | guard let variableDecl = declaration.as(VariableDeclSyntax.self),
53 | let patternBinding = variableDecl.bindings.as(PatternBindingListSyntax.self)?.first?.as(PatternBindingSyntax.self),
| `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
54 | let identifier = patternBinding.pattern.as(IdentifierPatternSyntax.self)?.identifier.text,
55 | let initializer = patternBinding.initializer
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeckMacros/EntryMacro.swift:53:91: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
51 | static func initializer(of declaration: some DeclSyntaxProtocol) throws -> InitializerClauseSyntax {
52 | guard let variableDecl = declaration.as(VariableDeclSyntax.self),
53 | let patternBinding = variableDecl.bindings.as(PatternBindingListSyntax.self)?.first?.as(PatternBindingSyntax.self),
| `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
54 | let identifier = patternBinding.pattern.as(IdentifierPatternSyntax.self)?.identifier.text,
55 | let initializer = patternBinding.initializer
/Users/admin/builder/spi-builder-workspace/Sources/StreamDeckMacros/EntryMacro.swift:54:10: warning: immutable value 'identifier' was never used; consider replacing with '_' or removing it [#no-usage]
52 | guard let variableDecl = declaration.as(VariableDeclSyntax.self),
53 | let patternBinding = variableDecl.bindings.as(PatternBindingListSyntax.self)?.first?.as(PatternBindingSyntax.self),
54 | let identifier = patternBinding.pattern.as(IdentifierPatternSyntax.self)?.identifier.text,
| `- warning: immutable value 'identifier' was never used; consider replacing with '_' or removing it [#no-usage]
55 | let initializer = patternBinding.initializer
56 | else {
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[76/167] Write Objects.LinkFileList
[78/167] Compiling ArgumentParser CodingKeyValidator.swift
[79/167] Compiling ArgumentParser NonsenseFlagsValidator.swift
[80/167] Compiling ArgumentParser ParsableArgumentsValidation.swift
[81/167] Compiling ArgumentParser PositionalArgumentsValidator.swift
[82/167] Compiling ArgumentParser UniqueNamesValidator.swift
[88/167] Compiling SDPlusLayout Properties.swift
[96/167] Compiling ArgumentParser HelpGenerator.swift
[97/167] Compiling ArgumentParser CommandConfiguration.swift
[98/167] Compiling ArgumentParser CommandGroup.swift
[99/167] Compiling ArgumentParser EnumerableFlag.swift
[100/167] Compiling ArgumentParser ExpressibleByArgument.swift
[101/167] Compiling ArgumentParser ParsableArguments.swift
[102/167] Compiling ArgumentParser MessageInfo.swift
[103/167] Compiling ArgumentParser UsageGenerator.swift
[104/167] Compiling ArgumentParser CollectionExtensions.swift
[105/167] Compiling ArgumentParser Foundation.swift
[106/167] Compiling ArgumentParser Mutex.swift
[107/167] Compiling ArgumentParser InputKey.swift
[108/167] Compiling ArgumentParser InputOrigin.swift
[109/167] Compiling ArgumentParser Name.swift
[110/167] Compiling ArgumentParser Parsed.swift
[111/167] Compiling ArgumentParser ParsedValues.swift
[112/167] Compiling ArgumentParser Platform.swift
[113/167] Compiling ArgumentParser SequenceExtensions.swift
[114/167] Compiling ArgumentParser StringExtensions.swift
[115/167] Compiling ArgumentParser SwiftExtensions.swift
[116/167] Compiling ArgumentParser Tree.swift
[117/167] Compiling ArgumentParser NameSpecification.swift
[118/167] Compiling ArgumentParser Option.swift
[119/167] Compiling ArgumentParser OptionGroup.swift
[120/167] Compiling ArgumentParser ParentCommand.swift
[121/167] Compiling ArgumentParser AsyncParsableCommand.swift
[121/167] Linking StreamDeckMacros-tool
[139/167] Compiling ArgumentParser ParserError.swift
[140/167] Compiling ArgumentParser SplitArguments.swift
[141/167] Compiling ArgumentParser DumpHelpGenerator.swift
[142/167] Compiling ArgumentParser HelpCommand.swift
[168/249] Compiling StreamDeck PluginSoftware.swift
[169/249] Compiling StreamDeck RotaryEncoder.swift
[170/249] Compiling StreamDeck TriggerDescription.swift
[171/249] Compiling StreamDeck SPDI.swift
[172/253] Compiling StreamDeck EnvironmentKey.swift
[173/253] Compiling StreamDeck EnvironmentValues.swift
[174/253] Compiling StreamDeck EnvironmentWrapper.swift
[175/253] Compiling StreamDeck ApplicationsToMonitor.swift
[176/257] Emitting module StreamDeck
[177/257] Compiling StreamDeck ActionBuilder.swift
[178/257] Compiling StreamDeck ExportCommand.swift
[179/257] Compiling StreamDeck PluginCommand.swift
[180/257] Compiling StreamDeck StreamDeckCommand.swift
[181/257] Compiling StreamDeck StreamDeckKey.swift
[185/257] Compiling StreamDeck Coordinates.swift
[186/257] Compiling StreamDeck PluginInfo.swift
[187/257] Compiling StreamDeck PluginManifest.swift
[188/257] Compiling StreamDeck PluginOS.swift
[189/257] Compiling StreamDeck PluginProfile.swift
[194/257] Compiling StreamDeck Fonts.swift
[195/257] Compiling StreamDeck Hardware.swift
[196/257] Compiling StreamDeck PluginAction.swift
[197/257] Compiling StreamDeck PluginActionState.swift
[202/257] Compiling StreamDeck GlobalSettings.swift
[203/257] Compiling StreamDeck GlobalSettingsKey.swift
[204/257] Compiling StreamDeck SettingsWrapper.swift
[205/257] Compiling StreamDeck State.swift
[210/257] Compiling StreamDeck URL+Argument.swift
[211/257] Compiling StreamDeck SettingsMacros.swift
[212/257] Compiling StreamDeck Action+Received.swift
[213/257] Compiling StreamDeck Action+Sent.swift
[214/257] Compiling StreamDeck Action+Support.swift
[220/257] Emitting module StreamDeck
[221/257] Compiling StreamDeck EventProtocols.swift
[222/257] Compiling StreamDeck Events.swift
[223/257] Compiling StreamDeck CharSet+DNS.swift
[224/257] Compiling StreamDeck NSImage+Base64.swift
[225/257] Compiling StreamDeck SDPlugin+Support.swift
[226/257] Compiling StreamDeck StreamDeckPlugin.swift
[227/257] Compiling StreamDeck ActionControllerRegistry.swift
[234/257] Compiling StreamDeck SDPlugin+Sent.swift
[238/257] Compiling StreamDeck Action.swift
[239/257] Compiling StreamDeck LongPress.swift
[240/257] Compiling StreamDeck PluginCommunication.swift
[241/257] Compiling StreamDeck StreamDeckError.swift
[242/257] Compiling StreamDeck SDPlugin+Received.swift
Build complete! (43.10s)
Fetching https://github.com/swiftlang/swift-docc-plugin
Fetching https://github.com/swiftlang/swift-syntax.git
Fetching https://github.com/apple/swift-argument-parser.git
[1/2277] Fetching swift-docc-plugin
[229/19741] Fetching swift-docc-plugin, swift-argument-parser
[17821/94779] Fetching swift-docc-plugin, swift-argument-parser, swift-syntax
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.68s)
Fetched https://github.com/apple/swift-argument-parser.git from cache (1.68s)
[2252/75038] Fetching swift-syntax
Fetched https://github.com/swiftlang/swift-syntax.git from cache (9.58s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.7.1 (10.18s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.6 (2.77s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3676] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.15s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.85s)
Computing version for https://github.com/swiftlang/swift-syntax.git
Computed https://github.com/swiftlang/swift-syntax.git at 601.0.1 (0.73s)
Creating working copy for https://github.com/swiftlang/swift-syntax.git
Working copy of https://github.com/swiftlang/swift-syntax.git resolved at 601.0.1
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
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/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.7.1
Downloading package prebuilt https://download.swift.org/prebuilts/swift-syntax/601.0.1/swiftlang-6.2.4.1.4-MacroSupport-macos_aarch64.zip
Downloaded https://download.swift.org/prebuilts/swift-syntax/601.0.1/swiftlang-6.2.4.1.4-MacroSupport-macos_aarch64.zip (0.22s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.5.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser.git"
},
{
"identity" : "swift-syntax",
"requirement" : {
"range" : [
{
"lower_bound" : "509.0.0",
"upper_bound" : "602.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-syntax.git"
},
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.1.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-docc-plugin"
}
],
"manifest_display_name" : "StreamDeck",
"name" : "StreamDeck",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "12.0"
}
],
"products" : [
{
"name" : "StreamDeck",
"targets" : [
"StreamDeck"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "StreamDeckMacros",
"targets" : [
"StreamDeckMacros"
],
"type" : {
"macro" : null
}
}
],
"targets" : [
{
"c99name" : "StreamDeckPluginTests",
"module_type" : "SwiftTarget",
"name" : "StreamDeckPluginTests",
"path" : "Tests/StreamDeckPluginTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/StreamDeckPluginTests/Support/Test Events",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"PluginEventTests.swift",
"PluginManifestTests.swift",
"PluginRegistrationTests.swift",
"StreamDeckPluginTests.swift",
"Support/TestEvents.swift",
"Support/TestPlugin.swift"
],
"target_dependencies" : [
"StreamDeck"
],
"type" : "test"
},
{
"c99name" : "StreamDeckMacrosTests",
"module_type" : "SwiftTarget",
"name" : "StreamDeckMacrosTests",
"path" : "Tests/StreamDeckMacrosTests",
"product_dependencies" : [
"SwiftSyntaxMacrosTestSupport"
],
"sources" : [
"SettingsMacroTests.swift"
],
"target_dependencies" : [
"StreamDeckMacros"
],
"type" : "test"
},
{
"c99name" : "StreamDeckMacros",
"module_type" : "SwiftTarget",
"name" : "StreamDeckMacros",
"path" : "Sources/StreamDeckMacros",
"product_dependencies" : [
"SwiftSyntaxMacros",
"SwiftCompilerPlugin"
],
"product_memberships" : [
"StreamDeck",
"StreamDeckMacros"
],
"sources" : [
"EntryMacro.swift",
"KeyMacros.swift",
"Plugin.swift",
"SharedKeyMacro.swift"
],
"type" : "macro"
},
{
"c99name" : "StreamDeck",
"module_type" : "SwiftTarget",
"name" : "StreamDeck",
"path" : "Sources/StreamDeck",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"StreamDeck"
],
"sources" : [
"Builders/ActionBuilder.swift",
"Command Line/ExportCommand.swift",
"Command Line/PluginCommand.swift",
"Command Line/StreamDeckCommand.swift",
"Command Line/StreamDeckKey.swift",
"Events/EventProtocols.swift",
"Events/Events.swift",
"Extensions/CharSet+DNS.swift",
"Extensions/NSImage+Base64.swift",
"Extensions/URL+Argument.swift",
"Macros/SettingsMacros.swift",
"StreamDeck Plugin/Action/Action+Received.swift",
"StreamDeck Plugin/Action/Action+Sent.swift",
"StreamDeck Plugin/Action/Action+Support.swift",
"StreamDeck Plugin/Action/Action.swift",
"StreamDeck Plugin/Action/LongPress.swift",
"StreamDeck Plugin/PluginCommunication.swift",
"StreamDeck Plugin/StreamDeckError.swift",
"StreamDeck Plugin/StreamDeckPlugin/SDPlugin+Received.swift",
"StreamDeck Plugin/StreamDeckPlugin/SDPlugin+Sent.swift",
"StreamDeck Plugin/StreamDeckPlugin/SDPlugin+Support.swift",
"StreamDeck Plugin/StreamDeckPlugin/StreamDeckPlugin.swift",
"Support Models/ActionControllerRegistry.swift",
"Support Models/Environment/EnvironmentKey.swift",
"Support Models/Environment/EnvironmentValues.swift",
"Support Models/Environment/EnvironmentWrapper.swift",
"Support Models/PluginManifest/ApplicationsToMonitor.swift",
"Support Models/PluginManifest/Coordinates.swift",
"Support Models/PluginManifest/Fonts.swift",
"Support Models/PluginManifest/Hardware.swift",
"Support Models/PluginManifest/PluginAction.swift",
"Support Models/PluginManifest/PluginActionState.swift",
"Support Models/PluginManifest/PluginInfo.swift",
"Support Models/PluginManifest/PluginManifest.swift",
"Support Models/PluginManifest/PluginOS.swift",
"Support Models/PluginManifest/PluginProfile.swift",
"Support Models/PluginManifest/PluginSoftware.swift",
"Support Models/RotaryEncoder/RotaryEncoder.swift",
"Support Models/RotaryEncoder/TriggerDescription.swift",
"Support Models/SPDI.swift",
"Support Models/Settings/GlobalSettings.swift",
"Support Models/Settings/GlobalSettingsKey.swift",
"Support Models/Settings/SettingsWrapper.swift",
"Support Models/State.swift"
],
"target_dependencies" : [
"StreamDeckMacros",
"SDPlusLayout"
],
"type" : "library"
},
{
"c99name" : "SDPlusLayoutTests",
"module_type" : "SwiftTarget",
"name" : "SDPlusLayoutTests",
"path" : "Tests/SDPlusLayoutTests",
"sources" : [
"LayoutTests.swift"
],
"target_dependencies" : [
"SDPlusLayout"
],
"type" : "test"
},
{
"c99name" : "SDPlusLayout",
"module_type" : "SwiftTarget",
"name" : "SDPlusLayout",
"path" : "Sources/SDPlusLayout",
"product_memberships" : [
"StreamDeck"
],
"sources" : [
"BarLayoutItem.swift",
"Color/Color+ExpressibleByStringLiteral.swift",
"Color/Color+FormatStyle.swift",
"Color/Color.swift",
"Color/ColorStyle.swift",
"Color/Gradient.swift",
"Elements/Bar.swift",
"Elements/Image.swift",
"Elements/Slider.swift",
"Elements/Text.swift",
"Extensions/Clamped.swift",
"Layout.swift",
"LayoutItem.swift",
"LayoutItemKey.swift",
"LayoutName.swift",
"LayoutSettings.swift",
"ModifiedItem.swift",
"Properties.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.