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 Shallows, reference 0.13.4 (3a9d67), with Swift 6.0 for macOS (SPM) on 28 Nov 2024 16:47:28 UTC.

Swift 6 data race errors: 7

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 -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.58.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dreymonde/Shallows.git
Reference: 0.13.4
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dreymonde/Shallows
 * tag               0.13.4     -> FETCH_HEAD
HEAD is now at 3a9d673 add asyncMapKeys operator
Cloned https://github.com/dreymonde/Shallows.git
Revision (git rev-parse @):
3a9d673a7c01d6fd4fbaa5cd592648dbae42d4a7
SUCCESS checkout https://github.com/dreymonde/Shallows.git at 0.13.4
========================================
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": "shallows",
      "name": "Shallows",
      "url": "https://github.com/dreymonde/Shallows.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Shallows",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/dreymonde/Shallows.git
[11/1076] Fetching shallows
Fetched https://github.com/dreymonde/Shallows.git from cache (0.88s)
Creating working copy for https://github.com/dreymonde/Shallows.git
Working copy of https://github.com/dreymonde/Shallows.git resolved at 0.13.4 (3a9d673)
warning: '.resolve-product-dependencies': dependency 'shallows' 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/dreymonde/Shallows.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 -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/6] Write sources
[1/6] Write swift-version--7754E27361AE5C74.txt
[3/20] Compiling Shallows WriteOnlyStorage.swift
[4/21] Compiling Shallows Zip.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Zip.swift:57:13: warning: capture of 'self' with non-sendable type 'CompletionContainer<Left, Right>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 | }
42 |
43 | fileprivate final class CompletionContainer<Left, Right> {
   |                         `- note: generic class 'CompletionContainer' does not conform to the 'Sendable' protocol
44 |
45 |     private var left: Left?
   :
55 |     fileprivate func completeLeft(with left: Left) {
56 |         queue.async {
57 |             self.left = left
   |             `- warning: capture of 'self' with non-sendable type 'CompletionContainer<Left, Right>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
58 |             self.check()
59 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Zip.swift:57:25: warning: capture of 'left' with non-sendable type 'Left' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 | }
42 |
43 | fileprivate final class CompletionContainer<Left, Right> {
   |                                             `- note: consider making generic parameter 'Left' conform to the 'Sendable' protocol
44 |
45 |     private var left: Left?
   :
55 |     fileprivate func completeLeft(with left: Left) {
56 |         queue.async {
57 |             self.left = left
   |                         `- warning: capture of 'left' with non-sendable type 'Left' in a `@Sendable` closure; this is an error in the Swift 6 language mode
58 |             self.check()
59 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Zip.swift:64:13: warning: capture of 'self' with non-sendable type 'CompletionContainer<Left, Right>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 | }
42 |
43 | fileprivate final class CompletionContainer<Left, Right> {
   |                         `- note: generic class 'CompletionContainer' does not conform to the 'Sendable' protocol
44 |
45 |     private var left: Left?
   :
62 |     fileprivate func completeRight(with right: Right) {
63 |         queue.async {
64 |             self.right = right
   |             `- warning: capture of 'self' with non-sendable type 'CompletionContainer<Left, Right>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
65 |             self.check()
66 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Zip.swift:64:26: warning: capture of 'right' with non-sendable type 'Right' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 | }
42 |
43 | fileprivate final class CompletionContainer<Left, Right> {
   |                                                   `- note: consider making generic parameter 'Right' conform to the 'Sendable' protocol
44 |
45 |     private var left: Left?
   :
62 |     fileprivate func completeRight(with right: Right) {
63 |         queue.async {
64 |             self.right = right
   |                          `- warning: capture of 'right' with non-sendable type 'Right' in a `@Sendable` closure; this is an error in the Swift 6 language mode
65 |             self.check()
66 |         }
[5/21] Compiling Shallows SyncStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:5:32: warning: capture of 'function' with non-sendable type '(In) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  3 | internal func dispatched<In>(to queue: DispatchQueue, _ function: @escaping (In) -> ()) -> (In) -> () {
  4 |     return { input in
  5 |         queue.async(execute: { function(input) })
    |                                |- warning: capture of 'function' with non-sendable type '(In) -> ()' 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'
  6 |     }
  7 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:5:41: warning: capture of 'input' with non-sendable type 'In' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  1 | import Dispatch
  2 |
  3 | internal func dispatched<In>(to queue: DispatchQueue, _ function: @escaping (In) -> ()) -> (In) -> () {
    |                          `- note: consider making generic parameter 'In' conform to the 'Sendable' protocol
  4 |     return { input in
  5 |         queue.async(execute: { function(input) })
    |                                         `- warning: capture of 'input' with non-sendable type 'In' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  6 |     }
  7 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:11:32: warning: capture of 'function' with non-sendable type '(In1, In2) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  9 | internal func dispatched<In1, In2>(to queue: DispatchQueue, _ function: @escaping (In1, In2) -> ()) -> (In1, In2) -> () {
 10 |     return { in1, in2 in
 11 |         queue.async(execute: { function(in1, in2) })
    |                                |- warning: capture of 'function' with non-sendable type '(In1, In2) -> ()' 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'
 12 |     }
 13 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:11:41: warning: capture of 'in1' with non-sendable type 'In1' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  7 | }
  8 |
  9 | internal func dispatched<In1, In2>(to queue: DispatchQueue, _ function: @escaping (In1, In2) -> ()) -> (In1, In2) -> () {
    |                          `- note: consider making generic parameter 'In1' conform to the 'Sendable' protocol
 10 |     return { in1, in2 in
 11 |         queue.async(execute: { function(in1, in2) })
    |                                         `- warning: capture of 'in1' with non-sendable type 'In1' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 12 |     }
 13 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:11:46: warning: capture of 'in2' with non-sendable type 'In2' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  7 | }
  8 |
  9 | internal func dispatched<In1, In2>(to queue: DispatchQueue, _ function: @escaping (In1, In2) -> ()) -> (In1, In2) -> () {
    |                               `- note: consider making generic parameter 'In2' conform to the 'Sendable' protocol
 10 |     return { in1, in2 in
 11 |         queue.async(execute: { function(in1, in2) })
    |                                              `- warning: capture of 'in2' with non-sendable type 'In2' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 12 |     }
 13 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:17:32: warning: capture of 'function' with non-sendable type '(In1, In2, In3) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 15 | internal func dispatched<In1, In2, In3>(to queue: DispatchQueue, _ function: @escaping (In1, In2, In3) -> ()) -> (In1, In2, In3) -> () {
 16 |     return { in1, in2, in3 in
 17 |         queue.async(execute: { function(in1, in2, in3) })
    |                                |- warning: capture of 'function' with non-sendable type '(In1, In2, In3) -> ()' 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'
 18 |     }
 19 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:17:41: warning: capture of 'in1' with non-sendable type 'In1' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 13 | }
 14 |
 15 | internal func dispatched<In1, In2, In3>(to queue: DispatchQueue, _ function: @escaping (In1, In2, In3) -> ()) -> (In1, In2, In3) -> () {
    |                          `- note: consider making generic parameter 'In1' conform to the 'Sendable' protocol
 16 |     return { in1, in2, in3 in
 17 |         queue.async(execute: { function(in1, in2, in3) })
    |                                         `- warning: capture of 'in1' with non-sendable type 'In1' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 18 |     }
 19 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:17:46: warning: capture of 'in2' with non-sendable type 'In2' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 13 | }
 14 |
 15 | internal func dispatched<In1, In2, In3>(to queue: DispatchQueue, _ function: @escaping (In1, In2, In3) -> ()) -> (In1, In2, In3) -> () {
    |                               `- note: consider making generic parameter 'In2' conform to the 'Sendable' protocol
 16 |     return { in1, in2, in3 in
 17 |         queue.async(execute: { function(in1, in2, in3) })
    |                                              `- warning: capture of 'in2' with non-sendable type 'In2' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 18 |     }
 19 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:17:51: warning: capture of 'in3' with non-sendable type 'In3' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 13 | }
 14 |
 15 | internal func dispatched<In1, In2, In3>(to queue: DispatchQueue, _ function: @escaping (In1, In2, In3) -> ()) -> (In1, In2, In3) -> () {
    |                                    `- note: consider making generic parameter 'In3' conform to the 'Sendable' protocol
 16 |     return { in1, in2, in3 in
 17 |         queue.async(execute: { function(in1, in2, in3) })
    |                                                   `- warning: capture of 'in3' with non-sendable type 'In3' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 18 |     }
 19 | }
