Build Information
Successful build of Kipple, reference 0.14.3 (7c6844), with Swift 6.4 for macOS (SPM) on 20 Sep 2026 18:07:27 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bdrelling/Kipple.git
Reference: 0.14.3
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bdrelling/Kipple
* tag 0.14.3 -> FETCH_HEAD
HEAD is now at 7c68441 Improved BidrectionalCollection+Looping
Cloned https://github.com/bdrelling/Kipple.git
Revision (git rev-parse @):
7c68441e690e69c15f6c00ae0b4d3552f117048d
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/bdrelling/Kipple.git at 0.14.3
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/bdrelling/Kipple.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Pre-planning 1 / 619]
[Planning deferred tasks]
[1 / 198]
[93 / 198]
[100 / 205] InternalCollectionsUtilities
[107 / 218] InternalCollectionsUtilities
[108 / 236]
[125 / 327]
[142 / 328]
[152 / 339] OrderedCollections
[160 / 339] OrderedCollections
[164 / 339]
[171 / 339] InternalCollectionsUtilities
[173 / 339] InternalCollectionsUtilities
[173 / 339] OrderedCollections
[173 / 339]
[188 / 339] OrderedCollections
[191 / 339]
[209 / 346]
[222 / 346] KippleCollections
[231 / 346]
[234 / 346]
[236 / 346]
[238 / 346]
[240 / 346]
[251 / 346]
[257 / 346] KippleLocalStorage
[277 / 346] KippleLogging
[283 / 346] KippleFoundation-product
[285 / 346] KeychainAccess
[292 / 346] KippleFoundation
[304 / 346] KippleCodable
[315 / 348] KippleLocalStorage-product
[319 / 348] KippleCodable-product
[319 / 348] KippleKeychain
[326 / 355] KippleKeychain
[342 / 356] KippleDevice
[343 / 356] Kipple
[357 / 358] Kipple
Build complete! (9.60 sec)
Fetching https://github.com/bdrelling/KippleTools
Fetching https://github.com/apple/swift-collections
Fetching https://github.com/apple/swift-log
Fetching https://github.com/kishikawakatsumi/KeychainAccess
Fetching https://github.com/devicekit/DeviceKit
[1/8096] Fetching swift-log
[2/12484] Fetching swift-log, keychainaccess
[758/16973] Fetching swift-log, keychainaccess, devicekit
[4105/44325] Fetching swift-log, keychainaccess, devicekit, swift-collections
[5855/45045] Fetching swift-log, keychainaccess, devicekit, swift-collections, kippletools
Fetched https://github.com/bdrelling/KippleTools (4.81s)
Fetched https://github.com/apple/swift-log (4.81s)
Fetched https://github.com/devicekit/DeviceKit (4.81s)
Fetched https://github.com/apple/swift-collections (4.82s)
Fetched https://github.com/kishikawakatsumi/KeychainAccess (4.82s)
Computing version for https://github.com/kishikawakatsumi/KeychainAccess
Computed https://github.com/kishikawakatsumi/KeychainAccess at 4.2.2 (5.53s)
Computing version for https://github.com/bdrelling/KippleTools
Computed https://github.com/bdrelling/KippleTools at 0.5.4 (0.65s)
Fetching https://github.com/apple/swift-argument-parser
Fetching https://github.com/nicklockwood/SwiftFormat
[1/18918] Fetching swift-argument-parser
[191/77748] Fetching swift-argument-parser, swiftformat
Fetched https://github.com/apple/swift-argument-parser (84.73s)
Fetched https://github.com/nicklockwood/SwiftFormat (84.73s)
Computing version for https://github.com/devicekit/DeviceKit
Computed https://github.com/devicekit/DeviceKit at 5.8.0 (85.58s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.8.2 (0.60s)
Computing version for https://github.com/apple/swift-collections
Computed https://github.com/apple/swift-collections at 1.6.0 (0.64s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.15.1 (0.55s)
Computing version for https://github.com/nicklockwood/SwiftFormat
Computed https://github.com/nicklockwood/SwiftFormat at 0.63.0 (0.66s)
Creating working copy for https://github.com/nicklockwood/SwiftFormat
Working copy of https://github.com/nicklockwood/SwiftFormat resolved at 0.63.0
Creating working copy for https://github.com/devicekit/DeviceKit
Working copy of https://github.com/devicekit/DeviceKit resolved at 5.8.0
Creating working copy for https://github.com/bdrelling/KippleTools
Working copy of https://github.com/bdrelling/KippleTools resolved at 0.5.4
Creating working copy for https://github.com/apple/swift-collections
Working copy of https://github.com/apple/swift-collections resolved at 1.6.0
Creating working copy for https://github.com/kishikawakatsumi/KeychainAccess
Working copy of https://github.com/kishikawakatsumi/KeychainAccess resolved at 4.2.2
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.15.1
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.8.2
/Users/admin/builder/spi-builder-workspace/Sources/KippleFoundation/Extensions/String+LocalizedError.swift:7:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m5 |[0;0m /// Extension that allows a normal `String` to be returned as an error,
[0;36m6 |[0;0m /// using itself as the localized error description.
[0;36m7 |[0;0m extension String: LocalizedError {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m8 |[0;0m public var errorDescription: String? {
[0;36m9 |[0;0m self
/Users/admin/builder/spi-builder-workspace/Sources/KippleFoundation/Extensions/String+LocalizedError.swift:7:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m5 |[0;0m /// Extension that allows a normal `String` to be returned as an error,
[0;36m6 |[0;0m /// using itself as the localized error description.
[0;36m7 |[0;0m extension String: LocalizedError {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m8 |[0;0m public var errorDescription: String? {
[0;36m9 |[0;0m self
Build complete.
{
"dependencies" : [
{
"identity" : "swift-collections",
"requirement" : {
"range" : [
{
"lower_bound" : "1.1.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-collections"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.5.4",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log"
},
{
"identity" : "kippletools",
"requirement" : {
"range" : [
{
"lower_bound" : "0.5.3",
"upper_bound" : "0.6.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/bdrelling/KippleTools"
},
{
"identity" : "devicekit",
"requirement" : {
"range" : [
{
"lower_bound" : "5.2.3",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/devicekit/DeviceKit"
},
{
"identity" : "keychainaccess",
"requirement" : {
"range" : [
{
"lower_bound" : "4.2.2",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/kishikawakatsumi/KeychainAccess"
}
],
"manifest_display_name" : "Kipple",
"name" : "Kipple",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "16.0"
},
{
"name" : "watchos",
"version" : "9.0"
}
],
"products" : [
{
"name" : "Kipple",
"targets" : [
"Kipple"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "KippleCodable",
"targets" : [
"KippleCodable"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "KippleCollections",
"targets" : [
"KippleCollections"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "KippleCombine",
"targets" : [
"KippleCombine"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "KippleFoundation",
"targets" : [
"KippleFoundation"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "KippleDevice",
"targets" : [
"KippleDevice"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "KippleKeychain",
"targets" : [
"KippleKeychain"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "KippleLocalStorage",
"targets" : [
"KippleLocalStorage"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "KippleLogging",
"targets" : [
"KippleLogging"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "KippleLoggingTests",
"module_type" : "SwiftTarget",
"name" : "KippleLoggingTests",
"path" : "Tests/KippleLoggingTests",
"sources" : [
"Protocols/LogHandlerValidating.swift",
"Tests/ConsoleLogHandlerTests.swift"
],
"target_dependencies" : [
"KippleLogging"
],
"type" : "test"
},
{
"c99name" : "KippleLogging",
"module_type" : "SwiftTarget",
"name" : "KippleLogging",
"path" : "Sources/KippleLogging",
"product_dependencies" : [
"Logging"
],
"product_memberships" : [
"Kipple",
"KippleLogging"
],
"sources" : [
"Exports.swift",
"Extensions/Logger+Convenience.swift",
"Handlers/ConsoleLogHandler.swift"
],
"type" : "library"
},
{
"c99name" : "KippleLocalStorageTests",
"module_type" : "SwiftTarget",
"name" : "KippleLocalStorageTests",
"path" : "Tests/KippleLocalStorageTests",
"sources" : [
"UserDefaultsExtensionsTests.swift"
],
"target_dependencies" : [
"KippleLocalStorage"
],
"type" : "test"
},
{
"c99name" : "KippleLocalStorage",
"module_type" : "SwiftTarget",
"name" : "KippleLocalStorage",
"path" : "Sources/KippleLocalStorage",
"product_memberships" : [
"Kipple",
"KippleLocalStorage"
],
"sources" : [
"UserDefaults/UserDefaults+Codable.swift",
"UserDefaults/UserDefaults+Key.swift",
"UserDefaults/UserDefaults+Mocked.swift",
"UserDefaults/UserDefaults+RemoveAllObjects.swift"
],
"type" : "library"
},
{
"c99name" : "KippleKeychain",
"module_type" : "SwiftTarget",
"name" : "KippleKeychain",
"path" : "Sources/KippleKeychain",
"product_dependencies" : [
"KeychainAccess"
],
"product_memberships" : [
"Kipple",
"KippleKeychain"
],
"sources" : [
"Exports.swift",
"Keychain+Default.swift",
"Keychain+Key.swift"
],
"target_dependencies" : [
"KippleFoundation"
],
"type" : "library"
},
{
"c99name" : "KippleFoundationTests",
"module_type" : "SwiftTarget",
"name" : "KippleFoundationTests",
"path" : "Tests/KippleFoundationTests",
"sources" : [
"AppInfoTests.swift",
"BoolExtensionTests.swift",
"BundleExtensionTests.swift",
"BundleInfoTests.swift",
"ComparableExtensionTests.swift",
"Int64ClampedTests.swift",
"IntExtensionTests.swift",
"ModuloTests.swift",
"NSNumberExtensionTests.swift",
"ResultExtensionTests.swift",
"SemanticVersionTests.swift",
"StringExtensionTests.swift",
"StringLocalizedErrorExtensionTests.swift",
"UInt64ClampedTests.swift",
"URLConvertibleTests.swift"
],
"target_dependencies" : [
"KippleFoundation"
],
"type" : "test"
},
{
"c99name" : "KippleFoundation",
"module_type" : "SwiftTarget",
"name" : "KippleFoundation",
"path" : "Sources/KippleFoundation",
"product_memberships" : [
"Kipple",
"KippleFoundation",
"KippleDevice",
"KippleKeychain"
],
"sources" : [
"Extensions/BinaryInteger+Clamped.swift",
"Extensions/Bool+Convenience.swift",
"Extensions/Bundle+Convenience.swift",
"Extensions/Bundle+Key.swift",
"Extensions/Comparable+Clamped.swift",
"Extensions/Int+Convenience.swift",
"Extensions/NSNumber+Boolean.swift",
"Extensions/Result+Convenience.swift",
"Extensions/String+Convenience.swift",
"Extensions/String+LocalizedError.swift",
"Extensions/Swift+Modulo.swift",
"Models/AppInfo.swift",
"Models/BundleInfo.swift",
"Models/SemanticVersion.swift",
"Protocols/URLConvertible.swift"
],
"type" : "library"
},
{
"c99name" : "KippleDeviceTests",
"module_type" : "SwiftTarget",
"name" : "KippleDeviceTests",
"path" : "Tests/KippleDeviceTests",
"sources" : [
"DeviceInfoTests.swift"
],
"target_dependencies" : [
"KippleDevice"
],
"type" : "test"
},
{
"c99name" : "KippleDevice",
"module_type" : "SwiftTarget",
"name" : "KippleDevice",
"path" : "Sources/KippleDevice",
"product_dependencies" : [
"DeviceKit"
],
"product_memberships" : [
"Kipple",
"KippleDevice"
],
"sources" : [
"DeviceFamily.swift",
"DeviceInfo.swift"
],
"target_dependencies" : [
"KippleFoundation"
],
"type" : "library"
},
{
"c99name" : "KippleCombineTests",
"module_type" : "SwiftTarget",
"name" : "KippleCombineTests",
"path" : "Tests/KippleCombineTests",
"sources" : [
"PublisherResultTests.swift"
],
"target_dependencies" : [
"KippleCombine"
],
"type" : "test"
},
{
"c99name" : "KippleCombine",
"module_type" : "SwiftTarget",
"name" : "KippleCombine",
"path" : "Sources/KippleCombine",
"product_memberships" : [
"Kipple",
"KippleCombine"
],
"sources" : [
"Publisher+Result.swift"
],
"type" : "library"
},
{
"c99name" : "KippleCollectionsTests",
"module_type" : "SwiftTarget",
"name" : "KippleCollectionsTests",
"path" : "Tests/KippleCollectionsTests",
"sources" : [
"BidirectionalCollectionExtensionTests.swift",
"InterleavableDictionaryTests.swift"
],
"target_dependencies" : [
"KippleCollections"
],
"type" : "test"
},
{
"c99name" : "KippleCollections",
"module_type" : "SwiftTarget",
"name" : "KippleCollections",
"path" : "Sources/KippleCollections",
"product_dependencies" : [
"OrderedCollections"
],
"product_memberships" : [
"Kipple",
"KippleCollections"
],
"sources" : [
"Exports.swift",
"Extensions/Array+RemoveDuplicates.swift",
"Extensions/BidirectionalCollection+Looping.swift",
"Extensions/RangeReplaceableCollection+Rotating.swift",
"Protocols/InterleavableDictionary.swift"
],
"type" : "library"
},
{
"c99name" : "KippleCodableTests",
"module_type" : "SwiftTarget",
"name" : "KippleCodableTests",
"path" : "Tests/KippleCodableTests",
"sources" : [
"CodableDefaultTests.swift",
"CodableIgnoredTests.swift",
"DecodingErrorCleanedTests.swift",
"DictionaryExtensionTests.swift",
"EncodableAsDictionaryTests.swift",
"EncodablePrettyPrintedTests.swift"
],
"target_dependencies" : [
"KippleCodable"
],
"type" : "test"
},
{
"c99name" : "KippleCodable",
"module_type" : "SwiftTarget",
"name" : "KippleCodable",
"path" : "Sources/KippleCodable",
"product_memberships" : [
"Kipple",
"KippleCodable"
],
"sources" : [
"Errors/CleanedDecodingError.swift",
"Errors/KippleCodableError.swift",
"Extensions/DecodingError+Cleaned.swift",
"Extensions/Dictionary+AsJSONSerializedData.swift",
"Extensions/Encodable+AsDictionary.swift",
"Extensions/Encodable+PrettyPrinted.swift",
"Extensions/JSONDecoder+DecodeCleaned.swift",
"Extensions/PropertyListDecoder+DecodeCleaned.swift",
"PropertyWrappers/CodableDefault.swift",
"PropertyWrappers/CodableDefaultStrategy.swift",
"PropertyWrappers/CodableIgnored.swift"
],
"type" : "library"
},
{
"c99name" : "Kipple",
"module_type" : "SwiftTarget",
"name" : "Kipple",
"path" : "Sources/Kipple",
"product_memberships" : [
"Kipple"
],
"sources" : [
"Exports.swift"
],
"target_dependencies" : [
"KippleCodable",
"KippleCollections",
"KippleCombine",
"KippleFoundation",
"KippleDevice",
"KippleKeychain",
"KippleLocalStorage",
"KippleLogging"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Done.