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

The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of RemoteImage with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 4

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/crelies/remoteimage.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/crelies/remoteimage
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 66680f4 docs(readme): updated build status badge
Cloned https://github.com/crelies/remoteimage.git
Revision (git rev-parse @):
66680f49e07da247db5fd08c089bdfa485f68c38
SUCCESS checkout https://github.com/crelies/remoteimage.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/crelies/remoteimage.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-6F35C1178C84523A.txt
[3/18] Compiling RemoteImage DefaultRemoteImageService.swift
/Users/admin/builder/spi-builder-workspace/Sources/RemoteImage/public/Services/DefaultRemoteImageService.swift:18:23: warning: static property 'cache' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
16 |     @Published public var state: RemoteImageState = .loading
17 |
18 |     public static var cache: RemoteImageCache = DefaultRemoteImageCache()
   |                       |- warning: static property 'cache' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'cache' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'cache' 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
19 |     public static var cacheKeyProvider: RemoteImageCacheKeyProvider = { remoteImageType in
20 |         switch remoteImageType {
/Users/admin/builder/spi-builder-workspace/Sources/RemoteImage/public/Services/DefaultRemoteImageService.swift:19:23: warning: static property 'cacheKeyProvider' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
17 |
18 |     public static var cache: RemoteImageCache = DefaultRemoteImageCache()
19 |     public static var cacheKeyProvider: RemoteImageCacheKeyProvider = { remoteImageType in
   |                       |- warning: static property 'cacheKeyProvider' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'cacheKeyProvider' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'cacheKeyProvider' 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
20 |         switch remoteImageType {
21 |         case .phAsset(let localIdentifier): return localIdentifier as NSString
/Users/admin/builder/spi-builder-workspace/Sources/RemoteImage/public/Services/DefaultRemoteImageService.swift:78:47: warning: 'phAsset(localIdentifier:)' is deprecated: Will be removed in the future because the localIdentifier is device specific and therefore cannot be used to uniquely identify a PHAsset across devices.
76 |
77 |     func fetchImage(withLocalIdentifier localIdentifier: String) {
78 |         let cacheKey = Self.cacheKeyProvider(.phAsset(localIdentifier: localIdentifier))
   |                                               `- warning: 'phAsset(localIdentifier:)' is deprecated: Will be removed in the future because the localIdentifier is device specific and therefore cannot be used to uniquely identify a PHAsset across devices.
79 |         if let image = Self.cache.object(forKey: cacheKey) {
80 |             state = .image(image)
[4/19] Compiling RemoteImage PhotoKitServiceError.swift
[5/19] Compiling RemoteImage RemoteImageState.swift
[6/19] Compiling RemoteImage RemoteImageCache.swift
[7/19] Compiling RemoteImage RemoteImageService.swift
[8/19] Compiling RemoteImage RemoteImageURLDataPublisher.swift
[9/19] Compiling RemoteImage DefaultRemoteImageServiceFactory.swift
[10/19] Compiling RemoteImage RemoteImageType.swift
[11/19] Compiling RemoteImage UniversalImage.swift
[12/19] Compiling RemoteImage DefaultRemoteImageCache.swift
[13/19] Compiling RemoteImage DefaultRemoteImageServiceDependencies.swift
[14/19] Emitting module RemoteImage
/Users/admin/builder/spi-builder-workspace/Sources/RemoteImage/private/Services/PhotoKitService.swift:22:16: warning: static property 'asset' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
20 |
21 | final class PhotoKitService {
22 |     static var asset: PHAsset.Type = PHAsset.self
   |                |- warning: static property 'asset' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'asset' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'asset' 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
23 |     static var imageManager: PHImageManager = PHImageManager.default()
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/RemoteImage/private/Services/PhotoKitService.swift:23:16: warning: static property 'imageManager' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
21 | final class PhotoKitService {
22 |     static var asset: PHAsset.Type = PHAsset.self
23 |     static var imageManager: PHImageManager = PHImageManager.default()
   |                |- warning: static property 'imageManager' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'imageManager' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'imageManager' 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
24 | }
25 |
/Users/admin/builder/spi-builder-workspace/Sources/RemoteImage/public/Services/DefaultRemoteImageService.swift:18:23: warning: static property 'cache' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
16 |     @Published public var state: RemoteImageState = .loading
17 |
18 |     public static var cache: RemoteImageCache = DefaultRemoteImageCache()
   |                       |- warning: static property 'cache' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'cache' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'cache' 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
19 |     public static var cacheKeyProvider: RemoteImageCacheKeyProvider = { remoteImageType in
20 |         switch remoteImageType {
/Users/admin/builder/spi-builder-workspace/Sources/RemoteImage/public/Services/DefaultRemoteImageService.swift:19:23: warning: static property 'cacheKeyProvider' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
17 |
18 |     public static var cache: RemoteImageCache = DefaultRemoteImageCache()
19 |     public static var cacheKeyProvider: RemoteImageCacheKeyProvider = { remoteImageType in
   |                       |- warning: static property 'cacheKeyProvider' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'cacheKeyProvider' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'cacheKeyProvider' 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
20 |         switch remoteImageType {
21 |         case .phAsset(let localIdentifier): return localIdentifier as NSString
[15/19] Compiling RemoteImage RemoteImageServiceError.swift
[16/19] Compiling RemoteImage RemoteImageURLDataPublisherProvider.swift
[17/19] Compiling RemoteImage PhotoKitService.swift
/Users/admin/builder/spi-builder-workspace/Sources/RemoteImage/private/Services/PhotoKitService.swift:22:16: warning: static property 'asset' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
20 |
21 | final class PhotoKitService {
22 |     static var asset: PHAsset.Type = PHAsset.self
   |                |- warning: static property 'asset' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'asset' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'asset' 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
23 |     static var imageManager: PHImageManager = PHImageManager.default()
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/RemoteImage/private/Services/PhotoKitService.swift:23:16: warning: static property 'imageManager' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
21 | final class PhotoKitService {
22 |     static var asset: PHAsset.Type = PHAsset.self
23 |     static var imageManager: PHImageManager = PHImageManager.default()
   |                |- warning: static property 'imageManager' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'imageManager' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'imageManager' 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
24 | }
25 |
[18/19] Compiling RemoteImage URLSession+RemoteImageURLDataPublisher.swift
/Users/admin/builder/spi-builder-workspace/Sources/RemoteImage/private/Services/PhotoKitService.swift:22:16: warning: static property 'asset' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
20 |
21 | final class PhotoKitService {
22 |     static var asset: PHAsset.Type = PHAsset.self
   |                |- warning: static property 'asset' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'asset' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'asset' 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
23 |     static var imageManager: PHImageManager = PHImageManager.default()
24 | }
/Users/admin/builder/spi-builder-workspace/Sources/RemoteImage/private/Services/PhotoKitService.swift:23:16: warning: static property 'imageManager' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
21 | final class PhotoKitService {
22 |     static var asset: PHAsset.Type = PHAsset.self
23 |     static var imageManager: PHImageManager = PHImageManager.default()
   |                |- warning: static property 'imageManager' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'imageManager' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'imageManager' 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
24 | }
25 |
[19/19] Compiling RemoteImage RemoteImage.swift
Build complete! (44.87s)
Fetching https://github.com/nalexn/ViewInspector.git
[1/11472] Fetching viewinspector
Fetched https://github.com/nalexn/ViewInspector.git from cache (1.31s)
Computing version for https://github.com/nalexn/ViewInspector.git
Computed https://github.com/nalexn/ViewInspector.git at 0.3.8 (0.64s)
Creating working copy for https://github.com/nalexn/ViewInspector.git
Working copy of https://github.com/nalexn/ViewInspector.git resolved at 0.3.8
Build complete.
{
  "dependencies" : [
    {
      "identity" : "viewinspector",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.3.8",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/nalexn/ViewInspector.git"
    }
  ],
  "manifest_display_name" : "RemoteImage",
  "name" : "RemoteImage",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "RemoteImage",
      "targets" : [
        "RemoteImage"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RemoteImageTests",
      "module_type" : "SwiftTarget",
      "name" : "RemoteImageTests",
      "path" : "Tests/RemoteImageTests",
      "product_dependencies" : [
        "ViewInspector"
      ],
      "sources" : [
        "Extensions/RemoteImage+Inspectable.swift",
        "Extensions/URLSession+RemoteImageURLDataPublisherTests.swift",
        "Mocks/MockImageManager.swift",
        "Mocks/MockPHAsset.swift",
        "Mocks/MockPHAssetFetchResult.swift",
        "Mocks/MockPhotoKitService.swift",
        "Mocks/MockRemoteImageServiceDependencies.swift",
        "Mocks/MockRemoteImageURLDataPublisher.swift",
        "Models/PhotoKitServiceErrorTests.swift",
        "Models/RemoteImageServiceErrorTests.swift",
        "Services/DefaultRemoteImageCacheTests.swift",
        "Services/PhotoKitServiceTests.swift",
        "Services/RemoteImageServiceDependenciesTests.swift",
        "Services/RemoteImageServiceFactoryTests.swift",
        "Services/RemoteImageServiceTests.swift",
        "Views/RemoteImageTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "RemoteImage"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RemoteImage",
      "module_type" : "SwiftTarget",
      "name" : "RemoteImage",
      "path" : "Sources/RemoteImage",
      "product_memberships" : [
        "RemoteImage"
      ],
      "sources" : [
        "private/Models/RemoteImageServiceError.swift",
        "private/Protocols/RemoteImageURLDataPublisherProvider.swift",
        "private/Services/DefaultRemoteImageCache.swift",
        "private/Services/DefaultRemoteImageServiceDependencies.swift",
        "private/Services/PhotoKitService.swift",
        "public/Extensions/URLSession+RemoteImageURLDataPublisher.swift",
        "public/Models/PhotoKitServiceError.swift",
        "public/Models/RemoteImageState.swift",
        "public/Models/RemoteImageType.swift",
        "public/Models/UniversalImage.swift",
        "public/Protocols/RemoteImageCache.swift",
        "public/Protocols/RemoteImageService.swift",
        "public/Protocols/RemoteImageURLDataPublisher.swift",
        "public/Services/DefaultRemoteImageService.swift",
        "public/Services/DefaultRemoteImageServiceFactory.swift",
        "public/Views/RemoteImage.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.