The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of Kipple, reference main (7b64f9), with Swift 6.0 for Linux on 1 Dec 2024 02:18:38 UTC.

Swift 6 data race errors: 3

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bdrelling/Kipple.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
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:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/bdrelling/Kipple.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Fetching https://github.com/devicekit/DeviceKit
Fetching https://github.com/apple/swift-collections
Fetching https://github.com/apple/swift-algorithms
Fetching https://github.com/kishikawakatsumi/KeychainAccess
Fetching https://github.com/bdrelling/KippleTools
Fetching https://github.com/apple/swift-log
[1/720] Fetching kippletools
[721/5109] Fetching kippletools, keychainaccess
[1775/8832] Fetching kippletools, keychainaccess, swift-log
[4979/14423] Fetching kippletools, keychainaccess, swift-log, swift-algorithms
[6810/18347] Fetching kippletools, keychainaccess, swift-log, swift-algorithms, devicekit
[15313/33950] Fetching kippletools, keychainaccess, swift-log, swift-algorithms, devicekit, swift-collections
Fetched https://github.com/bdrelling/KippleTools from cache (0.46s)
[19344/33230] Fetching keychainaccess, swift-log, swift-algorithms, devicekit, swift-collections
Fetched https://github.com/apple/swift-log from cache (0.46s)
[15777/29507] Fetching keychainaccess, swift-algorithms, devicekit, swift-collections
Fetched https://github.com/apple/swift-algorithms from cache (1.05s)
Fetched https://github.com/devicekit/DeviceKit from cache (1.05s)
Fetched https://github.com/kishikawakatsumi/KeychainAccess from cache (1.06s)
Fetched https://github.com/apple/swift-collections from cache (1.07s)
Computing version for https://github.com/kishikawakatsumi/KeychainAccess
Computed https://github.com/kishikawakatsumi/KeychainAccess at 4.2.2 (1.84s)
Computing version for https://github.com/apple/swift-algorithms
Computed https://github.com/apple/swift-algorithms at 1.2.0 (0.45s)
Fetching https://github.com/apple/swift-numerics.git
[1/5576] Fetching swift-numerics
Fetched https://github.com/apple/swift-numerics.git from cache (0.38s)
Computing version for https://github.com/bdrelling/KippleTools
Computed https://github.com/bdrelling/KippleTools at 0.5.4 (0.48s)
Fetching https://github.com/apple/swift-argument-parser
Fetching https://github.com/nicklockwood/SwiftFormat
[1/12395] Fetching swift-argument-parser
[12396/58173] Fetching swift-argument-parser, swiftformat
Fetched https://github.com/apple/swift-argument-parser from cache (25.31s)
Fetched https://github.com/nicklockwood/SwiftFormat from cache (25.95s)
Computing version for https://github.com/apple/swift-numerics.git
Computed https://github.com/apple/swift-numerics.git at 1.0.2 (0.44s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.6.2 (0.40s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.0 (0.42s)
Computing version for https://github.com/devicekit/DeviceKit
Computed https://github.com/devicekit/DeviceKit at 5.5.0 (0.52s)
Computing version for https://github.com/apple/swift-collections
Computed https://github.com/apple/swift-collections at 1.1.4 (0.83s)
Computing version for https://github.com/nicklockwood/SwiftFormat
Computed https://github.com/nicklockwood/SwiftFormat at 0.55.3 (0.45s)
Creating working copy for https://github.com/nicklockwood/SwiftFormat
Working copy of https://github.com/nicklockwood/SwiftFormat resolved at 0.55.3
Creating working copy for https://github.com/apple/swift-collections
Working copy of https://github.com/apple/swift-collections resolved at 1.1.4
Creating working copy for https://github.com/apple/swift-numerics.git
Working copy of https://github.com/apple/swift-numerics.git resolved at 1.0.2
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.5.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/devicekit/DeviceKit
Working copy of https://github.com/devicekit/DeviceKit resolved at 5.5.0
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.6.2
Creating working copy for https://github.com/apple/swift-algorithms
Working copy of https://github.com/apple/swift-algorithms resolved at 1.2.0
Creating working copy for https://github.com/bdrelling/KippleTools
Working copy of https://github.com/bdrelling/KippleTools resolved at 0.5.4
warning: 'devicekit': found 2 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /host/spi-builder-workspace/.build/checkouts/DeviceKit/Source/Info.plist
    /host/spi-builder-workspace/.build/checkouts/DeviceKit/Source/Device.swift.gyb
