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 WealthsimpleDownloader, reference main (2cd1f1), with Swift 6.1 for Linux on 29 Apr 2025 03:05:47 UTC.

Swift 6 data race errors: 19

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Nef10/WealthsimpleDownloader.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/Nef10/WealthsimpleDownloader
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 2cd1f19 Bump swift-actions/setup-swift from 2.2.0 to 2.3.0
Cloned https://github.com/Nef10/WealthsimpleDownloader.git
Revision (git rev-parse @):
2cd1f1942c60262c109139225fa897cd68a7c647
SUCCESS checkout https://github.com/Nef10/WealthsimpleDownloader.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.1
Building package at path:  $PWD
https://github.com/Nef10/WealthsimpleDownloader.git
https://github.com/Nef10/WealthsimpleDownloader.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
  ],
  "manifest_display_name" : "WealthsimpleDownloader",
  "name" : "WealthsimpleDownloader",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Wealthsimple",
      "targets" : [
        "Wealthsimple"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "WealthsimpleTests",
      "module_type" : "SwiftTarget",
      "name" : "WealthsimpleTests",
      "path" : "Tests/WealthsimpleTests",
      "sources" : [
        "Extensions/StringCamelCaseTests.swift",
        "WealthsimpleDownloaderTests.swift"
      ],
      "target_dependencies" : [
        "Wealthsimple"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Wealthsimple",
      "module_type" : "SwiftTarget",
      "name" : "Wealthsimple",
      "path" : "Sources/Wealthsimple",
      "product_memberships" : [
        "Wealthsimple"
      ],
      "sources" : [
        "Extensions/String+CamelCase.swift",
        "Token.swift",
        "TransactionError.swift",
        "WealthsimpleAccount.swift",
        "WealthsimpleAsset.swift",
        "WealthsimpleDownloader.swift",
        "WealthsimplePosition.swift",
        "WealthsimpleTransaction.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/10] Compiling Wealthsimple WealthsimpleDownloader.swift
[4/11] Compiling Wealthsimple WealthsimplePosition.swift
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:22:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 20 |     case invalidJson(error: String)
 21 |     /// When the received JSON does not have the right type
 22 |     case invalidJsonType(json: Any)
    |          `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 23 |     /// When the received JSON does not have all expected values
 24 |     case missingResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 22 |     case invalidJsonType(json: Any)
 23 |     /// When the received JSON does not have all expected values
 24 |     case missingResultParamenter(json: [String: Any])
    |          `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 25 |     /// When the received JSON does have an unexpected value
 26 |     case invalidResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:26:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 24 |     case missingResultParamenter(json: [String: Any])
 25 |     /// When the received JSON does have an unexpected value
 26 |     case invalidResultParamenter(json: [String: Any])
    |          `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 27 |     /// An error with the assets occured
 28 |     case assetError(_ error: AssetError)
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:53:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 51 |     private static let baseUrl = URLComponents(string: "https://api.production.wealthsimple.com/v1/positions")!
 52 |
 53 |     private static var dateFormatter: DateFormatter = {
    |                        |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'dateFormatter' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 54 |         var dateFormatter = DateFormatter()
 55 |         dateFormatter.dateFormat = "yyyy-MM-dd"
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:112:94: warning: capture of 'completion' with non-sendable type '(Result<[any Position], PositionError>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
110 |             case let .success(request):
111 |                 let task = session.dataTask(with: request) { data, response, error in
112 |                     handleResponse(data: data, response: response, error: error, completion: completion)
    |                                                                                              |- warning: capture of 'completion' with non-sendable type '(Result<[any Position], PositionError>) -> 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'
113 |                 }
114 |                 task.resume()
[5/11] Compiling Wealthsimple WealthsimpleAsset.swift
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAsset.swift:13:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
11 | public enum AssetError: Error {
12 |     /// When the received JSON does not have all expected values
13 |     case missingResultParamenter(json: [String: Any])
   |          `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
14 |     /// When the received JSON does have an unexpected value
15 |     case invalidResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAsset.swift:15:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 |     case missingResultParamenter(json: [String: Any])
14 |     /// When the received JSON does have an unexpected value
15 |     case invalidResultParamenter(json: [String: Any])
   |          `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
16 | }
17 |
[6/11] Compiling Wealthsimple TransactionError.swift
/host/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:19:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
17 |     case invalidJson(error: String)
18 |     /// When the received JSON does not have the right type
19 |     case invalidJsonType(json: Any)
   |          `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
20 |     /// When the received JSON does not have all expected values
21 |     case missingResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:21:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
19 |     case invalidJsonType(json: Any)
20 |     /// When the received JSON does not have all expected values
21 |     case missingResultParamenter(json: [String: Any])
   |          `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
22 |     /// When the received JSON does have an unexpected value
23 |     case invalidResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:23:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
21 |     case missingResultParamenter(json: [String: Any])
22 |     /// When the received JSON does have an unexpected value
23 |     case invalidResultParamenter(json: [String: Any])
   |          `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
24 |     /// An error with the token occured
25 |     case tokenError(_ error: TokenError)
[7/11] Compiling Wealthsimple WealthsimpleAccount.swift
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:22:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 20 |     case invalidJson(error: String)
 21 |     /// When the received JSON does not have the right type
 22 |     case invalidJsonType(json: Any)
    |          `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 23 |     /// When the received JSON does not have all expected values
 24 |     case missingResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 22 |     case invalidJsonType(json: Any)
 23 |     /// When the received JSON does not have all expected values
 24 |     case missingResultParamenter(json: [String: Any])
    |          `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 25 |     /// When the received JSON does have an unexpected value
 26 |     case invalidResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:26:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 24 |     case missingResultParamenter(json: [String: Any])
 25 |     /// When the received JSON does have an unexpected value
 26 |     case invalidResultParamenter(json: [String: Any])
    |          `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 27 |     /// An error with the token occured
 28 |     case tokenError(_ error: TokenError)
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:107:94: warning: capture of 'completion' with non-sendable type '(Result<[any Account], AccountError>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
105 |             case let .success(request):
106 |                 let task = session.dataTask(with: request) { data, response, error in
107 |                     handleResponse(data: data, response: response, error: error, completion: completion)
    |                                                                                              |- warning: capture of 'completion' with non-sendable type '(Result<[any Account], AccountError>) -> 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'
108 |                 }
109 |                 task.resume()
[8/11] Compiling Wealthsimple Token.swift
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:20:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 18 |     case invalidJson(error: String)
 19 |     /// When the received JSON does not have the right type
 20 |     case invalidJsonType(json: Any)
    |          `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 21 |     /// When the paramters could not be converted to JSON
 22 |     case invalidParameters(parameters: [String: String])
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 22 |     case invalidParameters(parameters: [String: String])
 23 |     /// When the received JSON does not have all expected values
 24 |     case missingResultParamenter(json: [String: Any])
    |          `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 25 |     /// When an HTTP error occurs
 26 |     case httpError(error: String)
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:37:24: warning: static property 'url' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 35 |     private static let credentialStorageKeyExpiry = "expiry"
 36 |
 37 |     private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
    |                        |- warning: static property 'url' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'url' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'url' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 38 |     private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
 39 |     private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:38:24: warning: static property 'testUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 36 |
 37 |     private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
 38 |     private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
    |                        |- warning: static property 'testUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'testUrl' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'testUrl' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |     private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
 40 |     private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:39:24: warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 37 |     private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
 38 |     private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
 39 |     private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
    |                        |- warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'clientId' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'clientId' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |     private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
 41 |
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:40:24: warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 38 |     private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
 39 |     private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
 40 |     private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
    |                        |- warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'scope' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'scope' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |
 42 |     private let accessToken: String
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:121:98: warning: capture of 'credentialStorage' with non-sendable type 'any CredentialStorage' in a '@Sendable' closure; this is an error in the Swift 6 language mode
119 |         }
120 |         let task = session.uploadTask(with: request, from: jsonData) { data, response, error in
121 |             handleTokenResponse(data: data, response: response, error: error, credentialStorage: credentialStorage, completion: completion)
    |                                                                                                  `- warning: capture of 'credentialStorage' with non-sendable type 'any CredentialStorage' in a '@Sendable' closure; this is an error in the Swift 6 language mode
122 |         }
123 |         task.resume()
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleDownloader.swift:13:17: note: protocol 'CredentialStorage' does not conform to the 'Sendable' protocol
 11 | ///
 12 | /// Can for example be implemented using Keychain on Apple devices
 13 | public protocol CredentialStorage {
    |                 `- note: protocol 'CredentialStorage' does not conform to the 'Sendable' protocol
 14 |
 15 |     /// Save a value to the store
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:121:129: warning: capture of 'completion' with non-sendable type '(Result<Token, TokenError>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
119 |         }
120 |         let task = session.uploadTask(with: request, from: jsonData) { data, response, error in
121 |             handleTokenResponse(data: data, response: response, error: error, credentialStorage: credentialStorage, completion: completion)
    |                                                                                                                                 |- warning: capture of 'completion' with non-sendable type '(Result<Token, TokenError>) -> 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'
122 |         }
123 |         task.resume()
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:180:25: warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
178 |                 let task = session.dataTask(with: request) { _, response, error in
179 |                     guard error == nil else {
180 |                         completion(false)
    |                         |- warning: capture of 'completion' with non-sendable type '(Bool) -> 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'
181 |                         return
182 |                     }
[9/11] Emitting module Wealthsimple
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:20:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 18 |     case invalidJson(error: String)
 19 |     /// When the received JSON does not have the right type
 20 |     case invalidJsonType(json: Any)
    |          `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 21 |     /// When the paramters could not be converted to JSON
 22 |     case invalidParameters(parameters: [String: String])
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 22 |     case invalidParameters(parameters: [String: String])
 23 |     /// When the received JSON does not have all expected values
 24 |     case missingResultParamenter(json: [String: Any])
    |          `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 25 |     /// When an HTTP error occurs
 26 |     case httpError(error: String)
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:37:24: warning: static property 'url' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 35 |     private static let credentialStorageKeyExpiry = "expiry"
 36 |
 37 |     private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
    |                        |- warning: static property 'url' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'url' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'url' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 38 |     private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
 39 |     private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:38:24: warning: static property 'testUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 36 |
 37 |     private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
 38 |     private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
    |                        |- warning: static property 'testUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'testUrl' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'testUrl' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |     private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
 40 |     private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:39:24: warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 37 |     private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
 38 |     private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
 39 |     private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
    |                        |- warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'clientId' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'clientId' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |     private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
 41 |
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:40:24: warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 38 |     private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
 39 |     private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
 40 |     private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
    |                        |- warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'scope' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'scope' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 41 |
 42 |     private let accessToken: String
/host/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:19:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
17 |     case invalidJson(error: String)
18 |     /// When the received JSON does not have the right type
19 |     case invalidJsonType(json: Any)
   |          `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
20 |     /// When the received JSON does not have all expected values
21 |     case missingResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:21:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
19 |     case invalidJsonType(json: Any)
20 |     /// When the received JSON does not have all expected values
21 |     case missingResultParamenter(json: [String: Any])
   |          `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
22 |     /// When the received JSON does have an unexpected value
23 |     case invalidResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:23:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
21 |     case missingResultParamenter(json: [String: Any])
22 |     /// When the received JSON does have an unexpected value
23 |     case invalidResultParamenter(json: [String: Any])
   |          `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
24 |     /// An error with the token occured
25 |     case tokenError(_ error: TokenError)
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:22:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 20 |     case invalidJson(error: String)
 21 |     /// When the received JSON does not have the right type
 22 |     case invalidJsonType(json: Any)
    |          `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 23 |     /// When the received JSON does not have all expected values
 24 |     case missingResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 22 |     case invalidJsonType(json: Any)
 23 |     /// When the received JSON does not have all expected values
 24 |     case missingResultParamenter(json: [String: Any])
    |          `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 25 |     /// When the received JSON does have an unexpected value
 26 |     case invalidResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:26:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 24 |     case missingResultParamenter(json: [String: Any])
 25 |     /// When the received JSON does have an unexpected value
 26 |     case invalidResultParamenter(json: [String: Any])
    |          `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 27 |     /// An error with the token occured
 28 |     case tokenError(_ error: TokenError)
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAsset.swift:13:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
11 | public enum AssetError: Error {
12 |     /// When the received JSON does not have all expected values
13 |     case missingResultParamenter(json: [String: Any])
   |          `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
14 |     /// When the received JSON does have an unexpected value
15 |     case invalidResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAsset.swift:15:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 |     case missingResultParamenter(json: [String: Any])
14 |     /// When the received JSON does have an unexpected value
15 |     case invalidResultParamenter(json: [String: Any])
   |          `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
16 | }
17 |
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:22:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 20 |     case invalidJson(error: String)
 21 |     /// When the received JSON does not have the right type
 22 |     case invalidJsonType(json: Any)
    |          `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 23 |     /// When the received JSON does not have all expected values
 24 |     case missingResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 22 |     case invalidJsonType(json: Any)
 23 |     /// When the received JSON does not have all expected values
 24 |     case missingResultParamenter(json: [String: Any])
    |          `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 25 |     /// When the received JSON does have an unexpected value
 26 |     case invalidResultParamenter(json: [String: Any])
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:26:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 24 |     case missingResultParamenter(json: [String: Any])
 25 |     /// When the received JSON does have an unexpected value
 26 |     case invalidResultParamenter(json: [String: Any])
    |          `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
 27 |     /// An error with the assets occured
 28 |     case assetError(_ error: AssetError)
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:53:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 51 |     private static let baseUrl = URLComponents(string: "https://api.production.wealthsimple.com/v1/positions")!
 52 |
 53 |     private static var dateFormatter: DateFormatter = {
    |                        |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'dateFormatter' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 54 |         var dateFormatter = DateFormatter()
 55 |         dateFormatter.dateFormat = "yyyy-MM-dd"
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:119:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
117 |     private static let baseUrl = URLComponents(string: "https://api.production.wealthsimple.com/v1/transactions")!
118 |
119 |     private static var dateFormatter: DateFormatter = {
    |                        |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'dateFormatter' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |         var dateFormatter = DateFormatter()
121 |         dateFormatter.dateFormat = "yyyy-MM-dd"
[10/11] Compiling Wealthsimple String+CamelCase.swift
[11/11] Compiling Wealthsimple WealthsimpleTransaction.swift
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:119:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
117 |     private static let baseUrl = URLComponents(string: "https://api.production.wealthsimple.com/v1/transactions")!
118 |
119 |     private static var dateFormatter: DateFormatter = {
    |                        |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'dateFormatter' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |         var dateFormatter = DateFormatter()
121 |         dateFormatter.dateFormat = "yyyy-MM-dd"
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:208:94: warning: capture of 'completion' with non-sendable type '(Result<[any Transaction], TransactionError>) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
206 |             case let .success(request):
207 |                 let task = session.dataTask(with: request) { data, response, error in
208 |                     handleResponse(data: data, response: response, error: error, completion: completion)
    |                                                                                              |- warning: capture of 'completion' with non-sendable type '(Result<[any Transaction], TransactionError>) -> 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'
209 |                 }
210 |                 task.resume()
Build complete! (7.00s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "WealthsimpleDownloader",
  "name" : "WealthsimpleDownloader",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Wealthsimple",
      "targets" : [
        "Wealthsimple"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "WealthsimpleTests",
      "module_type" : "SwiftTarget",
      "name" : "WealthsimpleTests",
      "path" : "Tests/WealthsimpleTests",
      "sources" : [
        "Extensions/StringCamelCaseTests.swift",
        "WealthsimpleDownloaderTests.swift"
      ],
      "target_dependencies" : [
        "Wealthsimple"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Wealthsimple",
      "module_type" : "SwiftTarget",
      "name" : "Wealthsimple",
      "path" : "Sources/Wealthsimple",
      "product_memberships" : [
        "Wealthsimple"
      ],
      "sources" : [
        "Extensions/String+CamelCase.swift",
        "Token.swift",
        "TransactionError.swift",
        "WealthsimpleAccount.swift",
        "WealthsimpleAsset.swift",
        "WealthsimpleDownloader.swift",
        "WealthsimplePosition.swift",
        "WealthsimpleTransaction.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.