The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of SwiftFoundationCompression, reference 4.0.0 (0eba1f), with Swift 6.2 (beta) for macOS (SPM) on 19 Jun 2025 02:56:25 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/benspratling4/swiftfoundationcompression.git
Reference: 4.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/benspratling4/swiftfoundationcompression
 * tag               4.0.0      -> FETCH_HEAD
HEAD is now at 0eba1f7 Merge pull request #8 from benspratling4/without_czlib
Cloned https://github.com/benspratling4/swiftfoundationcompression.git
Revision (git rev-parse @):
0eba1f70fdbbdda08bfcc6d01ae9e2c3ffe9df2b
SUCCESS checkout https://github.com/benspratling4/swiftfoundationcompression.git at 4.0.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/benspratling4/swiftfoundationcompression.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Building for debugging...
[0/7] Write sources
[2/7] Write swift-version-1EA4D86E10B52AF.txt
[4/31] Emitting module SwiftPatterns
[5/33] Compiling SwiftPatterns WeightedNode.swift
[6/33] Compiling SwiftPatterns XMLItem.swift
[7/33] Compiling SwiftPatterns JSONPrimitive.swift
[8/33] Compiling SwiftPatterns LocalFileSource.swift
[9/33] Compiling SwiftPatterns LogSearch.swift
[10/33] Compiling SwiftPatterns Math.swift
[11/33] Compiling SwiftPatterns MediatedAccess.swift
[12/33] Compiling SwiftPatterns PriorityQueue.swift
[13/33] Compiling SwiftPatterns SkippingDecodeErrors.swift
[14/33] Compiling SwiftPatterns String+CharacterSet+replacements.swift
[15/33] Compiling SwiftPatterns String+fixes.swift
[16/33] Compiling SwiftPatterns String+insertWithPrecautionaryWhitespace.swift
[17/33] Compiling SwiftPatterns URL+ExtendedAttributes.swift
[18/33] Compiling SwiftPatterns URL+relativePaths.swift
[19/33] Compiling SwiftPatterns QueuedVar.swift
[20/33] Compiling SwiftPatterns SerializedResourceWrapping.swift
[21/33] Compiling SwiftPatterns DirectoryMonitor.swift
[22/33] Compiling SwiftPatterns DynamicCodingKeys.swift
[23/33] Compiling SwiftPatterns Int+Bits.swift
[24/33] Compiling SwiftPatterns ChangeSet.swift
[25/33] Compiling SwiftPatterns Cursor.swift
[26/33] Compiling SwiftPatterns DataExtraction.swift
[27/33] Compiling SwiftPatterns Alert.swift
[28/33] Compiling SwiftPatterns Array+StableUniqueValues.swift
[29/33] Compiling SwiftPatterns Array+dropLastWhile.swift
[29/33] Write Objects.LinkFileList
[30/33] Linking libSwiftPatterns.dylib
[32/42] Compiling SwiftFoundationCompression ZipDirectoryWrapping.swift
[33/42] Compiling SwiftFoundationCompression Types.swift
[34/42] Compiling SwiftFoundationCompression TarDirectoryWrapper.swift
[35/42] Compiling SwiftFoundationCompression ZipFileFormat.swift
[36/42] Compiling SwiftFoundationCompression WritingZipFiles.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/WritingZipFiles.swift:13:22: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 11 |
 12 |
 13 | protocol ZipWriter : class {
    |                      `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 14 |
 15 | 	func finish()throws
[37/42] Compiling SwiftFoundationCompression FileManager+Compression.swift
[38/42] Compiling SwiftFoundationCompression GZipDataWrapping.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/GZipDataWrapping.swift:202:24: warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
200 | 	//do the dual-buffer thing
201 | 	var inBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
202 | 	let inBufferPointer = UnsafeMutableBufferPointer(start: &inBuffer, count: chunkSize)
    |                        |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<UInt8>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
    |                        |                                 `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                        `- warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
203 | 	var outBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
204 | 	let outBufferPointer = UnsafeMutableBufferPointer(start: &outBuffer, count: chunkSize)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/GZipDataWrapping.swift:204:25: warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
202 | 	let inBufferPointer = UnsafeMutableBufferPointer(start: &inBuffer, count: chunkSize)
203 | 	var outBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
204 | 	let outBufferPointer = UnsafeMutableBufferPointer(start: &outBuffer, count: chunkSize)
    |                         |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<UInt8>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
    |                         |                                 `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                         `- warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
205 |
206 | 	//pre-fill the inBuffer
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/GZipDataWrapping.swift:235:37: warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
233 | 	let fileNameData:Data = named.data(using: .isoLatin1) ?? Data()
234 | 	var dataBytes = [UInt8](repeating:0, count:fileNameData.count + 1)
235 | 	let _ = fileNameData.copyBytes(to: UnsafeMutableBufferPointer(start:&dataBytes, count:fileNameData.count))
    |                                     |                                |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<UInt8>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
    |                                     |                                `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                                     `- warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
236 | 	var header:gz_header = gz_header(text: 0, time: time, xflags: 0, os: 0, extra: nil, extra_len: 0, extra_max: 0, name: &dataBytes, name_max: UInt32(fileNameData.count + 1), comment: nil, comm_max: 0, hcrc: 0, done: 0)
237 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/GZipDataWrapping.swift:236:120: warning: cannot use inout expression here; argument 'name' must be a pointer that outlives the call to 'init(text:time:xflags:os:extra:extra_len:extra_max:name:name_max:comment:comm_max:hcrc:done:)' [#TemporaryPointers]
234 | 	var dataBytes = [UInt8](repeating:0, count:fileNameData.count + 1)
235 | 	let _ = fileNameData.copyBytes(to: UnsafeMutableBufferPointer(start:&dataBytes, count:fileNameData.count))
236 | 	var header:gz_header = gz_header(text: 0, time: time, xflags: 0, os: 0, extra: nil, extra_len: 0, extra_max: 0, name: &dataBytes, name_max: UInt32(fileNameData.count + 1), comment: nil, comm_max: 0, hcrc: 0, done: 0)
    |                                                                                                                        |- warning: cannot use inout expression here; argument 'name' must be a pointer that outlives the call to 'init(text:time:xflags:os:extra:extra_len:extra_max:name:name_max:comment:comm_max:hcrc:done:)' [#TemporaryPointers]
    |                                                                                                                        |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<Bytef>?' (aka 'Optional<UnsafeMutablePointer<UInt8>>') produces a pointer valid only for the duration of the call to 'init(text:time:xflags:os:extra:extra_len:extra_max:name:name_max:comment:comm_max:hcrc:done:)'
    |                                                                                                                        `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
237 |
238 | 	streamStatus = deflateSetHeader(&stream, &header)
[#TemporaryPointers]: <https://docs.swift.org/compiler/documentation/diagnostics/temporary-pointers>
[39/42] Compiling SwiftFoundationCompression Data+Compression.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/Data+Compression.swift:68:25: warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
 66 | 		//do the dual-buffer thing
 67 | 		var inBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
 68 | 		let inBufferPointer = UnsafeMutableBufferPointer(start: &inBuffer, count: chunkSize)
    |                         |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<UInt8>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
    |                         |                                 `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                         `- warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
 69 | 		var outBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
 70 | 		let outBufferPointer = UnsafeMutableBufferPointer(start: &outBuffer, count: chunkSize)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/Data+Compression.swift:70:26: warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
 68 | 		let inBufferPointer = UnsafeMutableBufferPointer(start: &inBuffer, count: chunkSize)
 69 | 		var outBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
 70 | 		let outBufferPointer = UnsafeMutableBufferPointer(start: &outBuffer, count: chunkSize)
    |                          |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<UInt8>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
    |                          |                                 `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                          `- warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
 71 |
 72 | 		//pre-fill the inBuffer
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/Data+Compression.swift:134:21: warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
132 | 		let chunkSize:Int = memoryPageSize
133 | 		var copyBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
134 | 		let inputBuffer = UnsafeMutableBufferPointer(start: &copyBuffer, count: chunkSize)
    |                     |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<UInt8>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
    |                     |                                 `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                     `- warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
135 | 		let availableByteCount:Int = Swift.min(self.count, chunkSize)
136 | 		let copiedByteCount:Int = self.copyBytes(to: inputBuffer, from: 0..<availableByteCount)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/Data+Compression.swift:150:22: warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
148 | 		//prepare an output buffer
149 | 		var decompressBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
150 | 		let outputBuffer = UnsafeMutableBufferPointer(start: &decompressBuffer, count: chunkSize)
    |                      |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<UInt8>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
    |                      |                                 `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                      `- warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
151 |
152 | 		var outputData:Data = Data()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/Data+Compression.swift:136:7: warning: immutable value 'copiedByteCount' was never used; consider replacing with '_' or removing it [#no-usage]
134 | 		let inputBuffer = UnsafeMutableBufferPointer(start: &copyBuffer, count: chunkSize)
135 | 		let availableByteCount:Int = Swift.min(self.count, chunkSize)
136 | 		let copiedByteCount:Int = self.copyBytes(to: inputBuffer, from: 0..<availableByteCount)
    |       `- warning: immutable value 'copiedByteCount' was never used; consider replacing with '_' or removing it [#no-usage]
137 | 		var aStream:z_stream = z_stream(next_in: inputBuffer.baseAddress, avail_in: UInt32(availableByteCount), total_in: 0, next_out: nil, avail_out: 0, total_out: 0, msg: nil, state: nil, zalloc: nil, zfree: nil, opaque: nil, data_type: 0, adler: 0, reserved: 0)
138 | 		let windowBits:Int32 = -15 //some kind of magic value
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/Data+Compression.swift:194:21: warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
192 | 		let chunkSize:Int = memoryPageSize
193 | 		var copyBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
194 | 		let inputBuffer = UnsafeMutableBufferPointer(start: &copyBuffer, count: chunkSize)
    |                     |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<UInt8>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
    |                     |                                 `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                     `- warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
195 | 		let availableByteCount:Int = Swift.min(self.count, chunkSize)
196 | 		let copiedByteCount:Int = self.copyBytes(to: inputBuffer, from: 0..<availableByteCount)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/Data+Compression.swift:210:22: warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
208 | 		//prepare an output buffer
209 | 		var decompressBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
210 | 		let outputBuffer = UnsafeMutableBufferPointer(start: &decompressBuffer, count: chunkSize)
    |                      |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<UInt8>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
    |                      |                                 `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                      `- warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
211 |
212 | 		var outputData:Data = Data()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/Data+Compression.swift:196:7: warning: immutable value 'copiedByteCount' was never used; consider replacing with '_' or removing it [#no-usage]
194 | 		let inputBuffer = UnsafeMutableBufferPointer(start: &copyBuffer, count: chunkSize)
195 | 		let availableByteCount:Int = Swift.min(self.count, chunkSize)
196 | 		let copiedByteCount:Int = self.copyBytes(to: inputBuffer, from: 0..<availableByteCount)
    |       `- warning: immutable value 'copiedByteCount' was never used; consider replacing with '_' or removing it [#no-usage]
197 | 		var aStream:z_stream = z_stream(next_in: inputBuffer.baseAddress, avail_in: UInt32(availableByteCount), total_in: 0, next_out: nil, avail_out: 0, total_out: 0, msg: nil, state: nil, zalloc: nil, zfree: nil, opaque: nil, data_type: 0, adler: 0, reserved: 0)
198 | 		let windowBits:Int32 = 15 | 16 //some kind of magic value
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/Data+Compression.swift:257:25: warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
255 | 		//do the dual-buffer thing
256 | 		var inBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
257 | 		let inBufferPointer = UnsafeMutableBufferPointer(start: &inBuffer, count: chunkSize)
    |                         |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<UInt8>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
    |                         |                                 `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                         `- warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
258 | 		var outBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
259 | 		let outBufferPointer = UnsafeMutableBufferPointer(start: &outBuffer, count: chunkSize)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/Data+Compression.swift:259:26: warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
257 | 		let inBufferPointer = UnsafeMutableBufferPointer(start: &inBuffer, count: chunkSize)
258 | 		var outBuffer:[UInt8] = [UInt8](repeating:0, count:chunkSize)
259 | 		let outBufferPointer = UnsafeMutableBufferPointer(start: &outBuffer, count: chunkSize)
    |                          |                                 |- note: implicit argument conversion from '[UInt8]' to 'UnsafeMutablePointer<UInt8>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
    |                          |                                 `- note: use the 'withUnsafeMutableBufferPointer' method on Array in order to explicitly convert argument to buffer pointer valid for a defined scope
    |                          `- warning: initialization of 'UnsafeMutableBufferPointer<UInt8>' results in a dangling buffer pointer [#TemporaryPointers]
260 |
261 | 		//pre-fill the inBuffer
[#TemporaryPointers]: <https://docs.swift.org/compiler/documentation/diagnostics/temporary-pointers>
[40/42] Emitting module SwiftFoundationCompression
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFoundationCompression/WritingZipFiles.swift:13:22: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 11 |
 12 |
 13 | protocol ZipWriter : class {
    |                      `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 14 |
 15 | 	func finish()throws
[40/42] Write Objects.LinkFileList
[41/42] Linking libSwiftFoundationCompression.dylib
Build complete! (12.18s)
Fetching https://github.com/benspratling4/SwiftPatterns.git
[1/301] Fetching swiftpatterns
Fetched https://github.com/benspratling4/SwiftPatterns.git from cache (0.82s)
Computing version for https://github.com/benspratling4/SwiftPatterns.git
Computed https://github.com/benspratling4/SwiftPatterns.git at 4.5.0 (1.36s)
Creating working copy for https://github.com/benspratling4/SwiftPatterns.git
Working copy of https://github.com/benspratling4/SwiftPatterns.git resolved at 4.5.0
warning: 'swiftpatterns': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/.build/checkouts/SwiftPatterns/Sources/SwiftPatterns/PrivacyInfo.xcprivacy
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swiftpatterns",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.0.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/benspratling4/SwiftPatterns.git"
    }
  ],
  "manifest_display_name" : "SwiftFoundationCompression",
  "name" : "SwiftFoundationCompression",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "SwiftFoundationCompression",
      "targets" : [
        "SwiftFoundationCompression"
      ],
      "type" : {
        "library" : [
          "dynamic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "SwiftFoundationCompressionTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftFoundationCompressionTests",
      "path" : "Tests/SwiftFoundationCompressionTests",
      "sources" : [
        "DeflateTests.swift",
        "GZipHeaderTests.swift",
        "GunzipTests.swift",
        "WritingZipFiles.swift",
        "XCTestManifests.swift",
        "ZipDirectoryWrappingTests.swift",
        "ZipFileFormatTests.swift"
      ],
      "target_dependencies" : [
        "SwiftFoundationCompression"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftFoundationCompression",
      "module_type" : "SwiftTarget",
      "name" : "SwiftFoundationCompression",
      "path" : "Sources/SwiftFoundationCompression",
      "product_dependencies" : [
        "SwiftPatterns"
      ],
      "product_memberships" : [
        "SwiftFoundationCompression"
      ],
      "sources" : [
        "Data+Compression.swift",
        "FileManager+Compression.swift",
        "GZipDataWrapping.swift",
        "TarDirectoryWrapper.swift",
        "Types.swift",
        "WritingZipFiles.swift",
        "ZipDirectoryWrapping.swift",
        "ZipFileFormat.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.