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 3.1.1 (4042f9), with Swift 6.0 for macOS (SPM) on 2 Nov 2024 02:49:36 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: 3.1.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dmytro-anokhin/url-image
 * tag               3.1.1      -> FETCH_HEAD
HEAD is now at 4042f95 Use v12 platform to workaround 74120874
Cloned https://github.com/dmytro-anokhin/url-image.git
Revision (git rev-parse @):
4042f955f1fdff00ced85545e1eecdbf969b5cd0
SUCCESS checkout https://github.com/dmytro-anokhin/url-image.git at 3.1.1
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "url-image",
      "name": "URLImage",
      "url": "https://github.com/dmytro-anokhin/url-image.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/url-image",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/dmytro-anokhin/url-image.git
[1/4353] Fetching url-image
Fetched https://github.com/dmytro-anokhin/url-image.git from cache (1.14s)
Creating working copy for https://github.com/dmytro-anokhin/url-image.git
Working copy of https://github.com/dmytro-anokhin/url-image.git resolved at 3.1.1 (4042f95)
warning: '.resolve-product-dependencies': dependency 'url-image' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.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] Emitting module PlainDatabase
[11/21] Emitting module Log
[12/21] Compiling Log Log.swift
[13/31] Compiling DownloadManager DownloadTypes.swift
[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 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 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 |
[17/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 |             }
[18/31] Compiling DownloadManager Utils.swift
[19/31] Compiling DownloadManager DownloadProgress.swift
[20/31] Compiling DownloadManager DownloadPublisher.swift
[21/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 |
[22/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
[23/31] Compiling PlainDatabase CoreDataEntityDescription.swift
[24/31] Compiling PlainDatabase ManagedObjectCodable.swift
[25/31] Compiling PlainDatabase Database.swift
[26/31] Compiling PlainDatabase CoreDataAttributeDescription.swift
[27/31] Compiling PlainDatabase CoreDataModelDescription.swift
[28/31] Compiling PlainDatabase CoreDataFetchIndexDescription.swift
[29/31] Compiling PlainDatabase PlainDatabase.swift
[30/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 | }
[31/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 | }
[32/37] Compiling Model TransientImage.swift
[33/37] Compiling Model URLImageError.swift
[34/37] Compiling Model FileManager+Extensions.swift
[35/37] Compiling Model ImageInfo.swift
[36/37] Emitting module Model
[37/37] Compiling Model TransientImage+ImageDecoder.swift
[38/41] Compiling FileIndex File.swift
[39/41] Compiling FileIndex FileIndex.swift
[40/41] Compiling FileIndex Bundle+Extensions.swift
[41/41] Emitting module FileIndex
[42/60] Compiling URLImage URLImageFileStoreType.swift
[43/60] Compiling URLImage URLImageInMemoryStoreType.swift
[44/60] Compiling URLImage URLImageStoreInfo.swift
[45/60] Compiling URLImage URLImageFileStoreType+Combine.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 RemoteImageLoadingState.swift
[49/61] Compiling URLImage URLImageService+Decode.swift
[50/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 |
[51/61] Compiling URLImage TransientImage+SwiftUI.swift
[52/61] Compiling URLImage URLImageKey.swift
[53/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 |         }
[54/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 |         }
[55/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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
16 | public class URLImageService {
   |              `- note: class 'URLImageService' does not conform to the 'Sendable' protocol
17 |
18 |     public init(fileStore: URLImageFileStoreType? = nil, inMemoryStore: URLImageInMemoryStoreType? = nil) {
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/EnvironmentValues+URLImage.swift:21:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
19 | private struct URLImageOptionsEnvironmentKey: EnvironmentKey {
20 |
21 |     static let defaultValue: URLImageOptions = URLImageOptions()
   |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
15 | public struct URLImageOptions {
   |               `- note: consider making struct 'URLImageOptions' conform to the 'Sendable' protocol
16 |
17 |     /// The `FetchPolicy` allows to choose between returning stored image or downloading the remote one.
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:39:27: warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
37 |
38 |         /// Start load when the image view is rendered
39 |         public static let loadImmediately: LoadOptions = .init(rawValue: 1 << 0)
   |                           |- warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.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 |     }
[56/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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
16 | public class URLImageService {
   |              `- note: class 'URLImageService' does not conform to the 'Sendable' protocol
17 |
18 |     public init(fileStore: URLImageFileStoreType? = nil, inMemoryStore: URLImageInMemoryStoreType? = nil) {
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/EnvironmentValues+URLImage.swift:21:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
19 | private struct URLImageOptionsEnvironmentKey: EnvironmentKey {
20 |
21 |     static let defaultValue: URLImageOptions = URLImageOptions()
   |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
15 | public struct URLImageOptions {
   |               `- note: consider making struct 'URLImageOptions' conform to the 'Sendable' protocol
16 |
17 |     /// The `FetchPolicy` allows to choose between returning stored image or downloading the remote one.
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:39:27: warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
37 |
38 |         /// Start load when the image view is rendered
39 |         public static let loadImmediately: LoadOptions = .init(rawValue: 1 << 0)
   |                           |- warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.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 |     }
[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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
16 | public class URLImageService {
   |              `- note: class 'URLImageService' does not conform to the 'Sendable' protocol
17 |
18 |     public init(fileStore: URLImageFileStoreType? = nil, inMemoryStore: URLImageInMemoryStoreType? = nil) {
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/EnvironmentValues+URLImage.swift:21:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
19 | private struct URLImageOptionsEnvironmentKey: EnvironmentKey {
20 |
21 |     static let defaultValue: URLImageOptions = URLImageOptions()
   |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'URLImageOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
15 | public struct URLImageOptions {
   |               `- note: consider making struct 'URLImageOptions' conform to the 'Sendable' protocol
16 |
17 |     /// The `FetchPolicy` allows to choose between returning stored image or downloading the remote one.
/Users/admin/builder/spi-builder-workspace/Sources/URLImage/URLImageOptions.swift:39:27: warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 |     /// Controls some aspects of download process
30 |     public struct LoadOptions: OptionSet, Hashable {
   |                   `- note: consider making struct 'LoadOptions' conform to the 'Sendable' protocol
31 |
32 |         public let rawValue: Int
   :
37 |
38 |         /// Start load when the image view is rendered
39 |         public static let loadImmediately: LoadOptions = .init(rawValue: 1 << 0)
   |                           |- warning: static property 'loadImmediately' is not concurrency-safe because non-'Sendable' type 'URLImageOptions.LoadOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: 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 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 |
[59/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 |
[60/61] Compiling URLImage URLImageStoreType.swift
[61/61] Compiling URLImage URLImage.swift
[62/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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
 63 |     func cleanup() {
 64 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
 65 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a `@Sendable` closure; 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
 73 |     func deleteAll() {
 74 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
 75 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a `@Sendable` closure; 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
 83 |     func delete(withIdentifier identifier: String?, orURL url: URL?) {
 84 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
 85 |             log_debug(self, #function, {
    |                       `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a `@Sendable` closure; 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
130 |
131 |         fileIndexQueue.async { [weak self] in
132 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a `@Sendable` closure; 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
205 |     public func removeAllImages() {
206 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
207 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a `@Sendable` closure; 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
215 |     public func removeImageWithURL(_ url: URL) {
216 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
217 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a `@Sendable` closure; 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
231 |     public func removeImageWithIdentifier(_ identifier: String) {
232 |         fileIndexQueue.async(flags: .barrier) { [weak self] in
233 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a `@Sendable` closure; 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
271 |
272 |         fileIndexQueue.async { [weak self] in
273 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a `@Sendable` closure; 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 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 17 | public final class URLImageFileStore {
    |                    `- note: class 'URLImageFileStore' does not conform to the 'Sendable' protocol
 18 |
 19 |     let fileIndex: FileIndex
    :
290 |
291 |         fileIndexQueue.async { [weak self] in
292 |             guard let self = self else {
    |                              `- warning: capture of 'self' with non-sendable type 'URLImageFileStore?' in a `@Sendable` closure; 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
[63/64] Compiling URLImageStore URLImageInMemoryStore.swift
[64/64] Emitting module URLImageStore
Build complete! (22.08s)
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.