The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Cache, reference master (86165d), with Swift 6.1 for macOS (SPM) on 30 Aug 2025 21:38:14 UTC.

Swift 6 data race errors: 0

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 InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.67.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/hyperoslo/Cache.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/hyperoslo/Cache
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 86165db Merge pull request #346 from lazyvar/master
Cloned https://github.com/hyperoslo/Cache.git
Revision (git rev-parse @):
86165db6a184874611c532a7422511270b2f549a
SUCCESS checkout https://github.com/hyperoslo/Cache.git at master
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "cache",
      "name": "Cache",
      "url": "https://github.com/hyperoslo/Cache.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Cache",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/hyperoslo/Cache.git
[1/6219] Fetching cache
Fetched https://github.com/hyperoslo/Cache.git from cache (1.18s)
Creating working copy for https://github.com/hyperoslo/Cache.git
Working copy of https://github.com/hyperoslo/Cache.git resolved at master (86165db)
warning: '.resolve-product-dependencies': dependency 'cache' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/hyperoslo/Cache.git
https://github.com/hyperoslo/Cache.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Cache",
  "name" : "Cache",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Cache",
      "targets" : [
        "Cache"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "CacheTests",
      "module_type" : "SwiftTarget",
      "name" : "CacheTests",
      "path" : "Tests",
      "sources" : [
        "Mac/Helpers/NSImage+ExtensionsTests.swift",
        "Mac/Helpers/TestHelper+OSX.swift",
        "Shared/TestCase+Extensions.swift",
        "Shared/TestHelper.swift",
        "Shared/User.swift",
        "iOS/Helpers/TestHelper+iOS.swift",
        "iOS/Helpers/UIImage+ExtensionsTests.swift",
        "iOS/Tests/Extensions/Date+ExtensionsTests.swift",
        "iOS/Tests/Extensions/Hasher+constantAccrossExecutions+Tests.swift",
        "iOS/Tests/Library/ExpiryTests.swift",
        "iOS/Tests/Library/ImageWrapperTests.swift",
        "iOS/Tests/Library/JSONWrapperTests.swift",
        "iOS/Tests/Library/MD5Tests.swift",
        "iOS/Tests/Library/MemoryCapsuleTests.swift",
        "iOS/Tests/Library/ObjectConverterTests.swift",
        "iOS/Tests/Library/ObservationTokenTests.swift",
        "iOS/Tests/Library/TypeWrapperTests.swift",
        "iOS/Tests/Storage/AsyncStorageTests.swift",
        "iOS/Tests/Storage/DiskStorageTests.swift",
        "iOS/Tests/Storage/HybridStorageTests.swift",
        "iOS/Tests/Storage/MemoryStorageTests.swift",
        "iOS/Tests/Storage/StorageSupportTests.swift",
        "iOS/Tests/Storage/StorageTests.swift",
        "iOS/Tests/Storage/SyncStorageTests.swift"
      ],
      "target_dependencies" : [
        "Cache"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Cache",
      "module_type" : "SwiftTarget",
      "name" : "Cache",
      "path" : "Source",
      "product_memberships" : [
        "Cache"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Source/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Mac/NSImage+Extensions.swift",
        "Shared/Configuration/DiskConfig.swift",
        "Shared/Configuration/MemoryConfig.swift",
        "Shared/Extensions/Date+Extensions.swift",
        "Shared/Extensions/FileManager+Extensions.swift",
        "Shared/Extensions/Hasher+constantAccrossExecutions.swift",
        "Shared/Extensions/JSONDecoder+Extensions.swift",
        "Shared/Extensions/URL+Extensions.swift",
        "Shared/Library/DataSerializer.swift",
        "Shared/Library/Entry.swift",
        "Shared/Library/ExpirationMode.swift",
        "Shared/Library/Expiry.swift",
        "Shared/Library/ImageWrapper.swift",
        "Shared/Library/JSONArrayWrapper.swift",
        "Shared/Library/JSONDictionaryWrapper.swift",
        "Shared/Library/MD5.swift",
        "Shared/Library/MemoryCapsule.swift",
        "Shared/Library/ObservationToken.swift",
        "Shared/Library/Optional+Extension.swift",
        "Shared/Library/StorageError.swift",
        "Shared/Library/Transformer.swift",
        "Shared/Library/TransformerFactory.swift",
        "Shared/Library/TypeWrapper.swift",
        "Shared/Library/Types.swift",
        "Shared/Storage/AsyncStorage.swift",
        "Shared/Storage/DiskStorage.swift",
        "Shared/Storage/HybridStorage.swift",
        "Shared/Storage/KeyObservationRegistry.swift",
        "Shared/Storage/MemoryStorage.swift",
        "Shared/Storage/Storage+Transform.swift",
        "Shared/Storage/Storage.swift",
        "Shared/Storage/StorageAware.swift",
        "Shared/Storage/StorageObservationRegistry.swift",
        "Shared/Storage/SyncStorage.swift",
        "iOS/UIImage+Extensions.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
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/3] Write sources
[0/3] Copying PrivacyInfo.xcprivacy
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/37] Emitting module Cache
[5/40] Compiling Cache AsyncStorage.swift
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:19:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 17 |   public func entry(forKey key: Key, completion: @escaping (Result<Entry<Value>, Error>) -> Void) {
 18 |     serialQueue.async { [weak self] in
 19 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 20 |         completion(.failure(StorageError.deallocated))
 21 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:20:9: warning: capture of 'completion' with non-sendable type '(Result<Entry<Value>, any Error>) -> Void' in a '@Sendable' closure
 18 |     serialQueue.async { [weak self] in
 19 |       guard let `self` = self else {
 20 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<Entry<Value>, any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 21 |         return
 22 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:25:59: warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                           `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 23 |
 24 |       do {
 25 |         let anEntry = try self.innerStorage.entry(forKey: key)
    |                                                           `- warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
 26 |         completion(.success(anEntry))
 27 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:35:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 33 |   public func removeObject(forKey key: Key, completion: @escaping (Result<(), Error>) -> Void) {
 34 |     serialQueue.async { [weak self] in
 35 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 36 |         completion(.failure(StorageError.deallocated))
 37 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:36:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 34 |     serialQueue.async { [weak self] in
 35 |       guard let `self` = self else {
 36 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 37 |         return
 38 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:41:52: warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                           `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 39 |
 40 |       do {
 41 |         try self.innerStorage.removeObject(forKey: key)
    |                                                    `- warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
 42 |         completion(.success(()))
 43 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:55:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 53 |     completion: @escaping (Result<(), Error>) -> Void) {
 54 |     serialQueue.async { [weak self] in
 55 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 56 |         completion(.failure(StorageError.deallocated))
 57 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:56:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 54 |     serialQueue.async { [weak self] in
 55 |       guard let `self` = self else {
 56 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 57 |         return
 58 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:61:41: warning: capture of 'object' with non-sendable type 'Value' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                                          `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 59 |
 60 |       do {
 61 |         try self.innerStorage.setObject(object, forKey: key, expiry: expiry)
    |                                         `- warning: capture of 'object' with non-sendable type 'Value' in a '@Sendable' closure
 62 |         completion(.success(()))
 63 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:61:57: warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                           `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 59 |
 60 |       do {
 61 |         try self.innerStorage.setObject(object, forKey: key, expiry: expiry)
    |                                                         `- warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
 62 |         completion(.success(()))
 63 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:61:70: warning: capture of 'expiry' with non-sendable type 'Expiry?' in a '@Sendable' closure
 59 |
 60 |       do {
 61 |         try self.innerStorage.setObject(object, forKey: key, expiry: expiry)
    |                                                                      `- warning: capture of 'expiry' with non-sendable type 'Expiry?' in a '@Sendable' closure
 62 |         completion(.success(()))
 63 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Library/Expiry.swift:6:13: note: consider making enum 'Expiry' conform to the 'Sendable' protocol
 4 |  Helper enum to set the expiration date
 5 |  */
 6 | public enum Expiry {
   |             `- note: consider making enum 'Expiry' conform to the 'Sendable' protocol
 7 |   /// Object will be expired in the nearest future
 8 |   case never
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:71:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 69 |   public func removeAll(completion: @escaping (Result<(), Error>) -> Void) {
 70 |     serialQueue.async { [weak self] in
 71 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 72 |         completion(.failure(StorageError.deallocated))
 73 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:72:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 70 |     serialQueue.async { [weak self] in
 71 |       guard let `self` = self else {
 72 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 73 |         return
 74 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:87:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 85 |   public func removeExpiredObjects(completion: @escaping (Result<(), Error>) -> Void) {
 86 |     serialQueue.async { [weak self] in
 87 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 88 |         completion(.failure(StorageError.deallocated))
 89 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:88:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 86 |     serialQueue.async { [weak self] in
 87 |       guard let `self` = self else {
 88 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 89 |         return
 90 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:147:22: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
145 |     try await withCheckedThrowingContinuation { continuation in
146 |       entry(forKey: key) {
147 |         continuation.resume(with: $0)
    |                      |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                      `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
148 |       }
149 |     }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:190:22: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
188 |     try await withCheckedThrowingContinuation { continuation in
189 |       object(forKey: key) {
190 |         continuation.resume(with: $0)
    |                      |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                      `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
191 |       }
192 |     }
[6/40] Compiling Cache DiskStorage.swift
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:19:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 17 |   public func entry(forKey key: Key, completion: @escaping (Result<Entry<Value>, Error>) -> Void) {
 18 |     serialQueue.async { [weak self] in
 19 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 20 |         completion(.failure(StorageError.deallocated))
 21 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:20:9: warning: capture of 'completion' with non-sendable type '(Result<Entry<Value>, any Error>) -> Void' in a '@Sendable' closure
 18 |     serialQueue.async { [weak self] in
 19 |       guard let `self` = self else {
 20 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<Entry<Value>, any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 21 |         return
 22 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:25:59: warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                           `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 23 |
 24 |       do {
 25 |         let anEntry = try self.innerStorage.entry(forKey: key)
    |                                                           `- warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
 26 |         completion(.success(anEntry))
 27 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:35:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 33 |   public func removeObject(forKey key: Key, completion: @escaping (Result<(), Error>) -> Void) {
 34 |     serialQueue.async { [weak self] in
 35 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 36 |         completion(.failure(StorageError.deallocated))
 37 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:36:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 34 |     serialQueue.async { [weak self] in
 35 |       guard let `self` = self else {
 36 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 37 |         return
 38 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:41:52: warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                           `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 39 |
 40 |       do {
 41 |         try self.innerStorage.removeObject(forKey: key)
    |                                                    `- warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
 42 |         completion(.success(()))
 43 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:55:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 53 |     completion: @escaping (Result<(), Error>) -> Void) {
 54 |     serialQueue.async { [weak self] in
 55 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 56 |         completion(.failure(StorageError.deallocated))
 57 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:56:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 54 |     serialQueue.async { [weak self] in
 55 |       guard let `self` = self else {
 56 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 57 |         return
 58 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:61:41: warning: capture of 'object' with non-sendable type 'Value' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                                          `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 59 |
 60 |       do {
 61 |         try self.innerStorage.setObject(object, forKey: key, expiry: expiry)
    |                                         `- warning: capture of 'object' with non-sendable type 'Value' in a '@Sendable' closure
 62 |         completion(.success(()))
 63 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:61:57: warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                           `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 59 |
 60 |       do {
 61 |         try self.innerStorage.setObject(object, forKey: key, expiry: expiry)
    |                                                         `- warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
 62 |         completion(.success(()))
 63 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:61:70: warning: capture of 'expiry' with non-sendable type 'Expiry?' in a '@Sendable' closure
 59 |
 60 |       do {
 61 |         try self.innerStorage.setObject(object, forKey: key, expiry: expiry)
    |                                                                      `- warning: capture of 'expiry' with non-sendable type 'Expiry?' in a '@Sendable' closure
 62 |         completion(.success(()))
 63 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Library/Expiry.swift:6:13: note: consider making enum 'Expiry' conform to the 'Sendable' protocol
 4 |  Helper enum to set the expiration date
 5 |  */
 6 | public enum Expiry {
   |             `- note: consider making enum 'Expiry' conform to the 'Sendable' protocol
 7 |   /// Object will be expired in the nearest future
 8 |   case never
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:71:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 69 |   public func removeAll(completion: @escaping (Result<(), Error>) -> Void) {
 70 |     serialQueue.async { [weak self] in
 71 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 72 |         completion(.failure(StorageError.deallocated))
 73 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:72:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 70 |     serialQueue.async { [weak self] in
 71 |       guard let `self` = self else {
 72 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 73 |         return
 74 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:87:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 85 |   public func removeExpiredObjects(completion: @escaping (Result<(), Error>) -> Void) {
 86 |     serialQueue.async { [weak self] in
 87 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 88 |         completion(.failure(StorageError.deallocated))
 89 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:88:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 86 |     serialQueue.async { [weak self] in
 87 |       guard let `self` = self else {
 88 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 89 |         return
 90 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:147:22: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
145 |     try await withCheckedThrowingContinuation { continuation in
146 |       entry(forKey: key) {
147 |         continuation.resume(with: $0)
    |                      |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                      `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
148 |       }
149 |     }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:190:22: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
188 |     try await withCheckedThrowingContinuation { continuation in
189 |       object(forKey: key) {
190 |         continuation.resume(with: $0)
    |                      |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                      `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
191 |       }
192 |     }
[7/40] Compiling Cache HybridStorage.swift
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:19:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 17 |   public func entry(forKey key: Key, completion: @escaping (Result<Entry<Value>, Error>) -> Void) {
 18 |     serialQueue.async { [weak self] in
 19 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 20 |         completion(.failure(StorageError.deallocated))
 21 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:20:9: warning: capture of 'completion' with non-sendable type '(Result<Entry<Value>, any Error>) -> Void' in a '@Sendable' closure
 18 |     serialQueue.async { [weak self] in
 19 |       guard let `self` = self else {
 20 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<Entry<Value>, any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 21 |         return
 22 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:25:59: warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                           `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 23 |
 24 |       do {
 25 |         let anEntry = try self.innerStorage.entry(forKey: key)
    |                                                           `- warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
 26 |         completion(.success(anEntry))
 27 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:35:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 33 |   public func removeObject(forKey key: Key, completion: @escaping (Result<(), Error>) -> Void) {
 34 |     serialQueue.async { [weak self] in
 35 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 36 |         completion(.failure(StorageError.deallocated))
 37 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:36:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 34 |     serialQueue.async { [weak self] in
 35 |       guard let `self` = self else {
 36 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 37 |         return
 38 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:41:52: warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                           `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 39 |
 40 |       do {
 41 |         try self.innerStorage.removeObject(forKey: key)
    |                                                    `- warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
 42 |         completion(.success(()))
 43 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:55:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 53 |     completion: @escaping (Result<(), Error>) -> Void) {
 54 |     serialQueue.async { [weak self] in
 55 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 56 |         completion(.failure(StorageError.deallocated))
 57 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:56:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 54 |     serialQueue.async { [weak self] in
 55 |       guard let `self` = self else {
 56 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 57 |         return
 58 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:61:41: warning: capture of 'object' with non-sendable type 'Value' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                                          `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 59 |
 60 |       do {
 61 |         try self.innerStorage.setObject(object, forKey: key, expiry: expiry)
    |                                         `- warning: capture of 'object' with non-sendable type 'Value' in a '@Sendable' closure
 62 |         completion(.success(()))
 63 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:61:57: warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |                           `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 59 |
 60 |       do {
 61 |         try self.innerStorage.setObject(object, forKey: key, expiry: expiry)
    |                                                         `- warning: capture of 'key' with non-sendable type 'Key' in a '@Sendable' closure
 62 |         completion(.success(()))
 63 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:61:70: warning: capture of 'expiry' with non-sendable type 'Expiry?' in a '@Sendable' closure
 59 |
 60 |       do {
 61 |         try self.innerStorage.setObject(object, forKey: key, expiry: expiry)
    |                                                                      `- warning: capture of 'expiry' with non-sendable type 'Expiry?' in a '@Sendable' closure
 62 |         completion(.success(()))
 63 |       } catch {
/Users/admin/builder/spi-builder-workspace/Source/Shared/Library/Expiry.swift:6:13: note: consider making enum 'Expiry' conform to the 'Sendable' protocol
 4 |  Helper enum to set the expiration date
 5 |  */
 6 | public enum Expiry {
   |             `- note: consider making enum 'Expiry' conform to the 'Sendable' protocol
 7 |   /// Object will be expired in the nearest future
 8 |   case never
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:71:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 69 |   public func removeAll(completion: @escaping (Result<(), Error>) -> Void) {
 70 |     serialQueue.async { [weak self] in
 71 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 72 |         completion(.failure(StorageError.deallocated))
 73 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:72:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 70 |     serialQueue.async { [weak self] in
 71 |       guard let `self` = self else {
 72 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 73 |         return
 74 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:87:26: warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
  4 | /// Manipulate storage in a "all async" manner.
  5 | /// The completion closure will be called when operation completes.
  6 | public class AsyncStorage<Key: Hashable, Value> {
    |              `- note: generic class 'AsyncStorage' does not conform to the 'Sendable' protocol
  7 |   public let innerStorage: HybridStorage<Key, Value>
  8 |   public let serialQueue: DispatchQueue
    :
 85 |   public func removeExpiredObjects(completion: @escaping (Result<(), Error>) -> Void) {
 86 |     serialQueue.async { [weak self] in
 87 |       guard let `self` = self else {
    |                          `- warning: capture of 'self' with non-sendable type 'AsyncStorage<Key, Value>?' in a '@Sendable' closure
 88 |         completion(.failure(StorageError.deallocated))
 89 |         return
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:88:9: warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
 86 |     serialQueue.async { [weak self] in
 87 |       guard let `self` = self else {
 88 |         completion(.failure(StorageError.deallocated))
    |         |- warning: capture of 'completion' with non-sendable type '(Result<(), any Error>) -> Void' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 89 |         return
 90 |       }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:147:22: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
145 |     try await withCheckedThrowingContinuation { continuation in
146 |       entry(forKey: key) {
147 |         continuation.resume(with: $0)
    |                      |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                      `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
148 |       }
149 |     }
/Users/admin/builder/spi-builder-workspace/Source/Shared/Storage/AsyncStorage.swift:190:22: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
188 |     try await withCheckedThrowingContinuation { continuation in
189 |       object(forKey: key) {
190 |         continuation.resume(with: $0)
    |                      |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
    |                      `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
191 |       }
192 |     }
[8/40] Compiling Cache SyncStorage.swift
[9/40] Compiling Cache UIImage+Extensions.swift
[10/40] Compiling Cache resource_bundle_accessor.swift
[11/40] Compiling Cache KeyObservationRegistry.swift
[12/40] Compiling Cache MemoryStorage.swift
[13/40] Compiling Cache Storage+Transform.swift
[14/40] Compiling Cache Storage.swift
[15/40] Compiling Cache StorageAware.swift
[16/40] Compiling Cache StorageObservationRegistry.swift
[17/40] Compiling Cache FileManager+Extensions.swift
[18/40] Compiling Cache Hasher+constantAccrossExecutions.swift
[19/40] Compiling Cache JSONDecoder+Extensions.swift
[20/40] Compiling Cache URL+Extensions.swift
[21/40] Compiling Cache ImageWrapper.swift
[22/40] Compiling Cache JSONArrayWrapper.swift
[23/40] Compiling Cache JSONDictionaryWrapper.swift
[24/40] Compiling Cache MD5.swift
[25/40] Compiling Cache DataSerializer.swift
[26/40] Compiling Cache Entry.swift
[27/40] Compiling Cache ExpirationMode.swift
[28/40] Compiling Cache Expiry.swift
[29/40] Compiling Cache MemoryCapsule.swift
[30/40] Compiling Cache ObservationToken.swift
[31/40] Compiling Cache Optional+Extension.swift
[32/40] Compiling Cache StorageError.swift
[33/40] Compiling Cache Transformer.swift
[34/40] Compiling Cache TransformerFactory.swift
[35/40] Compiling Cache TypeWrapper.swift
[36/40] Compiling Cache Types.swift
[37/40] Compiling Cache NSImage+Extensions.swift
[38/40] Compiling Cache DiskConfig.swift
[39/40] Compiling Cache MemoryConfig.swift
[40/40] Compiling Cache Date+Extensions.swift
Build complete! (7.15s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Cache",
  "name" : "Cache",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Cache",
      "targets" : [
        "Cache"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "CacheTests",
      "module_type" : "SwiftTarget",
      "name" : "CacheTests",
      "path" : "Tests",
      "sources" : [
        "Mac/Helpers/NSImage+ExtensionsTests.swift",
        "Mac/Helpers/TestHelper+OSX.swift",
        "Shared/TestCase+Extensions.swift",
        "Shared/TestHelper.swift",
        "Shared/User.swift",
        "iOS/Helpers/TestHelper+iOS.swift",
        "iOS/Helpers/UIImage+ExtensionsTests.swift",
        "iOS/Tests/Extensions/Date+ExtensionsTests.swift",
        "iOS/Tests/Extensions/Hasher+constantAccrossExecutions+Tests.swift",
        "iOS/Tests/Library/ExpiryTests.swift",
        "iOS/Tests/Library/ImageWrapperTests.swift",
        "iOS/Tests/Library/JSONWrapperTests.swift",
        "iOS/Tests/Library/MD5Tests.swift",
        "iOS/Tests/Library/MemoryCapsuleTests.swift",
        "iOS/Tests/Library/ObjectConverterTests.swift",
        "iOS/Tests/Library/ObservationTokenTests.swift",
        "iOS/Tests/Library/TypeWrapperTests.swift",
        "iOS/Tests/Storage/AsyncStorageTests.swift",
        "iOS/Tests/Storage/DiskStorageTests.swift",
        "iOS/Tests/Storage/HybridStorageTests.swift",
        "iOS/Tests/Storage/MemoryStorageTests.swift",
        "iOS/Tests/Storage/StorageSupportTests.swift",
        "iOS/Tests/Storage/StorageTests.swift",
        "iOS/Tests/Storage/SyncStorageTests.swift"
      ],
      "target_dependencies" : [
        "Cache"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Cache",
      "module_type" : "SwiftTarget",
      "name" : "Cache",
      "path" : "Source",
      "product_memberships" : [
        "Cache"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Source/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Mac/NSImage+Extensions.swift",
        "Shared/Configuration/DiskConfig.swift",
        "Shared/Configuration/MemoryConfig.swift",
        "Shared/Extensions/Date+Extensions.swift",
        "Shared/Extensions/FileManager+Extensions.swift",
        "Shared/Extensions/Hasher+constantAccrossExecutions.swift",
        "Shared/Extensions/JSONDecoder+Extensions.swift",
        "Shared/Extensions/URL+Extensions.swift",
        "Shared/Library/DataSerializer.swift",
        "Shared/Library/Entry.swift",
        "Shared/Library/ExpirationMode.swift",
        "Shared/Library/Expiry.swift",
        "Shared/Library/ImageWrapper.swift",
        "Shared/Library/JSONArrayWrapper.swift",
        "Shared/Library/JSONDictionaryWrapper.swift",
        "Shared/Library/MD5.swift",
        "Shared/Library/MemoryCapsule.swift",
        "Shared/Library/ObservationToken.swift",
        "Shared/Library/Optional+Extension.swift",
        "Shared/Library/StorageError.swift",
        "Shared/Library/Transformer.swift",
        "Shared/Library/TransformerFactory.swift",
        "Shared/Library/TypeWrapper.swift",
        "Shared/Library/Types.swift",
        "Shared/Storage/AsyncStorage.swift",
        "Shared/Storage/DiskStorage.swift",
        "Shared/Storage/HybridStorage.swift",
        "Shared/Storage/KeyObservationRegistry.swift",
        "Shared/Storage/MemoryStorage.swift",
        "Shared/Storage/Storage+Transform.swift",
        "Shared/Storage/Storage.swift",
        "Shared/Storage/StorageAware.swift",
        "Shared/Storage/StorageObservationRegistry.swift",
        "Shared/Storage/SyncStorage.swift",
        "iOS/UIImage+Extensions.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.