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 Swiftchain, reference main (ab0409), with Swift 6.0 for macOS (SPM) on 1 Nov 2024 14:49:29 UTC.

Swift 6 data race errors: 10

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/sbertix/Swiftchain.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/sbertix/Swiftchain
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at ab0409e Update to `1.0.5`
Cloned https://github.com/sbertix/Swiftchain.git
Revision (git rev-parse @):
ab0409e62f1629bc1a153f41dec5856a3c05a548
SUCCESS checkout https://github.com/sbertix/Swiftchain.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": "swiftchain",
      "name": "Swiftchain",
      "url": "https://github.com/sbertix/Swiftchain.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Swiftchain",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/sbertix/Swiftchain.git
[1/123] Fetching swiftchain
Fetched https://github.com/sbertix/Swiftchain.git from cache (0.69s)
Creating working copy for https://github.com/sbertix/Swiftchain.git
Working copy of https://github.com/sbertix/Swiftchain.git resolved at main (ab0409e)
warning: '.resolve-product-dependencies': dependency 'swiftchain' 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/sbertix/Swiftchain.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 Swiftchain KeychainError.swift
[4/9] Compiling Swiftchain SecurityConstants.swift
[5/9] Compiling Swiftchain KeychainAuthentication.swift
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:34:27: warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 32 |         /// Constraint to access an item with a passcode.
 33 |         @available(macOS 10.11, *)
 34 |         public static let devicePasscode = Authentication(rawValue: 1 << 0)
    |                           |- warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'devicePasscode' 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
 35 |
 36 |         /// Constraint to access an item with Touch ID for any enrolled fingers, or Face ID.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:41:27: warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 39 |         /// The item is still accessible by Touch ID if fingers are added or removed, or by Face ID if the user is re-enrolled.
 40 |         @available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *)
 41 |         public static let biometryAny = Authentication(rawValue: 1 << 1)
    |                           |- warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'biometryAny' 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
 42 |
 43 |         /// Constraint to access an item with Touch ID for currently enrolled fingers, or from Face ID with the currently enrolled user.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:48:27: warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 46 |         /// The item is invalidated if fingers are added or removed for Touch ID, or if the user re-enrolls for Face ID.
 47 |         @available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *)
 48 |         public static let biometryCurrentSet = Authentication(rawValue: 1 << 2)
    |                           |- warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'biometryCurrentSet' 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
 49 |
 50 |         /// Constraint to access an item with a watch.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:57:27: warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 55 |         @available(tvOS, unavailable)
 56 |         @available(watchOS, unavailable)
 57 |         public static let watch = Authentication(rawValue: 1 << 3)
    |                           |- warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'watch' 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
 58 |
 59 |         /// Constraint to access an item with either biometry or passcode.
[6/9] Compiling Swiftchain KeychainAccessibility.swift
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:21:27: warning: static property 'afterFirstUnlock' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- note: consider making struct 'Accessibility' conform to the 'Sendable' protocol
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   :
19 |         /// This is recommended for items that need to be accessed by background applications.
20 |         /// Items with this attribute migrate to a new device when using encrypted backups.
21 |         public static let afterFirstUnlock = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlock)
   |                           |- warning: static property 'afterFirstUnlock' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'afterFirstUnlock' 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
22 |
23 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:29:27: warning: static property 'afterFirstUnlockThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- note: consider making struct 'Accessibility' conform to the 'Sendable' protocol
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   :
27 |         /// Items with this attribute do not migrate to a new device.
28 |         ///  Thus, after restoring from a backup of a different device, these items will not be present.
29 |         public static let afterFirstUnlockThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly)
   |                           |- warning: static property 'afterFirstUnlockThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'afterFirstUnlockThisDeviceOnly' 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
30 |
31 |         /// The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:38:27: warning: static property 'whenPasscodeSetThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- note: consider making struct 'Accessibility' conform to the 'Sendable' protocol
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   :
36 |         /// No items can be stored in this class on devices without a passcode.
37 |         /// Disabling the device passcode causes all items in this class to be deleted.
38 |         public static let whenPasscodeSetThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly)
   |                           |- warning: static property 'whenPasscodeSetThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'whenPasscodeSetThisDeviceOnly' 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
39 |
40 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:27: warning: static property 'whenUnlocked' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- note: consider making struct 'Accessibility' conform to the 'Sendable' protocol
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   :
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                           |- warning: static property 'whenUnlocked' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'whenUnlocked' 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
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:52:27: warning: static property 'whenUnlockedThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- note: consider making struct 'Accessibility' conform to the 'Sendable' protocol
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   :
50 |         /// Items with this attribute do not migrate to a new device.
51 |         /// Thus, after restoring from a backup of a different device, these items will not be present.
52 |         public static let whenUnlockedThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenUnlockedThisDeviceOnly)
   |                           |- warning: static property 'whenUnlockedThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'whenUnlockedThisDeviceOnly' 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
