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

The Swift Package Index logo.Swift Package Index

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

Build Information

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

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/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
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/FlineDev/CSVImporter.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-6F35C1178C84523A.txt
[4/31] Emitting module HandySwift
[5/33] Compiling HandySwift GregorianTimeOfDay.swift
[6/33] Compiling HandySwift Regex.swift
[7/33] Compiling HandySwift SortedArray.swift
[8/33] Compiling HandySwift Unowned.swift
[9/33] Compiling HandySwift Weak.swift
[10/33] Compiling HandySwift DataExt.swift
[11/33] Compiling HandySwift DateExt.swift
[12/33] Compiling HandySwift DictionaryExt.swift
[13/33] Compiling HandySwift DispatchTimeIntervalExt.swift
[14/33] Compiling HandySwift DoubleExt.swift
[15/33] Compiling HandySwift DurationExt.swift
[16/33] Compiling HandySwift StringProtocolExt.swift
[17/33] Compiling HandySwift SymmetricKeyExt.swift
[18/33] Compiling HandySwift TimeIntervalExt.swift
[19/33] Compiling HandySwift Withable.swift
[20/33] Compiling HandySwift FrequencyTable.swift
[21/33] Compiling HandySwift GregorianDay.swift
[22/33] Compiling HandySwift Globals.swift
[23/33] Compiling HandySwift AutoConforming.swift
[24/33] Compiling HandySwift DivisibleArithmetic.swift
[25/33] Compiling HandySwift FloatExt.swift
[26/33] Compiling HandySwift IntExt.swift
[27/33] Compiling HandySwift NSObjectExt.swift
[28/33] Compiling HandySwift NSRangeExt.swift
[29/33] Compiling HandySwift SequenceExt.swift
[30/33] Compiling HandySwift StringExt.swift
[31/33] Compiling HandySwift ArrayExt.swift
[32/33] Compiling HandySwift CollectionExt.swift
[33/33] Compiling HandySwift ComparableExt.swift
[34/41] Compiling CSVImporter TextFile.swift
[35/41] Compiling CSVImporter StringSource.swift
[36/41] Compiling CSVImporter Source.swift
[37/41] Compiling CSVImporter Globals.swift
[38/41] Compiling CSVImporter TextFileStreamReader.swift
[39/41] Compiling CSVImporter FileSource.swift
[40/41] Emitting module CSVImporter
[41/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; 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
    :
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; this is an error in the Swift 6 language mode
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; 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 a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
149 |             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; 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
    :
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; this is an error in the Swift 6 language mode
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; 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 a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
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; 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 a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                   `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
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; this is an error in the Swift 6 language mode
354 |       if let failClosure = self.failClosure {
355 |          callbacksDispatchQueue.async {
356 |             failClosure()
    |             |- warning: capture of 'failClosure' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
    |                `- 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; 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: 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
    |             `- 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; 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: 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; this is an error in the Swift 6 language mode
377 |          }
378 |       }
Build complete! (40.74s)
Fetching https://github.com/Flinesoft/HandySwift.git
[1/3210] Fetching handyswift
Fetched https://github.com/Flinesoft/HandySwift.git from cache (1.44s)
Fetching https://github.com/Quick/Nimble.git
Fetching https://github.com/Quick/Quick.git
[1/14549] Fetching quick
[14550/33189] Fetching quick, nimble
Fetched https://github.com/Quick/Nimble.git from cache (3.14s)
Fetched https://github.com/Quick/Quick.git from cache (3.14s)
Computing version for https://github.com/Quick/Nimble.git
Computed https://github.com/Quick/Nimble.git at 8.0.1 (2.73s)
Computing version for https://github.com/Quick/Quick.git
Computed https://github.com/Quick/Quick.git at 2.1.0 (0.71s)
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/Nimble.git
Working copy of https://github.com/Quick/Nimble.git resolved at 8.0.1
Creating working copy for https://github.com/Quick/Quick.git
Working copy of https://github.com/Quick/Quick.git resolved at 2.1.0
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.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.