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 BindingKit, reference main (fe5885), with Swift 6.0 for macOS (SPM) on 1 Nov 2024 21:54:58 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.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.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/mkj-is/BindingKit.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/mkj-is/BindingKit
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at fe58851 Add inline documentation
Cloned https://github.com/mkj-is/BindingKit.git
Revision (git rev-parse @):
fe58851b967301ec5c391a2c34979b676b854f89
SUCCESS checkout https://github.com/mkj-is/BindingKit.git at main
========================================
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": "bindingkit",
      "name": "BindingKit",
      "url": "https://github.com/mkj-is/BindingKit.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/BindingKit",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/mkj-is/BindingKit.git
[1/151] Fetching bindingkit
Fetched https://github.com/mkj-is/BindingKit.git from cache (0.65s)
Creating working copy for https://github.com/mkj-is/BindingKit.git
Working copy of https://github.com/mkj-is/BindingKit.git resolved at main (fe58851)
warning: '.resolve-product-dependencies': dependency 'bindingkit' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/mkj-is/BindingKit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--7754E27361AE5C74.txt
[3/9] Compiling BindingKit Transformation.swift
[4/9] Compiling BindingKit Binding+StoredValue.swift
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+StoredValue.swift:8:21: warning: capture of 'innerValue' with non-sendable type 'Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 6 |     public init(storedValue: Value) {
 7 |         var innerValue = storedValue
 8 |         self.init { innerValue }
   |                     `- warning: capture of 'innerValue' with non-sendable type 'Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 9 |              set: { innerValue = $0 }
10 |     }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+StoredValue.swift:8:21: warning: reference to captured var 'innerValue' in concurrently-executing code; this is an error in the Swift 6 language mode
 6 |     public init(storedValue: Value) {
 7 |         var innerValue = storedValue
 8 |         self.init { innerValue }
   |                     `- warning: reference to captured var 'innerValue' in concurrently-executing code; this is an error in the Swift 6 language mode
 9 |              set: { innerValue = $0 }
10 |     }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+StoredValue.swift:9:21: warning: capture of 'innerValue' with non-sendable type 'Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 7 |         var innerValue = storedValue
 8 |         self.init { innerValue }
 9 |              set: { innerValue = $0 }
   |                     `- warning: capture of 'innerValue' with non-sendable type 'Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
10 |     }
11 | }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+StoredValue.swift:9:21: warning: mutation of captured var 'innerValue' in concurrently-executing code; this is an error in the Swift 6 language mode
 7 |         var innerValue = storedValue
 8 |         self.init { innerValue }
 9 |              set: { innerValue = $0 }
   |                     `- warning: mutation of captured var 'innerValue' in concurrently-executing code; this is an error in the Swift 6 language mode
