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 webber-tools, reference master (d342e5), with Swift 6.0 for macOS (SPM) on 15 Sep 2024 00:02:06 UTC.

Swift 6 data race errors: 5

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.0.0-Release.Candidate.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.53.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/swifweb/webber-tools.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/swifweb/webber-tools
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at d342e52 🛠 Improve swift errors printing
Cloned https://github.com/swifweb/webber-tools.git
Revision (git rev-parse @):
d342e526c7b924f5aef5d190e09a6370b098ea80
SUCCESS checkout https://github.com/swifweb/webber-tools.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/swifweb/webber-tools.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.0.0-Release.Candidate.app xcrun 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-117DEE11B69C53C9.txt
[4/65] Emitting module Crypto
[5/71] Compiling Crypto EdDSA.swift
[6/71] Compiling Crypto Signature.swift
[7/71] Compiling Crypto ArbitraryPrecisionInteger_boring.swift
[8/71] Compiling Crypto CryptoKitErrors_boring.swift
[9/71] Compiling Crypto FiniteFieldArithmeticContext_boring.swift
[10/71] Compiling Crypto RNG_boring.swift
[11/71] Compiling Crypto AES-GCM.swift
[12/71] Compiling Crypto AES-GCM_boring.swift
[13/71] Compiling Crypto ChaChaPoly_boring.swift
[14/71] Compiling Crypto ChaChaPoly.swift
[15/71] Compiling Crypto Cipher.swift
[16/71] Compiling Crypto Nonces.swift
[17/71] Compiling Crypto ASN1.swift
[18/71] Compiling Crypto SafeCompare_boring.swift
[19/71] Compiling Crypto Zeroization_boring.swift
[20/71] Compiling Crypto PrettyBytes.swift
[21/71] Compiling Crypto SafeCompare.swift
[22/71] Compiling Crypto SecureBytes.swift
[23/71] Compiling Crypto Zeroization.swift
[24/71] Compiling Crypto Curve25519.swift
[25/71] Compiling Crypto Ed25519.swift
[26/71] Compiling Crypto NISTCurvesKeys.swift
[27/71] Compiling Crypto X25519Keys.swift
[28/71] Compiling Crypto SymmetricKeys.swift
[29/71] Compiling Crypto HMAC.swift
[30/71] Compiling Crypto MACFunctions.swift
[31/71] Compiling Crypto ASN1Any.swift
[32/71] Compiling Crypto ASN1BitString.swift
[33/71] Compiling Crypto ASN1Boolean.swift
[34/71] Compiling Crypto ASN1Identifier.swift
[35/71] Compiling Crypto ASN1Integer.swift
[36/71] Compiling Crypto ASN1Null.swift
[37/71] Compiling Crypto ASN1OctetString.swift
[38/71] Compiling Crypto SEC1PrivateKey.swift
[39/71] Compiling Crypto SubjectPublicKeyInfo.swift
[40/71] Compiling Crypto CryptoKitErrors.swift
[41/71] Compiling Crypto Digest_boring.swift
[42/71] Compiling Crypto Digest.swift
[43/71] Compiling Crypto Digests.swift
[44/71] Compiling Crypto HashFunctions.swift
[45/71] Compiling Crypto MessageAuthenticationCode.swift
[46/71] Compiling Crypto AES.swift
[47/71] Compiling Crypto ECDSASignature_boring.swift
[48/71] Compiling Crypto ECDSA_boring.swift
[49/71] Compiling Crypto EdDSA_boring.swift
[50/71] Compiling Crypto ECDSA.swift
[51/71] Compiling Crypto ASN1Strings.swift
[52/71] Compiling Crypto ArraySliceBigint.swift
[53/71] Compiling Crypto GeneralizedTime.swift
[54/71] Compiling Crypto ObjectIdentifier.swift
[55/71] Compiling Crypto ECDSASignature.swift
[56/71] Compiling Crypto PEMDocument.swift
[57/71] Compiling Crypto PKCS8PrivateKey.swift
[58/71] Compiling Crypto HashFunctions_SHA2.swift
[59/71] Compiling Crypto Insecure.swift
[60/71] Compiling Crypto Insecure_HashFunctions.swift
[61/71] Compiling Crypto ECDH_boring.swift
[62/71] Compiling Crypto DH.swift
[63/71] Compiling Crypto ECDH.swift
[64/71] Compiling Crypto HKDF.swift
[65/71] Compiling Crypto AESWrap.swift
[66/71] Compiling Crypto AESWrap_boring.swift
[67/71] Compiling Crypto Ed25519_boring.swift
[68/71] Compiling Crypto EllipticCurvePoint_boring.swift
[69/71] Compiling Crypto EllipticCurve_boring.swift
[70/71] Compiling Crypto NISTCurvesKeys_boring.swift
[71/71] Compiling Crypto X25519Keys_boring.swift
[72/81] Compiling WebberTools String+SHA.swift
[73/81] Compiling WebberTools CompilationErrorsParser.swift
[74/81] Compiling WebberTools Bash.swift
[75/81] Compiling WebberTools SwiftPackage.swift
[76/81] Compiling WebberTools CompilationError.swift
[77/81] Compiling WebberTools DirectoryMonitor.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/DirectoryMonitor.swift:33:23: warning: capture of 'self' with non-sendable type 'DirectoryMonitor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  8 | import Foundation
  9 |
 10 | public class DirectoryMonitor {
    |              `- note: class 'DirectoryMonitor' does not conform to the 'Sendable' protocol
 11 |     lazy var dispatchQueue = DispatchQueue(label: "xlivepreview.directorymonitor", attributes: .concurrent)
 12 |
    :
 31 |             _childChanged = newValue
 32 |             Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
 33 |                 guard self._childChanged else { return }
    |                       `- warning: capture of 'self' with non-sendable type 'DirectoryMonitor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 34 |                 self._childChanged = false
 35 |             }
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/DirectoryMonitor.swift:101:25: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  8 | import Foundation
  9 |
 10 | public class DirectoryMonitor {
    |              `- note: class 'DirectoryMonitor' does not conform to the 'Sendable' protocol
 11 |     lazy var dispatchQueue = DispatchQueue(label: "xlivepreview.directorymonitor", attributes: .concurrent)
 12 |
    :
 99 |                     self.dispatchSource?.cancel()
100 |                     self.dispatchQueue.asyncAfter(deadline: .now() + 1) {
101 |                         self.startMonitoring(closure)
    |                         `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
102 |                     }
103 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/DirectoryMonitor.swift:101:46: warning: capture of 'closure' with non-sendable type '(URL) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 99 |                     self.dispatchSource?.cancel()
100 |                     self.dispatchQueue.asyncAfter(deadline: .now() + 1) {
101 |                         self.startMonitoring(closure)
    |                                              |- warning: capture of 'closure' with non-sendable type '(URL) -> 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'
102 |                     }
103 |                 }
[78/81] Emitting module WebberTools
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/DirectoryMonitor.swift:101:25: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  8 | import Foundation
  9 |
 10 | public class DirectoryMonitor {
    |              `- note: class 'DirectoryMonitor' does not conform to the 'Sendable' protocol
 11 |     lazy var dispatchQueue = DispatchQueue(label: "xlivepreview.directorymonitor", attributes: .concurrent)
 12 |
    :
 99 |                     self.dispatchSource?.cancel()
100 |                     self.dispatchQueue.asyncAfter(deadline: .now() + 1) {
101 |                         self.startMonitoring(closure)
    |                         `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
102 |                     }
103 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/DirectoryMonitor.swift:101:46: warning: capture of 'closure' with non-sendable type '(URL) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 99 |                     self.dispatchSource?.cancel()
100 |                     self.dispatchQueue.asyncAfter(deadline: .now() + 1) {
101 |                         self.startMonitoring(closure)
    |                                              |- warning: capture of 'closure' with non-sendable type '(URL) -> 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'
102 |                     }
103 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/FS.swift:10:13: warning: let '_fs' is not concurrency-safe because non-'Sendable' type 'FS' may have shared mutable state; this is an error in the Swift 6 language mode
  8 | import Foundation
  9 |
 10 | private let _fs = FS()
    |             |- warning: let '_fs' is not concurrency-safe because non-'Sendable' type 'FS' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate '_fs' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 11 | private var _networkCache: [URL: Data] = [:]
 12 |
 13 | public final class FS {
    |                    `- note: class 'FS' does not conform to the 'Sendable' protocol
 14 |     private var monitors: [DirectoryMonitor] = []
 15 |
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/FS.swift:11:13: warning: var '_networkCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  9 |
 10 | private let _fs = FS()
 11 | private var _networkCache: [URL: Data] = [:]
    |             |- warning: var '_networkCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert '_networkCache' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: annotate '_networkCache' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 12 |
 13 | public final class FS {
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/Swift.swift:48:14: warning: associated value 'errors' of 'Sendable'-conforming enum 'SwiftError' has non-sendable type 'CompilationError'; this is an error in the Swift 6 language mode
 46 |         case text(String)
 47 |         case raw(String)
 48 |         case errors([CompilationError])
    |              `- warning: associated value 'errors' of 'Sendable'-conforming enum 'SwiftError' has non-sendable type 'CompilationError'; this is an error in the Swift 6 language mode
 49 |
 50 |         public var description: String {
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/CompilationError.swift:10:14: note: class 'CompilationError' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | public class CompilationError {
   |              `- note: class 'CompilationError' does not conform to the 'Sendable' protocol
11 |     public let file: URL
12 |     public struct Place {
[79/81] Compiling WebberTools FS.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/FS.swift:10:13: warning: let '_fs' is not concurrency-safe because non-'Sendable' type 'FS' may have shared mutable state; this is an error in the Swift 6 language mode
  8 | import Foundation
  9 |
 10 | private let _fs = FS()
    |             |- warning: let '_fs' is not concurrency-safe because non-'Sendable' type 'FS' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate '_fs' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 11 | private var _networkCache: [URL: Data] = [:]
 12 |
 13 | public final class FS {
    |                    `- note: class 'FS' does not conform to the 'Sendable' protocol
 14 |     private var monitors: [DirectoryMonitor] = []
 15 |
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/FS.swift:11:13: warning: var '_networkCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  9 |
 10 | private let _fs = FS()
 11 | private var _networkCache: [URL: Data] = [:]
    |             |- warning: var '_networkCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert '_networkCache' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: annotate '_networkCache' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 12 |
 13 | public final class FS {
[80/81] Compiling WebberTools Preview.swift
[81/81] Compiling WebberTools Swift.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/Swift.swift:48:14: warning: associated value 'errors' of 'Sendable'-conforming enum 'SwiftError' has non-sendable type 'CompilationError'; this is an error in the Swift 6 language mode
 46 |         case text(String)
 47 |         case raw(String)
 48 |         case errors([CompilationError])
    |              `- warning: associated value 'errors' of 'Sendable'-conforming enum 'SwiftError' has non-sendable type 'CompilationError'; this is an error in the Swift 6 language mode
 49 |
 50 |         public var description: String {
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/CompilationError.swift:10:14: note: class 'CompilationError' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | public class CompilationError {
   |              `- note: class 'CompilationError' does not conform to the 'Sendable' protocol
11 |     public let file: URL
12 |     public struct Place {
/Users/admin/builder/spi-builder-workspace/Sources/WebberTools/Swift.swift:120:17: warning: mutation of captured var 'resultData' in concurrently-executing code; this is an error in the Swift 6 language mode
118 |                 group.leave()
119 |             } else {
120 |                 resultData.append(data)
    |                 `- warning: mutation of captured var 'resultData' in concurrently-executing code; this is an error in the Swift 6 language mode
121 |             }
122 |         }
Build complete! (23.99s)
Fetching https://github.com/apple/swift-crypto.git
[1/8867] Fetching swift-crypto
Fetched https://github.com/apple/swift-crypto.git from cache (1.71s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 2.6.0 (0.72s)
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 2.6.0
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-crypto",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-crypto.git"
    }
  ],
  "manifest_display_name" : "webber-tools",
  "name" : "webber-tools",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    }
  ],
  "products" : [
    {
      "name" : "WebberTools",
      "targets" : [
        "WebberTools"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "WebberToolsTests",
      "module_type" : "SwiftTarget",
      "name" : "WebberToolsTests",
      "path" : "Tests/WebberToolsTests",
      "sources" : [
        "WebberToolsTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "WebberTools"
      ],
      "type" : "test"
    },
    {
      "c99name" : "WebberTools",
      "module_type" : "SwiftTarget",
      "name" : "WebberTools",
      "path" : "Sources/WebberTools",
      "product_dependencies" : [
        "Crypto"
      ],
      "product_memberships" : [
        "WebberTools"
      ],
      "sources" : [
        "Bash.swift",
        "CompilationError.swift",
        "CompilationErrorsParser.swift",
        "DirectoryMonitor.swift",
        "FS.swift",
        "Preview.swift",
        "String+SHA.swift",
        "Swift.swift",
        "SwiftPackage.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.