The Swift Package Index logo.Swift Package Index

Build Information

Successful build of ZipPinch, reference 1.5.0 (20067f), with Swift 6.1 for macOS (SPM) on 21 Jul 2025 21:05:09 UTC.

Swift 6 data race errors: 2

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.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/buh/ZipPinch.git
Reference: 1.5.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/buh/ZipPinch
 * tag               1.5.0      -> FETCH_HEAD
HEAD is now at 20067f3 Fix 64Bits zip files
Cloned https://github.com/buh/ZipPinch.git
Revision (git rev-parse @):
20067f30d9280e2886ba249748f1fe9d56659d97
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/buh/ZipPinch.git at 1.5.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "zippinch",
      "name": "ZipPinch",
      "url": "https://github.com/buh/ZipPinch.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/ZipPinch",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/buh/ZipPinch.git
[14/660] Fetching zippinch
Fetched https://github.com/buh/ZipPinch.git from cache (0.91s)
Creating working copy for https://github.com/buh/ZipPinch.git
Working copy of https://github.com/buh/ZipPinch.git resolved at 1.5.0 (20067f3)
warning: '.resolve-product-dependencies': dependency 'zippinch' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/buh/ZipPinch.git
https://github.com/buh/ZipPinch.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "ZipPinch",
  "name" : "ZipPinch",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "ZipPinch",
      "targets" : [
        "ZipPinch"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ZipPinchTests",
      "module_type" : "SwiftTarget",
      "name" : "ZipPinchTests",
      "path" : "Tests/ZipPinchTests",
      "sources" : [
        "ArchiveTests.swift",
        "BinaryExtractorTests.swift",
        "DateMSDOSTests.swift",
        "ZIPEntryTests.swift",
        "ZIPErrorTests.swift",
        "ZIPFolderTests.swift"
      ],
      "target_dependencies" : [
        "ZipPinch"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ZipPinch",
      "module_type" : "SwiftTarget",
      "name" : "ZipPinch",
      "path" : "Sources/ZipPinch",
      "product_memberships" : [
        "ZipPinch"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/PrivacyInfo.xcprivacy",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "URLSession+ZIPEntries.swift",
        "URLSession+ZIPEntry.swift",
        "URLSession+ZIPFolder.swift",
        "URLSession+ZIPRange.swift",
        "ZIPCompressor.swift",
        "ZIPEntry.swift",
        "ZIPFileFormat/BinaryExtractor.swift",
        "ZIPFileFormat/Date+MSDOS.swift",
        "ZIPFileFormat/ZIPDirectoryRecord.swift",
        "ZIPFileFormat/ZIPEndRecord.swift",
        "ZIPFileFormat/ZIPFileHeader.swift",
        "ZIPFolder.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
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/3] Write sources
[0/3] Copying PrivacyInfo.xcprivacy
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/16] Compiling ZipPinch ZIPFileHeader.swift
[5/17] Compiling ZipPinch ZIPEndRecord.swift
[6/17] Compiling ZipPinch resource_bundle_accessor.swift
[7/17] Compiling ZipPinch ZIPDirectoryRecord.swift
[8/17] Compiling ZipPinch Date+MSDOS.swift
[9/17] Compiling ZipPinch BinaryExtractor.swift
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPFileFormat/BinaryExtractor.swift:34:13: warning: initialization of immutable value 'currentOffset' was never used; consider replacing with assignment to '_' or removing it
32 |     mutating func next<T: FixedWidthInteger>(of: T.Type) -> T {
33 |         let size = MemoryLayout<T>.size
34 |         let currentOffset = pointerOffset
   |             `- warning: initialization of immutable value 'currentOffset' was never used; consider replacing with assignment to '_' or removing it
35 |         var value: T = 0
36 |
[10/17] Compiling ZipPinch ZIPCompressor.swift
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPCompressor.swift:30:23: warning: static property 'decompress' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
28 | /// Decompressor.
29 | public enum ZIPDecompressor {
30 |     public static var decompress: @Sendable (_ compressedData: NSData) throws -> NSData = { compressedData in
   |                       |- warning: static property 'decompress' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'decompress' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'decompress' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         logger.debug("🗜️ Decompressing \(compressedData.length) bytes using zlib")
32 |         let startTime = CFAbsoluteTimeGetCurrent()
[11/17] Compiling ZipPinch ZIPEntry.swift
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPCompressor.swift:30:23: warning: static property 'decompress' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
28 | /// Decompressor.
29 | public enum ZIPDecompressor {
30 |     public static var decompress: @Sendable (_ compressedData: NSData) throws -> NSData = { compressedData in
   |                       |- warning: static property 'decompress' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'decompress' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'decompress' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         logger.debug("🗜️ Decompressing \(compressedData.length) bytes using zlib")
32 |         let startTime = CFAbsoluteTimeGetCurrent()
[12/17] Emitting module ZipPinch
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPCompressor.swift:30:23: warning: static property 'decompress' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
28 | /// Decompressor.
29 | public enum ZIPDecompressor {
30 |     public static var decompress: @Sendable (_ compressedData: NSData) throws -> NSData = { compressedData in
   |                       |- warning: static property 'decompress' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'decompress' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'decompress' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |         logger.debug("🗜️ Decompressing \(compressedData.length) bytes using zlib")
32 |         let startTime = CFAbsoluteTimeGetCurrent()
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPFolder.swift:29:23: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ZIPFolder' may have shared mutable state; this is an error in the Swift 6 language mode
 26 | private let logger = Logger(subsystem: "ZipPinch", category: "ZIPFolder")
 27 |
 28 | public struct ZIPFolder: Identifiable, Hashable, Equatable {
    |               `- note: consider making struct 'ZIPFolder' conform to the 'Sendable' protocol
 29 |     public static let empty = ZIPFolder(name: "")
    |                       |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ZIPFolder' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 30 |
 31 |     public let id = UUID()
[13/17] Compiling ZipPinch URLSession+ZIPEntries.swift
[14/17] Compiling ZipPinch URLSession+ZIPEntry.swift
[15/17] Compiling ZipPinch URLSession+ZIPFolder.swift
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:85:19: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         progress: ZIPProgress? = nil
 84 |     ) async throws -> [(entry: ZIPEntry, data: Data)] {
 85 |         try await withThrowingTaskGroup(of: (entry: ZIPEntry, data: Data).self) { taskGroup in
    |                   `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 86 |             let overallProgress = OverallProgress(count: Double(entries.count))
 87 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:85:81: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         progress: ZIPProgress? = nil
 84 |     ) async throws -> [(entry: ZIPEntry, data: Data)] {
 85 |         try await withThrowingTaskGroup(of: (entry: ZIPEntry, data: Data).self) { taskGroup in
    |                                                                                 `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 86 |             let overallProgress = OverallProgress(count: Double(entries.count))
 87 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:100:27: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 98 |                 }
 99 |
100 |                 taskGroup.addTask(priority: .medium) { [progressPerEntry] in
    |                           `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
101 |                     (entry, try await self.zipEntryData(
102 |                         entry,
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:110:47: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 |             }
109 |
110 |             let results = try await taskGroup.reduce(into: [(entry: ZIPEntry, data: Data)]()) { partialResult, value in
    |                                               `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 |                 partialResult.append(value)
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:110:95: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 |             }
109 |
110 |             let results = try await taskGroup.reduce(into: [(entry: ZIPEntry, data: Data)]()) { partialResult, value in
    |                                                                                               `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 |                 partialResult.append(value)
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:110:95: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 |             }
109 |
110 |             let results = try await taskGroup.reduce(into: [(entry: ZIPEntry, data: Data)]()) { partialResult, value in
    |                                                                                               `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 |                 partialResult.append(value)
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:94:99: warning: capture of 'entry' with non-sendable type 'ZIPEntry' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 92 |                     progressPerEntry = .init(bufferSize: progress.bufferSize) { value in
 93 |                         Task {
 94 |                             let overallValue = await overallProgress.overallValue(for: value, id: entry.filePath)
    |                                                                                                   `- warning: capture of 'entry' with non-sendable type 'ZIPEntry' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 95 |                             progress.callback(overallValue)
 96 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:95:29: warning: capture of 'progress' with non-sendable type 'ZIPProgress' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 93 |                         Task {
 94 |                             let overallValue = await overallProgress.overallValue(for: value, id: entry.filePath)
 95 |                             progress.callback(overallValue)
    |                             `- warning: capture of 'progress' with non-sendable type 'ZIPProgress' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 96 |                         }
 97 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPEntry.swift:30:15: note: consider making struct 'ZIPProgress' conform to the 'Sendable' protocol
 28 | /// Progress callback container.
 29 | /// It can be configured for buffer size, which will affect how often the callback is invoked.
 30 | public struct ZIPProgress {
    |               `- note: consider making struct 'ZIPProgress' conform to the 'Sendable' protocol
 31 |     /// A number of bytes of the buffer, which will affect how often the callback is invoked.
 32 |     /// It can be greater than or equal to 64 Kb (default value).
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:94:99: warning: capture of 'entry' with non-sendable type 'ZIPEntry' in an isolated closure; this is an error in the Swift 6 language mode
 92 |                     progressPerEntry = .init(bufferSize: progress.bufferSize) { value in
 93 |                         Task {
 94 |                             let overallValue = await overallProgress.overallValue(for: value, id: entry.filePath)
    |                                                                                                   `- warning: capture of 'entry' with non-sendable type 'ZIPEntry' in an isolated closure; this is an error in the Swift 6 language mode
 95 |                             progress.callback(overallValue)
 96 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:95:29: warning: capture of 'progress' with non-sendable type 'ZIPProgress' in an isolated closure; this is an error in the Swift 6 language mode
 93 |                         Task {
 94 |                             let overallValue = await overallProgress.overallValue(for: value, id: entry.filePath)
 95 |                             progress.callback(overallValue)
    |                             `- warning: capture of 'progress' with non-sendable type 'ZIPProgress' in an isolated closure; this is an error in the Swift 6 language mode
 96 |                         }
 97 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPEntry.swift:30:15: note: consider making struct 'ZIPProgress' conform to the 'Sendable' protocol
 28 | /// Progress callback container.
 29 | /// It can be configured for buffer size, which will affect how often the callback is invoked.
 30 | public struct ZIPProgress {
    |               `- note: consider making struct 'ZIPProgress' conform to the 'Sendable' protocol
 31 |     /// A number of bytes of the buffer, which will affect how often the callback is invoked.
 32 |     /// It can be greater than or equal to 64 Kb (default value).
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:100:54: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 98 |                 }
 99 |
100 |                 taskGroup.addTask(priority: .medium) { [progressPerEntry] in
    |                                                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
101 |                     (entry, try await self.zipEntryData(
    |                      `- note: closure captures non-Sendable 'entry'
102 |                         entry,
103 |                         for: request,
104 |                         delegate: delegate,
105 |                         progress: progressPerEntry
    |                                   `- note: closure captures non-Sendable 'progressPerEntry'
106 |                     ))
107 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPRange.swift:85:35: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 83 |                 logger.debug("🚀 Starting URLSession.data(for:delegate:)")
 84 |                 let (data, response) = try await withThrowingTaskGroup(of: (Data, URLResponse).self) { group in
 85 |                     group.addTask {
    |                                   `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 86 |                         try await session.data(for: request, delegate: delegate)
    |                                                     `- note: closure captures reference to mutable var 'request' which is accessible to code in the current task
 87 |                     }
 88 |
[16/17] Compiling ZipPinch URLSession+ZIPRange.swift
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:85:19: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         progress: ZIPProgress? = nil
 84 |     ) async throws -> [(entry: ZIPEntry, data: Data)] {
 85 |         try await withThrowingTaskGroup(of: (entry: ZIPEntry, data: Data).self) { taskGroup in
    |                   `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 86 |             let overallProgress = OverallProgress(count: Double(entries.count))
 87 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:85:81: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 83 |         progress: ZIPProgress? = nil
 84 |     ) async throws -> [(entry: ZIPEntry, data: Data)] {
 85 |         try await withThrowingTaskGroup(of: (entry: ZIPEntry, data: Data).self) { taskGroup in
    |                                                                                 `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 86 |             let overallProgress = OverallProgress(count: Double(entries.count))
 87 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:100:27: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 98 |                 }
 99 |
100 |                 taskGroup.addTask(priority: .medium) { [progressPerEntry] in
    |                           `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
101 |                     (entry, try await self.zipEntryData(
102 |                         entry,
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:110:47: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 |             }
109 |
110 |             let results = try await taskGroup.reduce(into: [(entry: ZIPEntry, data: Data)]()) { partialResult, value in
    |                                               `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 |                 partialResult.append(value)
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:110:95: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 |             }
109 |
110 |             let results = try await taskGroup.reduce(into: [(entry: ZIPEntry, data: Data)]()) { partialResult, value in
    |                                                                                               `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 |                 partialResult.append(value)
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:110:95: warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
108 |             }
109 |
110 |             let results = try await taskGroup.reduce(into: [(entry: ZIPEntry, data: Data)]()) { partialResult, value in
    |                                                                                               `- warning: type 'ZIPEntry' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
111 |                 partialResult.append(value)
112 |             }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:94:99: warning: capture of 'entry' with non-sendable type 'ZIPEntry' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 92 |                     progressPerEntry = .init(bufferSize: progress.bufferSize) { value in
 93 |                         Task {
 94 |                             let overallValue = await overallProgress.overallValue(for: value, id: entry.filePath)
    |                                                                                                   `- warning: capture of 'entry' with non-sendable type 'ZIPEntry' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 95 |                             progress.callback(overallValue)
 96 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:95:29: warning: capture of 'progress' with non-sendable type 'ZIPProgress' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 93 |                         Task {
 94 |                             let overallValue = await overallProgress.overallValue(for: value, id: entry.filePath)
 95 |                             progress.callback(overallValue)
    |                             `- warning: capture of 'progress' with non-sendable type 'ZIPProgress' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 96 |                         }
 97 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPEntry.swift:30:15: note: consider making struct 'ZIPProgress' conform to the 'Sendable' protocol
 28 | /// Progress callback container.
 29 | /// It can be configured for buffer size, which will affect how often the callback is invoked.
 30 | public struct ZIPProgress {
    |               `- note: consider making struct 'ZIPProgress' conform to the 'Sendable' protocol
 31 |     /// A number of bytes of the buffer, which will affect how often the callback is invoked.
 32 |     /// It can be greater than or equal to 64 Kb (default value).
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:94:99: warning: capture of 'entry' with non-sendable type 'ZIPEntry' in an isolated closure; this is an error in the Swift 6 language mode
 92 |                     progressPerEntry = .init(bufferSize: progress.bufferSize) { value in
 93 |                         Task {
 94 |                             let overallValue = await overallProgress.overallValue(for: value, id: entry.filePath)
    |                                                                                                   `- warning: capture of 'entry' with non-sendable type 'ZIPEntry' in an isolated closure; this is an error in the Swift 6 language mode
 95 |                             progress.callback(overallValue)
 96 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPEntry.swift:31:15: note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 29 |
 30 | /// The ZIP entry.
 31 | public struct ZIPEntry: Identifiable, Hashable, Codable {
    |               `- note: consider making struct 'ZIPEntry' conform to the 'Sendable' protocol
 32 |     public let id: String
 33 |
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:95:29: warning: capture of 'progress' with non-sendable type 'ZIPProgress' in an isolated closure; this is an error in the Swift 6 language mode
 93 |                         Task {
 94 |                             let overallValue = await overallProgress.overallValue(for: value, id: entry.filePath)
 95 |                             progress.callback(overallValue)
    |                             `- warning: capture of 'progress' with non-sendable type 'ZIPProgress' in an isolated closure; this is an error in the Swift 6 language mode
 96 |                         }
 97 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPEntry.swift:30:15: note: consider making struct 'ZIPProgress' conform to the 'Sendable' protocol
 28 | /// Progress callback container.
 29 | /// It can be configured for buffer size, which will affect how often the callback is invoked.
 30 | public struct ZIPProgress {
    |               `- note: consider making struct 'ZIPProgress' conform to the 'Sendable' protocol
 31 |     /// A number of bytes of the buffer, which will affect how often the callback is invoked.
 32 |     /// It can be greater than or equal to 64 Kb (default value).
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPFolder.swift:100:54: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 98 |                 }
 99 |
100 |                 taskGroup.addTask(priority: .medium) { [progressPerEntry] in
    |                                                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
101 |                     (entry, try await self.zipEntryData(
    |                      `- note: closure captures non-Sendable 'entry'
102 |                         entry,
103 |                         for: request,
104 |                         delegate: delegate,
105 |                         progress: progressPerEntry
    |                                   `- note: closure captures non-Sendable 'progressPerEntry'
106 |                     ))
107 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/URLSession+ZIPRange.swift:85:35: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 83 |                 logger.debug("🚀 Starting URLSession.data(for:delegate:)")
 84 |                 let (data, response) = try await withThrowingTaskGroup(of: (Data, URLResponse).self) { group in
 85 |                     group.addTask {
    |                                   `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 86 |                         try await session.data(for: request, delegate: delegate)
    |                                                     `- note: closure captures reference to mutable var 'request' which is accessible to code in the current task
 87 |                     }
 88 |
[17/17] Compiling ZipPinch ZIPFolder.swift
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPFolder.swift:29:23: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ZIPFolder' may have shared mutable state; this is an error in the Swift 6 language mode
 26 | private let logger = Logger(subsystem: "ZipPinch", category: "ZIPFolder")
 27 |
 28 | public struct ZIPFolder: Identifiable, Hashable, Equatable {
    |               `- note: consider making struct 'ZIPFolder' conform to the 'Sendable' protocol
 29 |     public static let empty = ZIPFolder(name: "")
    |                       |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ZIPFolder' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 30 |
 31 |     public let id = UUID()
Build complete! (5.17s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "ZipPinch",
  "name" : "ZipPinch",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "ZipPinch",
      "targets" : [
        "ZipPinch"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ZipPinchTests",
      "module_type" : "SwiftTarget",
      "name" : "ZipPinchTests",
      "path" : "Tests/ZipPinchTests",
      "sources" : [
        "ArchiveTests.swift",
        "BinaryExtractorTests.swift",
        "DateMSDOSTests.swift",
        "ZIPEntryTests.swift",
        "ZIPErrorTests.swift",
        "ZIPFolderTests.swift"
      ],
      "target_dependencies" : [
        "ZipPinch"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ZipPinch",
      "module_type" : "SwiftTarget",
      "name" : "ZipPinch",
      "path" : "Sources/ZipPinch",
      "product_memberships" : [
        "ZipPinch"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/PrivacyInfo.xcprivacy",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "URLSession+ZIPEntries.swift",
        "URLSession+ZIPEntry.swift",
        "URLSession+ZIPFolder.swift",
        "URLSession+ZIPRange.swift",
        "ZIPCompressor.swift",
        "ZIPEntry.swift",
        "ZIPFileFormat/BinaryExtractor.swift",
        "ZIPFileFormat/Date+MSDOS.swift",
        "ZIPFileFormat/ZIPDirectoryRecord.swift",
        "ZIPFileFormat/ZIPEndRecord.swift",
        "ZIPFileFormat/ZIPFileHeader.swift",
        "ZIPFolder.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/buh/zippinch/1.5.0
Repository:               buh/ZipPinch
Swift version used:       6.1
Target:                   ZipPinch
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/swift-docc-render-artifact/.git/
From https://github.com/swiftlang/swift-docc-render-artifact
 * branch            4633b45fc732d8c55568be09dd852f9dc1582c25 -> FETCH_HEAD
HEAD is now at 4633b45 Update the artifact
Cloned https://github.com/swiftlang/swift-docc-render-artifact
Extracting symbol information for 'ZipPinch'...
Finished extracting symbol information for 'ZipPinch'. (3.85s)
Building documentation for 'ZipPinch'...
Finished building documentation for 'ZipPinch' (0.14s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/buh/zippinch/1.5.0
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.62s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.5 (1.24s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.83s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.46s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.5
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Building for debugging...
[0/8] Write sources
[2/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version-2F0A5646E1D333AE.txt
[6/53] Compiling SymbolKit Mixin+Equals.swift
[7/53] Compiling SymbolKit Mixin+Hash.swift
[8/53] Compiling SymbolKit Mixin.swift
[9/53] Compiling SymbolKit LineList.swift
[10/53] Compiling SymbolKit Position.swift
[11/57] Compiling SymbolKit GenericConstraint.swift
[12/57] Compiling SymbolKit GenericParameter.swift
[13/57] Compiling SymbolKit Generics.swift
[14/57] Compiling SymbolKit Namespace.swift
[15/57] Compiling SymbolKit Relationship.swift
[16/57] Compiling SymbolKit RelationshipKind.swift
[17/57] Compiling SymbolKit SourceOrigin.swift
[18/57] Compiling SymbolKit GenericConstraints.swift
[19/57] Compiling SymbolKit Swift.swift
[20/57] Emitting module Snippets
[21/57] Compiling Snippets SnippetParser.swift
[22/57] Compiling Snippets Snippet.swift
[23/57] Compiling SymbolKit SourceRange.swift
[24/57] Compiling SymbolKit Metadata.swift
[25/57] Compiling SymbolKit Module.swift
[26/57] Compiling SymbolKit OperatingSystem.swift
[27/57] Compiling SymbolKit Platform.swift
[28/57] Compiling SymbolKit Names.swift
[29/57] Compiling SymbolKit SPI.swift
[30/57] Compiling SymbolKit Snippet.swift
[31/57] Compiling SymbolKit Extension.swift
[32/57] Compiling SymbolKit Identifier.swift
[33/57] Compiling SymbolKit KindIdentifier.swift
[34/57] Compiling SymbolKit Location.swift
[35/57] Compiling SymbolKit Mutability.swift
[36/57] Emitting module SymbolKit
[37/57] Compiling SymbolKit DeclarationFragments.swift
[38/57] Compiling SymbolKit Fragment.swift
[39/57] Compiling SymbolKit FragmentKind.swift
[40/57] Compiling SymbolKit FunctionParameter.swift
[41/57] Compiling SymbolKit FunctionSignature.swift
[42/57] Compiling SymbolKit Symbol.swift
[43/57] Compiling SymbolKit SymbolKind.swift
[44/57] Compiling SymbolKit SymbolGraph.swift
[45/57] Compiling SymbolKit GraphCollector.swift
[46/57] Compiling SymbolKit SemanticVersion.swift
[47/57] Compiling SymbolKit AccessControl.swift
[48/57] Compiling SymbolKit Availability.swift
[49/57] Compiling SymbolKit AvailabilityItem.swift
[50/57] Compiling SymbolKit Domain.swift
[51/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[52/57] Compiling SymbolKit UnifiedSymbol.swift
[53/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[54/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[55/61] Compiling snippet_extract URL+Status.swift
[56/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[57/61] Emitting module snippet_extract
[58/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.05s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/14] Compiling ZipPinch ZIPEndRecord.swift
[3/14] Compiling ZipPinch ZIPFolder.swift
[4/14] Compiling ZipPinch ZIPFileHeader.swift
[5/15] Compiling ZipPinch Date+MSDOS.swift
[6/15] Compiling ZipPinch ZIPDirectoryRecord.swift
[7/15] Compiling ZipPinch BinaryExtractor.swift
/Users/admin/builder/spi-builder-workspace/Sources/ZipPinch/ZIPFileFormat/BinaryExtractor.swift:34:13: warning: initialization of immutable value 'currentOffset' was never used; consider replacing with assignment to '_' or removing it
32 |     mutating func next<T: FixedWidthInteger>(of: T.Type) -> T {
33 |         let size = MemoryLayout<T>.size
34 |         let currentOffset = pointerOffset
   |             `- warning: initialization of immutable value 'currentOffset' was never used; consider replacing with assignment to '_' or removing it
35 |         var value: T = 0
36 |
[8/15] Compiling ZipPinch ZIPCompressor.swift
[9/15] Compiling ZipPinch ZIPEntry.swift
[10/15] Compiling ZipPinch resource_bundle_accessor.swift
[11/15] Compiling ZipPinch URLSession+ZIPFolder.swift
[12/15] Compiling ZipPinch URLSession+ZIPRange.swift
[13/15] Compiling ZipPinch URLSession+ZIPEntries.swift
[14/15] Compiling ZipPinch URLSession+ZIPEntry.swift
[15/15] Emitting module ZipPinch
Build of target: 'ZipPinch' complete! (1.73s)
     172
2	/Users/admin/builder/spi-builder-workspace/.docs/buh/zippinch/1.5.0
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/buh/zippinch/1.5.0
File count: 172
Doc size:   2.0MB
Preparing doc bundle ...
Uploading prod-buh-zippinch-1.5.0-9f804b7b.zip to s3://spi-docs-inbox/prod-buh-zippinch-1.5.0-9f804b7b.zip
Copying... [14%]
Copying... [29%]
Copying... [43%]
Copying... [58%]
Copying... [72%]
Copying... [87%]
Copying... [100%]
Done.