The Swift Package Index logo.Swift Package Index

Build Information

Successful build of TUSKit, reference 3.7.1 (167938), with Swift 6.1 for macOS (SPM) on 27 Feb 2026 23:48:20 UTC.

Swift 6 data race errors: 1

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.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.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tus/TUSKit.git
Reference: 3.7.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/tus/TUSKit
 * tag               3.7.1      -> FETCH_HEAD
HEAD is now at 1679382 Merge pull request #224 from tus/2026-01-21-b2cg
Cloned https://github.com/tus/TUSKit.git
Revision (git rev-parse @):
167938293923b5c31ba1255da5aada8e67533984
SUCCESS checkout https://github.com/tus/TUSKit.git at 3.7.1
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/tus/TUSKit.git
https://github.com/tus/TUSKit.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "TUSKit",
  "name" : "TUSKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "10.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "TUSKit",
      "targets" : [
        "TUSKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TUSKitTests",
      "module_type" : "SwiftTarget",
      "name" : "TUSKitTests",
      "path" : "Tests/TUSKitTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/TUSKitTests/Resources/memeCat.jpg",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "DataTests.swift",
        "FilesTests.swift",
        "Fixtures.swift",
        "Mocks.swift",
        "SchedulerTests.swift",
        "Support/NetworkSupport.swift",
        "Support/Support.swift",
        "TUSAPITests.swift",
        "TUSClient/TUSClientInternalTests.swift",
        "TUSClient/TUSClientTests.swift",
        "TUSClient/TUSClient_CacheTests.swift",
        "TUSClient/TUSClient_ContextTests.swift",
        "TUSClient/TUSClient_CustomHeadersTests.swift",
        "TUSClient/TUSClient_DelegateTests.swift",
        "TUSClient/TUSClient_HeaderGenerationTests.swift",
        "TUSClient/TUSClient_IdsTests.swift",
        "TUSClient/TUSClient_RetryTests.swift",
        "TUSClient/TUSClient_UploadingTests.swift"
      ],
      "target_dependencies" : [
        "TUSKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TUSKit",
      "module_type" : "SwiftTarget",
      "name" : "TUSKit",
      "path" : "Sources/TUSKit",
      "product_memberships" : [
        "TUSKit"
      ],
      "sources" : [
        "Extensions/Collection+chunk.swift",
        "Extensions/Data+chunk.swift",
        "Extensions/String+base64.swift",
        "Files.swift",
        "Network.swift",
        "Scheduler.swift",
        "TUSAPI.swift",
        "TUSClient.swift",
        "TUSClientError.swift",
        "TUSProtocolExtension.swift",
        "Tasks/CreationTask.swift",
        "Tasks/IdentifiableTask.swift",
        "Tasks/StatusTask.swift",
        "Tasks/UploadDataTask.swift",
        "TusServerInfo.swift",
        "UploadInfo.swift",
        "UploadMetada.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5.1"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.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/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/19] Compiling TUSKit UploadInfo.swift
[4/19] Compiling TUSKit CreationTask.swift
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:42:16: warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
10 | /// `CreationTask` Prepares the server for a file upload.
11 | /// The server will return a path to upload to.
12 | final class CreationTask: IdentifiableTask {
   |             `- note: class 'CreationTask' does not conform to the 'Sendable' protocol
13 |
14 |     // MARK: - IdentifiableTask
   :
40 |     func run(completed: @escaping TaskCompletion) {
41 |         queue.async {
42 |             if self.didCancel { return }
   |                `- warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
43 |
44 |             self.headerGenerator.resolveHeaders(for: self.metaData) { [weak self] customHeaders in
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:74:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
72 |                                 task.progressDelegate = progressDelegate
73 |                                 if self.didCancel {
74 |                                     completed(.failure(TUSClientError.taskCancelled))
   |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
   |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
75 |                                 } else {
76 |                                     completed(.success([task]))
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:74:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
72 |                                 task.progressDelegate = progressDelegate
73 |                                 if self.didCancel {
74 |                                     completed(.failure(TUSClientError.taskCancelled))
   |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
   |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
75 |                                 } else {
76 |                                     completed(.success([task]))
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:48:24: warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
10 | /// `CreationTask` Prepares the server for a file upload.
11 | /// The server will return a path to upload to.
12 | final class CreationTask: IdentifiableTask {
   |             `- note: class 'CreationTask' does not conform to the 'Sendable' protocol
13 |
14 |     // MARK: - IdentifiableTask
   :
46 |
47 |                 self.queue.async {
48 |                     if self.didCancel { return }
   |                        `- warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
49 |
50 |                     self.sessionTask = self.api.create(metaData: self.metaData, customHeaders: customHeaders) { [weak self] result in
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:74:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
72 |                                 task.progressDelegate = progressDelegate
73 |                                 if self.didCancel {
74 |                                     completed(.failure(TUSClientError.taskCancelled))
   |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
   |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
75 |                                 } else {
76 |                                     completed(.success([task]))
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:74:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
72 |                                 task.progressDelegate = progressDelegate
73 |                                 if self.didCancel {
74 |                                     completed(.failure(TUSClientError.taskCancelled))
   |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
   |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
75 |                                 } else {
76 |                                     completed(.success([task]))
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:55:44: warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
10 | /// `CreationTask` Prepares the server for a file upload.
11 | /// The server will return a path to upload to.
12 | final class CreationTask: IdentifiableTask {
   |             `- note: class 'CreationTask' does not conform to the 'Sendable' protocol
13 |
14 |     // MARK: - IdentifiableTask
   :
53 |                         // File is created remotely. Now start first datatask.
54 |                         self.queue.async {
55 |                             let metaData = self.metaData
   |                                            `- warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
56 |                             let files = self.files
57 |                             let chunkSize = self.chunkSize
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:74:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
72 |                                 task.progressDelegate = progressDelegate
73 |                                 if self.didCancel {
74 |                                     completed(.failure(TUSClientError.taskCancelled))
   |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
   |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
75 |                                 } else {
76 |                                     completed(.success([task]))
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:92:13: warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
10 | /// `CreationTask` Prepares the server for a file upload.
11 | /// The server will return a path to upload to.
12 | final class CreationTask: IdentifiableTask {
   |             `- note: class 'CreationTask' does not conform to the 'Sendable' protocol
13 |
14 |     // MARK: - IdentifiableTask
   :
90 |     func cancel() {
91 |         queue.async {
92 |             self.didCancel = true
   |             `- warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
93 |             self.sessionTask?.cancel()
94 |         }
[5/19] Compiling TUSKit IdentifiableTask.swift
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:42:16: warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
10 | /// `CreationTask` Prepares the server for a file upload.
11 | /// The server will return a path to upload to.
12 | final class CreationTask: IdentifiableTask {
   |             `- note: class 'CreationTask' does not conform to the 'Sendable' protocol
13 |
14 |     // MARK: - IdentifiableTask
   :
40 |     func run(completed: @escaping TaskCompletion) {
41 |         queue.async {
42 |             if self.didCancel { return }
   |                `- warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
43 |
44 |             self.headerGenerator.resolveHeaders(for: self.metaData) { [weak self] customHeaders in
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:74:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
72 |                                 task.progressDelegate = progressDelegate
73 |                                 if self.didCancel {
74 |                                     completed(.failure(TUSClientError.taskCancelled))
   |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
   |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
75 |                                 } else {
76 |                                     completed(.success([task]))
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:74:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
72 |                                 task.progressDelegate = progressDelegate
73 |                                 if self.didCancel {
74 |                                     completed(.failure(TUSClientError.taskCancelled))
   |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
   |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
75 |                                 } else {
76 |                                     completed(.success([task]))
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:48:24: warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
10 | /// `CreationTask` Prepares the server for a file upload.
11 | /// The server will return a path to upload to.
12 | final class CreationTask: IdentifiableTask {
   |             `- note: class 'CreationTask' does not conform to the 'Sendable' protocol
13 |
14 |     // MARK: - IdentifiableTask
   :
46 |
47 |                 self.queue.async {
48 |                     if self.didCancel { return }
   |                        `- warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
49 |
50 |                     self.sessionTask = self.api.create(metaData: self.metaData, customHeaders: customHeaders) { [weak self] result in
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:74:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
72 |                                 task.progressDelegate = progressDelegate
73 |                                 if self.didCancel {
74 |                                     completed(.failure(TUSClientError.taskCancelled))
   |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
   |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
75 |                                 } else {
76 |                                     completed(.success([task]))
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:74:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
72 |                                 task.progressDelegate = progressDelegate
73 |                                 if self.didCancel {
74 |                                     completed(.failure(TUSClientError.taskCancelled))
   |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
   |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
75 |                                 } else {
76 |                                     completed(.success([task]))
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:55:44: warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
10 | /// `CreationTask` Prepares the server for a file upload.
11 | /// The server will return a path to upload to.
12 | final class CreationTask: IdentifiableTask {
   |             `- note: class 'CreationTask' does not conform to the 'Sendable' protocol
13 |
14 |     // MARK: - IdentifiableTask
   :
53 |                         // File is created remotely. Now start first datatask.
54 |                         self.queue.async {
55 |                             let metaData = self.metaData
   |                                            `- warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
56 |                             let files = self.files
57 |                             let chunkSize = self.chunkSize
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:74:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
72 |                                 task.progressDelegate = progressDelegate
73 |                                 if self.didCancel {
74 |                                     completed(.failure(TUSClientError.taskCancelled))
   |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
   |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
75 |                                 } else {
76 |                                     completed(.success([task]))
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/CreationTask.swift:92:13: warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
10 | /// `CreationTask` Prepares the server for a file upload.
11 | /// The server will return a path to upload to.
12 | final class CreationTask: IdentifiableTask {
   |             `- note: class 'CreationTask' does not conform to the 'Sendable' protocol
13 |
14 |     // MARK: - IdentifiableTask
   :
90 |     func cancel() {
91 |         queue.async {
92 |             self.didCancel = true
   |             `- warning: capture of 'self' with non-sendable type 'CreationTask' in a '@Sendable' closure
93 |             self.sessionTask?.cancel()
94 |         }
[6/20] Compiling TUSKit TusServerInfo.swift
[7/20] Compiling TUSKit StatusTask.swift
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:43:16: warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
  9 |
 10 | /// A `StatusTask` fetches the status of an upload. It fetches the offset from we can continue uploading, and then makes a possible uploadtask.
 11 | final class StatusTask: IdentifiableTask {
    |             `- note: class 'StatusTask' does not conform to the 'Sendable' protocol
 12 |
 13 |     // MARK: - IdentifiableTask
    :
 41 |         // Improvement: On failure, try uploading from the start. Create creationtask.
 42 |         queue.async {
 43 |             if self.didCancel { return }
    |                `- warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
 44 |
 45 |             self.headerGenerator.resolveHeaders(for: self.metaData) { [weak self] customHeaders in
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:79:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
 77 |
 78 |                                 if offset == metaData.size {
 79 |                                     completed(.success([]))
    |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 80 |                                 } else {
 81 |                                     // If the task has been canceled
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:79:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
 77 |
 78 |                                 if offset == metaData.size {
 79 |                                     completed(.success([]))
    |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 80 |                                 } else {
 81 |                                     // If the task has been canceled
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:49:24: warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
  9 |
 10 | /// A `StatusTask` fetches the status of an upload. It fetches the offset from we can continue uploading, and then makes a possible uploadtask.
 11 | final class StatusTask: IdentifiableTask {
    |             `- note: class 'StatusTask' does not conform to the 'Sendable' protocol
 12 |
 13 |     // MARK: - IdentifiableTask
    :
 47 |
 48 |                 self.queue.async {
 49 |                     if self.didCancel { return }
    |                        `- warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
 50 |
 51 |                     self.sessionTask = self.api.status(remoteDestination: self.remoteDestination, headers: customHeaders) { [weak self] result in
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:79:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
 77 |
 78 |                                 if offset == metaData.size {
 79 |                                     completed(.success([]))
    |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 80 |                                 } else {
 81 |                                     // If the task has been canceled
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:79:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
 77 |
 78 |                                 if offset == metaData.size {
 79 |                                     completed(.success([]))
    |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 80 |                                 } else {
 81 |                                     // If the task has been canceled
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:56:44: warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
  9 |
 10 | /// A `StatusTask` fetches the status of an upload. It fetches the offset from we can continue uploading, and then makes a possible uploadtask.
 11 | final class StatusTask: IdentifiableTask {
    |             `- note: class 'StatusTask' does not conform to the 'Sendable' protocol
 12 |
 13 |     // MARK: - IdentifiableTask
    :
 54 |                         self.queue.async {
 55 |                             // Getting rid of self. in this closure
 56 |                             let metaData = self.metaData
    |                                            `- warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
 57 |                             let files = self.files
 58 |                             let chunkSize = self.chunkSize
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:79:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
 77 |
 78 |                                 if offset == metaData.size {
 79 |                                     completed(.success([]))
    |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 80 |                                 } else {
 81 |                                     // If the task has been canceled
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:112:13: warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
  9 |
 10 | /// A `StatusTask` fetches the status of an upload. It fetches the offset from we can continue uploading, and then makes a possible uploadtask.
 11 | final class StatusTask: IdentifiableTask {
    |             `- note: class 'StatusTask' does not conform to the 'Sendable' protocol
 12 |
 13 |     // MARK: - IdentifiableTask
    :
110 |     func cancel() {
111 |         queue.async {
112 |             self.didCancel = true
    |             `- warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
113 |             self.sessionTask?.cancel()
114 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:69:20: warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
 67 |         queue.async {
 68 |             // This check is right before the task is created. In case another thread calls cancel during this loop. Optimization: Add synchronization point (e.g. serial queue or actor).
 69 |             guard !self.isCanceled else {
    |                    `- warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 70 |                 completed(.failure(TUSClientError.taskCancelled))
 71 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:70:17: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
 68 |             // This check is right before the task is created. In case another thread calls cancel during this loop. Optimization: Add synchronization point (e.g. serial queue or actor).
 69 |             guard !self.isCanceled else {
 70 |                 completed(.failure(TUSClientError.taskCancelled))
    |                 |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 71 |                 return
 72 |             }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:101:25: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
 99 |                 self.queue.async {
100 |                     if self.isCanceled {
101 |                         completed(.failure(TUSClientError.taskCancelled))
    |                         |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
102 |                         return
103 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:100:24: warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
 98 |
 99 |                 self.queue.async {
100 |                     if self.isCanceled {
    |                        `- warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
101 |                         completed(.failure(TUSClientError.taskCancelled))
102 |                         return
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:101:25: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
 99 |                 self.queue.async {
100 |                     if self.isCanceled {
101 |                         completed(.failure(TUSClientError.taskCancelled))
    |                         |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
102 |                         return
103 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:114:75: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
112 |                         self.queue.async {
113 |                             self.observation?.invalidate()
114 |                             self.taskCompleted(result: result, completed: completed)
    |                                                                           |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                                                                           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
115 |                         }
116 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:113:29: warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
111 |
112 |                         self.queue.async {
113 |                             self.observation?.invalidate()
    |                             `- warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
114 |                             self.taskCompleted(result: result, completed: completed)
115 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:114:75: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
112 |                         self.queue.async {
113 |                             self.observation?.invalidate()
114 |                             self.taskCompleted(result: result, completed: completed)
    |                                                                           |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                                                                           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
115 |                         }
116 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:180:30: warning: capture of 'self' with non-sendable type 'UploadDataTask?' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
178 |
179 |         observation = task.progress.observe(\.fractionCompleted) { [weak self] progress, _ in
180 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'UploadDataTask?' in a '@Sendable' closure
181 |             self.queue.async {
182 |                 guard progress.fractionCompleted <= 1 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:185:17: warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
183 |                 let bytes = progress.fractionCompleted * Double(targetRange.count)
184 |                 let totalUploaded = uploaded + Int(bytes)
185 |                 self.progressDelegate?.progressUpdatedFor(metaData: self.metaData, totalUploadedBytes: totalUploaded)
    |                 `- warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
186 |             }
187 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:234:13: warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
232 |     func cancel() {
233 |         queue.async {
234 |             self.isCanceled = true
    |             `- warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
235 |             self.observation?.invalidate()
236 |             self.sessionTask?.cancel()
[8/20] Compiling TUSKit UploadDataTask.swift
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:43:16: warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
  9 |
 10 | /// A `StatusTask` fetches the status of an upload. It fetches the offset from we can continue uploading, and then makes a possible uploadtask.
 11 | final class StatusTask: IdentifiableTask {
    |             `- note: class 'StatusTask' does not conform to the 'Sendable' protocol
 12 |
 13 |     // MARK: - IdentifiableTask
    :
 41 |         // Improvement: On failure, try uploading from the start. Create creationtask.
 42 |         queue.async {
 43 |             if self.didCancel { return }
    |                `- warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
 44 |
 45 |             self.headerGenerator.resolveHeaders(for: self.metaData) { [weak self] customHeaders in
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:79:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
 77 |
 78 |                                 if offset == metaData.size {
 79 |                                     completed(.success([]))
    |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 80 |                                 } else {
 81 |                                     // If the task has been canceled
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:79:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
 77 |
 78 |                                 if offset == metaData.size {
 79 |                                     completed(.success([]))
    |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 80 |                                 } else {
 81 |                                     // If the task has been canceled
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:49:24: warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
  9 |
 10 | /// A `StatusTask` fetches the status of an upload. It fetches the offset from we can continue uploading, and then makes a possible uploadtask.
 11 | final class StatusTask: IdentifiableTask {
    |             `- note: class 'StatusTask' does not conform to the 'Sendable' protocol
 12 |
 13 |     // MARK: - IdentifiableTask
    :
 47 |
 48 |                 self.queue.async {
 49 |                     if self.didCancel { return }
    |                        `- warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
 50 |
 51 |                     self.sessionTask = self.api.status(remoteDestination: self.remoteDestination, headers: customHeaders) { [weak self] result in
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:79:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
 77 |
 78 |                                 if offset == metaData.size {
 79 |                                     completed(.success([]))
    |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 80 |                                 } else {
 81 |                                     // If the task has been canceled
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:79:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
 77 |
 78 |                                 if offset == metaData.size {
 79 |                                     completed(.success([]))
    |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 80 |                                 } else {
 81 |                                     // If the task has been canceled
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:56:44: warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
  9 |
 10 | /// A `StatusTask` fetches the status of an upload. It fetches the offset from we can continue uploading, and then makes a possible uploadtask.
 11 | final class StatusTask: IdentifiableTask {
    |             `- note: class 'StatusTask' does not conform to the 'Sendable' protocol
 12 |
 13 |     // MARK: - IdentifiableTask
    :
 54 |                         self.queue.async {
 55 |                             // Getting rid of self. in this closure
 56 |                             let metaData = self.metaData
    |                                            `- warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
 57 |                             let files = self.files
 58 |                             let chunkSize = self.chunkSize
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:79:37: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
 77 |
 78 |                                 if offset == metaData.size {
 79 |                                     completed(.success([]))
    |                                     |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 80 |                                 } else {
 81 |                                     // If the task has been canceled
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/StatusTask.swift:112:13: warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
  9 |
 10 | /// A `StatusTask` fetches the status of an upload. It fetches the offset from we can continue uploading, and then makes a possible uploadtask.
 11 | final class StatusTask: IdentifiableTask {
    |             `- note: class 'StatusTask' does not conform to the 'Sendable' protocol
 12 |
 13 |     // MARK: - IdentifiableTask
    :
110 |     func cancel() {
111 |         queue.async {
112 |             self.didCancel = true
    |             `- warning: capture of 'self' with non-sendable type 'StatusTask' in a '@Sendable' closure
113 |             self.sessionTask?.cancel()
114 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:69:20: warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
 67 |         queue.async {
 68 |             // This check is right before the task is created. In case another thread calls cancel during this loop. Optimization: Add synchronization point (e.g. serial queue or actor).
 69 |             guard !self.isCanceled else {
    |                    `- warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 70 |                 completed(.failure(TUSClientError.taskCancelled))
 71 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:70:17: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
 68 |             // This check is right before the task is created. In case another thread calls cancel during this loop. Optimization: Add synchronization point (e.g. serial queue or actor).
 69 |             guard !self.isCanceled else {
 70 |                 completed(.failure(TUSClientError.taskCancelled))
    |                 |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 71 |                 return
 72 |             }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:101:25: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
 99 |                 self.queue.async {
100 |                     if self.isCanceled {
101 |                         completed(.failure(TUSClientError.taskCancelled))
    |                         |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
102 |                         return
103 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:100:24: warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
 98 |
 99 |                 self.queue.async {
100 |                     if self.isCanceled {
    |                        `- warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
101 |                         completed(.failure(TUSClientError.taskCancelled))
102 |                         return
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:101:25: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
 99 |                 self.queue.async {
100 |                     if self.isCanceled {
101 |                         completed(.failure(TUSClientError.taskCancelled))
    |                         |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
102 |                         return
103 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:114:75: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
112 |                         self.queue.async {
113 |                             self.observation?.invalidate()
114 |                             self.taskCompleted(result: result, completed: completed)
    |                                                                           |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                                                                           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
115 |                         }
116 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:113:29: warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
111 |
112 |                         self.queue.async {
113 |                             self.observation?.invalidate()
    |                             `- warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
114 |                             self.taskCompleted(result: result, completed: completed)
115 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:114:75: warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
112 |                         self.queue.async {
113 |                             self.observation?.invalidate()
114 |                             self.taskCompleted(result: result, completed: completed)
    |                                                                           |- warning: capture of 'completed' with non-sendable type 'TaskCompletion' (aka '(Result<Array<any ScheduledTask>, any Error>) -> ()') in a '@Sendable' closure
    |                                                                           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
115 |                         }
116 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:180:30: warning: capture of 'self' with non-sendable type 'UploadDataTask?' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
178 |
179 |         observation = task.progress.observe(\.fractionCompleted) { [weak self] progress, _ in
180 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'UploadDataTask?' in a '@Sendable' closure
181 |             self.queue.async {
182 |                 guard progress.fractionCompleted <= 1 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:185:17: warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
183 |                 let bytes = progress.fractionCompleted * Double(targetRange.count)
184 |                 let totalUploaded = uploaded + Int(bytes)
185 |                 self.progressDelegate?.progressUpdatedFor(metaData: self.metaData, totalUploadedBytes: totalUploaded)
    |                 `- warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
186 |             }
187 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:234:13: warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
    :
232 |     func cancel() {
233 |         queue.async {
234 |             self.isCanceled = true
    |             `- warning: capture of 'self' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
235 |             self.observation?.invalidate()
236 |             self.sessionTask?.cancel()
[9/20] Compiling TUSKit TUSClientError.swift
[10/20] Compiling TUSKit TUSProtocolExtension.swift
[11/20] Compiling TUSKit Network.swift
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Network.swift:18:59: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
16 |
17 |     func dataTask(request: URLRequest, completion: @escaping (Result<(Data?, HTTPURLResponse), Error>) -> Void) -> URLSessionDataTask {
18 |         return dataTask(with: request, completionHandler: makeCompletion(completion: completion))
   |                                                           `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
19 |     }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Network.swift:22:73: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
20 |
21 |     func uploadTask(request: URLRequest, data: Data, completion: @escaping (Result<(Data?, HTTPURLResponse), Error>) -> Void) -> URLSessionUploadTask {
22 |         return uploadTask(with: request, from: data, completionHandler: makeCompletion(completion: completion))
   |                                                                         `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
23 |     }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Network.swift:26:77: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
24 |
25 |     func uploadTask(with request: URLRequest, fromFile file: URL, completion: @escaping (Result<(Data?, HTTPURLResponse), Error>) -> Void) -> URLSessionUploadTask {
26 |         return uploadTask(with: request, fromFile: file, completionHandler: makeCompletion(completion: completion))
   |                                                                             `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
27 |     }
28 | }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:48:20: warning: capture of 'tasks' with non-sendable type '[any ScheduledTask]' in a '@Sendable' closure
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
 46 |     func addTasks(tasks: [ScheduledTask]) {
 47 |         queue.async {
 48 |             guard !tasks.isEmpty else { return }
    |                    `- warning: capture of 'tasks' with non-sendable type '[any ScheduledTask]' in a '@Sendable' closure
 49 |             self.pendingTasks.append(contentsOf: tasks)
 50 |             self.checkProcessNextTask()
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:49:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 47 |         queue.async {
 48 |             guard !tasks.isEmpty else { return }
 49 |             self.pendingTasks.append(contentsOf: tasks)
    |             `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 50 |             self.checkProcessNextTask()
 51 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:56:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 54 |     func addTask(task: ScheduledTask) {
 55 |         queue.async {
 56 |             self.pendingTasks.append(task)
    |             `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 57 |             self.checkProcessNextTask()
 58 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:56:38: warning: capture of 'task' with non-sendable type 'any ScheduledTask' in a '@Sendable' closure
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
 54 |     func addTask(task: ScheduledTask) {
 55 |         queue.async {
 56 |             self.pendingTasks.append(task)
    |                                      `- warning: capture of 'task' with non-sendable type 'any ScheduledTask' in a '@Sendable' closure
 57 |             self.checkProcessNextTask()
 58 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:63:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 61 |     func cancelAll() {
 62 |         queue.async {
 63 |             self.pendingTasks = []
    |             `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 64 |             self.runningTasks.forEach { $0.cancel() }
 65 |             self.runningTasks = []
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:71:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 69 |     func cancelTask(by id: UUID) {
 70 |         queue.async {
 71 |             self.pendingTasks.removeAll { task in
    |             `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 72 |                 guard let idTask = task as? IdentifiableTask, idTask.id == id else {
 73 |                     return false
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:90:13: warning: capture of 'tasksToCancel' with non-sendable type '[any ScheduledTask]' in a '@Sendable' closure
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
 88 |     func cancelTasks(_ tasksToCancel: [ScheduledTask]) {
 89 |         queue.async {
 90 |             tasksToCancel.forEach { taskToCancel in
    |             `- warning: capture of 'tasksToCancel' with non-sendable type '[any ScheduledTask]' in a '@Sendable' closure
 91 |                 if let pendingTaskIndex = self.pendingTasks.firstIndex(where: { pendingTask in
 92 |                     pendingTask === taskToCancel
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:91:43: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 89 |         queue.async {
 90 |             tasksToCancel.forEach { taskToCancel in
 91 |                 if let pendingTaskIndex = self.pendingTasks.firstIndex(where: { pendingTask in
    |                                           `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 92 |                     pendingTask === taskToCancel
 93 |                 }) {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:91:43: warning: capture of 'self' with non-sendable type 'Scheduler' in an isolated closure; this is an error in the Swift 6 language mode
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 89 |         queue.async {
 90 |             tasksToCancel.forEach { taskToCancel in
 91 |                 if let pendingTaskIndex = self.pendingTasks.firstIndex(where: { pendingTask in
    |                                           `- warning: capture of 'self' with non-sendable type 'Scheduler' in an isolated closure; this is an error in the Swift 6 language mode
 92 |                     pendingTask === taskToCancel
 93 |                 }) {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:112:30: warning: capture of 'self' with non-sendable type 'Scheduler?' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
110 |     private func checkProcessNextTask() {
111 |         queue.async { [weak self] in
112 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Scheduler?' in a '@Sendable' closure
113 |             guard !self.pendingTasks.isEmpty else { return }
114 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:127:36: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
125 |                 // // Make sure tasks are updated atomically
126 |                 self.queue.async {
127 |                     if let index = self.runningTasks.firstIndex(where: { $0 === task }) {
    |                                    `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
128 |                         self.runningTasks.remove(at: index)
129 |                     } else {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:127:81: warning: capture of 'task' with non-sendable type 'any ScheduledTask' in a '@Sendable' closure
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
125 |                 // // Make sure tasks are updated atomically
126 |                 self.queue.async {
127 |                     if let index = self.runningTasks.firstIndex(where: { $0 === task }) {
    |                                                                                 `- warning: capture of 'task' with non-sendable type 'any ScheduledTask' in a '@Sendable' closure
128 |                         self.runningTasks.remove(at: index)
129 |                     } else {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:133:28: warning: capture of 'result' with non-sendable type 'Result<[any ScheduledTask], any Error>' in a '@Sendable' closure
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
131 |                     }
132 |
133 |                     switch result {
    |                            `- warning: capture of 'result' with non-sendable type 'Result<[any ScheduledTask], any Error>' in a '@Sendable' closure
134 |                     case .success(let newTasks):
135 |                         if !newTasks.isEmpty {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:127:81: warning: capture of 'task' with non-sendable type 'any ScheduledTask' in an isolated closure; this is an error in the Swift 6 language mode
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
125 |                 // // Make sure tasks are updated atomically
126 |                 self.queue.async {
127 |                     if let index = self.runningTasks.firstIndex(where: { $0 === task }) {
    |                                                                                 `- warning: capture of 'task' with non-sendable type 'any ScheduledTask' in an isolated closure; this is an error in the Swift 6 language mode
128 |                         self.runningTasks.remove(at: index)
129 |                     } else {
[12/20] Compiling TUSKit Scheduler.swift
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Network.swift:18:59: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
16 |
17 |     func dataTask(request: URLRequest, completion: @escaping (Result<(Data?, HTTPURLResponse), Error>) -> Void) -> URLSessionDataTask {
18 |         return dataTask(with: request, completionHandler: makeCompletion(completion: completion))
   |                                                           `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
19 |     }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Network.swift:22:73: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
20 |
21 |     func uploadTask(request: URLRequest, data: Data, completion: @escaping (Result<(Data?, HTTPURLResponse), Error>) -> Void) -> URLSessionUploadTask {
22 |         return uploadTask(with: request, from: data, completionHandler: makeCompletion(completion: completion))
   |                                                                         `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
23 |     }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Network.swift:26:77: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
24 |
25 |     func uploadTask(with request: URLRequest, fromFile file: URL, completion: @escaping (Result<(Data?, HTTPURLResponse), Error>) -> Void) -> URLSessionUploadTask {
26 |         return uploadTask(with: request, fromFile: file, completionHandler: makeCompletion(completion: completion))
   |                                                                             `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
27 |     }
28 | }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:48:20: warning: capture of 'tasks' with non-sendable type '[any ScheduledTask]' in a '@Sendable' closure
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
 46 |     func addTasks(tasks: [ScheduledTask]) {
 47 |         queue.async {
 48 |             guard !tasks.isEmpty else { return }
    |                    `- warning: capture of 'tasks' with non-sendable type '[any ScheduledTask]' in a '@Sendable' closure
 49 |             self.pendingTasks.append(contentsOf: tasks)
 50 |             self.checkProcessNextTask()
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:49:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 47 |         queue.async {
 48 |             guard !tasks.isEmpty else { return }
 49 |             self.pendingTasks.append(contentsOf: tasks)
    |             `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 50 |             self.checkProcessNextTask()
 51 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:56:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 54 |     func addTask(task: ScheduledTask) {
 55 |         queue.async {
 56 |             self.pendingTasks.append(task)
    |             `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 57 |             self.checkProcessNextTask()
 58 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:56:38: warning: capture of 'task' with non-sendable type 'any ScheduledTask' in a '@Sendable' closure
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
 54 |     func addTask(task: ScheduledTask) {
 55 |         queue.async {
 56 |             self.pendingTasks.append(task)
    |                                      `- warning: capture of 'task' with non-sendable type 'any ScheduledTask' in a '@Sendable' closure
 57 |             self.checkProcessNextTask()
 58 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:63:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 61 |     func cancelAll() {
 62 |         queue.async {
 63 |             self.pendingTasks = []
    |             `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 64 |             self.runningTasks.forEach { $0.cancel() }
 65 |             self.runningTasks = []
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:71:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 69 |     func cancelTask(by id: UUID) {
 70 |         queue.async {
 71 |             self.pendingTasks.removeAll { task in
    |             `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 72 |                 guard let idTask = task as? IdentifiableTask, idTask.id == id else {
 73 |                     return false
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:90:13: warning: capture of 'tasksToCancel' with non-sendable type '[any ScheduledTask]' in a '@Sendable' closure
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
 88 |     func cancelTasks(_ tasksToCancel: [ScheduledTask]) {
 89 |         queue.async {
 90 |             tasksToCancel.forEach { taskToCancel in
    |             `- warning: capture of 'tasksToCancel' with non-sendable type '[any ScheduledTask]' in a '@Sendable' closure
 91 |                 if let pendingTaskIndex = self.pendingTasks.firstIndex(where: { pendingTask in
 92 |                     pendingTask === taskToCancel
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:91:43: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 89 |         queue.async {
 90 |             tasksToCancel.forEach { taskToCancel in
 91 |                 if let pendingTaskIndex = self.pendingTasks.firstIndex(where: { pendingTask in
    |                                           `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 92 |                     pendingTask === taskToCancel
 93 |                 }) {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:91:43: warning: capture of 'self' with non-sendable type 'Scheduler' in an isolated closure; this is an error in the Swift 6 language mode
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
 89 |         queue.async {
 90 |             tasksToCancel.forEach { taskToCancel in
 91 |                 if let pendingTaskIndex = self.pendingTasks.firstIndex(where: { pendingTask in
    |                                           `- warning: capture of 'self' with non-sendable type 'Scheduler' in an isolated closure; this is an error in the Swift 6 language mode
 92 |                     pendingTask === taskToCancel
 93 |                 }) {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:112:30: warning: capture of 'self' with non-sendable type 'Scheduler?' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
110 |     private func checkProcessNextTask() {
111 |         queue.async { [weak self] in
112 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'Scheduler?' in a '@Sendable' closure
113 |             guard !self.pendingTasks.isEmpty else { return }
114 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:127:36: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
 27 | /// It keeps track of related tasks, adds limiter capabilities (e.g. only process x amount of tasks) and concurrency.
 28 | /// Keeps track of related tasks and their errors.
 29 | final class Scheduler {
    |             `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
 30 |
 31 |     private var pendingTasks = [ScheduledTask]()
    :
125 |                 // // Make sure tasks are updated atomically
126 |                 self.queue.async {
127 |                     if let index = self.runningTasks.firstIndex(where: { $0 === task }) {
    |                                    `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
128 |                         self.runningTasks.remove(at: index)
129 |                     } else {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:127:81: warning: capture of 'task' with non-sendable type 'any ScheduledTask' in a '@Sendable' closure
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
125 |                 // // Make sure tasks are updated atomically
126 |                 self.queue.async {
127 |                     if let index = self.runningTasks.firstIndex(where: { $0 === task }) {
    |                                                                                 `- warning: capture of 'task' with non-sendable type 'any ScheduledTask' in a '@Sendable' closure
128 |                         self.runningTasks.remove(at: index)
129 |                     } else {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:133:28: warning: capture of 'result' with non-sendable type 'Result<[any ScheduledTask], any Error>' in a '@Sendable' closure
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
131 |                     }
132 |
133 |                     switch result {
    |                            `- warning: capture of 'result' with non-sendable type 'Result<[any ScheduledTask], any Error>' in a '@Sendable' closure
134 |                     case .success(let newTasks):
135 |                         if !newTasks.isEmpty {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Scheduler.swift:127:81: warning: capture of 'task' with non-sendable type 'any ScheduledTask' in an isolated closure; this is an error in the Swift 6 language mode
 19 | /// Once a Task is finished. It can spawn new tasks that need to be run.
 20 | /// E.g. If a task is to upload a file, then it can spawn into tasks to cut up the file first. Which can then cut up into a task to upload, which can then add a task to delete the files.
 21 | protocol ScheduledTask: AnyObject {
    |          `- note: protocol 'ScheduledTask' does not conform to the 'Sendable' protocol
 22 |     func run(completed: @escaping TaskCompletion)
 23 |     func cancel()
    :
125 |                 // // Make sure tasks are updated atomically
126 |                 self.queue.async {
127 |                     if let index = self.runningTasks.firstIndex(where: { $0 === task }) {
    |                                                                                 `- warning: capture of 'task' with non-sendable type 'any ScheduledTask' in an isolated closure; this is an error in the Swift 6 language mode
128 |                         self.runningTasks.remove(at: index)
129 |                     } else {
[13/20] Compiling TUSKit TUSAPI.swift
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:447:18: warning: stored property 'api' of 'Sendable'-conforming class 'SessionDataDelegate' is mutable; this is an error in the Swift 6 language mode
445 | private extension TUSAPI {
446 |     final class SessionDataDelegate: NSObject, URLSessionDataDelegate {
447 |         weak var api: TUSAPI?
    |                  `- warning: stored property 'api' of 'Sendable'-conforming class 'SessionDataDelegate' is mutable; this is an error in the Swift 6 language mode
448 |
449 |         func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:344:26: warning: immutable value 'data' was never used; consider replacing with '_' or removing it
342 |             self.callbacks[metaData.id.uuidString] = { result in
343 |                 processResult(completion: completion) {
344 |                     let (data, response) = try result.get()
    |                          `- warning: immutable value 'data' was never used; consider replacing with '_' or removing it
345 |                     guard let offsetStr = response.allHeaderFields[caseInsensitive: "upload-offset"] as? String,
346 |                           let offset = Int(offsetStr) else {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:361:26: warning: immutable value 'data' was never used; consider replacing with '_' or removing it
359 |             self.callbacks[metadata.id.uuidString] = { result in
360 |                 processResult(completion: completion) {
361 |                     let (data, response) = try result.get()
    |                          `- warning: immutable value 'data' was never used; consider replacing with '_' or removing it
362 |                     guard let offsetStr = response.allHeaderFields[caseInsensitive: "upload-offset"] as? String,
363 |                           let offset = Int(offsetStr) else {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:379:48: warning: capture of 'metadata' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
377 |         session.getAllTasks(completionHandler: { tasks in
378 |             let hasTask = tasks.contains(where: { task in
379 |                 return task.taskDescription == metadata.id.uuidString
    |                                                `- warning: capture of 'metadata' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
380 |             })
381 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:382:13: warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
380 |             })
381 |
382 |             completion(hasTask)
    |             |- warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
383 |         })
384 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:379:48: warning: capture of 'metadata' with non-sendable type 'UploadMetadata' in an isolated closure; this is an error in the Swift 6 language mode
377 |         session.getAllTasks(completionHandler: { tasks in
378 |             let hasTask = tasks.contains(where: { task in
379 |                 return task.taskDescription == metadata.id.uuidString
    |                                                `- warning: capture of 'metadata' with non-sendable type 'UploadMetadata' in an isolated closure; this is an error in the Swift 6 language mode
380 |             })
381 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:539:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
537 |             let tusError = TUSClientError.couldnotRemoveFinishedUploads(underlyingError: error)
538 |             reportingQueue.async {
539 |                 self.delegate?.fileError(id: nil, error: tusError , client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
540 |             }
541 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:563:29: warning: result of 'try?' is unused
561 |                     task.taskCompleted(result: result, completed: { [weak self] result in
562 |                         if case .failure = result {
563 |                             try? self?.retry(id: metadata.id)
    |                             `- warning: result of 'try?' is unused
564 |                         }
565 |                     })
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:658:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
656 |             let tusError = TUSClientError.couldNotLoadData(underlyingError: error)
657 |             reportingQueue.async {
658 |                 self.delegate?.fileError(id: nil, error: tusError, client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
659 |             }
660 |             return []
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:712:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
710 |             let tusError = TUSClientError.couldNotDeleteFile(underlyingError: error)
711 |             reportingQueue.async {
712 |                 self.delegate?.fileError(id: uploadTask.metaData.id, error: tusError, client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
713 |             }
714 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:712:46: warning: capture of 'uploadTask' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
710 |             let tusError = TUSClientError.couldNotDeleteFile(underlyingError: error)
711 |             reportingQueue.async {
712 |                 self.delegate?.fileError(id: uploadTask.metaData.id, error: tusError, client: self)
    |                                              `- warning: capture of 'uploadTask' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
713 |             }
714 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:12:13: note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:726:13: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
724 |         headerGenerator.clearHeaders(for: uploadTask.metaData.id)
725 |         reportingQueue.async {
726 |             self.delegate?.didFinishUpload(id: uploadTask.metaData.id, url: url, context: uploadTask.metaData.context, client: self)
    |             `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
727 |         }
728 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:726:48: warning: capture of 'uploadTask' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
724 |         headerGenerator.clearHeaders(for: uploadTask.metaData.id)
725 |         reportingQueue.async {
726 |             self.delegate?.didFinishUpload(id: uploadTask.metaData.id, url: url, context: uploadTask.metaData.context, client: self)
    |                                                `- warning: capture of 'uploadTask' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
727 |         }
728 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:12:13: note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:736:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
734 |         if isUploadRangeEmpty && task.metaData.errorCount == 0 {
735 |             reportingQueue.async {
736 |                 self.delegate?.didStartUpload(id: task.metaData.id, context: task.metaData.context, client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
737 |             }
738 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:736:51: warning: capture of 'task' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
734 |         if isUploadRangeEmpty && task.metaData.errorCount == 0 {
735 |             reportingQueue.async {
736 |                 self.delegate?.didStartUpload(id: task.metaData.id, context: task.metaData.context, client: self)
    |                                                   `- warning: capture of 'task' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
737 |             }
738 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:12:13: note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:795:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
793 |             let tusError = TUSClientError.couldNotStoreFileMetadata(underlyingError: error)
794 |             reportingQueue.async {
795 |                 self.delegate?.fileError(id: metaData.id, error: tusError, client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
796 |             }
797 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:795:46: warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
793 |             let tusError = TUSClientError.couldNotStoreFileMetadata(underlyingError: error)
794 |             reportingQueue.async {
795 |                 self.delegate?.fileError(id: metaData.id, error: tusError, client: self)
    |                                              `- warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
796 |             }
797 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:808:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
806 |             headerGenerator.clearHeaders(for: metaData.id)
807 |             reportingQueue.async {
808 |                 self.delegate?.uploadFailed(id: metaData.id, error: error, context: metaData.context, client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
809 |             }
810 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:808:49: warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
806 |             headerGenerator.clearHeaders(for: metaData.id)
807 |             reportingQueue.async {
808 |                 self.delegate?.uploadFailed(id: metaData.id, error: error, context: metaData.context, client: self)
    |                                                 `- warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
809 |             }
810 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:850:13: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
848 |     func progressUpdatedFor(metaData: UploadMetadata, totalUploadedBytes: Int) {
849 |         reportingQueue.async {
850 |             self.delegate?.progressFor(id: metaData.id, context: metaData.context, bytesUploaded: totalUploadedBytes, totalBytes: metaData.size, client: self)
    |             `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
851 |         }
852 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:850:44: warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
848 |     func progressUpdatedFor(metaData: UploadMetadata, totalUploadedBytes: Int) {
849 |         reportingQueue.async {
850 |             self.delegate?.progressFor(id: metaData.id, context: metaData.context, bytesUploaded: totalUploadedBytes, totalBytes: metaData.size, client: self)
    |                                            `- warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
851 |         }
852 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:870:13: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
868 |
869 |         reportingQueue.async {
870 |             self.delegate?.totalProgress(bytesUploaded: totalBytesUploaded, totalBytes: totalSize, client: self)
    |             `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
871 |         }
872 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:870:57: warning: reference to captured var 'totalBytesUploaded' in concurrently-executing code
868 |
869 |         reportingQueue.async {
870 |             self.delegate?.totalProgress(bytesUploaded: totalBytesUploaded, totalBytes: totalSize, client: self)
    |                                                         `- warning: reference to captured var 'totalBytesUploaded' in concurrently-executing code
871 |         }
872 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:870:89: warning: reference to captured var 'totalSize' in concurrently-executing code
868 |
869 |         reportingQueue.async {
870 |             self.delegate?.totalProgress(bytesUploaded: totalBytesUploaded, totalBytes: totalSize, client: self)
    |                                                                                         `- warning: reference to captured var 'totalSize' in concurrently-executing code
871 |         }
872 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:910:13: warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
873 | }
874 |
875 | final class HeaderGenerator {
    |             `- note: class 'HeaderGenerator' does not conform to the 'Sendable' protocol
876 |     private let handler: HeaderGenerationHandler?
877 |     private let queue = DispatchQueue(label: "com.tuskit.headergenerator")
    :
908 |     func clearHeaders(for id: UUID) {
909 |         queue.async {
910 |             self.latestHeaders.removeValue(forKey: id)
    |             `- warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
911 |         }
912 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:916:13: warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
873 | }
874 |
875 | final class HeaderGenerator {
    |             `- note: class 'HeaderGenerator' does not conform to the 'Sendable' protocol
876 |     private let handler: HeaderGenerationHandler?
877 |     private let queue = DispatchQueue(label: "com.tuskit.headergenerator")
    :
914 |     func clearAll() {
915 |         queue.async {
916 |             self.latestHeaders.removeAll()
    |             `- warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
917 |         }
918 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:933:13: warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
873 | }
874 |
875 | final class HeaderGenerator {
    |             `- note: class 'HeaderGenerator' does not conform to the 'Sendable' protocol
876 |     private let handler: HeaderGenerationHandler?
877 |     private let queue = DispatchQueue(label: "com.tuskit.headergenerator")
    :
931 |         metaData.updateAppliedCustomHeaders(headers)
932 |         queue.async {
933 |             self.latestHeaders[metaData.id] = headers
    |             `- warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
934 |         }
935 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:933:32: warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
931 |         metaData.updateAppliedCustomHeaders(headers)
932 |         queue.async {
933 |             self.latestHeaders[metaData.id] = headers
    |                                `- warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
934 |         }
935 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:500:17: warning: sending 'backgroundHandler' risks causing data races; this is an error in the Swift 6 language mode
498 |         if let backgroundHandler {
499 |             DispatchQueue.main.async {
500 |                 backgroundHandler()
    |                 |- warning: sending 'backgroundHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'backgroundHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
501 |                 self.backgroundHandler = nil
502 |             }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:501:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
499 |             DispatchQueue.main.async {
500 |                 backgroundHandler()
501 |                 self.backgroundHandler = nil
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
502 |             }
503 |         }
[14/20] Compiling TUSKit TUSClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:447:18: warning: stored property 'api' of 'Sendable'-conforming class 'SessionDataDelegate' is mutable; this is an error in the Swift 6 language mode
445 | private extension TUSAPI {
446 |     final class SessionDataDelegate: NSObject, URLSessionDataDelegate {
447 |         weak var api: TUSAPI?
    |                  `- warning: stored property 'api' of 'Sendable'-conforming class 'SessionDataDelegate' is mutable; this is an error in the Swift 6 language mode
448 |
449 |         func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:344:26: warning: immutable value 'data' was never used; consider replacing with '_' or removing it
342 |             self.callbacks[metaData.id.uuidString] = { result in
343 |                 processResult(completion: completion) {
344 |                     let (data, response) = try result.get()
    |                          `- warning: immutable value 'data' was never used; consider replacing with '_' or removing it
345 |                     guard let offsetStr = response.allHeaderFields[caseInsensitive: "upload-offset"] as? String,
346 |                           let offset = Int(offsetStr) else {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:361:26: warning: immutable value 'data' was never used; consider replacing with '_' or removing it
359 |             self.callbacks[metadata.id.uuidString] = { result in
360 |                 processResult(completion: completion) {
361 |                     let (data, response) = try result.get()
    |                          `- warning: immutable value 'data' was never used; consider replacing with '_' or removing it
362 |                     guard let offsetStr = response.allHeaderFields[caseInsensitive: "upload-offset"] as? String,
363 |                           let offset = Int(offsetStr) else {
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:379:48: warning: capture of 'metadata' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
377 |         session.getAllTasks(completionHandler: { tasks in
378 |             let hasTask = tasks.contains(where: { task in
379 |                 return task.taskDescription == metadata.id.uuidString
    |                                                `- warning: capture of 'metadata' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
380 |             })
381 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:382:13: warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
380 |             })
381 |
382 |             completion(hasTask)
    |             |- warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
383 |         })
384 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:379:48: warning: capture of 'metadata' with non-sendable type 'UploadMetadata' in an isolated closure; this is an error in the Swift 6 language mode
377 |         session.getAllTasks(completionHandler: { tasks in
378 |             let hasTask = tasks.contains(where: { task in
379 |                 return task.taskDescription == metadata.id.uuidString
    |                                                `- warning: capture of 'metadata' with non-sendable type 'UploadMetadata' in an isolated closure; this is an error in the Swift 6 language mode
380 |             })
381 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:539:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
537 |             let tusError = TUSClientError.couldnotRemoveFinishedUploads(underlyingError: error)
538 |             reportingQueue.async {
539 |                 self.delegate?.fileError(id: nil, error: tusError , client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
540 |             }
541 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:563:29: warning: result of 'try?' is unused
561 |                     task.taskCompleted(result: result, completed: { [weak self] result in
562 |                         if case .failure = result {
563 |                             try? self?.retry(id: metadata.id)
    |                             `- warning: result of 'try?' is unused
564 |                         }
565 |                     })
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:658:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
656 |             let tusError = TUSClientError.couldNotLoadData(underlyingError: error)
657 |             reportingQueue.async {
658 |                 self.delegate?.fileError(id: nil, error: tusError, client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
659 |             }
660 |             return []
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:712:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
710 |             let tusError = TUSClientError.couldNotDeleteFile(underlyingError: error)
711 |             reportingQueue.async {
712 |                 self.delegate?.fileError(id: uploadTask.metaData.id, error: tusError, client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
713 |             }
714 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:712:46: warning: capture of 'uploadTask' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
710 |             let tusError = TUSClientError.couldNotDeleteFile(underlyingError: error)
711 |             reportingQueue.async {
712 |                 self.delegate?.fileError(id: uploadTask.metaData.id, error: tusError, client: self)
    |                                              `- warning: capture of 'uploadTask' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
713 |             }
714 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:12:13: note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:726:13: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
724 |         headerGenerator.clearHeaders(for: uploadTask.metaData.id)
725 |         reportingQueue.async {
726 |             self.delegate?.didFinishUpload(id: uploadTask.metaData.id, url: url, context: uploadTask.metaData.context, client: self)
    |             `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
727 |         }
728 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:726:48: warning: capture of 'uploadTask' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
724 |         headerGenerator.clearHeaders(for: uploadTask.metaData.id)
725 |         reportingQueue.async {
726 |             self.delegate?.didFinishUpload(id: uploadTask.metaData.id, url: url, context: uploadTask.metaData.context, client: self)
    |                                                `- warning: capture of 'uploadTask' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
727 |         }
728 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:12:13: note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:736:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
734 |         if isUploadRangeEmpty && task.metaData.errorCount == 0 {
735 |             reportingQueue.async {
736 |                 self.delegate?.didStartUpload(id: task.metaData.id, context: task.metaData.context, client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
737 |             }
738 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:736:51: warning: capture of 'task' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
734 |         if isUploadRangeEmpty && task.metaData.errorCount == 0 {
735 |             reportingQueue.async {
736 |                 self.delegate?.didStartUpload(id: task.metaData.id, context: task.metaData.context, client: self)
    |                                                   `- warning: capture of 'task' with non-sendable type 'UploadDataTask' in a '@Sendable' closure
737 |             }
738 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/Tasks/UploadDataTask.swift:12:13: note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 10 | /// The upload task will upload to data a destination.
 11 | /// Will spawn more UploadDataTasks if an upload isn't complete.
 12 | final class UploadDataTask: NSObject, IdentifiableTask {
    |             `- note: class 'UploadDataTask' does not conform to the 'Sendable' protocol
 13 |
 14 |     // MARK: - IdentifiableTask
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:795:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
793 |             let tusError = TUSClientError.couldNotStoreFileMetadata(underlyingError: error)
794 |             reportingQueue.async {
795 |                 self.delegate?.fileError(id: metaData.id, error: tusError, client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
796 |             }
797 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:795:46: warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
793 |             let tusError = TUSClientError.couldNotStoreFileMetadata(underlyingError: error)
794 |             reportingQueue.async {
795 |                 self.delegate?.fileError(id: metaData.id, error: tusError, client: self)
    |                                              `- warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
796 |             }
797 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:808:17: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
806 |             headerGenerator.clearHeaders(for: metaData.id)
807 |             reportingQueue.async {
808 |                 self.delegate?.uploadFailed(id: metaData.id, error: error, context: metaData.context, client: self)
    |                 `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
809 |             }
810 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:808:49: warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
806 |             headerGenerator.clearHeaders(for: metaData.id)
807 |             reportingQueue.async {
808 |                 self.delegate?.uploadFailed(id: metaData.id, error: error, context: metaData.context, client: self)
    |                                                 `- warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
809 |             }
810 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:850:13: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
848 |     func progressUpdatedFor(metaData: UploadMetadata, totalUploadedBytes: Int) {
849 |         reportingQueue.async {
850 |             self.delegate?.progressFor(id: metaData.id, context: metaData.context, bytesUploaded: totalUploadedBytes, totalBytes: metaData.size, client: self)
    |             `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
851 |         }
852 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:850:44: warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
848 |     func progressUpdatedFor(metaData: UploadMetadata, totalUploadedBytes: Int) {
849 |         reportingQueue.async {
850 |             self.delegate?.progressFor(id: metaData.id, context: metaData.context, bytesUploaded: totalUploadedBytes, totalBytes: metaData.size, client: self)
    |                                            `- warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
851 |         }
852 |
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:870:13: warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
 66 | public typealias HeaderGenerationHandler = (_ requestID: UUID, _ headers: [String: String], _ completion: @escaping ([String: String]) -> Void) -> Void
 67 |
 68 | public final class TUSClient {
    |                    `- note: class 'TUSClient' does not conform to the 'Sendable' protocol
 69 |
 70 |     // MARK: - Public Properties
    :
868 |
869 |         reportingQueue.async {
870 |             self.delegate?.totalProgress(bytesUploaded: totalBytesUploaded, totalBytes: totalSize, client: self)
    |             `- warning: capture of 'self' with non-sendable type 'TUSClient' in a '@Sendable' closure
871 |         }
872 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:870:57: warning: reference to captured var 'totalBytesUploaded' in concurrently-executing code
868 |
869 |         reportingQueue.async {
870 |             self.delegate?.totalProgress(bytesUploaded: totalBytesUploaded, totalBytes: totalSize, client: self)
    |                                                         `- warning: reference to captured var 'totalBytesUploaded' in concurrently-executing code
871 |         }
872 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:870:89: warning: reference to captured var 'totalSize' in concurrently-executing code
868 |
869 |         reportingQueue.async {
870 |             self.delegate?.totalProgress(bytesUploaded: totalBytesUploaded, totalBytes: totalSize, client: self)
    |                                                                                         `- warning: reference to captured var 'totalSize' in concurrently-executing code
871 |         }
872 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:910:13: warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
873 | }
874 |
875 | final class HeaderGenerator {
    |             `- note: class 'HeaderGenerator' does not conform to the 'Sendable' protocol
876 |     private let handler: HeaderGenerationHandler?
877 |     private let queue = DispatchQueue(label: "com.tuskit.headergenerator")
    :
908 |     func clearHeaders(for id: UUID) {
909 |         queue.async {
910 |             self.latestHeaders.removeValue(forKey: id)
    |             `- warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
911 |         }
912 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:916:13: warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
873 | }
874 |
875 | final class HeaderGenerator {
    |             `- note: class 'HeaderGenerator' does not conform to the 'Sendable' protocol
876 |     private let handler: HeaderGenerationHandler?
877 |     private let queue = DispatchQueue(label: "com.tuskit.headergenerator")
    :
914 |     func clearAll() {
915 |         queue.async {
916 |             self.latestHeaders.removeAll()
    |             `- warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
917 |         }
918 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:933:13: warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
873 | }
874 |
875 | final class HeaderGenerator {
    |             `- note: class 'HeaderGenerator' does not conform to the 'Sendable' protocol
876 |     private let handler: HeaderGenerationHandler?
877 |     private let queue = DispatchQueue(label: "com.tuskit.headergenerator")
    :
931 |         metaData.updateAppliedCustomHeaders(headers)
932 |         queue.async {
933 |             self.latestHeaders[metaData.id] = headers
    |             `- warning: capture of 'self' with non-sendable type 'HeaderGenerator' in a '@Sendable' closure
934 |         }
935 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSClient.swift:933:32: warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
931 |         metaData.updateAppliedCustomHeaders(headers)
932 |         queue.async {
933 |             self.latestHeaders[metaData.id] = headers
    |                                `- warning: capture of 'metaData' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
934 |         }
935 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:13:13: note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:500:17: warning: sending 'backgroundHandler' risks causing data races; this is an error in the Swift 6 language mode
498 |         if let backgroundHandler {
499 |             DispatchQueue.main.async {
500 |                 backgroundHandler()
    |                 |- warning: sending 'backgroundHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'backgroundHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
501 |                 self.backgroundHandler = nil
502 |             }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:501:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
499 |             DispatchQueue.main.async {
500 |                 backgroundHandler()
501 |                 self.backgroundHandler = nil
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
502 |             }
503 |         }
[15/20] Emitting module TUSKit
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/TUSAPI.swift:447:18: warning: stored property 'api' of 'Sendable'-conforming class 'SessionDataDelegate' is mutable; this is an error in the Swift 6 language mode
445 | private extension TUSAPI {
446 |     final class SessionDataDelegate: NSObject, URLSessionDataDelegate {
447 |         weak var api: TUSAPI?
    |                  `- warning: stored property 'api' of 'Sendable'-conforming class 'SessionDataDelegate' is mutable; this is an error in the Swift 6 language mode
448 |
449 |         func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
[16/20] Compiling TUSKit Collection+chunk.swift
[17/20] Compiling TUSKit Data+chunk.swift
[18/20] Compiling TUSKit String+base64.swift
[19/20] Compiling TUSKit Files.swift
[20/20] Compiling TUSKit UploadMetada.swift
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:48:17: warning: capture of 'self' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
    :
 46 |         } set {
 47 |             queue.async {
 48 |                 self._filePath = newValue
    |                 `- warning: capture of 'self' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
 49 |             }
 50 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:61:17: warning: capture of 'self' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
    :
 59 |         } set {
 60 |             queue.async {
 61 |                 self._remoteDestination = newValue
    |                 `- warning: capture of 'self' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
 62 |             }
 63 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:75:17: warning: capture of 'self' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
    :
 73 |         } set {
 74 |             queue.async {
 75 |                 self._uploadedRange = newValue
    |                 `- warning: capture of 'self' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
 76 |             }
 77 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TUSKit/UploadMetada.swift:162:13: warning: capture of 'self' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
 11 | /// E.g. For background uploading or when an app is killed, we can use this data to continue where we left off.
 12 | /// The reason this is a class is to preserve reference semantics while the data is being updated.
 13 | final class UploadMetadata: Codable {
    |             `- note: class 'UploadMetadata' does not conform to the 'Sendable' protocol
 14 |
 15 |     let queue = DispatchQueue(label: "com.tuskit.uploadmetadata")
    :
160 |     func updateAppliedCustomHeaders(_ headers: [String: String]?) {
161 |         queue.async {
162 |             self._appliedCustomHeaders = headers
    |             `- warning: capture of 'self' with non-sendable type 'UploadMetadata' in a '@Sendable' closure
163 |         }
164 |     }
Build complete! (5.60s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "TUSKit",
  "name" : "TUSKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "10.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "TUSKit",
      "targets" : [
        "TUSKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TUSKitTests",
      "module_type" : "SwiftTarget",
      "name" : "TUSKitTests",
      "path" : "Tests/TUSKitTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/TUSKitTests/Resources/memeCat.jpg",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "DataTests.swift",
        "FilesTests.swift",
        "Fixtures.swift",
        "Mocks.swift",
        "SchedulerTests.swift",
        "Support/NetworkSupport.swift",
        "Support/Support.swift",
        "TUSAPITests.swift",
        "TUSClient/TUSClientInternalTests.swift",
        "TUSClient/TUSClientTests.swift",
        "TUSClient/TUSClient_CacheTests.swift",
        "TUSClient/TUSClient_ContextTests.swift",
        "TUSClient/TUSClient_CustomHeadersTests.swift",
        "TUSClient/TUSClient_DelegateTests.swift",
        "TUSClient/TUSClient_HeaderGenerationTests.swift",
        "TUSClient/TUSClient_IdsTests.swift",
        "TUSClient/TUSClient_RetryTests.swift",
        "TUSClient/TUSClient_UploadingTests.swift"
      ],
      "target_dependencies" : [
        "TUSKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TUSKit",
      "module_type" : "SwiftTarget",
      "name" : "TUSKit",
      "path" : "Sources/TUSKit",
      "product_memberships" : [
        "TUSKit"
      ],
      "sources" : [
        "Extensions/Collection+chunk.swift",
        "Extensions/Data+chunk.swift",
        "Extensions/String+base64.swift",
        "Files.swift",
        "Network.swift",
        "Scheduler.swift",
        "TUSAPI.swift",
        "TUSClient.swift",
        "TUSClientError.swift",
        "TUSProtocolExtension.swift",
        "Tasks/CreationTask.swift",
        "Tasks/IdentifiableTask.swift",
        "Tasks/StatusTask.swift",
        "Tasks/UploadDataTask.swift",
        "TusServerInfo.swift",
        "UploadInfo.swift",
        "UploadMetada.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5.1"
}
Done.