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 URLImage, reference 3.1.1 (4042f9), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 18:26:53 UTC.

Swift 6 data race errors: 9

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.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dmytro-anokhin/url-image.git
Reference: 3.1.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dmytro-anokhin/url-image
 * tag               3.1.1      -> FETCH_HEAD
HEAD is now at 4042f95 Use v12 platform to workaround 74120874
Cloned https://github.com/dmytro-anokhin/url-image.git
Revision (git rev-parse @):
4042f955f1fdff00ced85545e1eecdbf969b5cd0
SUCCESS checkout https://github.com/dmytro-anokhin/url-image.git at 3.1.1
========================================
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": "url-image",
      "name": "URLImage",
      "url": "https://github.com/dmytro-anokhin/url-image.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/url-image",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/dmytro-anokhin/url-image.git
[1/4353] Fetching url-image
Fetched https://github.com/dmytro-anokhin/url-image.git from cache (1.02s)
Creating working copy for https://github.com/dmytro-anokhin/url-image.git
Working copy of https://github.com/dmytro-anokhin/url-image.git resolved at 3.1.1 (4042f95)
warning: '.resolve-product-dependencies': dependency 'url-image' 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/dmytro-anokhin/url-image.git
https://github.com/dmytro-anokhin/url-image.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "URLImage",
  "name" : "URLImage",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "watchos",
      "version" : "4.0"
    }
  ],
  "products" : [
    {
      "name" : "URLImage",
      "targets" : [
        "URLImage"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "URLImageStore",
      "targets" : [
        "URLImageStore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "URLImageTests",
      "module_type" : "SwiftTarget",
      "name" : "URLImageTests",
      "path" : "Tests/URLImageTests",
      "sources" : [
        "URLImageTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "URLImage"
      ],
      "type" : "test"
    },
    {
      "c99name" : "URLImageStore",
      "module_type" : "SwiftTarget",
      "name" : "URLImageStore",
      "path" : "Sources/URLImageStore",
      "product_memberships" : [
        "URLImageStore"
      ],
      "sources" : [
        "URLImageFileStore.swift",
        "URLImageInMemoryStore.swift"
      ],
      "target_dependencies" : [
        "URLImage",
        "FileIndex",
        "Log"
      ],
      "type" : "library"
    },
    {
      "c99name" : "URLImage",
      "module_type" : "SwiftTarget",
      "name" : "URLImage",
      "path" : "Sources/URLImage",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "Common/Image_Orientation+CGImagePropertyOrientation.swift",
        "Common/Synchronized.swift",
        "Common/TransientImage+SwiftUI.swift",
        "Common/URLImageKey.swift",
        "EnvironmentValues+URLImage.swift",
        "RemoteImage/RemoteImage.swift",
        "RemoteImage/RemoteImageLoadingState.swift",
        "Service/URLImageService+Decode.swift",
        "Service/URLImageService+RemoteImage.swift",
        "Service/URLImageService.swift",
        "Store/Common/URLImageStoreInfo.swift",
        "Store/URLImageFileStoreType+Combine.swift",
        "Store/URLImageFileStoreType.swift",
        "Store/URLImageInMemoryStoreType.swift",
        "Store/URLImageStoreType.swift",
        "URLImage.swift",
        "URLImageOptions.swift",
        "Views/Auxiliary/ActivityIndicator.swift",
        "Views/RemoteImageView.swift"
      ],
      "target_dependencies" : [
        "DownloadManager",
        "ImageDecoder",
        "FileIndex",
        "Model",
        "Log"
      ],
      "type" : "library"
    },
    {
      "c99name" : "PlainDatabaseTests",
      "module_type" : "SwiftTarget",
      "name" : "PlainDatabaseTests",
      "path" : "Dependencies/Tests/PlainDatabaseTests",
      "sources" : [
        "PlainDatabaseTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "PlainDatabase"
      ],
      "type" : "test"
    },
    {
      "c99name" : "PlainDatabase",
      "module_type" : "SwiftTarget",
      "name" : "PlainDatabase",
      "path" : "Dependencies/Sources/PlainDatabase",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "CoreDataModel/CoreDataAttributeDescription.swift",
        "CoreDataModel/CoreDataEntityDescription.swift",
        "CoreDataModel/CoreDataFetchIndexDescription.swift",
        "CoreDataModel/CoreDataModelDescription.swift",
        "CoreDataModel/ManagedObjectCodable.swift",
        "Database.swift",
        "PlainDatabase.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Model",
      "module_type" : "SwiftTarget",
      "name" : "Model",
      "path" : "Dependencies/Sources/Model",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "FileManager+Extensions.swift",
        "ImageInfo.swift",
        "TransientImage+ImageDecoder.swift",
        "TransientImage.swift",
        "URLImageError.swift"
      ],
      "target_dependencies" : [
        "ImageDecoder"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Log",
      "module_type" : "SwiftTarget",
      "name" : "Log",
      "path" : "Dependencies/Sources/Log",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "Log.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ImageDecoderTests",
      "module_type" : "SwiftTarget",
      "name" : "ImageDecoderTests",
      "path" : "Dependencies/Tests/ImageDecoderTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/TestImages.json",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/gif-loop-count.gif",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/lenna.jpg",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/lenna.png",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/quicksort.gif",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/sea_animation.heics",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/test.base64",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "ImageDecoderTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "ImageDecoder"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ImageDecoder",
      "module_type" : "SwiftTarget",
      "name" : "ImageDecoder",
      "path" : "Dependencies/Sources/ImageDecoder",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "ImageDecoder.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "FileIndexTests",
      "module_type" : "SwiftTarget",
      "name" : "FileIndexTests",
      "path" : "Dependencies/Tests/FileIndexTests",
      "sources" : [
        "FileIndexTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "FileIndex"
      ],
      "type" : "test"
    },
    {
      "c99name" : "FileIndex",
      "module_type" : "SwiftTarget",
      "name" : "FileIndex",
      "path" : "Dependencies/Sources/FileIndex",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "Common/Bundle+Extensions.swift",
        "File.swift",
        "FileIndex.swift"
      ],
      "target_dependencies" : [
        "PlainDatabase",
        "Log",
        "Model"
      ],
      "type" : "library"
    },
    {
      "c99name" : "DownloadManager",
      "module_type" : "SwiftTarget",
      "name" : "DownloadManager",
      "path" : "Dependencies/Sources/DownloadManager",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "Common/DownloadProgress.swift",
        "Common/Utils.swift",
        "Download/Download.swift",
        "Download/DownloadPublisher.swift",
        "Download/DownloadTask.swift",
        "Download/DownloadTypes.swift",
        "DownloadManager.swift",
        "URLSession/URLSessionCoordinator.swift",
        "URLSession/URLSessionDelegate.swift"
      ],
      "target_dependencies" : [
        "Log"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
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/9] Write sources
[8/9] Write swift-version-2F0A5646E1D333AE.txt
[10/21] Emitting module PlainDatabase
[11/21] Compiling PlainDatabase CoreDataAttributeDescription.swift
[12/21] Emitting module Log
[13/21] Compiling Log Log.swift
[14/21] Compiling PlainDatabase Database.swift
[15/21] Compiling PlainDatabase CoreDataFetchIndexDescription.swift
[16/21] Compiling PlainDatabase ManagedObjectCodable.swift
[17/21] Compiling PlainDatabase PlainDatabase.swift
[18/21] Compiling PlainDatabase CoreDataEntityDescription.swift
[19/21] Compiling PlainDatabase CoreDataModelDescription.swift
[20/31] Compiling DownloadManager DownloadPublisher.swift
[21/31] Compiling DownloadManager URLSessionDelegate.swift
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/DownloadManager/URLSession/URLSessionDelegate.swift:19:17: warning: stored property 'taskDidCompleteWithError' of 'Sendable'-conforming class 'URLSessionDelegate' is mutable; this is an error in the Swift 6 language mode
 17 |     typealias TaskDidCompleteWithError = (_ task: URLSessionTask, _ error: Error?) -> Void
 18 |
 19 |     private var taskDidCompleteWithError: TaskDidCompleteWithError?
    |                 `- warning: stored property 'taskDidCompleteWithError' of 'Sendable'-conforming class 'URLSessionDelegate' is mutable; this is an error in the Swift 6 language mode
 20 |
 21 |     @discardableResult
[22/31] Compiling DownloadManager DownloadTask.swift
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/DownloadManager/Download/DownloadTask.swift:67:17: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 10 |
 11 | /// `DownloadTask` is a wrapper around `URLSessionTask` that accumulates received data in a memory buffer.
 12 | final class DownloadTask {
    |             `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     final class Observer {
    :
 65 |         serialQueue.async {
 66 |             if let error = error {
 67 |                 self.observer.notifyCompletion(.failure(error))
    |                 `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 68 |                 return
 69 |             }
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/DownloadManager/Download/DownloadTask.swift:91:13: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 10 |
 11 | /// `DownloadTask` is a wrapper around `URLSessionTask` that accumulates received data in a memory buffer.
 12 | final class DownloadTask {
    |             `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     final class Observer {
    :
 89 |     func receive(response: URLResponse) {
 90 |         serialQueue.async {
 91 |             self.progress = DownloadProgress(response: response)
    |             `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 92 |             self.buffer = Data()
 93 |             self.observer.notifyReceiveResponse()
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/DownloadManager/Download/DownloadTask.swift:99:13: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 10 |
 11 | /// `DownloadTask` is a wrapper around `URLSessionTask` that accumulates received data in a memory buffer.
 12 | final class DownloadTask {
    |             `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     final class Observer {
    :
 97 |     func receive(data: Data) {
 98 |         serialQueue.async {
 99 |             self.buffer?.append(data)
    |             `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
100 |             self.observer.notifyReceiveData(data)
101 |             self.observer.notifyReportProgress(self.progress?.percentage)
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/DownloadManager/Download/DownloadTask.swift:107:16: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
 10 |
 11 | /// `DownloadTask` is a wrapper around `URLSessionTask` that accumulates received data in a memory buffer.
 12 | final class DownloadTask {
    |             `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     final class Observer {
    :
105 |     func downloadProgress(received: Int64, expected: Int64) {
106 |         serialQueue.async {
107 |             if self.progress == nil {
    |                `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
108 |                 self.progress = DownloadProgress()
109 |             }
[23/31] Compiling DownloadManager DownloadTypes.swift
[24/31] Compiling DownloadManager DownloadManager.swift
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/DownloadManager/DownloadManager.swift:47:36: warning: passing non-sendable parameter 'closure' to function expecting a @Sendable closure
44 |     private let serialQueue = DispatchQueue(label: "DownloadManager.serialQueue")
45 |
46 |     private func async(_ closure: @escaping () -> Void) {
   |                          `- note: parameter 'closure' is implicitly non-sendable
47 |         serialQueue.async(execute: closure)
   |                                    `- warning: passing non-sendable parameter 'closure' to function expecting a @Sendable closure
48 |     }
49 |
[25/31] Compiling DownloadManager URLSessionCoordinator.swift
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/DownloadManager/URLSession/URLSessionCoordinator.swift:188:36: warning: passing non-sendable parameter 'closure' to function expecting a @Sendable closure
185 |     private let serialQueue = DispatchQueue(label: "URLSessionCoordinator.serialQueue")
186 |
187 |     private func async(_ closure: @escaping () -> Void) {
    |                          `- note: parameter 'closure' is implicitly non-sendable
188 |         serialQueue.async(execute: closure)
    |                                    `- warning: passing non-sendable parameter 'closure' to function expecting a @Sendable closure
189 |     }
190 |
[26/31] Compiling DownloadManager DownloadProgress.swift
[27/31] Compiling DownloadManager Utils.swift
[28/31] Compiling DownloadManager Download.swift
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/DownloadManager/Download/Download.swift:82:27: warning: static property 'keepAlive' is not concurrency-safe because non-'Sendable' type 'Download.DownloadPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 71 |     public var destination: Destination
 72 |
 73 |     public struct DownloadPolicy : OptionSet, Codable, Hashable {
    |                   `- note: consider making struct 'DownloadPolicy' conform to the 'Sendable' protocol
 74 |
 75 |         public let rawValue: Int
    :
 80 |
 81 |         /// Keep download alive even with no subscribers
 82 |         public static let keepAlive = DownloadPolicy(rawValue: 1 << 0)
    |                           |- warning: static property 'keepAlive' is not concurrency-safe because non-'Sendable' type 'Download.DownloadPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'keepAlive' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 83 |     }
 84 |
[29/31] Emitting module DownloadManager
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/DownloadManager/Download/Download.swift:82:27: warning: static property 'keepAlive' is not concurrency-safe because non-'Sendable' type 'Download.DownloadPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 71 |     public var destination: Destination
 72 |
 73 |     public struct DownloadPolicy : OptionSet, Codable, Hashable {
    |                   `- note: consider making struct 'DownloadPolicy' conform to the 'Sendable' protocol
 74 |
 75 |         public let rawValue: Int
    :
 80 |
 81 |         /// Keep download alive even with no subscribers
 82 |         public static let keepAlive = DownloadPolicy(rawValue: 1 << 0)
    |                           |- warning: static property 'keepAlive' is not concurrency-safe because non-'Sendable' type 'Download.DownloadPolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'keepAlive' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 83 |     }
 84 |
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/DownloadManager/URLSession/URLSessionDelegate.swift:19:17: warning: stored property 'taskDidCompleteWithError' of 'Sendable'-conforming class 'URLSessionDelegate' is mutable; this is an error in the Swift 6 language mode
 17 |     typealias TaskDidCompleteWithError = (_ task: URLSessionTask, _ error: Error?) -> Void
 18 |
 19 |     private var taskDidCompleteWithError: TaskDidCompleteWithError?
    |                 `- warning: stored property 'taskDidCompleteWithError' of 'Sendable'-conforming class 'URLSessionDelegate' is mutable; this is an error in the Swift 6 language mode
 20 |
 21 |     @discardableResult
[30/31] Emitting module ImageDecoder
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/ImageDecoder/ImageDecoder.swift:276:24: warning: static property 'imageSourceOptions' is not concurrency-safe because non-'Sendable' type '[CFString : Any]' may have shared mutable state; this is an error in the Swift 6 language mode
274 |     // MARK: - Private
275 |
276 |     private static let imageSourceOptions: [CFString: Any] = [
    |                        `- warning: static property 'imageSourceOptions' is not concurrency-safe because non-'Sendable' type '[CFString : Any]' may have shared mutable state; this is an error in the Swift 6 language mode
277 |         kCGImageSourceShouldCache: true
278 |     ]
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/ImageDecoder/ImageDecoder.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  7 | //  ImageDecoder is based on ImageDecoderCG from WebCore https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp
  8 |
  9 | import ImageIO
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
 10 | import Foundation
 11 |
    :
274 |     // MARK: - Private
275 |
276 |     private static let imageSourceOptions: [CFString: Any] = [
    |                        |- note: add '@MainActor' to make static property 'imageSourceOptions' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
277 |         kCGImageSourceShouldCache: true
278 |     ]
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/ImageDecoder/ImageDecoder.swift:280:24: warning: static property 'imageSourceAsyncOptions' is not concurrency-safe because non-'Sendable' type '[CFString : Any]' may have shared mutable state; this is an error in the Swift 6 language mode
278 |     ]
279 |
280 |     private static let imageSourceAsyncOptions: [CFString: Any] = [
    |                        |- warning: static property 'imageSourceAsyncOptions' is not concurrency-safe because non-'Sendable' type '[CFString : Any]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'imageSourceAsyncOptions' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |         kCGImageSourceShouldCacheImmediately: true,
282 |         kCGImageSourceCreateThumbnailFromImageAlways: true
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
[31/31] Compiling ImageDecoder ImageDecoder.swift
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/ImageDecoder/ImageDecoder.swift:276:24: warning: static property 'imageSourceOptions' is not concurrency-safe because non-'Sendable' type '[CFString : Any]' may have shared mutable state; this is an error in the Swift 6 language mode
274 |     // MARK: - Private
275 |
276 |     private static let imageSourceOptions: [CFString: Any] = [
    |                        `- warning: static property 'imageSourceOptions' is not concurrency-safe because non-'Sendable' type '[CFString : Any]' may have shared mutable state; this is an error in the Swift 6 language mode
277 |         kCGImageSourceShouldCache: true
278 |     ]
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/ImageDecoder/ImageDecoder.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  7 | //  ImageDecoder is based on ImageDecoderCG from WebCore https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp
  8 |
  9 | import ImageIO
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
 10 | import Foundation
 11 |
    :
274 |     // MARK: - Private
275 |
276 |     private static let imageSourceOptions: [CFString: Any] = [
    |                        |- note: add '@MainActor' to make static property 'imageSourceOptions' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
277 |         kCGImageSourceShouldCache: true
278 |     ]
/Users/admin/builder/spi-builder-workspace/Dependencies/Sources/ImageDecoder/ImageDecoder.swift:280:24: warning: static property 'imageSourceAsyncOptions' is not concurrency-safe because non-'Sendable' type '[CFString : Any]' may have shared mutable state; this is an error in the Swift 6 language mode
278 |     ]
279 |
280 |     private static let imageSourceAsyncOptions: [CFString: Any] = [
    |                        |- warning: static property 'imageSourceAsyncOptions' is not concurrency-safe because non-'Sendable' type '[CFString : Any]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'imageSourceAsyncOptions' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |         kCGImageSourceShouldCacheImmediately: true,
282 |         kCGImageSourceCreateThumbnailFromImageAlways: true
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
[32/37] Compiling Model TransientImage+ImageDecoder.swift
[33/37] Compiling Model ImageInfo.swift
[34/37] Compiling Model FileManager+Extensions.swift
[35/37] Compiling Model URLImageError.swift
[36/37] Compiling Model TransientImage.swift
[37/37] Emitting module Model
[38/41] Emitting module FileIndex
[39/41] Compiling FileIndex File.swift
[40/41] Compiling FileIndex Bundle+Extensions.swift
[41/41] Compiling FileIndex FileIndex.swift
[42/60] Compiling URLImage URLImageStoreType.swift
[43/60] Compiling URLImage URLImage.swift
[44/60] Compiling URLImage URLImageStoreInfo.swift
[45/60] Compiling URLImage URLImageFileStoreType+Combine.swift
[46/60] Compiling URLImage URLImageFileStoreType.swift
[47/60] Compiling URLImage URLImageInMemoryStoreType.swift
[48/60] Compiling URLImage URLImageService+RemoteImage.swift
[49/60] Compiling URLImage URLImageService.swift
[50/60] Compiling URLImage URLImageOptions.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:39:27: warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
37 |
38 |         /// Start load when the image view is rendered
39 |         public static let loadImmediately: LoadOptions = .init(rawValue: 1 << 0)
   |                           |- warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'loadImmediately' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 |         /// Start load when the image view appears
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:42:27: warning: static property 'loadOnAppear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
40 |
41 |         /// Start load when the image view appears
42 |         public static let loadOnAppear: LoadOptions = .init(rawValue: 1 << 1)
   |                           |- warning: static property 'loadOnAppear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'loadOnAppear' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 |
44 |         /// Cancel load when the image view disappears
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:45:27: warning: static property 'cancelOnDisappear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
43 |
44 |         /// Cancel load when the image view disappears
45 |         public static let cancelOnDisappear: LoadOptions = .init(rawValue: 1 << 2)
   |                           |- warning: static property 'cancelOnDisappear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'cancelOnDisappear' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |     }
47 |
[51/60] Compiling URLImage ActivityIndicator.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:39:27: warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
37 |
38 |         /// Start load when the image view is rendered
39 |         public static let loadImmediately: LoadOptions = .init(rawValue: 1 << 0)
   |                           |- warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'loadImmediately' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 |         /// Start load when the image view appears
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:42:27: warning: static property 'loadOnAppear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
40 |
41 |         /// Start load when the image view appears
42 |         public static let loadOnAppear: LoadOptions = .init(rawValue: 1 << 1)
   |                           |- warning: static property 'loadOnAppear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'loadOnAppear' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 |
44 |         /// Cancel load when the image view disappears
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:45:27: warning: static property 'cancelOnDisappear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
43 |
44 |         /// Cancel load when the image view disappears
45 |         public static let cancelOnDisappear: LoadOptions = .init(rawValue: 1 << 2)
   |                           |- warning: static property 'cancelOnDisappear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'cancelOnDisappear' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |     }
47 |
[52/61] Compiling URLImage TransientImage+SwiftUI.swift
[53/61] Compiling URLImage URLImageKey.swift
[54/61] Compiling URLImage Image_Orientation+CGImagePropertyOrientation.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/Common/Synchronized.swift:26:17: warning: capture of 'self' with non-sendable type 'Synchronized<Value>' in a '@Sendable' closure
13 | /// `Synchronized` provides getter/setter synchronization, thread safety of the wrapped value is up to its implementation.
14 | @propertyWrapper
15 | public final class Synchronized<Value> {
   |                    `- note: generic class 'Synchronized' does not conform to the 'Sendable' protocol
16 |
17 |     public var wrappedValue: Value {
   :
24 |         set {
25 |             synchronizationQueue.async(flags: .barrier) {
26 |                 self.value = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'Synchronized<Value>' in a '@Sendable' closure
27 |             }
28 |         }
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/Common/Synchronized.swift:26:30: warning: capture of 'newValue' with non-sendable type 'Value' in a '@Sendable' closure
13 | /// `Synchronized` provides getter/setter synchronization, thread safety of the wrapped value is up to its implementation.
14 | @propertyWrapper
15 | public final class Synchronized<Value> {
   |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
16 |
17 |     public var wrappedValue: Value {
   :
24 |         set {
25 |             synchronizationQueue.async(flags: .barrier) {
26 |                 self.value = newValue
   |                              `- warning: capture of 'newValue' with non-sendable type 'Value' in a '@Sendable' closure
27 |             }
28 |         }
[55/61] Compiling URLImage Synchronized.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/Common/Synchronized.swift:26:17: warning: capture of 'self' with non-sendable type 'Synchronized<Value>' in a '@Sendable' closure
13 | /// `Synchronized` provides getter/setter synchronization, thread safety of the wrapped value is up to its implementation.
14 | @propertyWrapper
15 | public final class Synchronized<Value> {
   |                    `- note: generic class 'Synchronized' does not conform to the 'Sendable' protocol
16 |
17 |     public var wrappedValue: Value {
   :
24 |         set {
25 |             synchronizationQueue.async(flags: .barrier) {
26 |                 self.value = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'Synchronized<Value>' in a '@Sendable' closure
27 |             }
28 |         }
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/Common/Synchronized.swift:26:30: warning: capture of 'newValue' with non-sendable type 'Value' in a '@Sendable' closure
13 | /// `Synchronized` provides getter/setter synchronization, thread safety of the wrapped value is up to its implementation.
14 | @propertyWrapper
15 | public final class Synchronized<Value> {
   |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
16 |
17 |     public var wrappedValue: Value {
   :
24 |         set {
25 |             synchronizationQueue.async(flags: .barrier) {
26 |                 self.value = newValue
   |                              `- warning: capture of 'newValue' with non-sendable type 'Value' in a '@Sendable' closure
27 |             }
28 |         }
[56/61] Emitting module URLImage
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/EnvironmentValues+URLImage.swift:14:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageService' may have shared mutable state; this is an error in the Swift 6 language mode
12 | private struct URLImageServiceEnvironmentKey: EnvironmentKey {
13 |
14 |     static let defaultValue: URLImageService = URLImageService()
   |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageService' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 | }
16 |
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/Service/URLImageService.swift:16:14: note: class 'URLImageService' does not conform to the 'Sendable' protocol
14 |
15 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
16 | public class URLImageService {
   |              `- note: class 'URLImageService' does not conform to the 'Sendable' protocol
17 |
18 |     public init(fileStore: URLImageFileStoreType? = nil, inMemoryStore: URLImageInMemoryStoreType? = nil) {
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/EnvironmentValues+URLImage.swift:21:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
19 | private struct URLImageOptionsEnvironmentKey: EnvironmentKey {
20 |
21 |     static let defaultValue: URLImageOptions = URLImageOptions()
   |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | }
23 |
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:15:15: note: consider making struct 'URLImageOptions' conform to the 'Sendable' protocol
13 | /// Options to control how the image is downloaded and stored
14 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
15 | public struct URLImageOptions {
   |               `- note: consider making struct 'URLImageOptions' conform to the 'Sendable' protocol
16 |
17 |     /// The `FetchPolicy` allows to choose between returning stored image or downloading the remote one.
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:39:27: warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
37 |
38 |         /// Start load when the image view is rendered
39 |         public static let loadImmediately: LoadOptions = .init(rawValue: 1 << 0)
   |                           |- warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'loadImmediately' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 |         /// Start load when the image view appears
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:42:27: warning: static property 'loadOnAppear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
40 |
41 |         /// Start load when the image view appears
42 |         public static let loadOnAppear: LoadOptions = .init(rawValue: 1 << 1)
   |                           |- warning: static property 'loadOnAppear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'loadOnAppear' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 |
44 |         /// Cancel load when the image view disappears
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:45:27: warning: static property 'cancelOnDisappear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
43 |
44 |         /// Cancel load when the image view disappears
45 |         public static let cancelOnDisappear: LoadOptions = .init(rawValue: 1 << 2)
   |                           |- warning: static property 'cancelOnDisappear' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'cancelOnDisappear' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |     }
47 |
[57/61] Compiling URLImage EnvironmentValues+URLImage.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/EnvironmentValues+URLImage.swift:14:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageService' may have shared mutable state; this is an error in the Swift 6 language mode
12 | private struct URLImageServiceEnvironmentKey: EnvironmentKey {
13 |
14 |     static let defaultValue: URLImageService = URLImageService()
   |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageService' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 | }
16 |
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/Service/URLImageService.swift:16:14: note: class 'URLImageService' does not conform to the 'Sendable' protocol
14 |
15 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
16 | public class URLImageService {
   |              `- note: class 'URLImageService' does not conform to the 'Sendable' protocol
17 |
18 |     public init(fileStore: URLImageFileStoreType? = nil, inMemoryStore: URLImageInMemoryStoreType? = nil) {
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/EnvironmentValues+URLImage.swift:21:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
19 | private struct URLImageOptionsEnvironmentKey: EnvironmentKey {
20 |
21 |     static let defaultValue: URLImageOptions = URLImageOptions()
   |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | }
23 |
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:15:15: note: consider making struct 'URLImageOptions' conform to the 'Sendable' protocol
13 | /// Options to control how the image is downloaded and stored
14 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
15 | public struct URLImageOptions {
   |               `- note: consider making struct 'URLImageOptions' conform to the 'Sendable' protocol
16 |
17 |     /// The `FetchPolicy` allows to choose between returning stored image or downloading the remote one.
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/RemoteImage/RemoteImage.swift:303:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
301 |     private func updateLoadingState(_ loadingState: LoadingState) {
302 |         DispatchQueue.main.async { [weak self] in
303 |             guard let self = self else {
    |                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
304 |                 return
305 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/RemoteImage/RemoteImage.swift:307:33: warning: sending 'loadingState' risks causing data races; this is an error in the Swift 6 language mode
305 |             }
306 |
307 |             self.loadingState = loadingState
    |                                 |- warning: sending 'loadingState' risks causing data races; this is an error in the Swift 6 language mode
    |                                 `- note: task-isolated 'loadingState' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
308 |         }
309 |     }
[58/61] Compiling URLImage RemoteImage.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/EnvironmentValues+URLImage.swift:14:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageService' may have shared mutable state; this is an error in the Swift 6 language mode
12 | private struct URLImageServiceEnvironmentKey: EnvironmentKey {
13 |
14 |     static let defaultValue: URLImageService = URLImageService()
   |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageService' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 | }
16 |
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/Service/URLImageService.swift:16:14: note: class 'URLImageService' does not conform to the 'Sendable' protocol
14 |
15 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
16 | public class URLImageService {
   |              `- note: class 'URLImageService' does not conform to the 'Sendable' protocol
17 |
18 |     public init(fileStore: URLImageFileStoreType? = nil, inMemoryStore: URLImageInMemoryStoreType? = nil) {
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/EnvironmentValues+URLImage.swift:21:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
19 | private struct URLImageOptionsEnvironmentKey: EnvironmentKey {
20 |
21 |     static let defaultValue: URLImageOptions = URLImageOptions()
   |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | }
23 |
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:15:15: note: consider making struct 'URLImageOptions' conform to the 'Sendable' protocol
13 | /// Options to control how the image is downloaded and stored
14 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
15 | public struct URLImageOptions {
   |               `- note: consider making struct 'URLImageOptions' conform to the 'Sendable' protocol
16 |
17 |     /// The `FetchPolicy` allows to choose between returning stored image or downloading the remote one.
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/RemoteImage/RemoteImage.swift:303:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
301 |     private func updateLoadingState(_ loadingState: LoadingState) {
302 |         DispatchQueue.main.async { [weak self] in
303 |             guard let self = self else {
    |                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
304 |                 return
305 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/RemoteImage/RemoteImage.swift:307:33: warning: sending 'loadingState' risks causing data races; this is an error in the Swift 6 language mode
305 |             }
306 |
307 |             self.loadingState = loadingState
    |                                 |- warning: sending 'loadingState' risks causing data races; this is an error in the Swift 6 language mode
    |                                 `- note: task-isolated 'loadingState' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
308 |         }
309 |     }
[59/61] Compiling URLImage RemoteImageLoadingState.swift
[60/61] Compiling URLImage URLImageService+Decode.swift
[61/61] Compiling URLImage RemoteImageView.swift
[62/64] Compiling URLImageStore URLImageInMemoryStore.swift
[63/64] Emitting module URLImageStore
[64/64] Compiling URLImageStore URLImageFileStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:65:30: warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 15 |
 16 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
 63 |     func cleanup() {
 64 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
 65 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 66 |                 return
 67 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:75:30: warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 15 |
 16 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
 73 |     func deleteAll() {
 74 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
 75 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 76 |                 return
 77 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:85:23: warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 15 |
 16 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
 83 |     func delete(withIdentifier identifier: String?, orURL url: URL?) {
 84 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
 85 |             log_debug(self, #function, {
    |                       `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 86 |                 if let identifier = identifier {
 87 |                     return "identifier = " + identifier
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:132:30: warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 15 |
 16 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
130 |
131 |         fileIndexQueue.async { [weak self] in
132 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
133 |                 return
134 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:138:24: warning: capture of 'keys' with non-sendable type '[URLImageKey]' in a '@Sendable' closure
136 |             var file: File?
137 |
138 |             for key in keys {
    |                        `- warning: capture of 'keys' with non-sendable type '[URLImageKey]' in a '@Sendable' closure
139 |                 switch key {
140 |                     case .identifier(let identifier):
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/Common/URLImageKey.swift:12:13: note: enum 'URLImageKey' does not conform to the 'Sendable' protocol
10 |
11 | /// Various key types used to access images.
12 | public enum URLImageKey {
   |             `- note: enum 'URLImageKey' does not conform to the 'Sendable' protocol
13 |
14 |     /// Unique identifier as a string
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:12:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'URLImage'
 10 | import FileIndex
 11 | import Log
 12 | import URLImage
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'URLImage'
 13 | import ImageDecoder
 14 |
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:156:21: warning: capture of 'completion' with non-sendable type '(URL?) -> Void' in a '@Sendable' closure
154 |
155 |                 queue.async {
156 |                     completion(location)
    |                     |- warning: capture of 'completion' with non-sendable type '(URL?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
157 |                 }
158 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:156:21: warning: capture of 'completion' with non-sendable type '(URL?) -> Void' in a '@Sendable' closure
154 |
155 |                 queue.async {
156 |                     completion(location)
    |                     |- warning: capture of 'completion' with non-sendable type '(URL?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
157 |                 }
158 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:189:33: warning: capture of 'completion' with non-sendable type '(CGImage?) -> Void' in a '@Sendable' closure
187 |                         case .success(let image):
188 |                             queue.async {
189 |                                 completion(image)
    |                                 |- warning: capture of 'completion' with non-sendable type '(CGImage?) -> Void' in a '@Sendable' closure
    |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
190 |                             }
191 |
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:194:33: warning: capture of 'completion' with non-sendable type '(CGImage?) -> Void' in a '@Sendable' closure
192 |                         case .failure:
193 |                             queue.async {
194 |                                 completion(nil)
    |                                 |- warning: capture of 'completion' with non-sendable type '(CGImage?) -> Void' in a '@Sendable' closure
    |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
195 |                             }
196 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:207:30: warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 15 |
 16 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
205 |     public func removeAllImages() {
206 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
207 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
208 |                 return
209 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:217:30: warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 15 |
 16 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
215 |     public func removeImageWithURL(_ url: URL) {
216 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
217 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
218 |                 return
219 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:233:30: warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 15 |
 16 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
231 |     public func removeImageWithIdentifier(_ identifier: String) {
232 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
233 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
234 |                 return
235 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:273:30: warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 15 |
 16 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
271 |
272 |         fileIndexQueue.async { [weak self] in
273 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
274 |                 return
275 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:278:88: warning: capture of 'info' with non-sendable type 'URLImageStoreInfo' in a '@Sendable' closure
276 |
277 |             let fileName = UUID().uuidString
278 |             let fileExtension = ImageDecoder.preferredFileExtension(forTypeIdentifier: info.uti)
    |                                                                                        `- warning: capture of 'info' with non-sendable type 'URLImageStoreInfo' in a '@Sendable' closure
279 |
280 |             _ = try? self.fileIndex.write(data,
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/Store/Common/URLImageStoreInfo.swift:12:15: note: struct 'URLImageStoreInfo' does not conform to the 'Sendable' protocol
10 |
11 | /// Information that describes an image in a store
12 | public struct URLImageStoreInfo {
   |               `- note: struct 'URLImageStoreInfo' does not conform to the 'Sendable' protocol
13 |
14 |     /// Original URL of the image
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:292:30: warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
 15 |
 16 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
290 |
291 |         fileIndexQueue.async { [weak self] in
292 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a '@Sendable' closure
293 |                 return
294 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImageStore/URLImageFileStore.swift:302:88: warning: capture of 'info' with non-sendable type 'URLImageStoreInfo' in a '@Sendable' closure
300 |                 fileExtension = location.pathExtension
301 |             } else {
302 |                 fileExtension = ImageDecoder.preferredFileExtension(forTypeIdentifier: info.uti)
    |                                                                                        `- warning: capture of 'info' with non-sendable type 'URLImageStoreInfo' in a '@Sendable' closure
303 |             }
304 |
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/Store/Common/URLImageStoreInfo.swift:12:15: note: struct 'URLImageStoreInfo' does not conform to the 'Sendable' protocol
10 |
11 | /// Information that describes an image in a store
12 | public struct URLImageStoreInfo {
   |               `- note: struct 'URLImageStoreInfo' does not conform to the 'Sendable' protocol
13 |
14 |     /// Original URL of the image
Build complete! (10.53s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "URLImage",
  "name" : "URLImage",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "watchos",
      "version" : "4.0"
    }
  ],
  "products" : [
    {
      "name" : "URLImage",
      "targets" : [
        "URLImage"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "URLImageStore",
      "targets" : [
        "URLImageStore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "URLImageTests",
      "module_type" : "SwiftTarget",
      "name" : "URLImageTests",
      "path" : "Tests/URLImageTests",
      "sources" : [
        "URLImageTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "URLImage"
      ],
      "type" : "test"
    },
    {
      "c99name" : "URLImageStore",
      "module_type" : "SwiftTarget",
      "name" : "URLImageStore",
      "path" : "Sources/URLImageStore",
      "product_memberships" : [
        "URLImageStore"
      ],
      "sources" : [
        "URLImageFileStore.swift",
        "URLImageInMemoryStore.swift"
      ],
      "target_dependencies" : [
        "URLImage",
        "FileIndex",
        "Log"
      ],
      "type" : "library"
    },
    {
      "c99name" : "URLImage",
      "module_type" : "SwiftTarget",
      "name" : "URLImage",
      "path" : "Sources/URLImage",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "Common/Image_Orientation+CGImagePropertyOrientation.swift",
        "Common/Synchronized.swift",
        "Common/TransientImage+SwiftUI.swift",
        "Common/URLImageKey.swift",
        "EnvironmentValues+URLImage.swift",
        "RemoteImage/RemoteImage.swift",
        "RemoteImage/RemoteImageLoadingState.swift",
        "Service/URLImageService+Decode.swift",
        "Service/URLImageService+RemoteImage.swift",
        "Service/URLImageService.swift",
        "Store/Common/URLImageStoreInfo.swift",
        "Store/URLImageFileStoreType+Combine.swift",
        "Store/URLImageFileStoreType.swift",
        "Store/URLImageInMemoryStoreType.swift",
        "Store/URLImageStoreType.swift",
        "URLImage.swift",
        "URLImageOptions.swift",
        "Views/Auxiliary/ActivityIndicator.swift",
        "Views/RemoteImageView.swift"
      ],
      "target_dependencies" : [
        "DownloadManager",
        "ImageDecoder",
        "FileIndex",
        "Model",
        "Log"
      ],
      "type" : "library"
    },
    {
      "c99name" : "PlainDatabaseTests",
      "module_type" : "SwiftTarget",
      "name" : "PlainDatabaseTests",
      "path" : "Dependencies/Tests/PlainDatabaseTests",
      "sources" : [
        "PlainDatabaseTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "PlainDatabase"
      ],
      "type" : "test"
    },
    {
      "c99name" : "PlainDatabase",
      "module_type" : "SwiftTarget",
      "name" : "PlainDatabase",
      "path" : "Dependencies/Sources/PlainDatabase",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "CoreDataModel/CoreDataAttributeDescription.swift",
        "CoreDataModel/CoreDataEntityDescription.swift",
        "CoreDataModel/CoreDataFetchIndexDescription.swift",
        "CoreDataModel/CoreDataModelDescription.swift",
        "CoreDataModel/ManagedObjectCodable.swift",
        "Database.swift",
        "PlainDatabase.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Model",
      "module_type" : "SwiftTarget",
      "name" : "Model",
      "path" : "Dependencies/Sources/Model",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "FileManager+Extensions.swift",
        "ImageInfo.swift",
        "TransientImage+ImageDecoder.swift",
        "TransientImage.swift",
        "URLImageError.swift"
      ],
      "target_dependencies" : [
        "ImageDecoder"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Log",
      "module_type" : "SwiftTarget",
      "name" : "Log",
      "path" : "Dependencies/Sources/Log",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "Log.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ImageDecoderTests",
      "module_type" : "SwiftTarget",
      "name" : "ImageDecoderTests",
      "path" : "Dependencies/Tests/ImageDecoderTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/TestImages.json",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/gif-loop-count.gif",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/lenna.jpg",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/lenna.png",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/quicksort.gif",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/sea_animation.heics",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/test.base64",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "ImageDecoderTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "ImageDecoder"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ImageDecoder",
      "module_type" : "SwiftTarget",
      "name" : "ImageDecoder",
      "path" : "Dependencies/Sources/ImageDecoder",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "ImageDecoder.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "FileIndexTests",
      "module_type" : "SwiftTarget",
      "name" : "FileIndexTests",
      "path" : "Dependencies/Tests/FileIndexTests",
      "sources" : [
        "FileIndexTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "FileIndex"
      ],
      "type" : "test"
    },
    {
      "c99name" : "FileIndex",
      "module_type" : "SwiftTarget",
      "name" : "FileIndex",
      "path" : "Dependencies/Sources/FileIndex",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "Common/Bundle+Extensions.swift",
        "File.swift",
        "FileIndex.swift"
      ],
      "target_dependencies" : [
        "PlainDatabase",
        "Log",
        "Model"
      ],
      "type" : "library"
    },
    {
      "c99name" : "DownloadManager",
      "module_type" : "SwiftTarget",
      "name" : "DownloadManager",
      "path" : "Dependencies/Sources/DownloadManager",
      "product_memberships" : [
        "URLImage",
        "URLImageStore"
      ],
      "sources" : [
        "Common/DownloadProgress.swift",
        "Common/Utils.swift",
        "Download/Download.swift",
        "Download/DownloadPublisher.swift",
        "Download/DownloadTask.swift",
        "Download/DownloadTypes.swift",
        "DownloadManager.swift",
        "URLSession/URLSessionCoordinator.swift",
        "URLSession/URLSessionDelegate.swift"
      ],
      "target_dependencies" : [
        "Log"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.