The Swift Package Index logo.Swift Package Index

Build Information

Successful build of BCryptSwift, reference master (9d8940), with Swift 6.1 for macOS (SPM) on 14 Aug 2025 01:01:17 UTC.

Swift 6 data race errors: 3

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.66.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/wisetail/BCryptSwift.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/wisetail/BCryptSwift
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 9d89409 Made tests determine if Pods or SPM
Cloned https://github.com/wisetail/BCryptSwift.git
Revision (git rev-parse @):
9d89409837466ed5e51eb0c1e57cbd88e5d7d89d
SUCCESS checkout https://github.com/wisetail/BCryptSwift.git at master
========================================
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": "bcryptswift",
      "name": "BCryptSwift",
      "url": "https://github.com/wisetail/BCryptSwift.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/BCryptSwift",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/wisetail/BCryptSwift.git
[1/316] Fetching bcryptswift
Fetched https://github.com/wisetail/BCryptSwift.git from cache (0.80s)
Creating working copy for https://github.com/wisetail/BCryptSwift.git
Working copy of https://github.com/wisetail/BCryptSwift.git resolved at master (9d89409)
warning: '.resolve-product-dependencies': dependency 'bcryptswift' 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/wisetail/BCryptSwift.git
https://github.com/wisetail/BCryptSwift.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "BCryptSwift",
  "name" : "BCryptSwift",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "5.0"
    }
  ],
  "products" : [
    {
      "name" : "BCryptSwift",
      "targets" : [
        "BCryptSwift"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "BCryptSwiftTests",
      "module_type" : "SwiftTarget",
      "name" : "BCryptSwiftTests",
      "path" : "Example/Tests",
      "sources" : [
        "BCryptSecurityTests.swift",
        "BCryptSwiftTests.swift"
      ],
      "target_dependencies" : [
        "BCryptSwift"
      ],
      "type" : "test"
    },
    {
      "c99name" : "BCryptSwift",
      "module_type" : "SwiftTarget",
      "name" : "BCryptSwift",
      "path" : "BCryptSwift/Classes",
      "product_memberships" : [
        "BCryptSwift"
      ],
      "sources" : [
        "BCryptConfiguration.swift",
        "BCryptError.swift",
        "BCryptSwift.swift",
        "BCryptSwiftModern.swift",
        "BCryptSwiftRandom.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
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/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/8] Compiling BCryptSwift BCryptSwiftRandom.swift
[4/8] Compiling BCryptSwift BCryptSwiftModern.swift
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptSwiftModern.swift:73:18: 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
 71 |     public static func hashPasswordAsync(_ password: String, config: BCryptConfiguration = .default) async throws -> String {
 72 |         return try await withCheckedThrowingContinuation { continuation in
 73 |             Task {
    |                  `- 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
 74 |                 do {
 75 |                     let salt = try generateSalt(config: config)
    |                                                         `- note: closure captures 'config' which is accessible to code in the current task
 76 |                     let hash = try hashPassword(password, withSalt: salt)
 77 |                     continuation.resume(returning: hash)
[5/8] Compiling BCryptSwift BCryptSwift.swift
[6/8] Compiling BCryptSwift BCryptError.swift
[7/8] Compiling BCryptSwift BCryptConfiguration.swift
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:45:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
   |               `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 |     /// The cost factor (number of rounds). Must be between 4 and 31.
36 |     public let rounds: UInt
   :
43 |
44 |     /// Default configuration with 10 rounds
45 |     public static let `default` = BCryptConfiguration(rounds: 10)
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 |     /// Configuration for high security (12 rounds)
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:48:23: warning: static property 'highSecurity' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
   |               `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 |     /// The cost factor (number of rounds). Must be between 4 and 31.
36 |     public let rounds: UInt
   :
46 |
47 |     /// Configuration for high security (12 rounds)
48 |     public static let highSecurity = BCryptConfiguration(rounds: 12)
   |                       |- warning: static property 'highSecurity' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'highSecurity' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 |     /// Configuration for testing (4 rounds - minimum allowed)
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:51:23: warning: static property 'testing' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
   |               `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 |     /// The cost factor (number of rounds). Must be between 4 and 31.
36 |     public let rounds: UInt
   :
49 |
50 |     /// Configuration for testing (4 rounds - minimum allowed)
51 |     public static let testing = BCryptConfiguration(rounds: 4)
   |                       |- warning: static property 'testing' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'testing' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 |     public init(rounds: UInt = 10, version: BCryptVersion = .v2a, maxPasswordLength: Int = 72) {
[8/8] Emitting module BCryptSwift
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:45:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
   |               `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 |     /// The cost factor (number of rounds). Must be between 4 and 31.
36 |     public let rounds: UInt
   :
43 |
44 |     /// Default configuration with 10 rounds
45 |     public static let `default` = BCryptConfiguration(rounds: 10)
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 |     /// Configuration for high security (12 rounds)
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:48:23: warning: static property 'highSecurity' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
   |               `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 |     /// The cost factor (number of rounds). Must be between 4 and 31.
36 |     public let rounds: UInt
   :
46 |
47 |     /// Configuration for high security (12 rounds)
48 |     public static let highSecurity = BCryptConfiguration(rounds: 12)
   |                       |- warning: static property 'highSecurity' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'highSecurity' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 |     /// Configuration for testing (4 rounds - minimum allowed)
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:51:23: warning: static property 'testing' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
   |               `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 |     /// The cost factor (number of rounds). Must be between 4 and 31.
36 |     public let rounds: UInt
   :
49 |
50 |     /// Configuration for testing (4 rounds - minimum allowed)
51 |     public static let testing = BCryptConfiguration(rounds: 4)
   |                       |- warning: static property 'testing' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'testing' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 |     public init(rounds: UInt = 10, version: BCryptVersion = .v2a, maxPasswordLength: Int = 72) {
Build complete! (4.21s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "BCryptSwift",
  "name" : "BCryptSwift",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "5.0"
    }
  ],
  "products" : [
    {
      "name" : "BCryptSwift",
      "targets" : [
        "BCryptSwift"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "BCryptSwiftTests",
      "module_type" : "SwiftTarget",
      "name" : "BCryptSwiftTests",
      "path" : "Example/Tests",
      "sources" : [
        "BCryptSecurityTests.swift",
        "BCryptSwiftTests.swift"
      ],
      "target_dependencies" : [
        "BCryptSwift"
      ],
      "type" : "test"
    },
    {
      "c99name" : "BCryptSwift",
      "module_type" : "SwiftTarget",
      "name" : "BCryptSwift",
      "path" : "BCryptSwift/Classes",
      "product_memberships" : [
        "BCryptSwift"
      ],
      "sources" : [
        "BCryptConfiguration.swift",
        "BCryptError.swift",
        "BCryptSwift.swift",
        "BCryptSwiftModern.swift",
        "BCryptSwiftRandom.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.