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

The Swift Package Index logo.Swift Package Index

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

Build Information

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

Swift 6 data race errors: 7

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dreymonde/Shallows.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dreymonde/Shallows
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
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 master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/dreymonde/Shallows.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/6] Write sources
[1/6] Write swift-version-6F35C1178C84523A.txt
[3/20] Compiling Shallows WriteOnlyStorage.swift
[4/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 | }
[5/21] Compiling Shallows Storage.swift
[6/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 |         }
[7/21] Compiling Shallows ShallowsResult.swift
[8/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 non-isolated 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 non-isolated 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 | }
[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:79:54: warning: capture of 'transform' with non-sendable type '(Self.Value) async throws -> OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 77 |                     Task {
 78 |                         do {
 79 |                             let newValue = try await transform(value)
    |                                                      |- warning: capture of 'transform' with non-sendable type '(Self.Value) async throws -> OtherValue' 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'
 80 |                             completion(.success(newValue))
 81 |                         } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:79:64: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 77 |                     Task {
 78 |                         do {
 79 |                             let newValue = try await transform(value)
    |                                                                `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 80 |                             completion(.success(newValue))
 81 |                         } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:80:29: warning: capture of 'completion' with non-sendable type '(Result<OtherValue, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 78 |                         do {
 79 |                             let newValue = try await transform(value)
 80 |                             completion(.success(newValue))
    |                             |- warning: capture of 'completion' with non-sendable type '(Result<OtherValue, 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'
 81 |                         } catch {
 82 |                             completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:99:44: warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 97 |             Task {
 98 |                 do {
 99 |                     let newKey = try await transform(key)
    |                                            |- warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' 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'
100 |                     self.retrieve(forKey: newKey, completion: completion)
101 |                 } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:99:54: warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 90 |     }
 91 |
 92 |     public func asyncMapKeys<OtherKey>(
    |                              `- note: consider making generic parameter 'OtherKey' conform to the 'Sendable' protocol
 93 |         to type: OtherKey.Type = OtherKey.self,
 94 |         _ transform: @escaping (OtherKey) async throws -> Key)
    :
 97 |             Task {
 98 |                 do {
 99 |                     let newKey = try await transform(key)
    |                                                      `- warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
100 |                     self.retrieve(forKey: newKey, completion: completion)
101 |                 } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:100:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 98 |                 do {
 99 |                     let newKey = try await transform(key)
100 |                     self.retrieve(forKey: newKey, completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
101 |                 } catch {
102 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:100:63: warning: capture of 'completion' with non-sendable type '(Result<Self.Value, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 98 |                 do {
 99 |                     let newKey = try await transform(key)
100 |                     self.retrieve(forKey: newKey, completion: completion)
    |                                                               |- warning: capture of 'completion' with non-sendable type '(Result<Self.Value, 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'
101 |                 } catch {
102 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:131:46: warning: capture of 'transform' with non-sendable type '(OtherValue) async throws -> Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
129 |             Task {
130 |                 do {
131 |                     let newValue = try await transform(value)
    |                                              |- warning: capture of 'transform' with non-sendable type '(OtherValue) async throws -> Self.Value' 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'
132 |                     self.set(newValue, forKey: key, completion: completion)
133 |                 } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:131:56: warning: capture of 'value' with non-sendable type 'OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
122 | @available(tvOS 13.0.0, *)
123 | extension WriteOnlyStorageProtocol {
124 |     public func asyncMapValues<OtherValue>(
    |                                `- note: consider making generic parameter 'OtherValue' conform to the 'Sendable' protocol
125 |         to type: OtherValue.Type = OtherValue.self,
126 |         _ transform: @escaping (OtherValue) async throws -> Value
    :
129 |             Task {
130 |                 do {
131 |                     let newValue = try await transform(value)
    |                                                        `- warning: capture of 'value' with non-sendable type 'OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 |                     self.set(newValue, forKey: key, completion: completion)
133 |                 } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let newValue = try await transform(value)
132 |                     self.set(newValue, forKey: key, completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 |                 } catch {
134 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:48: warning: capture of 'key' with non-sendable type 'Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let newValue = try await transform(value)
132 |                     self.set(newValue, forKey: key, completion: completion)
    |                                                `- warning: capture of 'key' with non-sendable type 'Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 |                 } catch {
134 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:65: 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
130 |                 do {
131 |                     let newValue = try await transform(value)
132 |                     self.set(newValue, forKey: key, completion: completion)
    |                                                                 |- 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'
133 |                 } catch {
134 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:147:44: warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
145 |             Task {
146 |                 do {
147 |                     let newKey = try await transform(key)
    |                                            |- warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' 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'
148 |                     self.set(value, forKey: newKey, completion: completion)
149 |                 } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:147:54: warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
138 |     }
139 |
140 |     public func asyncMapKeys<OtherKey>(
    |                              `- note: consider making generic parameter 'OtherKey' conform to the 'Sendable' protocol
141 |         to type: OtherKey.Type = OtherKey.self,
142 |         _ transform: @escaping (OtherKey) async throws -> Key)
    :
145 |             Task {
146 |                 do {
147 |                     let newKey = try await transform(key)
    |                                                      `- warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
148 |                     self.set(value, forKey: newKey, completion: completion)
149 |                 } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
146 |                 do {
147 |                     let newKey = try await transform(key)
148 |                     self.set(value, forKey: newKey, completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
149 |                 } catch {
150 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:30: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
146 |                 do {
147 |                     let newKey = try await transform(key)
148 |                     self.set(value, forKey: newKey, completion: completion)
    |                              `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
149 |                 } catch {
150 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:65: 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
146 |                 do {
147 |                     let newKey = try await transform(key)
148 |                     self.set(value, forKey: newKey, completion: completion)
    |                                                                 |- 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'
149 |                 } catch {
150 |                     completion(.failure(error))
[14/21] Compiling Shallows Composition.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:79:54: warning: capture of 'transform' with non-sendable type '(Self.Value) async throws -> OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 77 |                     Task {
 78 |                         do {
 79 |                             let newValue = try await transform(value)
    |                                                      |- warning: capture of 'transform' with non-sendable type '(Self.Value) async throws -> OtherValue' 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'
 80 |                             completion(.success(newValue))
 81 |                         } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:79:64: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 77 |                     Task {
 78 |                         do {
 79 |                             let newValue = try await transform(value)
    |                                                                `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 80 |                             completion(.success(newValue))
 81 |                         } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:80:29: warning: capture of 'completion' with non-sendable type '(Result<OtherValue, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 78 |                         do {
 79 |                             let newValue = try await transform(value)
 80 |                             completion(.success(newValue))
    |                             |- warning: capture of 'completion' with non-sendable type '(Result<OtherValue, 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'
 81 |                         } catch {
 82 |                             completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:99:44: warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 97 |             Task {
 98 |                 do {
 99 |                     let newKey = try await transform(key)
    |                                            |- warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' 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'
100 |                     self.retrieve(forKey: newKey, completion: completion)
101 |                 } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:99:54: warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 90 |     }
 91 |
 92 |     public func asyncMapKeys<OtherKey>(
    |                              `- note: consider making generic parameter 'OtherKey' conform to the 'Sendable' protocol
 93 |         to type: OtherKey.Type = OtherKey.self,
 94 |         _ transform: @escaping (OtherKey) async throws -> Key)
    :
 97 |             Task {
 98 |                 do {
 99 |                     let newKey = try await transform(key)
    |                                                      `- warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
100 |                     self.retrieve(forKey: newKey, completion: completion)
101 |                 } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:100:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 98 |                 do {
 99 |                     let newKey = try await transform(key)
100 |                     self.retrieve(forKey: newKey, completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
101 |                 } catch {
102 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:100:63: warning: capture of 'completion' with non-sendable type '(Result<Self.Value, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 98 |                 do {
 99 |                     let newKey = try await transform(key)
100 |                     self.retrieve(forKey: newKey, completion: completion)
    |                                                               |- warning: capture of 'completion' with non-sendable type '(Result<Self.Value, 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'
101 |                 } catch {
102 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:131:46: warning: capture of 'transform' with non-sendable type '(OtherValue) async throws -> Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
129 |             Task {
130 |                 do {
131 |                     let newValue = try await transform(value)
    |                                              |- warning: capture of 'transform' with non-sendable type '(OtherValue) async throws -> Self.Value' 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'
132 |                     self.set(newValue, forKey: key, completion: completion)
133 |                 } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:131:56: warning: capture of 'value' with non-sendable type 'OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
122 | @available(tvOS 13.0.0, *)
123 | extension WriteOnlyStorageProtocol {
124 |     public func asyncMapValues<OtherValue>(
    |                                `- note: consider making generic parameter 'OtherValue' conform to the 'Sendable' protocol
125 |         to type: OtherValue.Type = OtherValue.self,
126 |         _ transform: @escaping (OtherValue) async throws -> Value
    :
129 |             Task {
130 |                 do {
131 |                     let newValue = try await transform(value)
    |                                                        `- warning: capture of 'value' with non-sendable type 'OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 |                     self.set(newValue, forKey: key, completion: completion)
133 |                 } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let newValue = try await transform(value)
132 |                     self.set(newValue, forKey: key, completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 |                 } catch {
134 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:48: warning: capture of 'key' with non-sendable type 'Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 |                 do {
131 |                     let newValue = try await transform(value)
132 |                     self.set(newValue, forKey: key, completion: completion)
    |                                                `- warning: capture of 'key' with non-sendable type 'Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 |                 } catch {
134 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:65: 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
130 |                 do {
131 |                     let newValue = try await transform(value)
132 |                     self.set(newValue, forKey: key, completion: completion)
    |                                                                 |- 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'
133 |                 } catch {
134 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:147:44: warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
145 |             Task {
146 |                 do {
147 |                     let newKey = try await transform(key)
    |                                            |- warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' 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'
148 |                     self.set(value, forKey: newKey, completion: completion)
149 |                 } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:147:54: warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
138 |     }
139 |
140 |     public func asyncMapKeys<OtherKey>(
    |                              `- note: consider making generic parameter 'OtherKey' conform to the 'Sendable' protocol
141 |         to type: OtherKey.Type = OtherKey.self,
142 |         _ transform: @escaping (OtherKey) async throws -> Key)
    :
145 |             Task {
146 |                 do {
147 |                     let newKey = try await transform(key)
    |                                                      `- warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
148 |                     self.set(value, forKey: newKey, completion: completion)
149 |                 } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
146 |                 do {
147 |                     let newKey = try await transform(key)
148 |                     self.set(value, forKey: newKey, completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
149 |                 } catch {
150 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:30: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
146 |                 do {
147 |                     let newKey = try await transform(key)
148 |                     self.set(value, forKey: newKey, completion: completion)
    |                              `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
149 |                 } catch {
150 |                     completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:65: 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
146 |                 do {
147 |                     let newKey = try await transform(key)
148 |                     self.set(value, forKey: newKey, completion: completion)
    |                                                                 |- 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'
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 non-isolated 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 non-isolated 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! (23.07s)
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.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.