Build Information
Successful build of RemoteImage, reference 4.0.0 (7de204
), with Swift 6.0 for macOS (SPM) on 1 Nov 2024 10:42:46 UTC.
Swift 6 data race errors: 4
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/crelies/remoteimage.git
Reference: 4.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/crelies/remoteimage
* tag 4.0.0 -> FETCH_HEAD
HEAD is now at 7de2045 Merge pull request #18 from crelies/dev
Cloned https://github.com/crelies/remoteimage.git
Revision (git rev-parse @):
7de20453a8b9733eb8e28ae762801c60a5a5f59d
SUCCESS checkout https://github.com/crelies/remoteimage.git at 4.0.0
Fetching https://github.com/nalexn/ViewInspector.git
[1/12143] Fetching viewinspector
Fetched https://github.com/nalexn/ViewInspector.git from cache (1.37s)
Computing version for https://github.com/nalexn/ViewInspector.git
Computed https://github.com/nalexn/ViewInspector.git at 0.3.8 (0.68s)
Creating working copy for https://github.com/nalexn/ViewInspector.git
Working copy of https://github.com/nalexn/ViewInspector.git resolved at 0.3.8
========================================
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": "remoteimage",
"name": "RemoteImage",
"url": "https://github.com/crelies/remoteimage.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/remoteimage",
"dependencies": [
]
}
]
}
Fetching https://github.com/crelies/remoteimage.git
[1/558] Fetching remoteimage
Fetched https://github.com/crelies/remoteimage.git from cache (0.93s)
Creating working copy for https://github.com/crelies/remoteimage.git
Working copy of https://github.com/crelies/remoteimage.git resolved at 4.0.0 (7de2045)
warning: '.resolve-product-dependencies': dependency 'remoteimage' 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/crelies/remoteimage.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/2] Write sources
[1/2] Write swift-version--7754E27361AE5C74.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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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/18] Compiling RemoteImage DefaultRemoteImageServiceFactory.swift
[5/19] Compiling RemoteImage RemoteImageURLDataPublisher.swift
[6/19] Compiling RemoteImage RemoteImageType.swift
[7/19] Compiling RemoteImage UniversalImage.swift
[8/19] Compiling RemoteImage RemoteImageCache.swift
[9/19] Compiling RemoteImage RemoteImageService.swift
[10/19] Compiling RemoteImage DefaultRemoteImageCache.swift
[11/19] Compiling RemoteImage DefaultRemoteImageServiceDependencies.swift
[12/19] Compiling RemoteImage PhotoKitServiceError.swift
[13/19] Compiling RemoteImage RemoteImageState.swift
[14/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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 |
[15/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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 |
[16/19] Compiling RemoteImage RemoteImageServiceError.swift
[17/19] Compiling RemoteImage RemoteImageURLDataPublisherProvider.swift
[18/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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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
[19/19] Compiling RemoteImage RemoteImage.swift
Build complete! (19.84s)
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.