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

Failed to build AllCache, reference master (2fe87f), with Swift 6.1 for Linux on 26 Apr 2025 02:11:19 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/JuanjoArreola/AllCache.git
Reference: master
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/JuanjoArreola/AllCache
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 2fe87f2 Merge branch 'new'
Cloned https://github.com/JuanjoArreola/AllCache.git
Revision (git rev-parse @):
2fe87f2690c13cb7a012f5346cf3824477aec512
SUCCESS checkout https://github.com/JuanjoArreola/AllCache.git at master
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.1
Building package at path:  $PWD
https://github.com/JuanjoArreola/AllCache.git
https://github.com/JuanjoArreola/AllCache.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
    {
      "identity" : "shallowpromises",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.7.1",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/JuanjoArreola/ShallowPromises.git"
    },
    {
      "identity" : "logg",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.4.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/JuanjoArreola/Logg.git"
    }
  ],
  "manifest_display_name" : "AllCache",
  "name" : "AllCache",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "AllCache",
      "targets" : [
        "AllCache",
        "ImageCache"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ImageCacheTests",
      "module_type" : "SwiftTarget",
      "name" : "ImageCacheTests",
      "path" : "Tests/ImageCacheTests",
      "sources" : [
        "ImageCacheTests.swift"
      ],
      "target_dependencies" : [
        "ImageCache"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ImageCache",
      "module_type" : "SwiftTarget",
      "name" : "ImageCache",
      "path" : "Sources/ImageCache",
      "product_memberships" : [
        "AllCache"
      ],
      "sources" : [
        "ImageCache.swift",
        "ImageFetcher.swift",
        "ImageResizer.swift",
        "ImageSerializer.swift",
        "JPEGImageSerializer.swift",
        "Networking.swift",
        "PNGImageSerializer.swift",
        "ResizeFunctions.swift",
        "UIButton+ImageCache.swift",
        "UIImageView+ImageCache.swift",
        "UIViewContentMode+Util.swift"
      ],
      "target_dependencies" : [
        "AllCache"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AllCacheTests",
      "module_type" : "SwiftTarget",
      "name" : "AllCacheTests",
      "path" : "Tests/AllCacheTests",
      "sources" : [
        "CacheTests.swift",
        "DiskTests.swift",
        "Icecream.swift"
      ],
      "target_dependencies" : [
        "AllCache"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AllCache",
      "module_type" : "SwiftTarget",
      "name" : "AllCache",
      "path" : "Sources/AllCache",
      "product_dependencies" : [
        "ShallowPromises",
        "Logg"
      ],
      "product_memberships" : [
        "AllCache"
      ],
      "sources" : [
        "AllCacheFormatter.swift",
        "Cache.swift",
        "DiskCache.swift",
        "ElementDescriptor.swift",
        "Fetcher.swift",
        "JSONSerializer.swift",
        "MemoryCache.swift",
        "Processor.swift",
        "Serializer.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Fetching https://github.com/JuanjoArreola/ShallowPromises.git
Fetching https://github.com/JuanjoArreola/Logg.git
[1/63] Fetching shallowpromises
[63/222] Fetching shallowpromises, logg
Fetched https://github.com/JuanjoArreola/ShallowPromises.git from cache (0.22s)
Fetched https://github.com/JuanjoArreola/Logg.git from cache (0.22s)
Computing version for https://github.com/JuanjoArreola/ShallowPromises.git
Computed https://github.com/JuanjoArreola/ShallowPromises.git at 0.7.1 (0.81s)
Computing version for https://github.com/JuanjoArreola/Logg.git
Computed https://github.com/JuanjoArreola/Logg.git at 2.4.1 (0.69s)
Creating working copy for https://github.com/JuanjoArreola/ShallowPromises.git
Working copy of https://github.com/JuanjoArreola/ShallowPromises.git resolved at 0.7.1
Creating working copy for https://github.com/JuanjoArreola/Logg.git
Working copy of https://github.com/JuanjoArreola/Logg.git resolved at 2.4.1
Building for debugging...
[0/5] Write sources
[4/5] Write swift-version-24593BA9C3E375BF.txt
[6/19] Compiling Logg LogFormatter.swift
[7/19] Compiling Logg LogLevel.swift
[8/19] Compiling Logg DefaultFormatter.swift
[9/20] Compiling Logg ConsoleLogger.swift
[10/20] Compiling ShallowPromises Cancellable.swift
[11/20] Emitting module Logg
[12/20] Compiling Logg CompositeLogger.swift
[13/20] Compiling Logg ConsoleFormatter.swift
[14/20] Compiling Logg FileLogger.swift
[15/20] Compiling Logg LogContext.swift
[16/20] Compiling ShallowPromises Futures.swift
[17/20] Emitting module ShallowPromises
[18/20] Compiling ShallowPromises Promise.swift
[19/20] Compiling ShallowPromises PromiseFailure.swift
[20/21] Compiling Logg Logger.swift
[23/31] Compiling AllCache MemoryCache.swift
[24/31] Compiling AllCache Processor.swift
[25/32] Compiling AllCache ElementDescriptor.swift
[26/32] Compiling AllCache JSONSerializer.swift
[27/32] Compiling AllCache Fetcher.swift
[28/32] Compiling AllCache DiskCache.swift
/host/spi-builder-workspace/Sources/AllCache/DiskCache.swift:44:17: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
 42 |             result = try serializer.deserialize(Data(contentsOf: url))
 43 |             diskQueue.async(flags: .barrier) {
 44 |                 self.updateLastAccess(ofKey: key)
    |                 `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 45 |             }
 46 |         }
/host/spi-builder-workspace/Sources/AllCache/DiskCache.swift:52:23: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
 50 |     public func removeInstance(forKey key: String) throws {
 51 |         diskQueue.async(flags: .barrier) {
 52 |             let url = self.cacheDirectory.appendingPathComponent(validkey(from: key))
    |                       `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 53 |             let attributes = try? self.fileManager.attributesOfItem(atPath: url.path)
 54 |             try? self.fileManager.removeItem(at: url)
/host/spi-builder-workspace/Sources/AllCache/DiskCache.swift:64:36: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
 62 |         diskQueue.async(flags: .barrier) {
 63 |             let resourceKeys: [URLResourceKey] = [.contentAccessDateKey, .totalFileAllocatedSizeKey]
 64 |             guard let enumerator = self.cacheDirectory.enumerator(includingPropertiesForKeys: resourceKeys) else {
    |                                    `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 65 |                 return
 66 |             }
/host/spi-builder-workspace/Sources/AllCache/DiskCache.swift:68:28: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in an isolated closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
 66 |             }
 67 |             let urls = enumerator.compactMap({ $0 as? URL }).filter({ ($0.contentAccessDate ?? limit) < limit })
 68 |             urls.forEach({ self.removeIfPossible(url: $0) })
    |                            `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in an isolated closure; this is an error in the Swift 6 language mode
 69 |         }
 70 |     }
/host/spi-builder-workspace/Sources/AllCache/DiskCache.swift:87:48: error: type 'Data.WritingOptions' has no member 'atomicWrite'
 85 |         diskQueue.async(flags: .barrier) {
 86 |             let url = self.cacheDirectory.appendingPathComponent(validkey(from: key))
 87 |             try? data.write(to: url, options: .atomicWrite)
    |                                                `- error: type 'Data.WritingOptions' has no member 'atomicWrite'
 88 |             self.size += data.count
 89 |             self.restrictSize()
/host/spi-builder-workspace/Sources/AllCache/DiskCache.swift:95:36: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
 93 |     public func clear() {
 94 |         diskQueue.async(flags: .barrier) {
 95 |             guard let enumerator = self.cacheDirectory.enumerator(includingPropertiesForKeys: nil) else { return }
    |                                    `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 96 |             for case let url as URL in enumerator {
 97 |                 self.removeIfPossible(url: url)
/host/spi-builder-workspace/Sources/AllCache/DiskCache.swift:120:16: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
118 |         }
119 |         diskQueue.async {
120 |             if self.shrinking { return }
    |                `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
121 |             self.shrinking = true
122 |             do {
[29/32] Emitting module AllCache
/host/spi-builder-workspace/Sources/AllCache/AllCacheFormatter.swift:11:12: warning: let 'logger' is not concurrency-safe because non-'Sendable' type 'CompositeLogger' may have shared mutable state; this is an error in the Swift 6 language mode
 9 | import Logg
10 |
11 | public let logger = CompositeLogger(loggers: [ConsoleLogger(formatter: AllCacheFormatter(), level: [.error, .fault])])
   |            `- warning: let 'logger' is not concurrency-safe because non-'Sendable' type 'CompositeLogger' may have shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class AllCacheFormatter: ConsoleFormatter {
/host/spi-builder-workspace/.build/checkouts/Logg/Sources/Logg/CompositeLogger.swift:3:14: note: class 'CompositeLogger' does not conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public class CompositeLogger {
   |              `- note: class 'CompositeLogger' does not conform to the 'Sendable' protocol
 4 |
 5 |     public convenience init() {
/host/spi-builder-workspace/Sources/AllCache/AllCacheFormatter.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logg'
 7 |
 8 | import Foundation
 9 | import Logg
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logg'
10 |
11 | public let logger = CompositeLogger(loggers: [ConsoleLogger(formatter: AllCacheFormatter(), level: [.error, .fault])])
   |            |- note: add '@MainActor' to make let 'logger' part of global actor 'MainActor'
   |            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 | class AllCacheFormatter: ConsoleFormatter {
[30/32] Compiling AllCache AllCacheFormatter.swift
/host/spi-builder-workspace/Sources/AllCache/AllCacheFormatter.swift:11:12: warning: let 'logger' is not concurrency-safe because non-'Sendable' type 'CompositeLogger' may have shared mutable state; this is an error in the Swift 6 language mode
 9 | import Logg
10 |
11 | public let logger = CompositeLogger(loggers: [ConsoleLogger(formatter: AllCacheFormatter(), level: [.error, .fault])])
   |            `- warning: let 'logger' is not concurrency-safe because non-'Sendable' type 'CompositeLogger' may have shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class AllCacheFormatter: ConsoleFormatter {
/host/spi-builder-workspace/.build/checkouts/Logg/Sources/Logg/CompositeLogger.swift:3:14: note: class 'CompositeLogger' does not conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public class CompositeLogger {
   |              `- note: class 'CompositeLogger' does not conform to the 'Sendable' protocol
 4 |
 5 |     public convenience init() {
/host/spi-builder-workspace/Sources/AllCache/AllCacheFormatter.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logg'
 7 |
 8 | import Foundation
 9 | import Logg
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logg'
10 |
11 | public let logger = CompositeLogger(loggers: [ConsoleLogger(formatter: AllCacheFormatter(), level: [.error, .fault])])
   |            |- note: add '@MainActor' to make let 'logger' part of global actor 'MainActor'
   |            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 | class AllCacheFormatter: ConsoleFormatter {
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:52:13: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
 50 |         let promise = createPromise(for: descriptor)
 51 |         workingQueue.async {
 52 |             self.searchOnDisk(descriptor: descriptor, promise: promise)
    |             `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 53 |         }
 54 |
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:52:43: warning: capture of 'descriptor' with non-sendable type 'ElementDescriptor<T, F>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 |         let promise = createPromise(for: descriptor)
 51 |         workingQueue.async {
 52 |             self.searchOnDisk(descriptor: descriptor, promise: promise)
    |                                           `- warning: capture of 'descriptor' with non-sendable type 'ElementDescriptor<T, F>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 53 |         }
 54 |
/host/spi-builder-workspace/Sources/AllCache/ElementDescriptor.swift:10:15: note: consider making generic struct 'ElementDescriptor' conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | public struct ElementDescriptor<T, F: Fetcher> where F.T == T {
   |               `- note: consider making generic struct 'ElementDescriptor' conform to the 'Sendable' protocol
11 |     public var key: String
12 |     public var fetcher: F?
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:52:64: warning: capture of 'promise' with non-sendable type 'Promise<T>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 |         let promise = createPromise(for: descriptor)
 51 |         workingQueue.async {
 52 |             self.searchOnDisk(descriptor: descriptor, promise: promise)
    |                                                                `- warning: capture of 'promise' with non-sendable type 'Promise<T>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 53 |         }
 54 |
/host/spi-builder-workspace/.build/checkouts/ShallowPromises/Sources/ShallowPromises/Promise.swift:12:12: note: generic class 'Promise' does not conform to the 'Sendable' protocol
 10 | private let syncQueue = DispatchQueue(label: "com.shallowpromises.SyncQueue", attributes: [])
 11 |
 12 | open class Promise<U>: Cancellable {
    |            `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 13 |
 14 |     private var result: U?
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ShallowPromises'
  1 | import Foundation
  2 | import ShallowPromises
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ShallowPromises'
  3 |
  4 | private let workingQueue = DispatchQueue(label: "com.allcache.WorkingQueue", attributes: .concurrent)
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:139:18: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
137 |         memoryCache.set(instance, forKey: key)
138 |         workingQueue.async {
139 |             try? self.diskCache.set(instance, forKey: key)
    |                  `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
140 |         }
141 |     }
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:139:37: warning: capture of 'instance' with non-sendable type 'T' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |                  `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
137 |         memoryCache.set(instance, forKey: key)
138 |         workingQueue.async {
139 |             try? self.diskCache.set(instance, forKey: key)
    |                                     `- warning: capture of 'instance' with non-sendable type 'T' in a '@Sendable' closure; this is an error in the Swift 6 language mode
140 |         }
141 |     }
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:148:18: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
146 |         memoryCache.removeInstance(forKey: key)
147 |         workingQueue.async {
148 |             try? self.diskCache.removeInstance(forKey: key)
    |                  `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
149 |         }
150 |     }
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:155:13: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
153 |         memoryCache.clear()
154 |         workingQueue.async {
155 |             self.diskCache.clear()
    |             `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
156 |         }
157 |     }
[31/32] Compiling AllCache Cache.swift
/host/spi-builder-workspace/Sources/AllCache/AllCacheFormatter.swift:11:12: warning: let 'logger' is not concurrency-safe because non-'Sendable' type 'CompositeLogger' may have shared mutable state; this is an error in the Swift 6 language mode
 9 | import Logg
10 |
11 | public let logger = CompositeLogger(loggers: [ConsoleLogger(formatter: AllCacheFormatter(), level: [.error, .fault])])
   |            `- warning: let 'logger' is not concurrency-safe because non-'Sendable' type 'CompositeLogger' may have shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class AllCacheFormatter: ConsoleFormatter {
/host/spi-builder-workspace/.build/checkouts/Logg/Sources/Logg/CompositeLogger.swift:3:14: note: class 'CompositeLogger' does not conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public class CompositeLogger {
   |              `- note: class 'CompositeLogger' does not conform to the 'Sendable' protocol
 4 |
 5 |     public convenience init() {
/host/spi-builder-workspace/Sources/AllCache/AllCacheFormatter.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logg'
 7 |
 8 | import Foundation
 9 | import Logg
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logg'
10 |
11 | public let logger = CompositeLogger(loggers: [ConsoleLogger(formatter: AllCacheFormatter(), level: [.error, .fault])])
   |            |- note: add '@MainActor' to make let 'logger' part of global actor 'MainActor'
   |            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 | class AllCacheFormatter: ConsoleFormatter {
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:52:13: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
 50 |         let promise = createPromise(for: descriptor)
 51 |         workingQueue.async {
 52 |             self.searchOnDisk(descriptor: descriptor, promise: promise)
    |             `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 53 |         }
 54 |
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:52:43: warning: capture of 'descriptor' with non-sendable type 'ElementDescriptor<T, F>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 |         let promise = createPromise(for: descriptor)
 51 |         workingQueue.async {
 52 |             self.searchOnDisk(descriptor: descriptor, promise: promise)
    |                                           `- warning: capture of 'descriptor' with non-sendable type 'ElementDescriptor<T, F>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 53 |         }
 54 |
/host/spi-builder-workspace/Sources/AllCache/ElementDescriptor.swift:10:15: note: consider making generic struct 'ElementDescriptor' conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | public struct ElementDescriptor<T, F: Fetcher> where F.T == T {
   |               `- note: consider making generic struct 'ElementDescriptor' conform to the 'Sendable' protocol
11 |     public var key: String
12 |     public var fetcher: F?
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:52:64: warning: capture of 'promise' with non-sendable type 'Promise<T>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 |         let promise = createPromise(for: descriptor)
 51 |         workingQueue.async {
 52 |             self.searchOnDisk(descriptor: descriptor, promise: promise)
    |                                                                `- warning: capture of 'promise' with non-sendable type 'Promise<T>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 53 |         }
 54 |
/host/spi-builder-workspace/.build/checkouts/ShallowPromises/Sources/ShallowPromises/Promise.swift:12:12: note: generic class 'Promise' does not conform to the 'Sendable' protocol
 10 | private let syncQueue = DispatchQueue(label: "com.shallowpromises.SyncQueue", attributes: [])
 11 |
 12 | open class Promise<U>: Cancellable {
    |            `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 13 |
 14 |     private var result: U?
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ShallowPromises'
  1 | import Foundation
  2 | import ShallowPromises
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ShallowPromises'
  3 |
  4 | private let workingQueue = DispatchQueue(label: "com.allcache.WorkingQueue", attributes: .concurrent)
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:139:18: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
137 |         memoryCache.set(instance, forKey: key)
138 |         workingQueue.async {
139 |             try? self.diskCache.set(instance, forKey: key)
    |                  `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
140 |         }
141 |     }
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:139:37: warning: capture of 'instance' with non-sendable type 'T' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |                  `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
137 |         memoryCache.set(instance, forKey: key)
138 |         workingQueue.async {
139 |             try? self.diskCache.set(instance, forKey: key)
    |                                     `- warning: capture of 'instance' with non-sendable type 'T' in a '@Sendable' closure; this is an error in the Swift 6 language mode
140 |         }
141 |     }
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:148:18: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
146 |         memoryCache.removeInstance(forKey: key)
147 |         workingQueue.async {
148 |             try? self.diskCache.removeInstance(forKey: key)
    |                  `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
149 |         }
150 |     }
/host/spi-builder-workspace/Sources/AllCache/Cache.swift:155:13: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
153 |         memoryCache.clear()
154 |         workingQueue.async {
155 |             self.diskCache.clear()
    |             `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a '@Sendable' closure; this is an error in the Swift 6 language mode
156 |         }
157 |     }
[32/32] Compiling AllCache Serializer.swift
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-24593BA9C3E375BF.txt
[2/15] Compiling ShallowPromises PromiseFailure.swift
[3/15] Compiling Logg LogContext.swift
[4/16] Compiling Logg ConsoleLogger.swift
[5/16] Emitting module Logg
[6/16] Compiling Logg CompositeLogger.swift
[7/16] Compiling Logg ConsoleFormatter.swift
[8/16] Compiling Logg LogFormatter.swift
[9/16] Compiling Logg LogLevel.swift
[10/16] Compiling Logg DefaultFormatter.swift
[11/16] Compiling Logg Logger.swift
[12/16] Emitting module ShallowPromises
[13/16] Compiling ShallowPromises Cancellable.swift
[14/16] Compiling ShallowPromises Futures.swift
[15/16] Compiling ShallowPromises Promise.swift
[16/17] Compiling Logg FileLogger.swift
[19/27] Compiling AllCache Processor.swift
[20/27] Compiling AllCache MemoryCache.swift
[21/28] Compiling AllCache JSONSerializer.swift
[22/28] Compiling AllCache ElementDescriptor.swift
[23/28] Compiling AllCache Fetcher.swift
[24/28] Emitting module AllCache
[25/28] Compiling AllCache AllCacheFormatter.swift
[26/28] Compiling AllCache Cache.swift
[27/28] Compiling AllCache DiskCache.swift
/host/spi-builder-workspace/Sources/AllCache/DiskCache.swift:87:48: error: type 'Data.WritingOptions' has no member 'atomicWrite'
 85 |         diskQueue.async(flags: .barrier) {
 86 |             let url = self.cacheDirectory.appendingPathComponent(validkey(from: key))
 87 |             try? data.write(to: url, options: .atomicWrite)
    |                                                `- error: type 'Data.WritingOptions' has no member 'atomicWrite'
 88 |             self.size += data.count
 89 |             self.restrictSize()
[28/28] Compiling AllCache Serializer.swift
BUILD FAILURE 6.1 linux