This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

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 with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 9

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.40.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
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/dmytro-anokhin/url-image.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a 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-6F35C1178C84523A.txt
[10/21] 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 | }
[11/21] Compiling PlainDatabase Database.swift
[12/21] Compiling Log Log.swift
[13/21] Emitting module Log
[14/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
[15/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 | }
[16/31] Compiling PlainDatabase CoreDataEntityDescription.swift
[17/31] Compiling PlainDatabase CoreDataFetchIndexDescription.swift
[18/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 |
[19/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 |
[20/31] Compiling DownloadManager DownloadTypes.swift
[21/37] Compiling PlainDatabase CoreDataModelDescription.swift
[22/37] Compiling PlainDatabase CoreDataAttributeDescription.swift
[23/37] Compiling PlainDatabase PlainDatabase.swift
[24/37] Emitting module PlainDatabase
[25/37] Compiling PlainDatabase ManagedObjectCodable.swift
[26/37] Compiling DownloadManager DownloadProgress.swift
[27/37] 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 |             }
[28/37] Compiling DownloadManager Utils.swift
[29/37] Compiling DownloadManager DownloadPublisher.swift
[30/37] 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 |
[31/37] 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
[32/37] Compiling Model URLImageError.swift
[33/37] Compiling Model TransientImage.swift
[34/37] Compiling Model ImageInfo.swift
[35/37] Compiling Model TransientImage+ImageDecoder.swift
[36/37] Emitting module Model
[37/37] Compiling Model FileManager+Extensions.swift
[38/41] Compiling FileIndex File.swift
[39/41] Emitting module FileIndex
[40/41] Compiling FileIndex FileIndex.swift
[41/41] Compiling FileIndex Bundle+Extensions.swift
[42/60] Compiling URLImage URLImageFileStoreType.swift
[43/60] Compiling URLImage URLImageInMemoryStoreType.swift
[44/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 |
[45/61] Compiling URLImage RemoteImageLoadingState.swift
[46/61] Compiling URLImage URLImageService+Decode.swift
[47/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 |
[48/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 |
[49/61] Compiling URLImage URLImageStoreInfo.swift
[50/61] Compiling URLImage URLImageFileStoreType+Combine.swift
[51/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 |         }
[52/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 |         }
[53/61] Compiling URLImage URLImageStoreType.swift
[54/61] Compiling URLImage URLImage.swift
[55/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
[56/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
[57/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 |
[58/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: 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 |     }
[59/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: 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 |     }
[60/61] Compiling URLImage TransientImage+SwiftUI.swift
[61/61] Compiling URLImage URLImageKey.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; 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
Build complete! (34.34s)
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/test.base64",
          "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/sea_animation.heics",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "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.png",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Dependencies/Tests/ImageDecoderTests/Resources/quicksort.gif",
          "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.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.