The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of URLImage, reference main (20abda), with Swift 6.0 for macOS (SPM) on 2 Nov 2024 02:49:27 UTC.

Swift 6 data race errors: 9

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dmytro-anokhin/url-image.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dmytro-anokhin/url-image
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 20abda4 Use empty phase for in progress
Cloned https://github.com/dmytro-anokhin/url-image.git
Revision (git rev-parse @):
20abda498bf8fe78631b1057b77078147598962b
SUCCESS checkout https://github.com/dmytro-anokhin/url-image.git at main
========================================
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.12s)
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 main (20abda4)
warning: '.resolve-product-dependencies': dependency 'url-image' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/dmytro-anokhin/url-image.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/9] Write sources
[8/9] Write swift-version--7754E27361AE5C74.txt
[10/21] Compiling Log Log.swift
[11/21] Emitting module Log
[12/31] Compiling PlainDatabase PlainDatabase.swift
[13/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
[14/31] Compiling DownloadManager DownloadTypes.swift
[15/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 |
[16/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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
108 |                 self.progress = DownloadProgress()
109 |             }
[17/31] Compiling DownloadManager DownloadPublisher.swift
[18/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 |
[19/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: annotate 'keepAlive' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 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
[20/31] Compiling DownloadManager Utils.swift
[21/31] Compiling DownloadManager DownloadProgress.swift
[22/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: annotate 'keepAlive' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 83 |     }
 84 |
[23/31] Compiling PlainDatabase Database.swift
[24/31] Compiling PlainDatabase CoreDataModelDescription.swift
[25/31] Compiling PlainDatabase CoreDataAttributeDescription.swift
[26/31] Compiling PlainDatabase ManagedObjectCodable.swift
[27/31] Compiling PlainDatabase CoreDataFetchIndexDescription.swift
[28/31] Compiling PlainDatabase CoreDataEntityDescription.swift
[29/31] Emitting module PlainDatabase
[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: annotate 'imageSourceOptions' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'imageSourceAsyncOptions' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'imageSourceOptions' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'imageSourceAsyncOptions' with '@MainActor' if property should only be accessed from the main actor
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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.swift
[33/37] Compiling Model URLImageError.swift
[34/37] Emitting module Model
[35/37] Compiling Model FileManager+Extensions.swift
[36/37] Compiling Model TransientImage+ImageDecoder.swift
[37/37] Compiling Model ImageInfo.swift
[38/41] Compiling FileIndex File.swift
[39/41] Compiling FileIndex Bundle+Extensions.swift
[40/41] Compiling FileIndex FileIndex.swift
[41/41] Emitting module FileIndex
[42/60] 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: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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: annotate 'loadImmediately' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 |         /// Start load when the image view appears
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/RemoteImage/RemoteImage.swift:303:30: warning: capture of 'self' with non-sendable type 'RemoteImage?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 15 |
 16 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
 17 | public final class RemoteImage : ObservableObject {
    |                    `- note: class 'RemoteImage' does not conform to the 'Sendable' protocol
 18 |
 19 |     /// Reference to URLImageService used to download and store the image.
    :
301 |     private func updateLoadingState(_ loadingState: LoadingState) {
302 |         DispatchQueue.main.async { [weak self] in
303 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'RemoteImage?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
304 |                 return
305 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/RemoteImage/RemoteImage.swift:307:33: warning: capture of 'loadingState' with non-sendable type 'RemoteImage.LoadingState' (aka 'RemoteImageLoadingState') in a `@Sendable` closure; this is an error in the Swift 6 language mode
305 |             }
306 |
307 |             self.loadingState = loadingState
    |                                 `- warning: capture of 'loadingState' with non-sendable type 'RemoteImage.LoadingState' (aka 'RemoteImageLoadingState') in a `@Sendable` closure; this is an error in the Swift 6 language mode
308 |         }
309 |     }
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/RemoteImage/RemoteImageLoadingState.swift:20:13: note: consider making enum 'RemoteImageLoadingState' conform to the 'Sendable' protocol
18 | ///
19 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
20 | public enum RemoteImageLoadingState {
   |             `- note: consider making enum 'RemoteImageLoadingState' conform to the 'Sendable' protocol
21 |
22 |     case initial
/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 |     }
[43/60] 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: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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: annotate 'loadImmediately' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 |         /// Start load when the image view appears
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/RemoteImage/RemoteImage.swift:303:30: warning: capture of 'self' with non-sendable type 'RemoteImage?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 15 |
 16 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
 17 | public final class RemoteImage : ObservableObject {
    |                    `- note: class 'RemoteImage' does not conform to the 'Sendable' protocol
 18 |
 19 |     /// Reference to URLImageService used to download and store the image.
    :
301 |     private func updateLoadingState(_ loadingState: LoadingState) {
302 |         DispatchQueue.main.async { [weak self] in
303 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'RemoteImage?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
304 |                 return
305 |             }
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/RemoteImage/RemoteImage.swift:307:33: warning: capture of 'loadingState' with non-sendable type 'RemoteImage.LoadingState' (aka 'RemoteImageLoadingState') in a `@Sendable` closure; this is an error in the Swift 6 language mode
305 |             }
306 |
307 |             self.loadingState = loadingState
    |                                 `- warning: capture of 'loadingState' with non-sendable type 'RemoteImage.LoadingState' (aka 'RemoteImageLoadingState') in a `@Sendable` closure; this is an error in the Swift 6 language mode
308 |         }
309 |     }
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/RemoteImage/RemoteImageLoadingState.swift:20:13: note: consider making enum 'RemoteImageLoadingState' conform to the 'Sendable' protocol
18 | ///
19 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
20 | public enum RemoteImageLoadingState {
   |             `- note: consider making enum 'RemoteImageLoadingState' conform to the 'Sendable' protocol
21 |
22 |     case initial
/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 |     }
[44/61] Compiling URLImage RemoteImageLoadingState.swift
[45/61] Compiling URLImage URLImageService+Decode.swift
[46/61] Compiling URLImage URLImageService+RemoteImage.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: annotate 'loadImmediately' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 |         /// Start load when the image view appears
[47/61] Compiling URLImage URLImageService.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: annotate 'loadImmediately' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 |         /// Start load when the image view appears
[48/61] Compiling URLImage URLImageStoreType.swift
[49/61] Compiling URLImage URLImage.swift
[50/61] 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: annotate 'loadImmediately' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'loadOnAppear' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'cancelOnDisappear' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |     }
47 |
[51/61] 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: annotate 'loadImmediately' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'loadOnAppear' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'cancelOnDisappear' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |     }
47 |
[52/61] Compiling URLImage URLImageFileStoreType.swift
[53/61] Compiling URLImage URLImageInMemoryStoreType.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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
27 |             }
28 |         }
[56/61] Compiling URLImage TransientImage+SwiftUI.swift
[57/61] Compiling URLImage URLImageKey.swift
[58/61] Compiling URLImage URLImageStoreInfo.swift
[59/61] Compiling URLImage URLImageFileStoreType+Combine.swift
[60/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: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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: annotate 'loadImmediately' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'loadOnAppear' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'cancelOnDisappear' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |     }
47 |
[61/61] Compiling URLImage RemoteImageView.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: annotate 'loadImmediately' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'loadOnAppear' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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: annotate 'cancelOnDisappear' with '@MainActor' if property should only be accessed from the main actor
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |     }
47 |
[62/64] Compiling URLImageStore URLImageInMemoryStore.swift
[63/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; this is an error in the Swift 6 language mode
 15 |
 16 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 15 |
 16 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 15 |
 16 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
 15 |
 16 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
136 |             var file: File?
137 |
138 |             for key in keys {
    |                        `- warning: capture of 'keys' with non-sendable type '[URLImageKey]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
154 |
155 |                 queue.async {
156 |                     completion(location)
    |                     |- warning: capture of 'completion' with non-sendable type '(URL?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- 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; this is an error in the Swift 6 language mode
154 |
155 |                 queue.async {
156 |                     completion(location)
    |                     |- warning: capture of 'completion' with non-sendable type '(URL?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
    |                                 `- 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; this is an error in the Swift 6 language mode
192 |                         case .failure:
193 |                             queue.async {
194 |                                 completion(nil)
    |                                 |- warning: capture of 'completion' with non-sendable type '(CGImage?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                 `- 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; this is an error in the Swift 6 language mode
 15 |
 16 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
 15 |
 16 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
 15 |
 16 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
 15 |
 16 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
 15 |
 16 | @available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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
[64/64] Emitting module URLImageStore
Build complete! (24.87s)
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.