10 |     }
11 | }
[5/9] Compiling BindingKit Binding+Map.swift
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Map.swift:11:20: warning: capture of 'forth' with non-sendable type '(Value) -> T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 9 |     public func map<T>(forth: @escaping (Value) -> T, back: @escaping (T) -> Value) -> Binding<T> {
10 |         Binding<T>(
11 |             get: { forth(self.wrappedValue) },
   |                    |- warning: capture of 'forth' with non-sendable type '(Value) -> 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'
12 |             set: { value in
13 |                 self.wrappedValue = back(value)
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Map.swift:11:26: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 9 |     public func map<T>(forth: @escaping (Value) -> T, back: @escaping (T) -> Value) -> Binding<T> {
10 |         Binding<T>(
11 |             get: { forth(self.wrappedValue) },
   |                          `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
12 |             set: { value in
13 |                 self.wrappedValue = back(value)
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Map.swift:13:17: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 |             get: { forth(self.wrappedValue) },
12 |             set: { value in
13 |                 self.wrappedValue = back(value)
   |                 `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
14 |             }
15 |         )
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Map.swift:13:37: warning: capture of 'back' with non-sendable type '(T) -> Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 |             get: { forth(self.wrappedValue) },
12 |             set: { value in
13 |                 self.wrappedValue = back(value)
   |                                     |- warning: capture of 'back' with non-sendable type '(T) -> Value' 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'
14 |             }
15 |         )
[6/9] Compiling BindingKit Binding+Coalescing.swift
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:12:13: warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 8 |     /// - Returns: Binding with the same type returning value from right side of the operator.
 9 |     ///   The type of the values is the same and remains optional.
10 |     public static func ?? <T>(lhs: Self, rhs: Value) -> Binding<Value> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
11 |         Binding {
12 |             lhs.wrappedValue ?? rhs
   |             `- warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
13 |         } set: { newValue in
14 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:12:33: warning: capture of 'rhs' with non-sendable type 'Optional<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 8 |     /// - Returns: Binding with the same type returning value from right side of the operator.
 9 |     ///   The type of the values is the same and remains optional.
10 |     public static func ?? <T>(lhs: Self, rhs: Value) -> Binding<Value> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
11 |         Binding {
12 |             lhs.wrappedValue ?? rhs
   |                                 `- warning: capture of 'rhs' with non-sendable type 'Optional<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
13 |         } set: { newValue in
14 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:12:33: warning: implicit capture of 'rhs' requires that 'Optional<T>' conforms to `Sendable`; this is an error in the Swift 6 language mode
 8 |     /// - Returns: Binding with the same type returning value from right side of the operator.
 9 |     ///   The type of the values is the same and remains optional.
10 |     public static func ?? <T>(lhs: Self, rhs: Value) -> Binding<Value> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
11 |         Binding {
12 |             lhs.wrappedValue ?? rhs
   |                                 `- warning: implicit capture of 'rhs' requires that 'Optional<T>' conforms to `Sendable`; this is an error in the Swift 6 language mode
13 |         } set: { newValue in
14 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:14:13: warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 8 |     /// - Returns: Binding with the same type returning value from right side of the operator.
 9 |     ///   The type of the values is the same and remains optional.
10 |     public static func ?? <T>(lhs: Self, rhs: Value) -> Binding<Value> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
11 |         Binding {
12 |             lhs.wrappedValue ?? rhs
13 |         } set: { newValue in
14 |             lhs.wrappedValue = newValue
   |             `- warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
15 |         }
16 |         .transaction(lhs.transaction)
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:27:13: warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     /// - Returns: Binding with unwrapped value returning value from right side of the operator
24 |     ///   instead of nil values.
25 |     public static func ?? <T>(lhs: Self, rhs: T) -> Binding<T> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |         Binding<T> {
27 |             lhs.wrappedValue ?? rhs
   |             `- warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
28 |         } set: { newValue in
29 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:27:33: warning: capture of 'rhs' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     /// - Returns: Binding with unwrapped value returning value from right side of the operator
24 |     ///   instead of nil values.
25 |     public static func ?? <T>(lhs: Self, rhs: T) -> Binding<T> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |         Binding<T> {
27 |             lhs.wrappedValue ?? rhs
   |                                 `- warning: capture of 'rhs' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
28 |         } set: { newValue in
29 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:27:33: warning: implicit capture of 'rhs' requires that 'T' conforms to `Sendable`; this is an error in the Swift 6 language mode
23 |     /// - Returns: Binding with unwrapped value returning value from right side of the operator
24 |     ///   instead of nil values.
25 |     public static func ?? <T>(lhs: Self, rhs: T) -> Binding<T> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |         Binding<T> {
27 |             lhs.wrappedValue ?? rhs
   |                                 `- warning: implicit capture of 'rhs' requires that 'T' conforms to `Sendable`; this is an error in the Swift 6 language mode
28 |         } set: { newValue in
29 |             lhs.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Coalescing.swift:29:13: warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     /// - Returns: Binding with unwrapped value returning value from right side of the operator
24 |     ///   instead of nil values.
25 |     public static func ?? <T>(lhs: Self, rhs: T) -> Binding<T> where Value == T? {
   |                            `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 |         Binding<T> {
27 |             lhs.wrappedValue ?? rhs
28 |         } set: { newValue in
29 |             lhs.wrappedValue = newValue
   |             `- warning: capture of 'lhs' with non-sendable type 'Binding<Optional<T>>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 |         }
31 |         .transaction(lhs.transaction)
[7/9] Compiling BindingKit Binding+KeyPath.swift
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+KeyPath.swift:10:13: warning: capture of 'root' with non-sendable type 'Root' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 6 |     ///   - root: A reference type which has a writable key path.
 7 |     ///   - keyPath: A writable key path referencing one of the root type properties.
 8 |     public init<Root>(_ root: Root, keyPath: ReferenceWritableKeyPath<Root, Value>) {
   |                 `- note: consider making generic parameter 'Root' conform to the 'Sendable' protocol
 9 |         self.init {
10 |             root[keyPath: keyPath]
   |             `- warning: capture of 'root' with non-sendable type 'Root' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 |         } set: { newValue in
12 |             root[keyPath: keyPath] = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+KeyPath.swift:10:27: warning: capture of 'keyPath' with non-sendable type 'ReferenceWritableKeyPath<Root, Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 8 |     public init<Root>(_ root: Root, keyPath: ReferenceWritableKeyPath<Root, Value>) {
 9 |         self.init {
10 |             root[keyPath: keyPath]
   |                           `- warning: capture of 'keyPath' with non-sendable type 'ReferenceWritableKeyPath<Root, Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
11 |         } set: { newValue in
12 |             root[keyPath: keyPath] = newValue
Swift.ReferenceWritableKeyPath:1:14: note: generic class 'ReferenceWritableKeyPath' does not conform to the 'Sendable' protocol
1 | public class ReferenceWritableKeyPath<Root, Value> : WritableKeyPath<Root, Value> {
  |              `- note: generic class 'ReferenceWritableKeyPath' does not conform to the 'Sendable' protocol
2 |     @objc deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+KeyPath.swift:12:13: warning: capture of 'root' with non-sendable type 'Root' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 6 |     ///   - root: A reference type which has a writable key path.
 7 |     ///   - keyPath: A writable key path referencing one of the root type properties.
 8 |     public init<Root>(_ root: Root, keyPath: ReferenceWritableKeyPath<Root, Value>) {
   |                 `- note: consider making generic parameter 'Root' conform to the 'Sendable' protocol
 9 |         self.init {
10 |             root[keyPath: keyPath]
11 |         } set: { newValue in
12 |             root[keyPath: keyPath] = newValue
   |             `- warning: capture of 'root' with non-sendable type 'Root' in a `@Sendable` closure; this is an error in the Swift 6 language mode
13 |         }
14 |     }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+KeyPath.swift:12:27: warning: capture of 'keyPath' with non-sendable type 'ReferenceWritableKeyPath<Root, Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
10 |             root[keyPath: keyPath]
11 |         } set: { newValue in
12 |             root[keyPath: keyPath] = newValue
   |                           `- warning: capture of 'keyPath' with non-sendable type 'ReferenceWritableKeyPath<Root, Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
13 |         }
14 |     }
Swift.ReferenceWritableKeyPath:1:14: note: generic class 'ReferenceWritableKeyPath' does not conform to the 'Sendable' protocol
1 | public class ReferenceWritableKeyPath<Root, Value> : WritableKeyPath<Root, Value> {
  |              `- note: generic class 'ReferenceWritableKeyPath' does not conform to the 'Sendable' protocol
2 |     @objc deinit
3 | }
[8/9] Emitting module BindingKit
[9/9] Compiling BindingKit Binding+Effects.swift
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:9:20: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 7 |     public func didSet(effect: @escaping (Value) -> Void) -> Self {
 8 |         Binding(
 9 |             get: { self.wrappedValue },
   |                    `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
10 |             set: { newValue in
11 |                 self.wrappedValue = newValue
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:11:17: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 9 |             get: { self.wrappedValue },
10 |             set: { newValue in
11 |                 self.wrappedValue = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
12 |                 effect(newValue)
13 |             }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:12:17: warning: capture of 'effect' with non-sendable type '(Value) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
10 |             set: { newValue in
11 |                 self.wrappedValue = newValue
12 |                 effect(newValue)
   |                 |- warning: capture of 'effect' with non-sendable type '(Value) -> 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'
13 |             }
14 |         )
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:23:20: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
21 |     public func willSet(effect: @escaping (Value) -> Void) -> Self {
22 |         Binding(
23 |             get: { self.wrappedValue },
   |                    `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
24 |             set: { newValue in
25 |                 effect(newValue)
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:25:17: warning: capture of 'effect' with non-sendable type '(Value) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |             get: { self.wrappedValue },
24 |             set: { newValue in
25 |                 effect(newValue)
   |                 |- warning: capture of 'effect' with non-sendable type '(Value) -> 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'
26 |                 self.wrappedValue = newValue
27 |             }
/Users/admin/builder/spi-builder-workspace/Sources/BindingKit/Binding+Effects.swift:26:17: warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
24 |             set: { newValue in
25 |                 effect(newValue)
26 |                 self.wrappedValue = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'Binding<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |             }
28 |         )
Build complete! (15.52s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "BindingKit",
  "name" : "BindingKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "BindingKit",
      "targets" : [
        "BindingKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "BindingKitTests",
      "module_type" : "SwiftTarget",
      "name" : "BindingKitTests",
      "path" : "Tests/BindingKitTests",
      "sources" : [
        "CoalescingTests.swift",
        "EffectTests.swift",
        "KeyPathTests.swift",
        "MapTests.swift",
        "StoreValueTests.swift"
      ],
      "target_dependencies" : [
        "BindingKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "BindingKit",
      "module_type" : "SwiftTarget",
      "name" : "BindingKit",
      "path" : "Sources/BindingKit",
      "product_memberships" : [
        "BindingKit"
      ],
      "sources" : [
        "Binding+Coalescing.swift",
        "Binding+Effects.swift",
        "Binding+KeyPath.swift",
        "Binding+Map.swift",
        "Binding+StoredValue.swift",
        "Transformation.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.