warning: 'swift-algorithms': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /host/spi-builder-workspace/.build/checkouts/swift-algorithms/Sources/Algorithms/Documentation.docc
[1/1] Compiling plugin GenerateManual
[2/2] Compiling plugin SwiftFormatPlugin
Building for debugging...
[2/18] Write sources
[16/18] Compiling _NumericsShims _NumericsShims.c
[17/18] Write swift-version-24593BA9C3E375BF.txt
[19/83] Emitting module KippleCombine
[20/83] Emitting module RealModule
[21/84] Emitting module InternalCollectionsUtilities
[22/86] Emitting module KippleCodable
[23/87] Compiling KippleCodable CodableDefaultStrategy.swift
[24/87] Compiling InternalCollectionsUtilities Debugging.swift
[25/87] Compiling InternalCollectionsUtilities Descriptions.swift
[26/88] Compiling KippleCombine Publisher+Result.swift
[27/89] Compiling RealModule Float80+Real.swift
[28/89] Compiling RealModule Real.swift
[29/89] Compiling KippleCodable CodableIgnored.swift
[30/89] Compiling RealModule RealFunctions.swift
[31/89] Compiling InternalCollectionsUtilities _SortedCollection.swift
[32/89] Compiling InternalCollectionsUtilities _UniqueCollection.swift
[33/89] Compiling InternalCollectionsUtilities UnsafeBufferPointer+Extras.swift
[34/89] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[35/89] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+SE-0370.swift
[36/89] Compiling InternalCollectionsUtilities UnsafeMutablePointer+SE-0370.swift
[37/89] Compiling InternalCollectionsUtilities UnsafeRawPointer extensions.swift
[40/89] Compiling InternalCollectionsUtilities RandomAccessCollection+Offsets.swift
[41/89] Compiling InternalCollectionsUtilities Specialize.swift
[42/89] Compiling InternalCollectionsUtilities UInt+reversed.swift
[43/89] Compiling InternalCollectionsUtilities _UnsafeBitSet+Index.swift
[44/89] Compiling InternalCollectionsUtilities FixedWidthInteger+roundUpToPowerOfTwo.swift
[45/89] Compiling InternalCollectionsUtilities Integer rank.swift
[46/89] Compiling InternalCollectionsUtilities UInt+first and last set bit.swift
[47/89] Compiling InternalCollectionsUtilities _UnsafeBitSet+_Word.swift
[48/89] Compiling InternalCollectionsUtilities _UnsafeBitSet.swift
[51/90] Compiling RealModule Float16+Real.swift
[54/90] Compiling RealModule ElementaryFunctions.swift
[55/90] Compiling RealModule Float+Real.swift
[59/171] Compiling Logging MetadataProvider.swift
[60/171] Emitting module Logging
[61/171] Compiling Logging LogHandler.swift
[62/171] Compiling Logging Locks.swift
[63/171] Compiling Logging Logging.swift
[64/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra subtract.swift
[65/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra subtracting.swift
[66/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra symmetricDifference.swift
[67/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra union.swift
[68/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra+Basics.swift
[69/172] Compiling OrderedCollections OrderedSet+RandomAccessCollection.swift
[70/172] Compiling OrderedCollections OrderedSet+ReserveCapacity.swift
[71/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra intersection.swift
[72/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isDisjoint.swift
[73/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isEqualSet.swift
[74/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isStrictSubset.swift
[75/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isStrictSuperset.swift
[76/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isSubset.swift
[77/172] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isSuperset.swift
[79/183] Compiling OrderedCollections OrderedSet+Initializers.swift
[80/183] Compiling OrderedCollections OrderedSet+Insertions.swift
[81/183] Compiling OrderedCollections OrderedSet+Invariants.swift
[82/183] Compiling OrderedCollections OrderedSet+Partial MutableCollection.swift
[83/183] Compiling OrderedCollections OrderedSet+Partial RangeReplaceableCollection.swift
[84/183] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formIntersection.swift
[85/183] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formSymmetricDifference.swift
[86/183] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formUnion.swift
[87/183] Compiling OrderedCollections OrderedDictionary+Hashable.swift
[88/183] Compiling OrderedCollections OrderedDictionary+Initializers.swift
[89/183] Compiling OrderedCollections OrderedDictionary+Invariants.swift
[90/183] Compiling OrderedCollections OrderedDictionary+Partial MutableCollection.swift
[91/183] Compiling OrderedCollections OrderedDictionary+Partial RangeReplaceableCollection.swift
[92/183] Compiling OrderedCollections OrderedDictionary+Sendable.swift
[93/183] Compiling OrderedCollections OrderedDictionary+Sequence.swift
[94/183] Compiling OrderedCollections OrderedDictionary+Values.swift
[95/183] Emitting module KippleLogging
/host/spi-builder-workspace/Sources/KippleLogging/Handlers/ConsoleLogHandler.swift:16:23: warning: static property 'globalLogLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 14 |     /// The `logLevel` of an individual `ConsoleLogHandler` is ignored when this global
 15 |     /// log level is set to a higher level.
 16 |     public static var globalLogLevel: Logger.Level?
    |                       |- warning: static property 'globalLogLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'globalLogLevel' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'globalLogLevel' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |
 18 |     /// The log label for the log handler.
[96/183] Compiling OrderedCollections OrderedDictionary.swift
[97/183] Compiling OrderedCollections OrderedSet+Codable.swift
[98/183] Compiling OrderedCollections OrderedSet+CustomReflectable.swift
[99/183] Compiling OrderedCollections OrderedSet+Descriptions.swift
[100/183] Compiling OrderedCollections OrderedSet+Diffing.swift
[101/183] Compiling OrderedCollections OrderedSet+Equatable.swift
[102/183] Compiling OrderedCollections OrderedSet+ExpressibleByArrayLiteral.swift
[103/183] Compiling OrderedCollections OrderedSet+Hashable.swift
[106/183] Compiling OrderedCollections OrderedDictionary+Codable.swift
[107/183] Compiling OrderedCollections OrderedDictionary+CustomReflectable.swift
[108/183] Compiling OrderedCollections OrderedDictionary+Deprecations.swift
[109/183] Compiling OrderedCollections OrderedDictionary+Descriptions.swift
[110/183] Compiling OrderedCollections OrderedDictionary+Elements.SubSequence.swift
[111/183] Compiling OrderedCollections OrderedDictionary+Elements.swift
[112/183] Compiling OrderedCollections OrderedDictionary+Equatable.swift
[113/183] Compiling OrderedCollections OrderedDictionary+ExpressibleByDictionaryLiteral.swift
[114/183] Compiling KippleLogging ConsoleLogHandler.swift
/host/spi-builder-workspace/Sources/KippleLogging/Handlers/ConsoleLogHandler.swift:16:23: warning: static property 'globalLogLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 14 |     /// The `logLevel` of an individual `ConsoleLogHandler` is ignored when this global
 15 |     /// log level is set to a higher level.
 16 |     public static var globalLogLevel: Logger.Level?
    |                       |- warning: static property 'globalLogLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'globalLogLevel' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'globalLogLevel' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |
 18 |     /// The log label for the log handler.
[115/183] Compiling KippleFoundation URLConvertible.swift
[118/183] Compiling OrderedCollections _HashTable+Constants.swift
[119/183] Compiling OrderedCollections _HashTable+CustomStringConvertible.swift
[120/183] Compiling OrderedCollections _HashTable+Testing.swift
[121/183] Compiling OrderedCollections _HashTable+UnsafeHandle.swift
[122/183] Compiling OrderedCollections _HashTable.swift
[123/183] Compiling OrderedCollections _Hashtable+Header.swift
[130/186] Compiling OrderedCollections OrderedSet+Sendable.swift
[131/186] Compiling OrderedCollections OrderedSet+SubSequence.swift
[132/186] Compiling OrderedCollections OrderedSet+Testing.swift
[133/186] Compiling OrderedCollections OrderedSet+UnorderedView.swift
[134/186] Compiling OrderedCollections OrderedSet+UnstableInternals.swift
[135/186] Compiling OrderedCollections OrderedSet.swift
[136/186] Compiling OrderedCollections _UnsafeBitset.swift
[137/186] Compiling KippleLogging Exports.swift
[138/186] Compiling KippleLogging Logger+Convenience.swift
[139/187] Compiling OrderedCollections _HashTable+Bucket.swift
[140/187] Compiling OrderedCollections _HashTable+BucketIterator.swift
[148/187] Compiling KippleCodable CodableDefault.swift
[149/187] Compiling KippleCodable PropertyListDecoder+DecodeCleaned.swift
[150/187] Compiling KippleCodable JSONDecoder+DecodeCleaned.swift
[151/188] Compiling KippleLocalStorage UserDefaults+RemoveAllObjects.swift
[153/188] Compiling KippleLocalStorage UserDefaults+Mocked.swift
/host/spi-builder-workspace/Sources/KippleLocalStorage/UserDefaults/UserDefaults+Mocked.swift:6:16: warning: static 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
 4 |
 5 | extension UserDefaults {
 6 |     static let mocked: UserDefaults = {
   |                |- warning: static 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
   |                |- note: annotate 'mocked' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 7 |         let name = "com.kipple.mocked"
 8 |         let store = UserDefaults(suiteName: name)!
Foundation.UserDefaults:1:12: note: class 'UserDefaults' does not conform to the 'Sendable' protocol
 1 | open class UserDefaults : NSObject {
   |            `- note: class 'UserDefaults' does not conform to the 'Sendable' protocol
 2 |     open class var standard: UserDefaults { get }
 3 |     open class func resetStandardUserDefaults()
/host/spi-builder-workspace/Sources/KippleFoundation/Extensions/String+LocalizedError.swift:7:1: warning: extension 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
 5 | /// Extension that allows a normal `String` to be returned as an error,
 6 | /// using itself as the localized error description.
 7 | extension String: LocalizedError {
   | |- warning: extension 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
   | `- note: add '@retroactive' to silence this warning
 8 |     public var errorDescription: String? {
 9 |         self
/host/spi-builder-workspace/Sources/KippleFoundation/Extensions/String+LocalizedError.swift:7:1: warning: extension 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
 5 | /// Extension that allows a normal `String` to be returned as an error,
 6 | /// using itself as the localized error description.
 7 | extension String: LocalizedError {
   | |- warning: extension 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
   | `- note: add '@retroactive' to silence this warning
 8 |     public var errorDescription: String? {
 9 |         self
[161/188] Compiling KippleLocalStorage UserDefaults+Codable.swift
[162/188] Emitting module KippleLocalStorage
/host/spi-builder-workspace/Sources/KippleLocalStorage/UserDefaults/UserDefaults+Key.swift:28:16: warning: static 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
26 |
27 | public extension UserDefaults {
28 |     static let codableStore = UserDefaults(suiteName: "com.kipple.codablestore")!
   |                |- warning: static 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
   |                |- note: annotate 'codableStore' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 | }
30 |
Foundation.UserDefaults:1:12: note: class 'UserDefaults' does not conform to the 'Sendable' protocol
 1 | open class UserDefaults : NSObject {
   |            `- note: class 'UserDefaults' does not conform to the 'Sendable' protocol
 2 |     open class var standard: UserDefaults { get }
 3 |     open class func resetStandardUserDefaults()
/host/spi-builder-workspace/Sources/KippleLocalStorage/UserDefaults/UserDefaults+Mocked.swift:6:16: warning: static 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
 4 |
 5 | extension UserDefaults {
 6 |     static let mocked: UserDefaults = {
   |                |- warning: static 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
   |                |- note: annotate 'mocked' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 7 |         let name = "com.kipple.mocked"
 8 |         let store = UserDefaults(suiteName: name)!
Foundation.UserDefaults:1:12: note: class 'UserDefaults' does not conform to the 'Sendable' protocol
 1 | open class UserDefaults : NSObject {
   |            `- note: class 'UserDefaults' does not conform to the 'Sendable' protocol
 2 |     open class var standard: UserDefaults { get }
 3 |     open class func resetStandardUserDefaults()
[163/188] Compiling KippleLocalStorage UserDefaults+Key.swift
/host/spi-builder-workspace/Sources/KippleLocalStorage/UserDefaults/UserDefaults+Key.swift:28:16: warning: static 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
26 |
27 | public extension UserDefaults {
28 |     static let codableStore = UserDefaults(suiteName: "com.kipple.codablestore")!
   |                |- warning: static 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
   |                |- note: annotate 'codableStore' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 | }
30 |
Foundation.UserDefaults:1:12: note: class 'UserDefaults' does not conform to the 'Sendable' protocol
 1 | open class UserDefaults : NSObject {
   |            `- note: class 'UserDefaults' does not conform to the 'Sendable' protocol
 2 |     open class var standard: UserDefaults { get }
 3 |     open class func resetStandardUserDefaults()
[166/189] Emitting module KippleFoundation
/host/spi-builder-workspace/Sources/KippleFoundation/Extensions/String+LocalizedError.swift:7:1: warning: extension 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
 5 | /// Extension that allows a normal `String` to be returned as an error,
 6 | /// using itself as the localized error description.
 7 | extension String: LocalizedError {
   | |- warning: extension 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
   | `- note: add '@retroactive' to silence this warning
 8 |     public var errorDescription: String? {
 9 |         self
[172/190] Compiling Algorithms Trim.swift
[173/190] Compiling Algorithms Unique.swift
[174/190] Compiling Algorithms Windows.swift
[185/197] Compiling KippleKeychain Keychain+Key.swift
[186/197] Compiling KippleKeychain Exports.swift
[187/197] Emitting module KippleKeychain
[188/197] Compiling KippleKeychain Keychain+Default.swift
[189/198] Emitting module KippleDevice
[190/198] Compiling KippleDevice DeviceFamily.swift
[196/198] Compiling KippleDevice DeviceInfo.swift
[198/199] Emitting module OrderedCollections
[200/200] Emitting module Algorithms
[202/208] Compiling KippleCollections BidirectionalCollection+Looping.swift
[203/208] Compiling KippleCollections Array+RemoveDuplicates.swift
[204/208] Emitting module KippleCollections
[205/208] Compiling KippleCollections Exports.swift
[206/208] Compiling KippleCollections Collection+Convenience.swift
[207/208] Compiling KippleCollections RangeReplaceableCollection+Rotating.swift
[208/208] Compiling KippleCollections InterleavableDictionary.swift
[210/211] Emitting module Kipple
[211/211] Compiling Kipple Exports.swift
Build complete! (82.24s)
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" : "/host/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"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.