Build Information
Successful build of KitoButtons, reference 1.8.4 (d543ce), with Swift 6.1 for macOS (SPM) on 4 Oct 2026 03:49:26 UTC.
Swift 6 data race errors: 4
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.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/wykeenjenga/KitoButtons.git
Reference: 1.8.4
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/wykeenjenga/KitoButtons
* tag 1.8.4 -> FETCH_HEAD
HEAD is now at d543ce2 Merge pull request #24 from wykeenjenga/fix/plain-title-centering
Cloned https://github.com/wykeenjenga/KitoButtons.git
Revision (git rev-parse @):
d543ce2bed4c0a791b0c0e1c9d7f4b8f4fc9adf3
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/wykeenjenga/KitoButtons.git at 1.8.4
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/wykeenjenga/KitoButtons.git
https://github.com/wykeenjenga/KitoButtons.git
{
"default_localization" : "en",
"dependencies" : [
],
"manifest_display_name" : "KitoButtons",
"name" : "KitoButtons",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "9.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "KitoButtons",
"targets" : [
"KitoButtons"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "KitoButtonsTests",
"module_type" : "SwiftTarget",
"name" : "KitoButtonsTests",
"path" : "Tests/KitoButtonsTests",
"sources" : [
"KitoAccessibilityTests.swift",
"KitoButtonThemeTests.swift",
"KitoFontFamilyTests.swift",
"KitoIdentifiersAndContentSlotsTests.swift"
],
"target_dependencies" : [
"KitoButtons"
],
"type" : "test"
},
{
"c99name" : "KitoButtons",
"module_type" : "SwiftTarget",
"name" : "KitoButtons",
"path" : "Sources/KitoButtons",
"product_memberships" : [
"KitoButtons"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/Resources/en.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/Resources/fr.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "fr"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/Resources/sw.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "sw"
}
}
}
],
"sources" : [
"KitoAccessibilitySupport.swift",
"KitoButton.swift",
"KitoButtonMotion.swift",
"KitoButtonShape.swift",
"KitoButtonTheme.swift",
"KitoButtonsLocalization.swift",
"KitoCartButton.swift",
"KitoFlight.swift",
"KitoFontFamily.swift"
],
"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/6] Write sources
[1/6] Copying Info.plist
[2/6] Copying Localizable.strings
[5/6] Write swift-version-2F0A5646E1D333AE.txt
[7/16] Compiling KitoButtons KitoCartButton.swift
/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/KitoCartButton.swift:342:9: warning: main actor-isolated property 'animatableData' cannot be used to satisfy nonisolated requirement from protocol 'Animatable'; this is an error in the Swift 6 language mode
325 | /// re-renders it every frame while `progress` animates, so every sub-motion can be derived from a
326 | /// single timeline exactly like a Lottie file.
327 | struct KitoCartChoreography: View, Animatable {
| `- note: add '@preconcurrency' to the 'Animatable' conformance to defer isolation checking to run time
328 | var progress: Double
329 | let style: KitoCartAnimation
:
340 | let fullWidth: Bool
341 |
342 | var animatableData: Double {
| `- warning: main actor-isolated property 'animatableData' cannot be used to satisfy nonisolated requirement from protocol 'Animatable'; this is an error in the Swift 6 language mode
343 | get { progress }
344 | set { progress = newValue }
/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/KitoCartButton.swift:194:71: warning: capture of 'action' with non-sendable type '() -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
192 |
193 | public init(_ title: String = KitoButtonsLocalization.string("cart.addToCart", "Add to cart"), animation: KitoCartAnimation = .rollingCart, action: @escaping () -> Void) {
194 | self.init(title, animation: animation, action: { @Sendable in action() } as () async throws -> Void)
| |- warning: capture of 'action' with non-sendable type '() -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
195 | }
196 |
[8/16] Compiling KitoButtons KitoFlight.swift
/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/KitoFlight.swift:89:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
87 |
88 | struct KitoFlightFramesKey: PreferenceKey {
89 | static var defaultValue: [AnyHashable: CGRect] = [:]
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
90 | static func reduce(value: inout [AnyHashable: CGRect], nextValue: () -> [AnyHashable: CGRect]) {
91 | value.merge(nextValue()) { $1 }
[9/17] Compiling KitoButtons KitoButtonsLocalization.swift
/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/KitoButtonsLocalization.swift:16:23: warning: static property 'provider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 | public enum KitoButtonsLocalization {
15 | /// Consulted before the bundled `Localizable.strings`; return nil to fall back.
16 | public static var provider: ((_ key: String, _ fallback: String) -> String?)?
| |- warning: static property 'provider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'provider' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'provider' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | public static var bundle: Bundle {
[10/17] Compiling KitoButtons KitoFontFamily.swift
[11/17] Compiling KitoButtons KitoButtonShape.swift
[12/17] Compiling KitoButtons KitoAccessibilitySupport.swift
[13/17] Compiling KitoButtons KitoButton.swift
[14/17] Emitting module KitoButtons
/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/KitoButtonTheme.swift:166:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
164 | /// overrides this for that subtree. Build from `.default` rather than a preset if you need
165 | /// both a preset's tint and your custom font.
166 | public static var `default` = KitoButtonTheme()
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
167 |
168 | /// Builds a theme where every button title uses `family`, at the size/weight this theme would
/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/KitoButtonsLocalization.swift:16:23: warning: static property 'provider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 | public enum KitoButtonsLocalization {
15 | /// Consulted before the bundled `Localizable.strings`; return nil to fall back.
16 | public static var provider: ((_ key: String, _ fallback: String) -> String?)?
| |- warning: static property 'provider' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'provider' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'provider' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | public static var bundle: Bundle {
/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/KitoCartButton.swift:342:9: warning: main actor-isolated property 'animatableData' cannot be used to satisfy nonisolated requirement from protocol 'Animatable'; this is an error in the Swift 6 language mode
325 | /// re-renders it every frame while `progress` animates, so every sub-motion can be derived from a
326 | /// single timeline exactly like a Lottie file.
327 | struct KitoCartChoreography: View, Animatable {
| `- note: add '@preconcurrency' to the 'Animatable' conformance to defer isolation checking to run time
328 | var progress: Double
329 | let style: KitoCartAnimation
:
340 | let fullWidth: Bool
341 |
342 | var animatableData: Double {
| `- warning: main actor-isolated property 'animatableData' cannot be used to satisfy nonisolated requirement from protocol 'Animatable'; this is an error in the Swift 6 language mode
343 | get { progress }
344 | set { progress = newValue }
/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/KitoFlight.swift:89:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
87 |
88 | struct KitoFlightFramesKey: PreferenceKey {
89 | static var defaultValue: [AnyHashable: CGRect] = [:]
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
90 | static func reduce(value: inout [AnyHashable: CGRect], nextValue: () -> [AnyHashable: CGRect]) {
91 | value.merge(nextValue()) { $1 }
[15/17] Compiling KitoButtons KitoButtonMotion.swift
[16/17] Compiling KitoButtons KitoButtonTheme.swift
/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/KitoButtonTheme.swift:166:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
164 | /// overrides this for that subtree. Build from `.default` rather than a preset if you need
165 | /// both a preset's tint and your custom font.
166 | public static var `default` = KitoButtonTheme()
| |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
167 |
168 | /// Builds a theme where every button title uses `family`, at the size/weight this theme would
[17/17] Compiling KitoButtons resource_bundle_accessor.swift
Build complete! (9.38s)
Build complete.
{
"default_localization" : "en",
"dependencies" : [
],
"manifest_display_name" : "KitoButtons",
"name" : "KitoButtons",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "9.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "KitoButtons",
"targets" : [
"KitoButtons"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "KitoButtonsTests",
"module_type" : "SwiftTarget",
"name" : "KitoButtonsTests",
"path" : "Tests/KitoButtonsTests",
"sources" : [
"KitoAccessibilityTests.swift",
"KitoButtonThemeTests.swift",
"KitoFontFamilyTests.swift",
"KitoIdentifiersAndContentSlotsTests.swift"
],
"target_dependencies" : [
"KitoButtons"
],
"type" : "test"
},
{
"c99name" : "KitoButtons",
"module_type" : "SwiftTarget",
"name" : "KitoButtons",
"path" : "Sources/KitoButtons",
"product_memberships" : [
"KitoButtons"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/Resources/en.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/Resources/fr.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "fr"
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KitoButtons/Resources/sw.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "sw"
}
}
}
],
"sources" : [
"KitoAccessibilitySupport.swift",
"KitoButton.swift",
"KitoButtonMotion.swift",
"KitoButtonShape.swift",
"KitoButtonTheme.swift",
"KitoButtonsLocalization.swift",
"KitoCartButton.swift",
"KitoFlight.swift",
"KitoFontFamily.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.