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 SnapAuth, reference main (1358e6), with Swift 6.0 for macOS (SPM) on 1 Dec 2024 11:56:59 UTC.

Swift 6 data race errors: 2

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 -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.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/snapauthapp/sdk-swift.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/snapauthapp/sdk-swift
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 1358e6c Update name+handle to username (#44)
Cloned https://github.com/snapauthapp/sdk-swift.git
Revision (git rev-parse @):
1358e6cec1288bdea648e95309b0168208459018
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/snapauthapp/sdk-swift.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": "sdk-swift",
      "name": "SnapAuth",
      "url": "https://github.com/snapauthapp/sdk-swift.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/sdk-swift",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/snapauthapp/sdk-swift.git
[1/850] Fetching sdk-swift
Fetched https://github.com/snapauthapp/sdk-swift.git from cache (0.91s)
Creating working copy for https://github.com/snapauthapp/sdk-swift.git
Working copy of https://github.com/snapauthapp/sdk-swift.git resolved at main (1358e6c)
warning: '.resolve-product-dependencies': dependency 'sdk-swift' 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/snapauthapp/sdk-swift.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SnapAuth",
  "name" : "SnapAuth",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "SnapAuth",
      "targets" : [
        "SnapAuth"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SnapAuthTests",
      "module_type" : "SwiftTarget",
      "name" : "SnapAuthTests",
      "path" : "Tests/SnapAuthTests",
      "sources" : [
        "Base64URLTests.swift"
      ],
      "target_dependencies" : [
        "SnapAuth"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SnapAuth",
      "module_type" : "SwiftTarget",
      "name" : "SnapAuth",
      "path" : "Sources/SnapAuth",
      "product_memberships" : [
        "SnapAuth"
      ],
      "sources" : [
        "API.swift",
        "ApiClient.swift",
        "Availability.swift",
        "Base64URL.swift",
        "Errors.swift",
        "PresentationAnchor.swift",
        "SnapAuth+ASACD.swift",
        "SnapAuth+ASACPCP.swift",
        "SnapAuth+AutoFill.swift",
        "SnapAuth+BuildRequests.swift",
        "SnapAuth.swift",
        "SnapAuthDelegate.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
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 -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--7754E27361AE5C74.txt
[3/14] Compiling SnapAuth SnapAuth+ASACPCP.swift
[4/14] Compiling SnapAuth SnapAuth.swift
/Users/admin/builder/spi-builder-workspace/Sources/SnapAuth/SnapAuth.swift:45:27: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Set<SnapAuth.Authenticator>' may have shared mutable state; this is an error in the Swift 6 language mode
 41 |
 42 |     /// Permitted authenticator types
 43 |     public enum Authenticator: CaseIterable {
    |                 `- note: consider making enum 'Authenticator' conform to the 'Sendable' protocol
 44 |         /// Allow all available authenticator types to be used
 45 |         public static let all = Set(Authenticator.allCases)
    |                           |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Set<SnapAuth.Authenticator>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'all' 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 |         /// Prompt for passkeys.
[5/15] Compiling SnapAuth SnapAuth+AutoFill.swift
[6/15] Compiling SnapAuth Errors.swift
/Users/admin/builder/spi-builder-workspace/Sources/SnapAuth/Errors.swift:80:9: warning: switch must be exhaustive; this is an error in the Swift 6 language mode
 78 | extension ASAuthorizationError.Code {
 79 |     var snapAuthError: SnapAuthError {
 80 |         switch self {
    |         |- warning: switch must be exhaustive; this is an error in the Swift 6 language mode
    |         `- note: add missing case: '.matchedExcludedCredential'
 81 |         case .canceled: return .canceled
 82 |         case .failed: return .failed
[7/15] Compiling SnapAuth SnapAuth+ASACD.swift
/Users/admin/builder/spi-builder-workspace/Sources/SnapAuth/SnapAuth+ASACD.swift:132:14: 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
130 |         logger.debug("made a body")
131 | //        logger.debug("user id \(assertion.userID.base64EncodedString())")
132 |         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
133 |             let response = await api.makeRequest(
    |                                  `- note: closure captures 'self' which is accessible to code in the current task
134 |                 path: "/assertion/process",
135 |                 body: body,
/Users/admin/builder/spi-builder-workspace/Sources/SnapAuth/SnapAuth+ASACD.swift:84:14: 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
 82 |         let body = SAProcessRegisterRequest(credential: credential)
 83 |
 84 |         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
 85 |             let response = await api.makeRequest(
    |                                  `- note: closure captures 'self' which is accessible to code in the current task
 86 |                 path: "/attestation/process",
 87 |                 body: body,
[8/15] Compiling SnapAuth Availability.swift
[9/15] Compiling SnapAuth Base64URL.swift
[10/15] Compiling SnapAuth PresentationAnchor.swift
/Users/admin/builder/spi-builder-workspace/Sources/SnapAuth/PresentationAnchor.swift:6:17: warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 4 | // FIXME: Figure out better fallback mechanisms here.
 5 | // This will cause a new window to open _and remain open_
 6 | fileprivate let defaultPresentationAnchor: ASPresentationAnchor = NSApplication.shared.mainWindow ?? ASPresentationAnchor()
   |                 `- warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 7 | #else
 8 | fileprivate let defaultPresentationAnchor: ASPresentationAnchor = (UIApplication.shared.connectedScenes.first as? UIWindowScene)?.windows.first?.rootViewController?.view.window ?? ASPresentationAnchor()
[11/15] Compiling SnapAuth API.swift
/Users/admin/builder/spi-builder-workspace/Sources/SnapAuth/API.swift:119:13: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
117 |     // See WebAuthn AuthenticationResponseJSON format
118 |     struct SACredential: Codable {
119 |         let type: String = "public-key"
    |             |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
    |             |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
    |             `- note: make the property mutable instead
120 |         let rawId: Base64URL
121 |         let response: SACredential.Response
/Users/admin/builder/spi-builder-workspace/Sources/SnapAuth/ApiClient.swift:41:13: warning: immutable value 'response' was never used; consider removing it
39 |
40 |         let data: Data
41 |         let response: URLResponse
   |             `- warning: immutable value 'response' was never used; consider removing it
42 |         do {
43 |             (data, response) = try await URLSession.shared.data(for: request)
[12/15] Compiling SnapAuth ApiClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/SnapAuth/API.swift:119:13: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
117 |     // See WebAuthn AuthenticationResponseJSON format
118 |     struct SACredential: Codable {
119 |         let type: String = "public-key"
    |             |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
    |             |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
    |             `- note: make the property mutable instead
120 |         let rawId: Base64URL
121 |         let response: SACredential.Response
/Users/admin/builder/spi-builder-workspace/Sources/SnapAuth/ApiClient.swift:41:13: warning: immutable value 'response' was never used; consider removing it
39 |
40 |         let data: Data
41 |         let response: URLResponse
   |             `- warning: immutable value 'response' was never used; consider removing it
42 |         do {
43 |             (data, response) = try await URLSession.shared.data(for: request)
[13/15] Emitting module SnapAuth
/Users/admin/builder/spi-builder-workspace/Sources/SnapAuth/PresentationAnchor.swift:6:17: warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 4 | // FIXME: Figure out better fallback mechanisms here.
 5 | // This will cause a new window to open _and remain open_
 6 | fileprivate let defaultPresentationAnchor: ASPresentationAnchor = NSApplication.shared.mainWindow ?? ASPresentationAnchor()
   |                 `- warning: main actor-isolated default value in a nonisolated context; this is an error in the Swift 6 language mode
 7 | #else
 8 | fileprivate let defaultPresentationAnchor: ASPresentationAnchor = (UIApplication.shared.connectedScenes.first as? UIWindowScene)?.windows.first?.rootViewController?.view.window ?? ASPresentationAnchor()
/Users/admin/builder/spi-builder-workspace/Sources/SnapAuth/SnapAuth.swift:45:27: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Set<SnapAuth.Authenticator>' may have shared mutable state; this is an error in the Swift 6 language mode
 41 |
 42 |     /// Permitted authenticator types
 43 |     public enum Authenticator: CaseIterable {
    |                 `- note: consider making enum 'Authenticator' conform to the 'Sendable' protocol
 44 |         /// Allow all available authenticator types to be used
 45 |         public static let all = Set(Authenticator.allCases)
    |                           |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Set<SnapAuth.Authenticator>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'all' 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 |         /// Prompt for passkeys.
[14/15] Compiling SnapAuth SnapAuth+BuildRequests.swift
[15/15] Compiling SnapAuth SnapAuthDelegate.swift
Build complete! (13.11s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SnapAuth",
  "name" : "SnapAuth",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "SnapAuth",
      "targets" : [
        "SnapAuth"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SnapAuthTests",
      "module_type" : "SwiftTarget",
      "name" : "SnapAuthTests",
      "path" : "Tests/SnapAuthTests",
      "sources" : [
        "Base64URLTests.swift"
      ],
      "target_dependencies" : [
        "SnapAuth"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SnapAuth",
      "module_type" : "SwiftTarget",
      "name" : "SnapAuth",
      "path" : "Sources/SnapAuth",
      "product_memberships" : [
        "SnapAuth"
      ],
      "sources" : [
        "API.swift",
        "ApiClient.swift",
        "Availability.swift",
        "Base64URL.swift",
        "Errors.swift",
        "PresentationAnchor.swift",
        "SnapAuth+ASACD.swift",
        "SnapAuth+ASACPCP.swift",
        "SnapAuth+AutoFill.swift",
        "SnapAuth+BuildRequests.swift",
        "SnapAuth.swift",
        "SnapAuthDelegate.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
Done.