[6/21] Compiling Shallows Shallows.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Shallows.swift:83:23: warning: static property 'isEnabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
81 | public enum ShallowsLog {
82 |
83 |     public static var isEnabled = false
   |                       |- warning: static property 'isEnabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'isEnabled' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'isEnabled' 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
84 |
85 | }
[7/21] Compiling Shallows ShallowsResult.swift
[8/21] Compiling Shallows Storage.swift
[9/21] Compiling Shallows Filename.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:58:27: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 |     }
48 |
49 |     public struct Encoder {
   |                   `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 |         private let encode: (Filename) -> String
   :
56 |
57 |         @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 |         public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
   |                           |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'base64' 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
59 |         public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 |         public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:59:27: warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 |     }
48 |
49 |     public struct Encoder {
   |                   `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 |         private let encode: (Filename) -> String
   :
57 |         @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 |         public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 |         public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
   |                           |- warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'base64URL' 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
60 |         public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
61 |         public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:60:27: warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 |     }
48 |
49 |     public struct Encoder {
   |                   `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 |         private let encode: (Filename) -> String
   :
58 |         public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 |         public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 |         public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
   |                           |- warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'noEncoding' 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
61 |         public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
62 |             return Encoder(encode: encode)
[10/21] Compiling Shallows MemoryStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:58:27: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 |     }
48 |
49 |     public struct Encoder {
   |                   `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 |         private let encode: (Filename) -> String
   :
56 |
57 |         @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 |         public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
   |                           |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'base64' 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
59 |         public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 |         public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:59:27: warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 |     }
48 |
49 |     public struct Encoder {
   |                   `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 |         private let encode: (Filename) -> String
   :
57 |         @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 |         public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 |         public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
   |                           |- warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'base64URL' 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
60 |         public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
61 |         public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:60:27: warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 |     }
48 |
49 |     public struct Encoder {
   |                   `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 |         private let encode: (Filename) -> String
   :
58 |         public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 |         public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 |         public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
   |                           |- warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'noEncoding' 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
61 |         public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
62 |             return Encoder(encode: encode)
[11/21] Compiling Shallows NSCacheStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/NSCacheStorage.swift:6:14: warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
  1 | import Foundation
  2 |
  3 | public final class NSCacheStorage<Key : NSObject, Value : AnyObject> : StorageProtocol {
    |                                   `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  4 |
  5 |     public enum Error : Swift.Error {
  6 |         case noValue(Key)
    |              `- warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
  7 |     }
  8 |
[12/21] Compiling Shallows ReadOnlyStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/NSCacheStorage.swift:6:14: warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
  1 | import Foundation
  2 |
  3 | public final class NSCacheStorage<Key : NSObject, Value : AnyObject> : StorageProtocol {
    |                                   `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  4 |
  5 |     public enum Error : Swift.Error {
  6 |         case noValue(Key)
    |              `- warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
  7 |     }
  8 |
[13/21] Compiling Shallows Async.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:12:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
 10 |         return try await withCheckedThrowingContinuation({ (continuation) in
 11 |             self.retrieve(forKey: key) { result in
 12 |                 continuation.resume(with: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 13 |             }
 14 |         })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:26:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
 24 |         return try await withCheckedThrowingContinuation({ (continuation) in
 25 |             self.retrieve() { result in
 26 |                 continuation.resume(with: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 27 |             }
 28 |         })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:77:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 75 |                 switch result {
 76 |                 case .success(let value):
 77 |                     Task {
    |                          `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 78 |                         do {
 79 |                             let newValue = try await transform(value)
 80 |                             completion(.success(newValue))
    |                             `- note: closure captures 'completion' which is accessible to code in the current task
 81 |                         } catch {
 82 |                             completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:97:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 95 |     -> ReadOnlyStorage<OtherKey, Value> {
 96 |         return ReadOnlyStorage<OtherKey, Value>(storageName: storageName, retrieve: { key, completion in
 97 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 98 |                 do {
 99 |                     let newKey = try await transform(key)
    |                                            |         `- note: closure captures non-Sendable 'key'
    |                                            `- note: closure captures non-Sendable 'transform'
100 |                     self.retrieve(forKey: newKey, completion: completion)
    |                     |                                         `- note: closure captures non-Sendable 'completion'
    |                     `- note: closure captures non-Sendable 'self'
101 |                 } catch {
102 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:129:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
127 |     ) -> WriteOnlyStorage<Key, OtherValue> {
128 |         return WriteOnlyStorage<Key, OtherValue>(storageName: storageName, set: { (value, key, completion) in
129 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let newValue = try await transform(value)
    |                                              |         `- note: closure captures non-Sendable 'value'
    |                                              `- note: closure captures non-Sendable 'transform'
132 |                     self.set(newValue, forKey: key, completion: completion)
    |                     |                          |                `- note: closure captures non-Sendable 'completion'
    |                     |                          `- note: closure captures non-Sendable 'key'
    |                     `- note: closure captures non-Sendable 'self'
133 |                 } catch {
134 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:145:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
143 |     -> WriteOnlyStorage<OtherKey, Value> {
144 |         return WriteOnlyStorage<OtherKey, Value>(storageName: storageName, set: { value, key, completion in
145 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
146 |                 do {
147 |                     let newKey = try await transform(key)
    |                                            |         `- note: closure captures non-Sendable 'key'
    |                                            `- note: closure captures non-Sendable 'transform'
148 |                     self.set(value, forKey: newKey, completion: completion)
    |                     |        |                                  `- note: closure captures non-Sendable 'completion'
    |                     |        `- note: closure captures non-Sendable 'value'
    |                     `- note: closure captures non-Sendable 'self'
149 |                 } catch {
150 |                     completion(.failure(error))
[14/21] Compiling Shallows Composition.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:12:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
 10 |         return try await withCheckedThrowingContinuation({ (continuation) in
 11 |             self.retrieve(forKey: key) { result in
 12 |                 continuation.resume(with: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 13 |             }
 14 |         })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:26:30: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
 24 |         return try await withCheckedThrowingContinuation({ (continuation) in
 25 |             self.retrieve() { result in
 26 |                 continuation.resume(with: result)
    |                              |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: task-isolated 'result' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 27 |             }
 28 |         })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:77:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 75 |                 switch result {
 76 |                 case .success(let value):
 77 |                     Task {
    |                          `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 78 |                         do {
 79 |                             let newValue = try await transform(value)
 80 |                             completion(.success(newValue))
    |                             `- note: closure captures 'completion' which is accessible to code in the current task
 81 |                         } catch {
 82 |                             completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:97:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 95 |     -> ReadOnlyStorage<OtherKey, Value> {
 96 |         return ReadOnlyStorage<OtherKey, Value>(storageName: storageName, retrieve: { key, completion in
 97 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 98 |                 do {
 99 |                     let newKey = try await transform(key)
    |                                            |         `- note: closure captures non-Sendable 'key'
    |                                            `- note: closure captures non-Sendable 'transform'
100 |                     self.retrieve(forKey: newKey, completion: completion)
    |                     |                                         `- note: closure captures non-Sendable 'completion'
    |                     `- note: closure captures non-Sendable 'self'
101 |                 } catch {
102 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:129:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
127 |     ) -> WriteOnlyStorage<Key, OtherValue> {
128 |         return WriteOnlyStorage<Key, OtherValue>(storageName: storageName, set: { (value, key, completion) in
129 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let newValue = try await transform(value)
    |                                              |         `- note: closure captures non-Sendable 'value'
    |                                              `- note: closure captures non-Sendable 'transform'
132 |                     self.set(newValue, forKey: key, completion: completion)
    |                     |                          |                `- note: closure captures non-Sendable 'completion'
    |                     |                          `- note: closure captures non-Sendable 'key'
    |                     `- note: closure captures non-Sendable 'self'
133 |                 } catch {
134 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:145:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
143 |     -> WriteOnlyStorage<OtherKey, Value> {
144 |         return WriteOnlyStorage<OtherKey, Value>(storageName: storageName, set: { value, key, completion in
145 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
146 |                 do {
147 |                     let newKey = try await transform(key)
    |                                            |         `- note: closure captures non-Sendable 'key'
    |                                            `- note: closure captures non-Sendable 'transform'
148 |                     self.set(value, forKey: newKey, completion: completion)
    |                     |        |                                  `- note: closure captures non-Sendable 'completion'
    |                     |        `- note: closure captures non-Sendable 'value'
    |                     `- note: closure captures non-Sendable 'self'
149 |                 } catch {
150 |                     completion(.failure(error))
[15/21] Emitting module Shallows
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskExtensions.swift:61:31: warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
 59 |
 60 | public struct DecodingError<T>: Error {
 61 |     @StringPrinted public var originalData: Data
    |                               `- warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
 62 |     public var rawError: Error
 63 | }
 64 |
 65 | @propertyWrapper
 66 | public struct StringPrinted: CustomStringConvertible {
    |               `- note: consider making struct 'StringPrinted' conform to the 'Sendable' protocol
 67 |     public var wrappedValue: Data
 68 |
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:162:23: warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
 87 | }
 88 |
 89 | public final class DiskStorage : StorageProtocol {
    |                    `- note: class 'DiskStorage' does not conform to the 'Sendable' protocol
 90 |
 91 |     public var storageName: String {
    :
160 | extension DiskStorage {
161 |
162 |     public static let main = DiskStorage(creatingDirectories: true)
    |                       |- warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'main' 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
163 |
164 |     public static func folder(_ folderName: String,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:24:54: warning: 'base64' is deprecated: for any new storages, please use .base64URL
 22 |     public init(folderURL: URL,
 23 |                 diskStorage: Storage<URL, Data> = DiskStorage.main.asStorage(),
 24 |                 filenameEncoder: Filename.Encoder = .base64) {
    |                                                      `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
 25 |         self.diskStorage = diskStorage
 26 |         self.folderURL = folderURL
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:58:27: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 |     }
48 |
49 |     public struct Encoder {
   |                   `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 |         private let encode: (Filename) -> String
   :
56 |
57 |         @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 |         public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
   |                           |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'base64' 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
59 |         public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 |         public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:167:68: warning: 'base64' is deprecated: for any new storages, please use .base64URL
165 |                               in directory: FileManager.SearchPathDirectory,
166 |                               domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
167 |                               filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
    |                                                                    `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
168 |         return DiskStorage.main.folder(folderName, in: directory, domainMask: domainMask, filenameEncoder: filenameEncoder)
169 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:174:61: warning: 'base64' is deprecated: for any new storages, please use .base64URL
172 |                        in directory: FileManager.SearchPathDirectory,
173 |                        domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
174 |                        filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
    |                                                             `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
175 |         return DiskFolderStorage.inDirectory(
176 |             directory,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:59:27: warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 |     }
48 |
49 |     public struct Encoder {
   |                   `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 |         private let encode: (Filename) -> String
   :
57 |         @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 |         public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 |         public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
   |                           |- warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'base64URL' 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
60 |         public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
61 |         public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:60:27: warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 |     }
48 |
49 |     public struct Encoder {
   |                   `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 |         private let encode: (Filename) -> String
   :
58 |         public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 |         public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 |         public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
   |                           |- warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'noEncoding' 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
61 |         public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
62 |             return Encoder(encode: encode)
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/NSCacheStorage.swift:6:14: warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
  1 | import Foundation
  2 |
  3 | public final class NSCacheStorage<Key : NSObject, Value : AnyObject> : StorageProtocol {
    |                                   `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
  4 |
  5 |     public enum Error : Swift.Error {
  6 |         case noValue(Key)
    |              `- warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
  7 |     }
  8 |
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Shallows.swift:83:23: warning: static property 'isEnabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
81 | public enum ShallowsLog {
82 |
83 |     public static var isEnabled = false
   |                       |- warning: static property 'isEnabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'isEnabled' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'isEnabled' 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
84 |
85 | }
[16/21] Compiling Shallows DiskExtensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskExtensions.swift:61:31: warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
 59 |
 60 | public struct DecodingError<T>: Error {
 61 |     @StringPrinted public var originalData: Data
    |                               `- warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
 62 |     public var rawError: Error
 63 | }
 64 |
 65 | @propertyWrapper
 66 | public struct StringPrinted: CustomStringConvertible {
    |               `- note: consider making struct 'StringPrinted' conform to the 'Sendable' protocol
 67 |     public var wrappedValue: Data
 68 |
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:162:23: warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
 87 | }
 88 |
 89 | public final class DiskStorage : StorageProtocol {
    |                    `- note: class 'DiskStorage' does not conform to the 'Sendable' protocol
 90 |
 91 |     public var storageName: String {
    :
160 | extension DiskStorage {
161 |
162 |     public static let main = DiskStorage(creatingDirectories: true)
    |                       |- warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'main' 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
163 |
164 |     public static func folder(_ folderName: String,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:24:54: warning: 'base64' is deprecated: for any new storages, please use .base64URL
 22 |     public init(folderURL: URL,
 23 |                 diskStorage: Storage<URL, Data> = DiskStorage.main.asStorage(),
 24 |                 filenameEncoder: Filename.Encoder = .base64) {
    |                                                      `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
 25 |         self.diskStorage = diskStorage
 26 |         self.folderURL = folderURL
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:58:27: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 |     }
48 |
49 |     public struct Encoder {
   |                   `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 |         private let encode: (Filename) -> String
   :
56 |
57 |         @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 |         public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
   |                           |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'base64' 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
59 |         public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 |         public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:167:68: warning: 'base64' is deprecated: for any new storages, please use .base64URL
165 |                               in directory: FileManager.SearchPathDirectory,
166 |                               domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
167 |                               filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
    |                                                                    `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
168 |         return DiskStorage.main.folder(folderName, in: directory, domainMask: domainMask, filenameEncoder: filenameEncoder)
169 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:174:61: warning: 'base64' is deprecated: for any new storages, please use .base64URL
172 |                        in directory: FileManager.SearchPathDirectory,
173 |                        domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
174 |                        filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
    |                                                             `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
175 |         return DiskFolderStorage.inDirectory(
176 |             directory,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:108:17: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Data>) -> ()' (aka '(Result<Data, any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
106 |             do {
107 |                 let data = try Data.init(contentsOf: key)
108 |                 completion(succeed(with: data))
    |                 |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Data>) -> ()' (aka '(Result<Data, any Error>) -> ()') 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'
109 |             } catch {
110 |                 completion(fail(with: error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:123:21: warning: capture of 'self' with non-sendable type 'DiskStorage' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 | }
 88 |
 89 | public final class DiskStorage : StorageProtocol {
    |                    `- note: class 'DiskStorage' does not conform to the 'Sendable' protocol
 90 |
 91 |     public var storageName: String {
    :
121 |         queue.async {
122 |             do {
123 |                 try self.createDirectoryURLIfNotExisting(for: key)
    |                     `- warning: capture of 'self' with non-sendable type 'DiskStorage' in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 |                 let path = key.path
125 |                 if self.fileManager.createFile(atPath: path,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:128:21: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
126 |                                                contents: value,
127 |                                                attributes: nil) {
128 |                     completion(.success)
    |                     |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') 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'
129 |                 } else {
130 |                     completion(fail(with: Error.cantCreateFile))
[17/21] Compiling Shallows DiskStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskExtensions.swift:61:31: warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
 59 |
 60 | public struct DecodingError<T>: Error {
 61 |     @StringPrinted public var originalData: Data
    |                               `- warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
 62 |     public var rawError: Error
 63 | }
 64 |
 65 | @propertyWrapper
 66 | public struct StringPrinted: CustomStringConvertible {
    |               `- note: consider making struct 'StringPrinted' conform to the 'Sendable' protocol
 67 |     public var wrappedValue: Data
 68 |
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:162:23: warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
 87 | }
 88 |
 89 | public final class DiskStorage : StorageProtocol {
    |                    `- note: class 'DiskStorage' does not conform to the 'Sendable' protocol
 90 |
 91 |     public var storageName: String {
    :
160 | extension DiskStorage {
161 |
162 |     public static let main = DiskStorage(creatingDirectories: true)
    |                       |- warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'main' 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
163 |
164 |     public static func folder(_ folderName: String,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:24:54: warning: 'base64' is deprecated: for any new storages, please use .base64URL
 22 |     public init(folderURL: URL,
 23 |                 diskStorage: Storage<URL, Data> = DiskStorage.main.asStorage(),
 24 |                 filenameEncoder: Filename.Encoder = .base64) {
    |                                                      `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
 25 |         self.diskStorage = diskStorage
 26 |         self.folderURL = folderURL
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:58:27: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 |     }
48 |
49 |     public struct Encoder {
   |                   `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 |         private let encode: (Filename) -> String
   :
56 |
57 |         @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 |         public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
   |                           |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'base64' 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
59 |         public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 |         public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:167:68: warning: 'base64' is deprecated: for any new storages, please use .base64URL
165 |                               in directory: FileManager.SearchPathDirectory,
166 |                               domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
167 |                               filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
    |                                                                    `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
168 |         return DiskStorage.main.folder(folderName, in: directory, domainMask: domainMask, filenameEncoder: filenameEncoder)
169 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:174:61: warning: 'base64' is deprecated: for any new storages, please use .base64URL
172 |                        in directory: FileManager.SearchPathDirectory,
173 |                        domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
174 |                        filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
    |                                                             `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
175 |         return DiskFolderStorage.inDirectory(
176 |             directory,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:108:17: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Data>) -> ()' (aka '(Result<Data, any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
106 |             do {
107 |                 let data = try Data.init(contentsOf: key)
108 |                 completion(succeed(with: data))
    |                 |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Data>) -> ()' (aka '(Result<Data, any Error>) -> ()') 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'
109 |             } catch {
110 |                 completion(fail(with: error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:123:21: warning: capture of 'self' with non-sendable type 'DiskStorage' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 | }
 88 |
 89 | public final class DiskStorage : StorageProtocol {
    |                    `- note: class 'DiskStorage' does not conform to the 'Sendable' protocol
 90 |
 91 |     public var storageName: String {
    :
121 |         queue.async {
122 |             do {
123 |                 try self.createDirectoryURLIfNotExisting(for: key)
    |                     `- warning: capture of 'self' with non-sendable type 'DiskStorage' in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 |                 let path = key.path
125 |                 if self.fileManager.createFile(atPath: path,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:128:21: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
126 |                                                contents: value,
127 |                                                attributes: nil) {
128 |                     completion(.success)
    |                     |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') 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'
129 |                 } else {
130 |                     completion(fail(with: Error.cantCreateFile))
[17/21] Write Objects.LinkFileList
[19/21] Archiving libShallowsStatic.a
[20/21] Linking libShallowsDynamic.dylib
Build complete! (10.48s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Shallows",
  "name" : "Shallows",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Shallows",
      "targets" : [
        "Shallows"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "ShallowsStatic",
      "targets" : [
        "Shallows"
      ],
      "type" : {
        "library" : [
          "static"
        ]
      }
    },
    {
      "name" : "ShallowsDynamic",
      "targets" : [
        "Shallows"
      ],
      "type" : {
        "library" : [
          "dynamic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ShallowsTests",
      "module_type" : "SwiftTarget",
      "name" : "ShallowsTests",
      "path" : "Tests/ShallowsTests",
      "sources" : [
        "AdditionalSpec.swift",
        "CompositionSpec.swift",
        "DiskStorageSpec.swift",
        "MemoryStorageSpec.swift",
        "ResultSpec.swift",
        "Spectre/Case.swift",
        "Spectre/Context.swift",
        "Spectre/Expectation.swift",
        "Spectre/Failure.swift",
        "Spectre/Global.swift",
        "Spectre/GlobalContext.swift",
        "Spectre/Reporter.swift",
        "Spectre/Reporters.swift",
        "TestExtensions.swift",
        "XCTest.swift",
        "ZipSpec.swift"
      ],
      "target_dependencies" : [
        "Shallows"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Shallows",
      "module_type" : "SwiftTarget",
      "name" : "Shallows",
      "path" : "Sources/Shallows",
      "product_memberships" : [
        "Shallows",
        "ShallowsStatic",
        "ShallowsDynamic"
      ],
      "sources" : [
        "Async.swift",
        "Composition.swift",
        "DiskStorage/DiskExtensions.swift",
        "DiskStorage/DiskStorage.swift",
        "DiskStorage/Filename.swift",
        "MemoryStorage.swift",
        "NSCacheStorage.swift",
        "ReadOnlyStorage.swift",
        "Shallows.swift",
        "ShallowsResult.swift",
        "Storage.swift",
        "SyncStorage.swift",
        "WriteOnlyStorage.swift",
        "Zip.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Done.