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 RogersBankDownloader, reference v0.2.1 (c0b2f0), with Swift 6.0 for Linux on 2 Dec 2024 11:33:21 UTC.

Swift 6 data race errors: 4

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-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.58.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Nef10/RogersBankDownloader.git
Reference: v0.2.1
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/RogersBankDownloader
 * tag               v0.2.1     -> FETCH_HEAD
HEAD is now at c0b2f07 Fix missing public modifier
Cloned https://github.com/Nef10/RogersBankDownloader.git
Revision (git rev-parse @):
c0b2f07fe6bbcd68b8956e4713a87533597aae0e
SUCCESS checkout https://github.com/Nef10/RogersBankDownloader.git at v0.2.1
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/Nef10/RogersBankDownloader.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-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.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/10] Compiling RogersBankDownloader URLTaskHelper.swift
[4/10] Compiling RogersBankDownloader RogersUser.swift
[5/10] Compiling RogersBankDownloader RogersStatement.swift
[6/10] Compiling RogersBankDownloader RogersActivity.swift
[7/10] Compiling RogersBankDownloader RogersAuthenticator.swift
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:77:24: warning: static property 'startURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 75 | public class RogersAuthenticator: Authenticator {
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    |                        |- warning: static property 'startURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'startURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'startURL' 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
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:78:24: warning: static property 'authenticationURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
    |                        |- warning: static property 'authenticationURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'authenticationURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'authenticationURL' 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
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:79:24: warning: static property 'twoFactorPreferenceURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
    |                        |- warning: static property 'twoFactorPreferenceURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'twoFactorPreferenceURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'twoFactorPreferenceURL' 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
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
 81 |     private static let twoFactorRequiredErrorTitle = "Device Not Found"
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:80:24: warning: static property 'validateTwoFactorCodeURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
    |                        |- warning: static property 'validateTwoFactorCodeURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'validateTwoFactorCodeURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'validateTwoFactorCodeURL' 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
 81 |     private static let twoFactorRequiredErrorTitle = "Device Not Found"
 82 |     private static let twoFactorRequiredErrorStatus = 412
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:140:21: warning: capture of 'completion' with non-sendable type '(DownloadError?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
138 |             guard data != nil else {
139 |                 if let error {
140 |                     completion(DownloadError.httpError(error: error.localizedDescription))
    |                     |- warning: capture of 'completion' with non-sendable type '(DownloadError?) -> 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'
141 |                 } else {
142 |                     completion(DownloadError.noDataReceived)
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:213:21: warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
211 |             guard case let .success((data, httpResponse)) = processedResponse else {
212 |                 if case let .failure(error) = processedResponse {
213 |                     completion(.failure(error))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> 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'
214 |                 }
215 |                 return
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:220:21: warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 73 | ///
 74 | /// Call `login` to authenticate and receive a `User` instance
 75 | public class RogersAuthenticator: Authenticator {
    |              `- note: class 'RogersAuthenticator' does not conform to the 'Sendable' protocol
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    :
218 |                 if httpResponse.statusCode == 401, let error = try? JSONDecoder().decode(ErrorMessage.self, from: data),
219 |                     error.status == Self.twoFactorRequiredErrorStatus, error.title == Self.twoFactorRequiredErrorTitle {
220 |                     self.twoFactorAuthPreferences(completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
221 |                 } else {
222 |                     completion(.failure(DownloadError.httpError(error: "Status code \(httpResponse.statusCode)")))
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:246:21: warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
244 |             guard case let .success((data, httpResponse)) = processedResponse else {
245 |                 if case let .failure(error) = processedResponse {
246 |                     completion(.failure(error))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> 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'
247 |                 }
248 |                 return
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:257:40: warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 73 | ///
 74 | /// Call `login` to authenticate and receive a `User` instance
 75 | public class RogersAuthenticator: Authenticator {
    |              `- note: class 'RogersAuthenticator' does not conform to the 'Sendable' protocol
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    :
255 |                 let decoder = JSONDecoder()
256 |                 let twoFactorPreferences = try decoder.decode(TwoFactorPreferences.self, from: data)
257 |                 guard let preference = self.delegate?.selectTwoFactorPreference(twoFactorPreferences.preferences) else {
    |                                        `- warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
258 |                     completion(.failure(DownloadError.noTwoFactorPreference))
259 |                     return
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:281:21: warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
279 |             guard case let .success((data, httpResponse)) = processedResponse else {
280 |                 if case let .failure(error) = processedResponse {
281 |                     completion(.failure(error))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> 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'
282 |                 }
283 |                 return
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:292:21: warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 73 | ///
 74 | /// Call `login` to authenticate and receive a `User` instance
 75 | public class RogersAuthenticator: Authenticator {
    |              `- note: class 'RogersAuthenticator' does not conform to the 'Sendable' protocol
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    :
290 |                 let result = try JSONDecoder().decode(TwoFactorCodeGenerationResult.self, from: data)
291 |                 if result.success {
292 |                     self.loginWithTwoFactorAuthenticationCode(completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
293 |                 } else {
294 |                     completion(.failure(DownloadError.twoFactorAuthenticationCodeGenerationFailed))
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:315:21: warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
313 |             guard case let .success((data, httpResponse)) = processedResponse else {
314 |                 if case let .failure(error) = processedResponse {
315 |                     completion(.failure(error))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> 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'
316 |                 }
317 |                 return
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:328:17: warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 73 | ///
 74 | /// Call `login` to authenticate and receive a `User` instance
 75 | public class RogersAuthenticator: Authenticator {
    |              `- note: class 'RogersAuthenticator' does not conform to the 'Sendable' protocol
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    :
326 |                 decoder.dateDecodingStrategy = .formatted(Self.dateFormatter)
327 |                 let user = try decoder.decode(RogersUser.self, from: data)
328 |                 self.delegate?.saveDeviceId(self.parameters["deviceId"] ?? "")
    |                 `- warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
329 |                 completion(.success(user))
330 |             } catch {
[8/10] Compiling RogersBankDownloader RogersAccount.swift
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAccount.swift:189:21: warning: capture of 'completion' with non-sendable type '(Result<URL, DownloadError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
187 |             guard let url else {
188 |                 if let error {
189 |                     completion(.failure(DownloadError.httpError(error: error.localizedDescription)))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<URL, DownloadError>) -> 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'
190 |                 } else {
191 |                     completion(.failure(DownloadError.noDataReceived))
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAccount.swift:215:21: warning: capture of 'completion' with non-sendable type '(Result<[any Statement], DownloadError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
213 |             guard let data else {
214 |                 if let error {
215 |                     completion(.failure(DownloadError.httpError(error: error.localizedDescription)))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<[any Statement], DownloadError>) -> 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'
216 |                 } else {
217 |                     completion(.failure(DownloadError.noDataReceived))
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAccount.swift:260:21: warning: capture of 'completion' with non-sendable type '(Result<[any Activity], DownloadError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
258 |             guard case let .success((data, httpResponse)) = processedResponse else {
259 |                 if case let .failure(error) = processedResponse {
260 |                     completion(.failure(error))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<[any Activity], DownloadError>) -> 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'
261 |                 }
262 |                 return
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAccount.swift:266:21: warning: capture of 'self' with non-sendable type 'RogersAccount' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 72 |
 73 | /// A Rogers credit card account
 74 | public struct RogersAccount: Account, Codable {
    |               `- note: consider making struct 'RogersAccount' conform to the 'Sendable' protocol
 75 |
 76 |     enum CodingKeys: String, CodingKey {
    :
264 |             guard httpResponse.statusCode == 200 else {
265 |                 if retryAttempt < 2 {
266 |                     downloadActivities(statementNumber: statementNumber, retryAttempt: retryAttempt + 1, completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'RogersAccount' in a `@Sendable` closure; this is an error in the Swift 6 language mode
267 |                 } else {
268 |                     completion(.failure(DownloadError.httpError(error: "Status code \(httpResponse.statusCode)")))
[9/10] Emitting module RogersBankDownloader
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:77:24: warning: static property 'startURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 75 | public class RogersAuthenticator: Authenticator {
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    |                        |- warning: static property 'startURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'startURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'startURL' 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
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:78:24: warning: static property 'authenticationURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
    |                        |- warning: static property 'authenticationURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'authenticationURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'authenticationURL' 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
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:79:24: warning: static property 'twoFactorPreferenceURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
    |                        |- warning: static property 'twoFactorPreferenceURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'twoFactorPreferenceURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'twoFactorPreferenceURL' 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
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
 81 |     private static let twoFactorRequiredErrorTitle = "Device Not Found"
/host/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:80:24: warning: static property 'validateTwoFactorCodeURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
    |                        |- warning: static property 'validateTwoFactorCodeURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'validateTwoFactorCodeURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: annotate 'validateTwoFactorCodeURL' 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
 81 |     private static let twoFactorRequiredErrorTitle = "Device Not Found"
 82 |     private static let twoFactorRequiredErrorStatus = 412
[10/10] Compiling RogersBankDownloader DownloadError.swift
Build complete! (10.43s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "RogersBankDownloader",
  "name" : "RogersBankDownloader",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "RogersBankDownloader",
      "targets" : [
        "RogersBankDownloader"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RogersBankDownloaderTests",
      "module_type" : "SwiftTarget",
      "name" : "RogersBankDownloaderTests",
      "path" : "Tests/RogersBankDownloaderTests",
      "sources" : [
        "DownloadErrorTests.swift",
        "RogersActivityTests.swift"
      ],
      "target_dependencies" : [
        "RogersBankDownloader"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RogersBankDownloader",
      "module_type" : "SwiftTarget",
      "name" : "RogersBankDownloader",
      "path" : "Sources/RogersBankDownloader",
      "product_memberships" : [
        "RogersBankDownloader"
      ],
      "sources" : [
        "DownloadError.swift",
        "RogersAccount.swift",
        "RogersActivity.swift",
        "RogersAuthenticator.swift",
        "RogersStatement.swift",
        "RogersUser.swift",
        "URLTaskHelper.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.