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 CachedAsyncImage, reference main (dc730b), with Swift 6.1 for macOS (SPM) on 29 Apr 2025 02:09:41 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/0xWDG/CachedAsyncImage.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/0xWDG/CachedAsyncImage
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at dc730bb Update README.md
Cloned https://github.com/0xWDG/CachedAsyncImage.git
Revision (git rev-parse @):
dc730bb98ebf87a43a57e18764aad818daf1ad6c
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/0xWDG/CachedAsyncImage.git at main
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "cachedasyncimage",
      "name": "CachedAsyncImage",
      "url": "https://github.com/0xWDG/CachedAsyncImage.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/CachedAsyncImage",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/0xWDG/CachedAsyncImage.git
[1/730] Fetching cachedasyncimage
Fetched https://github.com/0xWDG/CachedAsyncImage.git from cache (0.93s)
Creating working copy for https://github.com/0xWDG/CachedAsyncImage.git
Working copy of https://github.com/0xWDG/CachedAsyncImage.git resolved at main (dc730bb)
warning: '.resolve-product-dependencies': dependency 'cachedasyncimage' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/0xWDG/CachedAsyncImage.git
https://github.com/0xWDG/CachedAsyncImage.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "CachedAsyncImage",
  "name" : "CachedAsyncImage",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "CachedAsyncImage",
      "targets" : [
        "CachedAsyncImage"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CachedAsyncImageTests",
      "module_type" : "SwiftTarget",
      "name" : "CachedAsyncImageTests",
      "path" : "Tests/CachedAsyncImageTests",
      "sources" : [
        "CachedAsyncImageTests.swift"
      ],
      "target_dependencies" : [
        "CachedAsyncImage"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CachedAsyncImage",
      "module_type" : "SwiftTarget",
      "name" : "CachedAsyncImage",
      "path" : "Sources/CachedAsyncImage",
      "product_memberships" : [
        "CachedAsyncImage"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/CachedAsyncImage/PrivacyInfo.xcprivacy",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "CachedAsyncImage.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/3] Write sources
[0/3] Copying PrivacyInfo.xcprivacy
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/6] Compiling CachedAsyncImage resource_bundle_accessor.swift
[5/6] Emitting module CachedAsyncImage
[6/6] Compiling CachedAsyncImage CachedAsyncImage.swift
Build complete! (8.24s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "CachedAsyncImage",
  "name" : "CachedAsyncImage",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "CachedAsyncImage",
      "targets" : [
        "CachedAsyncImage"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CachedAsyncImageTests",
      "module_type" : "SwiftTarget",
      "name" : "CachedAsyncImageTests",
      "path" : "Tests/CachedAsyncImageTests",
      "sources" : [
        "CachedAsyncImageTests.swift"
      ],
      "target_dependencies" : [
        "CachedAsyncImage"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CachedAsyncImage",
      "module_type" : "SwiftTarget",
      "name" : "CachedAsyncImage",
      "path" : "Sources/CachedAsyncImage",
      "product_memberships" : [
        "CachedAsyncImage"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/CachedAsyncImage/PrivacyInfo.xcprivacy",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "CachedAsyncImage.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/0xwdg/cachedasyncimage/main
Repository:               0xWDG/CachedAsyncImage
Swift version used:       6.1
Target:                   CachedAsyncImage
Extracting symbol information for 'CachedAsyncImage'...
Finished extracting symbol information for 'CachedAsyncImage'. (4.96s)
Building documentation for 'CachedAsyncImage'...
warning: No external resolver registered for 'com.apple.documentation'.
  --> Sources/CachedAsyncImage/CachedAsyncImage.swift:20:10-20:71
18 | ///
19 | /// This view uses the shared
20 + /// <doc://com.apple.documentation/documentation/Foundation/URLSession>
21 | /// instance to load an image from the specified URL, and then display it.
22 | /// For example, you can display an icon that's stored on a server:
warning: Resource 'AsyncImage-1' couldn't be found
  --> Sources/CachedAsyncImage/CachedAsyncImage.swift:32:5-34:59
30 | /// than the frame, and so appears smaller than the placeholder.
31 | ///
32 + /// ![A diagram that shows a grey box on the left, the SwiftUI icon on the
33 + /// right, and an arrow pointing from the first to the second. The icon
34 + /// is about half the size of the grey box.](AsyncImage-1)
35 | ///
36 | /// You can specify a custom placeholder using
warning: 'init(url:scale:content:placeholder:)' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
  --> Sources/CachedAsyncImage/CachedAsyncImage.swift:37:7-37:43
35 | ///
36 | /// You can specify a custom placeholder using
37 + /// ``init(url:scale:content:placeholder:)``. With this initializer, you can
   |       ╰─suggestion: Replace 'init(url:scale:content:placeholder:)' with 'init(url:urlCache:scale:content:placeholder:)'
38 | /// also use the `content` parameter to manipulate the loaded image.
39 | /// For example, you can add a modifier to make the loaded image resizable:
warning: 'ProgressView' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
  --> Sources/CachedAsyncImage/CachedAsyncImage.swift:48:41-48:53
46 | ///     .frame(width: 50, height: 50)
47 | ///
48 + /// For this example, SwiftUI shows a ``ProgressView`` first, and then the
   |                                         ╰─suggestion: Replace 'ProgressView' with 'progressViewStyle(_:)'
49 | /// image scaled to fit in the specified frame:
50 | ///
warning: Resource 'AsyncImage-2' couldn't be found
  --> Sources/CachedAsyncImage/CachedAsyncImage.swift:51:5-52:78
49 | /// image scaled to fit in the specified frame:
50 | ///
51 + /// ![A diagram that shows a progress view on the left, the SwiftUI icon on the
52 + /// right, and an arrow pointing from the first to the second.](AsyncImage-2)
53 | ///
54 | /// > Important: You can't apply image-specific modifiers, like
warning: 'Image' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
  --> Sources/CachedAsyncImage/CachedAsyncImage.swift:55:9-55:14
53 | ///
54 | /// > Important: You can't apply image-specific modifiers, like
55 + /// ``Image/resizable(capInsets:resizingMode:)``, directly to an `AsyncImage`.
56 | /// Instead, apply them to the ``Image`` instance that your `content`
57 | /// closure gets when defining the view's appearance.
warning: 'Image' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
  --> Sources/CachedAsyncImage/CachedAsyncImage.swift:56:36-56:41
54 | /// > Important: You can't apply image-specific modifiers, like
55 | /// ``Image/resizable(capInsets:resizingMode:)``, directly to an `AsyncImage`.
56 + /// Instead, apply them to the ``Image`` instance that your `content`
57 | /// closure gets when defining the view's appearance.
58 | ///
warning: 'init(url:scale:transaction:content:)' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
  --> Sources/CachedAsyncImage/CachedAsyncImage.swift:60:7-60:43
58 | ///
59 | /// To gain more control over the loading process, use the
60 + /// ``init(url:scale:transaction:content:)`` initializer, which takes a
   |       ╰─suggestion: Replace 'init(url:scale:transaction:content:)' with 'init(url:urlCache:scale:transaction:content:)'
61 | /// `content` closure that receives an ``AsyncImagePhase`` to indicate
62 | /// the state of the loading operation. Return a view that's appropriate
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
  --> Sources/CachedAsyncImage/CachedAsyncImage.swift:61:42-61:57
59 | /// To gain more control over the loading process, use the
60 | /// ``init(url:scale:transaction:content:)`` initializer, which takes a
61 + /// `content` closure that receives an ``AsyncImagePhase`` to indicate
62 | /// the state of the loading operation. Return a view that's appropriate
63 | /// for the current phase:
warning: 'Image' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:)'
   --> Sources/CachedAsyncImage/CachedAsyncImage.swift:116:30-116:35
114 |     ///
115 |     /// If you want to customize the placeholder or apply image-specific
116 +     /// modifiers --- like ``Image/resizable(capInsets:resizingMode:)`` ---
117 |     /// to the loaded image, use the ``init(url:scale:content:placeholder:)``
118 |     /// initializer instead.
warning: 'init(url:scale:content:placeholder:)' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:)'
   --> Sources/CachedAsyncImage/CachedAsyncImage.swift:117:40-117:76
115 |     /// If you want to customize the placeholder or apply image-specific
116 |     /// modifiers --- like ``Image/resizable(capInsets:resizingMode:)`` ---
117 +     /// to the loaded image, use the ``init(url:scale:content:placeholder:)``
118 |     /// initializer instead.
119 |     ///
warning: 'init(url:scale:transaction:content:)' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:content:placeholder:)'
   --> Sources/CachedAsyncImage/CachedAsyncImage.swift:162:19-162:55
160 |     /// If the load operation fails, SwiftUI continues to display the
161 |     /// placeholder. To be able to display a different view on a load error,
162 +     /// use the ``init(url:scale:transaction:content:)`` initializer instead.
163 |     ///
164 |     /// - Parameters:
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
   --> Sources/CachedAsyncImage/CachedAsyncImage.swift:196:11-196:26
194 |     /// If you set the asynchronous image's URL to `nil`, or after you set the
195 |     /// URL to a value but before the load operation completes, the phase is
196 +     /// ``AsyncImagePhase/empty``. After the operation completes, the phase
197 |     /// becomes either ``AsyncImagePhase/failure(_:)`` or
198 |     /// ``AsyncImagePhase/success(_:)``. In the first case, the phase's
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
   --> Sources/CachedAsyncImage/CachedAsyncImage.swift:197:26-197:41
195 |     /// URL to a value but before the load operation completes, the phase is
196 |     /// ``AsyncImagePhase/empty``. After the operation completes, the phase
197 +     /// becomes either ``AsyncImagePhase/failure(_:)`` or
198 |     /// ``AsyncImagePhase/success(_:)``. In the first case, the phase's
199 |     /// ``AsyncImagePhase/error`` value indicates the reason for failure.
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
   --> Sources/CachedAsyncImage/CachedAsyncImage.swift:198:11-198:26
196 |     /// ``AsyncImagePhase/empty``. After the operation completes, the phase
197 |     /// becomes either ``AsyncImagePhase/failure(_:)`` or
198 +     /// ``AsyncImagePhase/success(_:)``. In the first case, the phase's
199 |     /// ``AsyncImagePhase/error`` value indicates the reason for failure.
200 |     /// In the second case, the phase's ``AsyncImagePhase/image`` property
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
   --> Sources/CachedAsyncImage/CachedAsyncImage.swift:199:11-199:26
197 |     /// becomes either ``AsyncImagePhase/failure(_:)`` or
198 |     /// ``AsyncImagePhase/success(_:)``. In the first case, the phase's
199 +     /// ``AsyncImagePhase/error`` value indicates the reason for failure.
200 |     /// In the second case, the phase's ``AsyncImagePhase/image`` property
201 |     /// contains the loaded image. Use the phase to drive the output of the
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
   --> Sources/CachedAsyncImage/CachedAsyncImage.swift:200:43-200:58
198 |     /// ``AsyncImagePhase/success(_:)``. In the first case, the phase's
199 |     /// ``AsyncImagePhase/error`` value indicates the reason for failure.
200 +     /// In the second case, the phase's ``AsyncImagePhase/image`` property
201 |     /// contains the loaded image. Use the phase to drive the output of the
202 |     /// `content` closure, which defines the view's appearance:
warning: 'AsyncImage' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
   --> Sources/CachedAsyncImage/CachedAsyncImage.swift:215:11-215:21
213 |     ///
214 |     /// To add transitions when you change the URL, apply an identifier to the
215 +     /// ``AsyncImage``.
216 |     ///
217 |     /// - Parameters:
Finished building documentation for 'CachedAsyncImage' (1.50s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/0xwdg/cachedasyncimage/main
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.47s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.3 (1.16s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.73s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.34s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.3
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Building for debugging...
[0/8] Write sources
[1/8] Write snippet-extract-tool-entitlement.plist
[1/8] Write sources
[4/8] Write swift-version-2F0A5646E1D333AE.txt
[6/53] Emitting module SymbolKit
[7/57] Compiling SymbolKit Identifier.swift
[8/57] Compiling SymbolKit KindIdentifier.swift
[9/57] Compiling SymbolKit Location.swift
[10/57] Compiling SymbolKit Mutability.swift
[11/57] Compiling SymbolKit Mixin+Equals.swift
[12/57] Compiling SymbolKit Mixin+Hash.swift
[13/57] Compiling SymbolKit Mixin.swift
[14/57] Compiling SymbolKit LineList.swift
[15/57] Compiling SymbolKit Position.swift
[16/57] Compiling Snippets SnippetParser.swift
[17/57] Compiling Snippets Snippet.swift
[18/57] Emitting module Snippets
[19/57] Compiling SymbolKit Names.swift
[20/57] Compiling SymbolKit SPI.swift
[21/57] Compiling SymbolKit Snippet.swift
[22/57] Compiling SymbolKit Extension.swift
[23/57] Compiling SymbolKit SemanticVersion.swift
[24/57] Compiling SymbolKit AccessControl.swift
[25/57] Compiling SymbolKit Availability.swift
[26/57] Compiling SymbolKit AvailabilityItem.swift
[27/57] Compiling SymbolKit Domain.swift
[28/57] Compiling SymbolKit Relationship.swift
[29/57] Compiling SymbolKit RelationshipKind.swift
[30/57] Compiling SymbolKit SourceOrigin.swift
[31/57] Compiling SymbolKit GenericConstraints.swift
[32/57] Compiling SymbolKit Swift.swift
[33/57] Compiling SymbolKit GenericConstraint.swift
[34/57] Compiling SymbolKit GenericParameter.swift
[35/57] Compiling SymbolKit Generics.swift
[36/57] Compiling SymbolKit Namespace.swift
[37/57] Compiling SymbolKit Symbol.swift
[38/57] Compiling SymbolKit SymbolKind.swift
[39/57] Compiling SymbolKit SymbolGraph.swift
[40/57] Compiling SymbolKit GraphCollector.swift
[41/57] Compiling SymbolKit SourceRange.swift
[42/57] Compiling SymbolKit Metadata.swift
[43/57] Compiling SymbolKit Module.swift
[44/57] Compiling SymbolKit OperatingSystem.swift
[45/57] Compiling SymbolKit Platform.swift
[46/57] Compiling SymbolKit DeclarationFragments.swift
[47/57] Compiling SymbolKit Fragment.swift
[48/57] Compiling SymbolKit FragmentKind.swift
[49/57] Compiling SymbolKit FunctionParameter.swift
[50/57] Compiling SymbolKit FunctionSignature.swift
[51/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[52/57] Compiling SymbolKit UnifiedSymbol.swift
[53/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[54/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[55/61] Compiling snippet_extract URL+Status.swift
[56/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[57/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Emitting module snippet_extract
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (3.93s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/4] Emitting module CachedAsyncImage
[3/4] Compiling CachedAsyncImage resource_bundle_accessor.swift
[4/4] Compiling CachedAsyncImage CachedAsyncImage.swift
Build of target: 'CachedAsyncImage' complete! (0.75s)
    1472
11	/Users/admin/builder/spi-builder-workspace/.docs/0xwdg/cachedasyncimage/main
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/0xwdg/cachedasyncimage/main
File count: 1472
Doc size:   11.0MB
Preparing doc bundle ...
Uploading prod-0xwdg-cachedasyncimage-main-19ad0c99.zip to s3://spi-docs-inbox/prod-0xwdg-cachedasyncimage-main-19ad0c99.zip
Copying... [12%]
Copying... [21%]
Copying... [30%]
Copying... [42%]
Copying... [51%]
Copying... [60%]
Copying... [72%]
Copying... [81%]
Copying... [90%]
Copying... [100%]
Done.