Build Information
Successful build of Kipple, reference main (7b64f9), with Swift 6.4 for macOS (SPM) on 20 Sep 2026 18:08:18 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: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bdrelling/Kipple
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 7b64f96 Updated for Concurrency
Cloned https://github.com/bdrelling/Kipple.git
Revision (git rev-parse @):
7b64f96fa67d68b35722029f2ef02a417a911b62
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/bdrelling/Kipple.git at main
========================================
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]
[Constructing description]
[Pre-planning 1 / 709]
[Planning deferred tasks]
[107 / 231]
[117 / 239] _NumericsShims
[118 / 239]
[121 / 253] InternalCollectionsUtilities
[127 / 266] RealModule
[128 / 268] KippleCombine
[129 / 282]
[132 / 282] RealModule
[148 / 370]
[166 / 370]
[175 / 370]
[184 / 370] Algorithms
[193 / 372] Algorithms
[202 / 394] InternalCollectionsUtilities
[205 / 394]
[207 / 394] OrderedCollections
[211 / 394] KippleCombine
[221 / 394]
[226 / 394]
[232 / 394] KippleCombine-product
[239 / 394]
[251 / 394] OrderedCollections
[262 / 394]
[265 / 395]
[275 / 402] KippleCollections
[287 / 402] KippleCollections
[288 / 402]
[294 / 402] KippleCollections
[295 / 402]
[306 / 402] KippleLocalStorage
[319 / 402] KippleCodable
[337 / 402] KippleLocalStorage-product
[339 / 402] KippleFoundation-product
[340 / 402] KippleFoundation-product
[342 / 402] KeychainAccess
[359 / 402] KippleCodable-product
[369 / 404] KippleFoundation
[374 / 404] KippleCodable
[375 / 404] KippleKeychain
[382 / 411] KippleKeychain
[398 / 412] KippleDevice
[399 / 412] Kipple
[413 / 414] KippleKeychain-product
Build complete! (9.80 sec)
Fetching https://github.com/apple/swift-log
Fetching https://github.com/kishikawakatsumi/KeychainAccess
Fetching https://github.com/bdrelling/KippleTools
Fetching https://github.com/apple/swift-collections
Fetching https://github.com/devicekit/DeviceKit
Fetching https://github.com/apple/swift-algorithms
[1/8096] Fetching swift-log
[2/8816] Fetching swift-log, kippletools
[53/13204] Fetching swift-log, kippletools, keychainaccess
[97/17693] Fetching swift-log, kippletools, keychainaccess, devicekit
[142/23838] Fetching swift-log, kippletools, keychainaccess, devicekit, swift-algorithms
[4326/51190] Fetching swift-log, kippletools, keychainaccess, devicekit, swift-algorithms, swift-collections
Fetched https://github.com/apple/swift-log (2.28s)
[12355/43094] Fetching kippletools, keychainaccess, devicekit, swift-algorithms, swift-collections
Fetched https://github.com/kishikawakatsumi/KeychainAccess (2.90s)
[13543/38706] Fetching kippletools, devicekit, swift-algorithms, swift-collections
Fetched https://github.com/apple/swift-collections (4.44s)
Fetched https://github.com/devicekit/DeviceKit (4.44s)
Fetched https://github.com/bdrelling/KippleTools (4.44s)
Fetched https://github.com/apple/swift-algorithms (4.44s)
Computing version for https://github.com/kishikawakatsumi/KeychainAccess
Computed https://github.com/kishikawakatsumi/KeychainAccess at 4.2.2 (7.29s)
Computing version for https://github.com/bdrelling/KippleTools
Computed https://github.com/bdrelling/KippleTools at 0.5.4 (0.63s)
Fetching https://github.com/nicklockwood/SwiftFormat
Fetching https://github.com/apple/swift-argument-parser
[1/18918] Fetching swift-argument-parser
[191/77748] Fetching swift-argument-parser, swiftformat
Fetched https://github.com/nicklockwood/SwiftFormat (80.75s)
Fetched https://github.com/apple/swift-argument-parser (80.75s)
Computing version for https://github.com/apple/swift-algorithms
Computed https://github.com/apple/swift-algorithms at 1.2.1 (81.61s)
Fetching https://github.com/apple/swift-numerics.git
[1/6636] Fetching swift-numerics
Fetched https://github.com/apple/swift-numerics.git (1.69s)
Computing version for https://github.com/apple/swift-numerics.git
Computed https://github.com/apple/swift-numerics.git at 1.1.1 (2.26s)
Computing version for https://github.com/devicekit/DeviceKit
Computed https://github.com/devicekit/DeviceKit at 5.8.0 (0.64s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.8.2 (0.59s)
Computing version for https://github.com/apple/swift-collections
Computed https://github.com/apple/swift-collections at 1.6.0 (0.66s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.15.1 (0.60s)
Computing version for https://github.com/nicklockwood/SwiftFormat
Computed https://github.com/nicklockwood/SwiftFormat at 0.63.0 (0.68s)
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/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
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/kishikawakatsumi/KeychainAccess
Working copy of https://github.com/kishikawakatsumi/KeychainAccess resolved at 4.2.2
Creating working copy for https://github.com/apple/swift-algorithms
Working copy of https://github.com/apple/swift-algorithms resolved at 1.2.1
Creating working copy for https://github.com/apple/swift-numerics.git
Working copy of https://github.com/apple/swift-numerics.git resolved at 1.1.1
Creating working copy for https://github.com/devicekit/DeviceKit
Working copy of https://github.com/devicekit/DeviceKit resolved at 5.8.0
/Users/admin/builder/spi-builder-workspace/Sources/KippleLocalStorage/UserDefaults/UserDefaults+Key.swift:28:16: [1;33mwarning: [1;39mstatic property 'codableStore' is not concurrency-safe because non-'Sendable' type 'UserDefaults' may have shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m26 |[0;0m
[0;36m27 |[0;0m public extension UserDefaults {
[0;36m28 |[0;0m static let codableStore = UserDefaults(suiteName: "com.kipple.codablestore")!
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'codableStore' is not concurrency-safe because non-'Sendable' type 'UserDefaults' may have shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'codableStore' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m29 |[0;0m }
[0;36m30 |[0;0m
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSUserDefaults.h:144:12: [1;39mnote: [1;39mclass 'UserDefaults' does not conform to the 'Sendable' protocol[0;0m
[0;36m142 |[0;0m /// - An app can modify settings for one of its app extensions.
[0;36m143 |[0;0m /// - An app can modify settings for an app group to which it belongs.
[0;36m144 |[0;0m @interface NSUserDefaults : NSObject {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'UserDefaults' does not conform to the 'Sendable' protocol[0;0m
[0;36m145 |[0;0m @private
[0;36m146 |[0;0m id _kvo_;
/Users/admin/builder/spi-builder-workspace/Sources/KippleLocalStorage/UserDefaults/UserDefaults+Mocked.swift:6:16: [1;33mwarning: [1;39mstatic property 'mocked' is not concurrency-safe because non-'Sendable' type 'UserDefaults' may have shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m4 |[0;0m
[0;36m5 |[0;0m extension UserDefaults {
[0;36m6 |[0;0m static let mocked: UserDefaults = {
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'mocked' is not concurrency-safe because non-'Sendable' type 'UserDefaults' may have shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'mocked' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m7 |[0;0m let name = "com.kipple.mocked"
[0;36m8 |[0;0m let store = UserDefaults(suiteName: name)!
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSUserDefaults.h:144:12: [1;39mnote: [1;39mclass 'UserDefaults' does not conform to the 'Sendable' protocol[0;0m
[0;36m142 |[0;0m /// - An app can modify settings for one of its app extensions.
[0;36m143 |[0;0m /// - An app can modify settings for an app group to which it belongs.
[0;36m144 |[0;0m @interface NSUserDefaults : NSObject {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'UserDefaults' does not conform to the 'Sendable' protocol[0;0m
[0;36m145 |[0;0m @private
[0;36m146 |[0;0m id _kvo_;
[#MutableGlobalVariable]: <https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable>
/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/KippleLocalStorage/UserDefaults/UserDefaults+Mocked.swift:6:16: [1;33mwarning: [1;39mstatic property 'mocked' is not concurrency-safe because non-'Sendable' type 'UserDefaults' may have shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m4 |[0;0m
[0;36m5 |[0;0m extension UserDefaults {
[0;36m6 |[0;0m static let mocked: UserDefaults = {
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'mocked' is not concurrency-safe because non-'Sendable' type 'UserDefaults' may have shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'mocked' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m7 |[0;0m let name = "com.kipple.mocked"
[0;36m8 |[0;0m let store = UserDefaults(suiteName: name)!
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSUserDefaults.h:144:12: [1;39mnote: [1;39mclass 'UserDefaults' does not conform to the 'Sendable' protocol[0;0m
[0;36m142 |[0;0m /// - An app can modify settings for one of its app extensions.
[0;36m143 |[0;0m /// - An app can modify settings for an app group to which it belongs.
[0;36m144 |[0;0m @interface NSUserDefaults : NSObject {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'UserDefaults' does not conform to the 'Sendable' protocol[0;0m
[0;36m145 |[0;0m @private
[0;36m146 |[0;0m id _kvo_;
[#MutableGlobalVariable]: <https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable>
/Users/admin/builder/spi-builder-workspace/Sources/KippleLocalStorage/UserDefaults/UserDefaults+Key.swift:28:16: [1;33mwarning: [1;39mstatic property 'codableStore' is not concurrency-safe because non-'Sendable' type 'UserDefaults' may have shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m26 |[0;0m
[0;36m27 |[0;0m public extension UserDefaults {
[0;36m28 |[0;0m static let codableStore = UserDefaults(suiteName: "com.kipple.codablestore")!
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'codableStore' is not concurrency-safe because non-'Sendable' type 'UserDefaults' may have shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'codableStore' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m29 |[0;0m }
[0;36m30 |[0;0m
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSUserDefaults.h:144:12: [1;39mnote: [1;39mclass 'UserDefaults' does not conform to the 'Sendable' protocol[0;0m
[0;36m142 |[0;0m /// - An app can modify settings for one of its app extensions.
[0;36m143 |[0;0m /// - An app can modify settings for an app group to which it belongs.
[0;36m144 |[0;0m @interface NSUserDefaults : NSObject {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'UserDefaults' does not conform to the 'Sendable' protocol[0;0m
[0;36m145 |[0;0m @private
[0;36m146 |[0;0m id _kvo_;
[#MutableGlobalVariable]: <https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable>
/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-algorithms",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-algorithms"
},
{
"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" : [
"Algorithms",
"OrderedCollections"
],
"product_memberships" : [
"Kipple",
"KippleCollections"
],
"sources" : [
"Exports.swift",
"Extensions/Array+RemoveDuplicates.swift",
"Extensions/BidirectionalCollection+Looping.swift",
"Extensions/Collection+Convenience.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.8"
}
Done.