Build Information
Successful build of ShotKit, reference 1.1.0 (bb47b5), with Swift 6.1 for macOS (SPM) on 29 Sep 2026 16:38:35 UTC.
Swift 6 data race errors: 1
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 InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/birangdev/ShotKit.git
Reference: 1.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/birangdev/ShotKit
* tag 1.1.0 -> FETCH_HEAD
HEAD is now at bb47b57 Fix availability on the composited-capture test
Cloned https://github.com/birangdev/ShotKit.git
Revision (git rev-parse @):
bb47b57c557464537ed74d641024fe2bc4723437
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/birangdev/ShotKit.git at 1.1.0
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/birangdev/ShotKit.git
https://github.com/birangdev/ShotKit.git
{
"dependencies" : [
],
"manifest_display_name" : "ShotKit",
"name" : "ShotKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "16.0"
}
],
"products" : [
{
"name" : "ShotKit",
"targets" : [
"ShotKit"
],
"type" : {
"library" : [
"static"
]
}
},
{
"name" : "NativeWindowExportTool",
"targets" : [
"NativeWindowExportTool"
],
"type" : {
"executable" : null
}
},
{
"name" : "ComparisonTool",
"targets" : [
"ComparisonTool"
],
"type" : {
"executable" : null
}
},
{
"name" : "CafeExportTool",
"targets" : [
"CafeExportTool"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "ShotKitTests",
"module_type" : "SwiftTarget",
"name" : "ShotKitTests",
"path" : "Tests/ShotKitTests",
"sources" : [
"AnnotationRenderingTests.swift",
"NativeWindowCaptureTests.swift",
"ShotKitTests.swift"
],
"target_dependencies" : [
"ShotKit"
],
"type" : "test"
},
{
"c99name" : "ShotKit",
"module_type" : "SwiftTarget",
"name" : "ShotKit",
"path" : "Sources/ShotKit",
"product_memberships" : [
"ShotKit",
"NativeWindowExportTool",
"ComparisonTool",
"CafeExportTool"
],
"sources" : [
"Callout.swift",
"DesktopFrame.swift",
"Highlight.swift",
"MenuBarFrame.swift",
"NativeWindowCapture.swift",
"ShotBackground.swift",
"ShotKit.swift",
"WindowChrome.swift",
"WindowServerCapture.swift"
],
"type" : "library"
},
{
"c99name" : "NativeWindowExportTool",
"module_type" : "SwiftTarget",
"name" : "NativeWindowExportTool",
"path" : "Examples/NativeWindowExportTool",
"product_memberships" : [
"NativeWindowExportTool"
],
"sources" : [
"NativeWindowExportTool.swift"
],
"target_dependencies" : [
"ShotKit"
],
"type" : "executable"
},
{
"c99name" : "ComparisonTool",
"module_type" : "SwiftTarget",
"name" : "ComparisonTool",
"path" : "Examples/CafeApp/ComparisonTool",
"product_memberships" : [
"ComparisonTool"
],
"sources" : [
"ComparisonTool.swift"
],
"target_dependencies" : [
"ShotKit",
"CafeExample"
],
"type" : "executable"
},
{
"c99name" : "CafeExportTool",
"module_type" : "SwiftTarget",
"name" : "CafeExportTool",
"path" : "Examples/CafeApp/ExportTool",
"product_memberships" : [
"CafeExportTool"
],
"sources" : [
"ExportTool.swift"
],
"target_dependencies" : [
"ShotKit",
"CafeExample"
],
"type" : "executable"
},
{
"c99name" : "CafeExample",
"module_type" : "SwiftTarget",
"name" : "CafeExample",
"path" : "Examples/CafeApp",
"product_memberships" : [
"ComparisonTool",
"CafeExportTool"
],
"sources" : [
"CafeMockData.swift",
"CafeScenes.swift",
"CafeViews.swift",
"ComparisonScene.swift",
"ControlsPanel.swift",
"FeatureScene.swift"
],
"target_dependencies" : [
"ShotKit"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
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/20] Write sources
[3/20] Write CafeExportTool-entitlement.plist
[3/20] Write sources
[6/20] Write ComparisonTool-entitlement.plist
[6/20] Write NativeWindowExportTool-entitlement.plist
[8/20] Write swift-version-2F0A5646E1D333AE.txt
[10/30] Compiling ShotKit MenuBarFrame.swift
[11/30] Emitting module ShotKit
[12/30] Compiling ShotKit Callout.swift
[13/30] Compiling ShotKit ShotBackground.swift
[14/30] Compiling ShotKit Highlight.swift
[15/30] Compiling ShotKit ShotKit.swift
[16/30] Compiling ShotKit WindowServerCapture.swift
[17/30] Compiling ShotKit NativeWindowCapture.swift
/Users/admin/builder/spi-builder-workspace/Sources/ShotKit/NativeWindowCapture.swift:130:54: warning: non-sendable result type 'SCShareableContent' cannot be sent from nonisolated context in call to class method 'excludingDesktopWindows(_:onScreenWindowsOnly:)'; this is an error in the Swift 6 language mode
128 | }
129 |
130 | let available = try await SCShareableContent.excludingDesktopWindows(
| `- warning: non-sendable result type 'SCShareableContent' cannot be sent from nonisolated context in call to class method 'excludingDesktopWindows(_:onScreenWindowsOnly:)'; this is an error in the Swift 6 language mode
131 | true, onScreenWindowsOnly: true
132 | )
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h:140:12: note: class 'SCShareableContent' does not conform to the 'Sendable' protocol
138 |
139 | API_AVAILABLE(macos(12.3), macCatalyst(18.2))
140 | @interface SCShareableContent : NSObject
| `- note: class 'SCShareableContent' does not conform to the 'Sendable' protocol
141 | /*!
142 | @abstract getShareableContentWithCompletionHandler:completionHandler
/Users/admin/builder/spi-builder-workspace/Sources/ShotKit/NativeWindowCapture.swift:3:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ScreenCaptureKit'
1 | #if os(macOS)
2 | import AppKit
3 | import ScreenCaptureKit
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ScreenCaptureKit'
4 | import SwiftUI
5 |
/Users/admin/builder/spi-builder-workspace/Sources/ShotKit/NativeWindowCapture.swift:317:26: warning: non-sendable result type 'Result' cannot be sent from nonisolated context in call to parameter 'operation'; this is an error in the Swift 6 language mode
270 | }
271 |
272 | static func withWindow<Content: View, Result>(
| `- note: consider making generic parameter 'Result' conform to the 'Sendable' protocol
273 | configuration: NativeWindowConfiguration,
274 | configure: (NSWindow) -> Void = { _ in },
:
315 | window.contentView?.layoutSubtreeIfNeeded()
316 | window.displayIfNeeded()
317 | return try await operation(window)
| `- warning: non-sendable result type 'Result' cannot be sent from nonisolated context in call to parameter 'operation'; this is an error in the Swift 6 language mode
318 | }
319 | }
/Users/admin/builder/spi-builder-workspace/Sources/ShotKit/NativeWindowCapture.swift:152:51: warning: sending 'filter' risks causing data races; this is an error in the Swift 6 language mode
150 |
151 | try Task.checkCancellation()
152 | let image = try await SCScreenshotManager.captureImage(
| |- warning: sending 'filter' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'filter' to nonisolated class method 'captureImage(contentFilter:configuration:)' risks causing data races between nonisolated and main actor-isolated uses
153 | contentFilter: filter, configuration: settings
154 | )
[18/30] Compiling ShotKit WindowChrome.swift
[19/30] Compiling ShotKit DesktopFrame.swift
[19/30] Write Objects.LinkFileList
[20/30] Archiving libShotKit.a
[22/39] Compiling NativeWindowExportTool NativeWindowExportTool.swift
[23/39] Emitting module NativeWindowExportTool
[23/39] Write Objects.LinkFileList
[25/39] Compiling CafeExample ControlsPanel.swift
[26/39] Compiling CafeExample CafeViews.swift
[27/39] Compiling CafeExample FeatureScene.swift
[28/39] Emitting module CafeExample
/Users/admin/builder/spi-builder-workspace/Examples/CafeApp/CafeScenes.swift:80:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any ScreenshotScene]' may have shared mutable state; this is an error in the Swift 6 language mode
78 | public enum CafeExampleScenes {
79 | /// All scenes, in navigation order, ready to pass to `ShotKit.export`.
80 | public static let all: [ScreenshotScene] = [
| `- warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any ScreenshotScene]' may have shared mutable state; this is an error in the Swift 6 language mode
81 | HomeScene(), StyleScene(), SizeScene(), ExtrasScene(),
82 | // 1.1 composition: side caption + window chrome + highlight, and the
/Users/admin/builder/spi-builder-workspace/Sources/ShotKit/ShotKit.swift:72:17: note: protocol 'ScreenshotScene' does not conform to the 'Sendable' protocol
70 |
71 | /// A unit of work: a caption + a view, rendered at a spec.
72 | public protocol ScreenshotScene {
| `- note: protocol 'ScreenshotScene' does not conform to the 'Sendable' protocol
73 | var spec: ScreenshotSpec { get }
74 | @MainActor func makeContent() -> AnyView
/Users/admin/builder/spi-builder-workspace/Examples/CafeApp/CafeScenes.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ShotKit'
1 | import ShotKit
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ShotKit'
2 | import SwiftUI
3 |
:
78 | public enum CafeExampleScenes {
79 | /// All scenes, in navigation order, ready to pass to `ShotKit.export`.
80 | public static let all: [ScreenshotScene] = [
| |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
81 | HomeScene(), StyleScene(), SizeScene(), ExtrasScene(),
82 | // 1.1 composition: side caption + window chrome + highlight, and the
[29/39] Compiling CafeExample ComparisonScene.swift
[30/39] Compiling CafeExample CafeMockData.swift
[31/39] Compiling CafeExample CafeScenes.swift
/Users/admin/builder/spi-builder-workspace/Examples/CafeApp/CafeScenes.swift:80:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any ScreenshotScene]' may have shared mutable state; this is an error in the Swift 6 language mode
78 | public enum CafeExampleScenes {
79 | /// All scenes, in navigation order, ready to pass to `ShotKit.export`.
80 | public static let all: [ScreenshotScene] = [
| `- warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any ScreenshotScene]' may have shared mutable state; this is an error in the Swift 6 language mode
81 | HomeScene(), StyleScene(), SizeScene(), ExtrasScene(),
82 | // 1.1 composition: side caption + window chrome + highlight, and the
/Users/admin/builder/spi-builder-workspace/Sources/ShotKit/ShotKit.swift:72:17: note: protocol 'ScreenshotScene' does not conform to the 'Sendable' protocol
70 |
71 | /// A unit of work: a caption + a view, rendered at a spec.
72 | public protocol ScreenshotScene {
| `- note: protocol 'ScreenshotScene' does not conform to the 'Sendable' protocol
73 | var spec: ScreenshotSpec { get }
74 | @MainActor func makeContent() -> AnyView
/Users/admin/builder/spi-builder-workspace/Examples/CafeApp/CafeScenes.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ShotKit'
1 | import ShotKit
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ShotKit'
2 | import SwiftUI
3 |
:
78 | public enum CafeExampleScenes {
79 | /// All scenes, in navigation order, ready to pass to `ShotKit.export`.
80 | public static let all: [ScreenshotScene] = [
| |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
81 | HomeScene(), StyleScene(), SizeScene(), ExtrasScene(),
82 | // 1.1 composition: side caption + window chrome + highlight, and the
[32/43] Compiling CafeExportTool ExportTool.swift
[33/43] Emitting module CafeExportTool
[33/43] Write Objects.LinkFileList
[35/43] Compiling ComparisonTool ComparisonTool.swift
[36/43] Emitting module ComparisonTool
[36/43] Write Objects.LinkFileList
[37/43] Linking NativeWindowExportTool
[38/43] Applying NativeWindowExportTool
[39/43] Linking CafeExportTool
[40/43] Applying CafeExportTool
[41/43] Linking ComparisonTool
[42/43] Applying ComparisonTool
Build complete! (13.80s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "ShotKit",
"name" : "ShotKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "16.0"
}
],
"products" : [
{
"name" : "ShotKit",
"targets" : [
"ShotKit"
],
"type" : {
"library" : [
"static"
]
}
},
{
"name" : "NativeWindowExportTool",
"targets" : [
"NativeWindowExportTool"
],
"type" : {
"executable" : null
}
},
{
"name" : "ComparisonTool",
"targets" : [
"ComparisonTool"
],
"type" : {
"executable" : null
}
},
{
"name" : "CafeExportTool",
"targets" : [
"CafeExportTool"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "ShotKitTests",
"module_type" : "SwiftTarget",
"name" : "ShotKitTests",
"path" : "Tests/ShotKitTests",
"sources" : [
"AnnotationRenderingTests.swift",
"NativeWindowCaptureTests.swift",
"ShotKitTests.swift"
],
"target_dependencies" : [
"ShotKit"
],
"type" : "test"
},
{
"c99name" : "ShotKit",
"module_type" : "SwiftTarget",
"name" : "ShotKit",
"path" : "Sources/ShotKit",
"product_memberships" : [
"ShotKit",
"NativeWindowExportTool",
"ComparisonTool",
"CafeExportTool"
],
"sources" : [
"Callout.swift",
"DesktopFrame.swift",
"Highlight.swift",
"MenuBarFrame.swift",
"NativeWindowCapture.swift",
"ShotBackground.swift",
"ShotKit.swift",
"WindowChrome.swift",
"WindowServerCapture.swift"
],
"type" : "library"
},
{
"c99name" : "NativeWindowExportTool",
"module_type" : "SwiftTarget",
"name" : "NativeWindowExportTool",
"path" : "Examples/NativeWindowExportTool",
"product_memberships" : [
"NativeWindowExportTool"
],
"sources" : [
"NativeWindowExportTool.swift"
],
"target_dependencies" : [
"ShotKit"
],
"type" : "executable"
},
{
"c99name" : "ComparisonTool",
"module_type" : "SwiftTarget",
"name" : "ComparisonTool",
"path" : "Examples/CafeApp/ComparisonTool",
"product_memberships" : [
"ComparisonTool"
],
"sources" : [
"ComparisonTool.swift"
],
"target_dependencies" : [
"ShotKit",
"CafeExample"
],
"type" : "executable"
},
{
"c99name" : "CafeExportTool",
"module_type" : "SwiftTarget",
"name" : "CafeExportTool",
"path" : "Examples/CafeApp/ExportTool",
"product_memberships" : [
"CafeExportTool"
],
"sources" : [
"ExportTool.swift"
],
"target_dependencies" : [
"ShotKit",
"CafeExample"
],
"type" : "executable"
},
{
"c99name" : "CafeExample",
"module_type" : "SwiftTarget",
"name" : "CafeExample",
"path" : "Examples/CafeApp",
"product_memberships" : [
"ComparisonTool",
"CafeExportTool"
],
"sources" : [
"CafeMockData.swift",
"CafeScenes.swift",
"CafeViews.swift",
"ComparisonScene.swift",
"ControlsPanel.swift",
"FeatureScene.swift"
],
"target_dependencies" : [
"ShotKit"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.