53 |
54 |         /// Init.
[7/9] Compiling Swiftchain Keychain.swift
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:13:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 11 | open class Keychain {
 12 |     /// A shared instance of `Keychain`.
 13 |     public static var `default` = Keychain()
    |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'default' 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
 14 |
 15 |     /// A shared lock.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:27: warning: static property 'whenUnlocked' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- note: consider making struct 'Accessibility' conform to the 'Sendable' protocol
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   :
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                           |- warning: static property 'whenUnlocked' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'whenUnlocked' 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
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
[8/9] Emitting module Swiftchain
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:13:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 11 | open class Keychain {
 12 |     /// A shared instance of `Keychain`.
 13 |     public static var `default` = Keychain()
    |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'default' 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
 14 |
 15 |     /// A shared lock.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:27: warning: static property 'whenUnlocked' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- note: consider making struct 'Accessibility' conform to the 'Sendable' protocol
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   :
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                           |- warning: static property 'whenUnlocked' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'whenUnlocked' 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
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:21:27: warning: static property 'afterFirstUnlock' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- note: consider making struct 'Accessibility' conform to the 'Sendable' protocol
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   :
19 |         /// This is recommended for items that need to be accessed by background applications.
20 |         /// Items with this attribute migrate to a new device when using encrypted backups.
21 |         public static let afterFirstUnlock = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlock)
   |                           |- warning: static property 'afterFirstUnlock' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'afterFirstUnlock' 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
22 |
23 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:29:27: warning: static property 'afterFirstUnlockThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- note: consider making struct 'Accessibility' conform to the 'Sendable' protocol
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   :
27 |         /// Items with this attribute do not migrate to a new device.
28 |         ///  Thus, after restoring from a backup of a different device, these items will not be present.
29 |         public static let afterFirstUnlockThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly)
   |                           |- warning: static property 'afterFirstUnlockThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'afterFirstUnlockThisDeviceOnly' 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
30 |
31 |         /// The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:38:27: warning: static property 'whenPasscodeSetThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- note: consider making struct 'Accessibility' conform to the 'Sendable' protocol
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   :
36 |         /// No items can be stored in this class on devices without a passcode.
37 |         /// Disabling the device passcode causes all items in this class to be deleted.
38 |         public static let whenPasscodeSetThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly)
   |                           |- warning: static property 'whenPasscodeSetThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'whenPasscodeSetThisDeviceOnly' 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
39 |
40 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:52:27: warning: static property 'whenUnlockedThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- note: consider making struct 'Accessibility' conform to the 'Sendable' protocol
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   :
50 |         /// Items with this attribute do not migrate to a new device.
51 |         /// Thus, after restoring from a backup of a different device, these items will not be present.
52 |         public static let whenUnlockedThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenUnlockedThisDeviceOnly)
   |                           |- warning: static property 'whenUnlockedThisDeviceOnly' is not concurrency-safe because non-'Sendable' type 'Keychain.Accessibility' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: annotate 'whenUnlockedThisDeviceOnly' 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
53 |
54 |         /// Init.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:34:27: warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 32 |         /// Constraint to access an item with a passcode.
 33 |         @available(macOS 10.11, *)
 34 |         public static let devicePasscode = Authentication(rawValue: 1 << 0)
    |                           |- warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'devicePasscode' 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
 35 |
 36 |         /// Constraint to access an item with Touch ID for any enrolled fingers, or Face ID.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:41:27: warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 39 |         /// The item is still accessible by Touch ID if fingers are added or removed, or by Face ID if the user is re-enrolled.
 40 |         @available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *)
 41 |         public static let biometryAny = Authentication(rawValue: 1 << 1)
    |                           |- warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'biometryAny' 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
 42 |
 43 |         /// Constraint to access an item with Touch ID for currently enrolled fingers, or from Face ID with the currently enrolled user.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:48:27: warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 46 |         /// The item is invalidated if fingers are added or removed for Touch ID, or if the user re-enrolls for Face ID.
 47 |         @available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *)
 48 |         public static let biometryCurrentSet = Authentication(rawValue: 1 << 2)
    |                           |- warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'biometryCurrentSet' 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
 49 |
 50 |         /// Constraint to access an item with a watch.
/Users/admin/builder/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:57:27: warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 55 |         @available(tvOS, unavailable)
 56 |         @available(watchOS, unavailable)
 57 |         public static let watch = Authentication(rawValue: 1 << 3)
    |                           |- warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'watch' 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
 58 |
 59 |         /// Constraint to access an item with either biometry or passcode.
[9/9] Compiling Swiftchain KeychainContainer.swift
Build complete! (8.19s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Swiftchain",
  "name" : "Swiftchain",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "9.0"
    },
    {
      "name" : "macos",
      "version" : "10.10"
    },
    {
      "name" : "tvos",
      "version" : "9.0"
    },
    {
      "name" : "watchos",
      "version" : "2.0"
    }
  ],
  "products" : [
    {
      "name" : "Swiftchain",
      "targets" : [
        "Swiftchain"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftchainTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftchainTests",
      "path" : "Tests/SwiftchainTests",
      "sources" : [
        "SwiftchainAuthenticationTests.swift",
        "SwiftchainTests.swift"
      ],
      "target_dependencies" : [
        "Swiftchain"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Swiftchain",
      "module_type" : "SwiftTarget",
      "name" : "Swiftchain",
      "path" : "Sources/Swiftchain",
      "product_memberships" : [
        "Swiftchain"
      ],
      "sources" : [
        "Keychain.swift",
        "KeychainAccessibility.swift",
        "KeychainAuthentication.swift",
        "KeychainContainer.swift",
        "KeychainError.swift",
        "SecurityConstants.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
Done.