The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of CSVImporter, reference main (193aa0), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 22:37:02 UTC.

Swift 6 data race errors: 0

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.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/FlineDev/CSVImporter.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/FlineDev/CSVImporter
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 193aa03 Update code style
Cloned https://github.com/FlineDev/CSVImporter.git
Revision (git rev-parse @):
193aa03649f7fcdd1a2d9ed968885ef145e4ac18
SUCCESS checkout https://github.com/FlineDev/CSVImporter.git at main
Fetching https://github.com/Flinesoft/HandySwift.git
[1/3368] Fetching handyswift
Fetched https://github.com/Flinesoft/HandySwift.git from cache (1.07s)
Fetching https://github.com/Quick/Quick.git
Fetching https://github.com/Quick/Nimble.git
[1/19567] Fetching nimble
[2/34322] Fetching nimble, quick
Fetched https://github.com/Quick/Quick.git from cache (1.43s)
[16632/19567] Fetching nimble
Fetched https://github.com/Quick/Nimble.git from cache (1.62s)
Computing version for https://github.com/Quick/Nimble.git
Computed https://github.com/Quick/Nimble.git at 8.0.1 (4.87s)
Computing version for https://github.com/Quick/Quick.git
Computed https://github.com/Quick/Quick.git at 2.1.0 (0.68s)
Creating working copy for https://github.com/Quick/Nimble.git
Working copy of https://github.com/Quick/Nimble.git resolved at 8.0.1
Creating working copy for https://github.com/Flinesoft/HandySwift.git
Working copy of https://github.com/Flinesoft/HandySwift.git resolved at main (2f054f4)
Creating working copy for https://github.com/Quick/Quick.git
Working copy of https://github.com/Quick/Quick.git resolved at 2.1.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": "csvimporter",
      "name": "CSVImporter",
      "url": "https://github.com/FlineDev/CSVImporter.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/CSVImporter",
      "dependencies": [
        {
          "identity": "handyswift",
          "name": "HandySwift",
          "url": "https://github.com/Flinesoft/HandySwift.git",
          "version": "unspecified",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/HandySwift",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/FlineDev/CSVImporter.git
[1/1106] Fetching csvimporter
Fetched https://github.com/FlineDev/CSVImporter.git from cache (1.33s)
Fetching https://github.com/Flinesoft/HandySwift.git from cache
Fetched https://github.com/Flinesoft/HandySwift.git from cache (0.50s)
Creating working copy for https://github.com/Flinesoft/HandySwift.git
Working copy of https://github.com/Flinesoft/HandySwift.git resolved at main (f45bf51)
Creating working copy for https://github.com/FlineDev/CSVImporter.git
Working copy of https://github.com/FlineDev/CSVImporter.git resolved at main (193aa03)
warning: '.resolve-product-dependencies': dependency 'csvimporter' is not used by any target
Found 1 product dependencies
  - HandySwift
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/FlineDev/CSVImporter.git
https://github.com/FlineDev/CSVImporter.git
{
  "dependencies" : [
    {
      "identity" : "handyswift",
      "requirement" : {
        "branch" : [
          "main"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Flinesoft/HandySwift.git"
    },
    {
      "identity" : "quick",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.1.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Quick/Quick.git"
    },
    {
      "identity" : "nimble",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "8.0.1",
            "upper_bound" : "9.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Quick/Nimble.git"
    }
  ],
  "manifest_display_name" : "CSVImporter",
  "name" : "CSVImporter",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "tvos",
      "version" : "17.0"
    },
    {
      "name" : "watchos",
      "version" : "10.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "CSVImporter",
      "targets" : [
        "CSVImporter"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CSVImporterTests",
      "module_type" : "SwiftTarget",
      "name" : "CSVImporterTests",
      "path" : "Tests/CSVImporterTests",
      "product_dependencies" : [
        "Quick",
        "Nimble"
      ],
      "sources" : [
        "CSVImporterSpec.swift"
      ],
      "target_dependencies" : [
        "CSVImporter"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CSVImporter",
      "module_type" : "SwiftTarget",
      "name" : "CSVImporter",
      "path" : "Frameworks/CSVImporter",
      "product_dependencies" : [
        "HandySwift"
      ],
      "product_memberships" : [
        "CSVImporter"
      ],
      "sources" : [
        "CSVImporter.swift",
        "FileSource.swift",
        "Globals.swift",
        "Source.swift",
        "StringSource.swift",
        "TextFile.swift",
        "TextFileStreamReader.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
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
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/31] Emitting module HandySwift
[5/33] Compiling HandySwift Unowned.swift
[6/33] Compiling HandySwift Weak.swift
[7/33] Compiling HandySwift GregorianTimeOfDay.swift
[8/33] Compiling HandySwift Regex.swift
[9/33] Compiling HandySwift SortedArray.swift
[10/33] Compiling HandySwift FloatExt.swift
[11/33] Compiling HandySwift IntExt.swift
[12/33] Compiling HandySwift NSObjectExt.swift
[13/33] Compiling HandySwift Withable.swift
[14/33] Compiling HandySwift FrequencyTable.swift
[15/33] Compiling HandySwift GregorianDay.swift
[16/33] Compiling HandySwift ArrayExt.swift
[17/33] Compiling HandySwift CollectionExt.swift
[18/33] Compiling HandySwift ComparableExt.swift
[19/33] Compiling HandySwift DispatchTimeIntervalExt.swift
[20/33] Compiling HandySwift DoubleExt.swift
[21/33] Compiling HandySwift DurationExt.swift
[22/33] Compiling HandySwift Globals.swift
[23/33] Compiling HandySwift AutoConforming.swift
[24/33] Compiling HandySwift DivisibleArithmetic.swift
[25/33] Compiling HandySwift NSRangeExt.swift
[26/33] Compiling HandySwift SequenceExt.swift
[27/33] Compiling HandySwift StringExt.swift
[28/33] Compiling HandySwift DataExt.swift
[29/33] Compiling HandySwift DateExt.swift
[30/33] Compiling HandySwift DictionaryExt.swift
[31/33] Compiling HandySwift StringProtocolExt.swift
[32/33] Compiling HandySwift SymmetricKeyExt.swift
[33/33] Compiling HandySwift TimeIntervalExt.swift
[34/41] Compiling CSVImporter StringSource.swift
[35/41] Compiling CSVImporter Globals.swift
[36/41] Compiling CSVImporter FileSource.swift
[37/41] Emitting module CSVImporter
[38/41] Compiling CSVImporter CSVImporter.swift
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:147:41: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 11 |
 12 | /// Importer for CSV files that maps your lines to a specified data structure.
 13 | public class CSVImporter<T> {
    |              `- note: generic class 'CSVImporter' does not conform to the 'Sendable' protocol
 14 |    // MARK: - Stored Instance Properties
 15 |    let source: Source
    :
145 |          var importedRecords = [T]()
146 |
147 |          let importedLinesWithSuccess = self.importLines { valuesInLine in
    |                                         `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
148 |             let newRecord = closure(valuesInLine)
149 |             importedRecords.append(newRecord)
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:148:29: warning: capture of 'closure' with non-sendable type '([String]) -> T' in a '@Sendable' closure
146 |
147 |          let importedLinesWithSuccess = self.importLines { valuesInLine in
148 |             let newRecord = closure(valuesInLine)
    |                             |- warning: capture of 'closure' with non-sendable type '([String]) -> T' in a '@Sendable' closure
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
149 |             importedRecords.append(newRecord)
150 |
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:148:29: warning: capture of 'closure' with non-sendable type '([String]) -> T' in an isolated closure; this is an error in the Swift 6 language mode
146 |
147 |          let importedLinesWithSuccess = self.importLines { valuesInLine in
148 |             let newRecord = closure(valuesInLine)
    |                             |- warning: capture of 'closure' with non-sendable type '([String]) -> T' 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'
149 |             importedRecords.append(newRecord)
150 |
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:151:13: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 11 |
 12 | /// Importer for CSV files that maps your lines to a specified data structure.
 13 | public class CSVImporter<T> {
    |              `- note: generic class 'CSVImporter' does not conform to the 'Sendable' protocol
 14 |    // MARK: - Stored Instance Properties
 15 |    let source: Source
    :
149 |             importedRecords.append(newRecord)
150 |
151 |             self.reportProgressIfNeeded(importedRecords)
    |             `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
152 |          }
153 |
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:178:41: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
 11 |
 12 | /// Importer for CSV files that maps your lines to a specified data structure.
 13 | public class CSVImporter<T> {
    |              `- note: generic class 'CSVImporter' does not conform to the 'Sendable' protocol
 14 |    // MARK: - Stored Instance Properties
 15 |    let source: Source
    :
176 |          var importedRecords = [T]()
177 |
178 |          let importedLinesWithSuccess = self.importLines { valuesInLine in
    |                                         `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
179 |             if recordStructure == nil {
180 |                recordStructure = valuesInLine
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:181:16: warning: capture of 'structureClosure' with non-sendable type '([String]) -> Void' in a '@Sendable' closure
179 |             if recordStructure == nil {
180 |                recordStructure = valuesInLine
181 |                structureClosure(valuesInLine)
    |                |- warning: capture of 'structureClosure' with non-sendable type '([String]) -> Void' in a '@Sendable' closure
    |                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
182 |             } else {
183 |                if let structuredValuesInLine = [String: String](keys: recordStructure!, values: valuesInLine) {
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:184:35: warning: capture of 'closure' with non-sendable type '([String : String]) -> T' in a '@Sendable' closure
182 |             } else {
183 |                if let structuredValuesInLine = [String: String](keys: recordStructure!, values: valuesInLine) {
184 |                   let newRecord = closure(structuredValuesInLine)
    |                                   |- warning: capture of 'closure' with non-sendable type '([String : String]) -> T' in a '@Sendable' closure
    |                                   `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
185 |                   importedRecords.append(newRecord)
186 |
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:181:16: warning: capture of 'structureClosure' with non-sendable type '([String]) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
179 |             if recordStructure == nil {
180 |                recordStructure = valuesInLine
181 |                structureClosure(valuesInLine)
    |                |- warning: capture of 'structureClosure' with non-sendable type '([String]) -> Void' 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'
182 |             } else {
183 |                if let structuredValuesInLine = [String: String](keys: recordStructure!, values: valuesInLine) {
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:184:35: warning: capture of 'closure' with non-sendable type '([String : String]) -> T' in an isolated closure; this is an error in the Swift 6 language mode
182 |             } else {
183 |                if let structuredValuesInLine = [String: String](keys: recordStructure!, values: valuesInLine) {
184 |                   let newRecord = closure(structuredValuesInLine)
    |                                   |- warning: capture of 'closure' with non-sendable type '([String : String]) -> T' 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'
185 |                   importedRecords.append(newRecord)
186 |
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:187:19: warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
 11 |
 12 | /// Importer for CSV files that maps your lines to a specified data structure.
 13 | public class CSVImporter<T> {
    |              `- note: generic class 'CSVImporter' does not conform to the 'Sendable' protocol
 14 |    // MARK: - Stored Instance Properties
 15 |    let source: Source
    :
185 |                   importedRecords.append(newRecord)
186 |
187 |                   self.reportProgressIfNeeded(importedRecords)
    |                   `- warning: capture of 'self' with non-sendable type 'Self' in an isolated closure; this is an error in the Swift 6 language mode
188 |                } else {
189 |                   print("Warning: Couldn't structurize line.")
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:356:13: warning: capture of 'failClosure' with non-sendable type '() -> Void' in a '@Sendable' closure
354 |       if let failClosure = self.failClosure {
355 |          callbacksDispatchQueue.async {
356 |             failClosure()
    |             |- warning: capture of 'failClosure' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
357 |          }
358 |       }
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:367:16: warning: capture of 'progressClosure' with non-sendable type '(Int) -> Void' in a '@Sendable' closure
365 |          if let progressClosure = self.progressClosure {
366 |             callbacksDispatchQueue.async {
367 |                progressClosure(importedRecords.count)
    |                |- warning: capture of 'progressClosure' with non-sendable type '(Int) -> Void' in a '@Sendable' closure
    |                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
368 |             }
369 |          }
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:367:32: warning: capture of 'importedRecords' with non-sendable type '[T]' in a '@Sendable' closure
 11 |
 12 | /// Importer for CSV files that maps your lines to a specified data structure.
 13 | public class CSVImporter<T> {
    |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 14 |    // MARK: - Stored Instance Properties
 15 |    let source: Source
    :
365 |          if let progressClosure = self.progressClosure {
366 |             callbacksDispatchQueue.async {
367 |                progressClosure(importedRecords.count)
    |                                `- warning: capture of 'importedRecords' with non-sendable type '[T]' in a '@Sendable' closure
368 |             }
369 |          }
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:376:13: warning: capture of 'finishClosure' with non-sendable type '([T]) -> Void' in a '@Sendable' closure
374 |       if let finishClosure = self.finishClosure {
375 |          callbacksDispatchQueue.async {
376 |             finishClosure(importedRecords)
    |             |- warning: capture of 'finishClosure' with non-sendable type '([T]) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
377 |          }
378 |       }
/Users/admin/builder/spi-builder-workspace/Frameworks/CSVImporter/CSVImporter.swift:376:27: warning: capture of 'importedRecords' with non-sendable type '[T]' in a '@Sendable' closure
 11 |
 12 | /// Importer for CSV files that maps your lines to a specified data structure.
 13 | public class CSVImporter<T> {
    |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 14 |    // MARK: - Stored Instance Properties
 15 |    let source: Source
    :
374 |       if let finishClosure = self.finishClosure {
375 |          callbacksDispatchQueue.async {
376 |             finishClosure(importedRecords)
    |                           `- warning: capture of 'importedRecords' with non-sendable type '[T]' in a '@Sendable' closure
377 |          }
378 |       }
[39/41] Compiling CSVImporter Source.swift
[40/41] Compiling CSVImporter TextFile.swift
[41/41] Compiling CSVImporter TextFileStreamReader.swift
Build complete! (8.91s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "handyswift",
      "requirement" : {
        "branch" : [
          "main"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Flinesoft/HandySwift.git"
    },
    {
      "identity" : "quick",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.1.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Quick/Quick.git"
    },
    {
      "identity" : "nimble",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "8.0.1",
            "upper_bound" : "9.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Quick/Nimble.git"
    }
  ],
  "manifest_display_name" : "CSVImporter",
  "name" : "CSVImporter",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "tvos",
      "version" : "17.0"
    },
    {
      "name" : "watchos",
      "version" : "10.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "CSVImporter",
      "targets" : [
        "CSVImporter"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CSVImporterTests",
      "module_type" : "SwiftTarget",
      "name" : "CSVImporterTests",
      "path" : "Tests/CSVImporterTests",
      "product_dependencies" : [
        "Quick",
        "Nimble"
      ],
      "sources" : [
        "CSVImporterSpec.swift"
      ],
      "target_dependencies" : [
        "CSVImporter"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CSVImporter",
      "module_type" : "SwiftTarget",
      "name" : "CSVImporter",
      "path" : "Frameworks/CSVImporter",
      "product_dependencies" : [
        "HandySwift"
      ],
      "product_memberships" : [
        "CSVImporter"
      ],
      "sources" : [
        "CSVImporter.swift",
        "FileSource.swift",
        "Globals.swift",
        "Source.swift",
        "StringSource.swift",
        "TextFile.swift",
        "TextFileStreamReader.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.