Build Information
Successful build of SwiftBeanCountSheetSync, reference v1.1.0 (279fb6
), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 22:53:30 UTC.
Swift 6 data race errors: 3
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.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.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Nef10/SwiftBeanCountSheetSync.git
Reference: v1.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Nef10/SwiftBeanCountSheetSync
* tag v1.1.0 -> FETCH_HEAD
HEAD is now at 279fb68 Allow creating syncer with already parsed Ledger
Cloned https://github.com/Nef10/SwiftBeanCountSheetSync.git
Revision (git rev-parse @):
279fb68904bad4932d012ea20b42c0b950090675
SUCCESS checkout https://github.com/Nef10/SwiftBeanCountSheetSync.git at v1.1.0
Fetching https://github.com/OAuthSwift/OAuthSwift.git
Fetching https://github.com/kishikawakatsumi/KeychainAccess.git
Fetching https://github.com/tid-kijyun/Kanna.git
Fetching https://github.com/phimage/Erik.git
Fetching https://github.com/Nef10/SwiftBeanCountModel.git
Fetching https://github.com/httpswift/swifter.git
Fetching https://github.com/Nef10/SwiftBeanCountParser.git
[1/642] Fetching erik
[168/2980] Fetching erik, kanna
[379/9030] Fetching erik, kanna, swifter
[561/13416] Fetching erik, kanna, swifter, keychainaccess
[1002/16764] Fetching erik, kanna, swifter, keychainaccess, swiftbeancountmodel
[1087/21898] Fetching erik, kanna, swifter, keychainaccess, swiftbeancountmodel, oauthswift
[2698/24078] Fetching erik, kanna, swifter, keychainaccess, swiftbeancountmodel, oauthswift, swiftbeancountparser
Fetched https://github.com/OAuthSwift/OAuthSwift.git from cache (1.33s)
Fetching https://github.com/nvzqz/FileKit.git
[17371/18944] Fetching erik, kanna, swifter, keychainaccess, swiftbeancountmodel, swiftbeancountparser
Fetched https://github.com/Nef10/SwiftBeanCountModel.git from cache (1.45s)
Fetched https://github.com/phimage/Erik.git from cache (1.45s)
Fetched https://github.com/httpswift/swifter.git from cache (1.45s)
Fetched https://github.com/tid-kijyun/Kanna.git from cache (1.45s)
Fetched https://github.com/Nef10/SwiftBeanCountParser.git from cache (1.45s)
Fetched https://github.com/kishikawakatsumi/KeychainAccess.git from cache (1.45s)
Fetching https://github.com/Thomvis/BrightFutures.git
Fetching https://github.com/Nef10/GoogleAuthentication.git
[1/3123] Fetching filekit
[501/7190] Fetching filekit, brightfutures
[542/8226] Fetching filekit, brightfutures, googleauthentication
Fetched https://github.com/nvzqz/FileKit.git from cache (1.12s)
[4778/5103] Fetching brightfutures, googleauthentication
Fetched https://github.com/Nef10/GoogleAuthentication.git from cache (1.42s)
Fetched https://github.com/Thomvis/BrightFutures.git from cache (1.42s)
Computing version for https://github.com/Nef10/GoogleAuthentication.git
Computed https://github.com/Nef10/GoogleAuthentication.git at 1.0.3 (3.51s)
Computing version for https://github.com/Nef10/SwiftBeanCountParser.git
Computed https://github.com/Nef10/SwiftBeanCountParser.git at 0.1.8 (0.59s)
Computing version for https://github.com/Nef10/SwiftBeanCountModel.git
Computed https://github.com/Nef10/SwiftBeanCountModel.git at 0.1.6 (0.56s)
Computing version for https://github.com/kishikawakatsumi/KeychainAccess.git
Computed https://github.com/kishikawakatsumi/KeychainAccess.git at 4.2.2 (0.60s)
Computing version for https://github.com/OAuthSwift/OAuthSwift.git
Computed https://github.com/OAuthSwift/OAuthSwift.git at 2.2.0 (0.61s)
Computing version for https://github.com/httpswift/swifter.git
Computed https://github.com/httpswift/swifter.git at 1.5.0 (0.57s)
Computing version for https://github.com/tid-kijyun/Kanna.git
Computed https://github.com/tid-kijyun/Kanna.git at 5.2.7 (0.59s)
Computing version for https://github.com/phimage/Erik.git
Computed https://github.com/phimage/Erik.git at 5.1.0 (0.59s)
Computing version for https://github.com/nvzqz/FileKit.git
Computed https://github.com/nvzqz/FileKit.git at 6.0.0 (0.59s)
Computing version for https://github.com/Thomvis/BrightFutures.git
Computed https://github.com/Thomvis/BrightFutures.git at 8.2.0 (0.60s)
Creating working copy for https://github.com/Nef10/GoogleAuthentication.git
Working copy of https://github.com/Nef10/GoogleAuthentication.git resolved at 1.0.3
Creating working copy for https://github.com/Thomvis/BrightFutures.git
Working copy of https://github.com/Thomvis/BrightFutures.git resolved at 8.2.0
Creating working copy for https://github.com/Nef10/SwiftBeanCountModel.git
Working copy of https://github.com/Nef10/SwiftBeanCountModel.git resolved at 0.1.6
Creating working copy for https://github.com/phimage/Erik.git
Working copy of https://github.com/phimage/Erik.git resolved at 5.1.0
Creating working copy for https://github.com/OAuthSwift/OAuthSwift.git
Working copy of https://github.com/OAuthSwift/OAuthSwift.git resolved at 2.2.0
Creating working copy for https://github.com/nvzqz/FileKit.git
Working copy of https://github.com/nvzqz/FileKit.git resolved at 6.0.0
Creating working copy for https://github.com/Nef10/SwiftBeanCountParser.git
Working copy of https://github.com/Nef10/SwiftBeanCountParser.git resolved at 0.1.8
Creating working copy for https://github.com/httpswift/swifter.git
Working copy of https://github.com/httpswift/swifter.git resolved at 1.5.0
Creating working copy for https://github.com/tid-kijyun/Kanna.git
Working copy of https://github.com/tid-kijyun/Kanna.git resolved at 5.2.7
Creating working copy for https://github.com/kishikawakatsumi/KeychainAccess.git
Working copy of https://github.com/kishikawakatsumi/KeychainAccess.git resolved at 4.2.2
========================================
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": "swiftbeancountsheetsync",
"name": "SwiftBeanCountSheetSync",
"url": "https://github.com/Nef10/SwiftBeanCountSheetSync.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftBeanCountSheetSync",
"dependencies": [
{
"identity": "swiftbeancountmodel",
"name": "SwiftBeanCountModel",
"url": "https://github.com/Nef10/SwiftBeanCountModel.git",
"version": "0.1.6",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftBeanCountModel",
"dependencies": [
]
},
{
"identity": "swiftbeancountparser",
"name": "SwiftBeanCountParser",
"url": "https://github.com/Nef10/SwiftBeanCountParser.git",
"version": "0.1.8",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftBeanCountParser",
"dependencies": [
{
"identity": "swiftbeancountmodel",
"name": "SwiftBeanCountModel",
"url": "https://github.com/Nef10/SwiftBeanCountModel.git",
"version": "0.1.6",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftBeanCountModel",
"dependencies": [
]
}
]
},
{
"identity": "googleauthentication",
"name": "GoogleAuthentication",
"url": "https://github.com/Nef10/GoogleAuthentication.git",
"version": "1.0.3",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/GoogleAuthentication",
"dependencies": [
{
"identity": "oauthswift",
"name": "OAuthSwift",
"url": "https://github.com/OAuthSwift/OAuthSwift.git",
"version": "2.2.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/OAuthSwift",
"dependencies": [
{
"identity": "erik",
"name": "Erik",
"url": "https://github.com/phimage/Erik.git",
"version": "5.1.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Erik",
"dependencies": [
{
"identity": "kanna",
"name": "Kanna",
"url": "https://github.com/tid-kijyun/Kanna.git",
"version": "5.3.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Kanna",
"dependencies": [
]
},
{
"identity": "brightfutures",
"name": "BrightFutures",
"url": "https://github.com/Thomvis/BrightFutures.git",
"version": "8.2.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/BrightFutures",
"dependencies": [
]
},
{
"identity": "filekit",
"name": "FileKit",
"url": "https://github.com/nvzqz/FileKit.git",
"version": "6.1.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/FileKit",
"dependencies": [
]
}
]
},
{
"identity": "kanna",
"name": "Kanna",
"url": "https://github.com/tid-kijyun/Kanna.git",
"version": "5.3.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Kanna",
"dependencies": [
]
},
{
"identity": "swifter",
"name": "Swifter",
"url": "https://github.com/httpswift/swifter.git",
"version": "1.5.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swifter",
"dependencies": [
]
}
]
},
{
"identity": "keychainaccess",
"name": "KeychainAccess",
"url": "https://github.com/kishikawakatsumi/KeychainAccess.git",
"version": "4.2.2",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/KeychainAccess",
"dependencies": [
]
}
]
}
]
}
]
}
Fetching https://github.com/Nef10/SwiftBeanCountSheetSync.git
[1/1126] Fetching swiftbeancountsheetsync
Fetched https://github.com/Nef10/SwiftBeanCountSheetSync.git from cache (0.93s)
Fetching https://github.com/Nef10/GoogleAuthentication.git from cache
Fetching https://github.com/Nef10/SwiftBeanCountParser.git from cache
Fetching https://github.com/Nef10/SwiftBeanCountModel.git from cache
Fetched https://github.com/Nef10/SwiftBeanCountModel.git from cache (0.47s)
Fetched https://github.com/Nef10/GoogleAuthentication.git from cache (0.52s)
Fetched https://github.com/Nef10/SwiftBeanCountParser.git from cache (0.52s)
Computing version for https://github.com/Nef10/GoogleAuthentication.git
Computed https://github.com/Nef10/GoogleAuthentication.git at 1.0.3 (0.57s)
Fetching https://github.com/OAuthSwift/OAuthSwift.git from cache
Fetching https://github.com/kishikawakatsumi/KeychainAccess.git from cache
Fetched https://github.com/kishikawakatsumi/KeychainAccess.git from cache (0.48s)
Fetched https://github.com/OAuthSwift/OAuthSwift.git from cache (0.48s)
Computing version for https://github.com/Nef10/SwiftBeanCountParser.git
Computed https://github.com/Nef10/SwiftBeanCountParser.git at 0.1.8 (0.53s)
Computing version for https://github.com/Nef10/SwiftBeanCountModel.git
Computed https://github.com/Nef10/SwiftBeanCountModel.git at 0.1.6 (0.02s)
Computing version for https://github.com/OAuthSwift/OAuthSwift.git
Computed https://github.com/OAuthSwift/OAuthSwift.git at 2.2.0 (0.03s)
Fetching https://github.com/httpswift/swifter.git from cache
Fetching https://github.com/phimage/Erik.git from cache
Fetching https://github.com/tid-kijyun/Kanna.git from cache
Fetched https://github.com/tid-kijyun/Kanna.git from cache (0.44s)
Fetched https://github.com/httpswift/swifter.git from cache (0.49s)
Fetched https://github.com/phimage/Erik.git from cache (0.49s)
Computing version for https://github.com/httpswift/swifter.git
Computed https://github.com/httpswift/swifter.git at 1.5.0 (0.55s)
Computing version for https://github.com/kishikawakatsumi/KeychainAccess.git
Computed https://github.com/kishikawakatsumi/KeychainAccess.git at 4.2.2 (0.04s)
Computing version for https://github.com/phimage/Erik.git
Computed https://github.com/phimage/Erik.git at 5.1.0 (0.03s)
Fetching https://github.com/Thomvis/BrightFutures.git from cache
Fetching https://github.com/nvzqz/FileKit.git from cache
Fetched https://github.com/Thomvis/BrightFutures.git from cache (0.43s)
Fetched https://github.com/nvzqz/FileKit.git from cache (0.43s)
Computing version for https://github.com/nvzqz/FileKit.git
Computed https://github.com/nvzqz/FileKit.git at 6.1.0 (0.48s)
Computing version for https://github.com/Thomvis/BrightFutures.git
Computed https://github.com/Thomvis/BrightFutures.git at 8.2.0 (0.03s)
Computing version for https://github.com/tid-kijyun/Kanna.git
Computed https://github.com/tid-kijyun/Kanna.git at 5.3.0 (0.58s)
Creating working copy for https://github.com/Thomvis/BrightFutures.git
Working copy of https://github.com/Thomvis/BrightFutures.git resolved at 8.2.0
Creating working copy for https://github.com/nvzqz/FileKit.git
Working copy of https://github.com/nvzqz/FileKit.git resolved at 6.1.0
Creating working copy for https://github.com/OAuthSwift/OAuthSwift.git
Working copy of https://github.com/OAuthSwift/OAuthSwift.git resolved at 2.2.0
Creating working copy for https://github.com/Nef10/GoogleAuthentication.git
Working copy of https://github.com/Nef10/GoogleAuthentication.git resolved at 1.0.3
Creating working copy for https://github.com/phimage/Erik.git
Working copy of https://github.com/phimage/Erik.git resolved at 5.1.0
Creating working copy for https://github.com/tid-kijyun/Kanna.git
Working copy of https://github.com/tid-kijyun/Kanna.git resolved at 5.3.0
Creating working copy for https://github.com/kishikawakatsumi/KeychainAccess.git
Working copy of https://github.com/kishikawakatsumi/KeychainAccess.git resolved at 4.2.2
Creating working copy for https://github.com/Nef10/SwiftBeanCountModel.git
Working copy of https://github.com/Nef10/SwiftBeanCountModel.git resolved at 0.1.6
Creating working copy for https://github.com/Nef10/SwiftBeanCountParser.git
Working copy of https://github.com/Nef10/SwiftBeanCountParser.git resolved at 0.1.8
Creating working copy for https://github.com/httpswift/swifter.git
Working copy of https://github.com/httpswift/swifter.git resolved at 1.5.0
Creating working copy for https://github.com/Nef10/SwiftBeanCountSheetSync.git
Working copy of https://github.com/Nef10/SwiftBeanCountSheetSync.git resolved at v1.1.0 (279fb68)
warning: '.resolve-product-dependencies': dependency 'swiftbeancountsheetsync' is not used by any target
Found 3 product dependencies
- SwiftBeanCountModel
- SwiftBeanCountParser
- GoogleAuthentication
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/Nef10/SwiftBeanCountSheetSync.git
https://github.com/Nef10/SwiftBeanCountSheetSync.git
{
"dependencies" : [
{
"identity" : "swiftbeancountmodel",
"requirement" : {
"exact" : [
"0.1.6"
]
},
"type" : "sourceControl",
"url" : "https://github.com/Nef10/SwiftBeanCountModel.git"
},
{
"identity" : "swiftbeancountparser",
"requirement" : {
"exact" : [
"0.1.8"
]
},
"type" : "sourceControl",
"url" : "https://github.com/Nef10/SwiftBeanCountParser.git"
},
{
"identity" : "googleauthentication",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.3",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Nef10/GoogleAuthentication.git"
}
],
"manifest_display_name" : "SwiftBeanCountSheetSync",
"name" : "SwiftBeanCountSheetSync",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
}
],
"products" : [
{
"name" : "SwiftBeanCountSheetSync",
"targets" : [
"SwiftBeanCountSheetSync"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SwiftBeanCountSheetSyncTests",
"module_type" : "SwiftTarget",
"name" : "SwiftBeanCountSheetSyncTests",
"path" : "Tests/SwiftBeanCountSheetSyncTests",
"sources" : [
"SwiftBeanCountSheetSyncTests.swift"
],
"target_dependencies" : [
"SwiftBeanCountSheetSync"
],
"type" : "test"
},
{
"c99name" : "SwiftBeanCountSheetSync",
"module_type" : "SwiftTarget",
"name" : "SwiftBeanCountSheetSync",
"path" : "Sources/SwiftBeanCountSheetSync",
"product_dependencies" : [
"SwiftBeanCountModel",
"SwiftBeanCountParser",
"GoogleAuthentication"
],
"product_memberships" : [
"SwiftBeanCountSheetSync"
],
"sources" : [
"Downloader.swift",
"LedgerReader.swift",
"LedgerSettings.swift",
"SheetDownloader.swift",
"SheetParser.swift",
"Syncer.swift",
"TransactionMapper.swift",
"Uploader.swift"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.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/7] Write sources
[6/7] Write swift-version-2F0A5646E1D333AE.txt
[8/57] Compiling OAuthSwift OAuthLogProtocol.swift
[9/57] Compiling OAuthSwift OAuthSwift.swift
[10/57] Compiling OAuthSwift SFAuthenticationURLHandler.swift
[11/57] Compiling OAuthSwift SafariURLHandler.swift
[12/58] Compiling KeychainAccess Keychain.swift
[13/58] Emitting module KeychainAccess
[14/58] Compiling OAuthSwift ExtensionContextURLHandler.swift
[15/58] Compiling OAuthSwift OAuthSwiftOpenURLExternally.swift
[16/58] Compiling OAuthSwift OAuth2Swift.swift
[17/58] Compiling OAuthSwift ASWebAuthenticationURLHandler.swift
[18/58] Compiling OAuthSwift NotificationCenter+OAuthSwift.swift
[19/58] Compiling OAuthSwift OAuth1Swift.swift
[20/58] Compiling OAuthSwift Dictionary+OAuthSwift.swift
[21/58] Compiling OAuthSwift HMAC.swift
[22/58] Compiling OAuthSwift OAuthSwiftURLHandlerProxy.swift
[23/58] Compiling OAuthSwift OAuthWebViewController.swift
[24/58] Emitting module SwiftBeanCountModel
[25/58] Compiling OAuthSwift Collection+OAuthSwift.swift
[26/58] Compiling OAuthSwift Data+OAuthSwift.swift
[27/58] Compiling OAuthSwift Int+OAuthSwift.swift
[28/58] Compiling OAuthSwift NSError+OAuthSwift.swift
[29/58] Compiling SwiftBeanCountModel ValidationResult.swift
[30/58] Emitting module OAuthSwift
[31/78] Compiling OAuthSwift SHA1.swift
[32/78] Compiling OAuthSwift String+OAuthSwift.swift
[33/78] Compiling OAuthSwift UIApplication+OAuthSwift.swift
[34/78] Compiling SwiftBeanCountParser PostingParser.swift
[35/78] Compiling SwiftBeanCountParser PriceParser.swift
[36/79] Compiling SwiftBeanCountParser ParserUtils.swift
[37/79] Compiling SwiftBeanCountParser PluginParser.swift
[38/79] Compiling SwiftBeanCountParser CustomsParser.swift
[39/79] Compiling SwiftBeanCountParser DateParser.swift
[40/79] Compiling SwiftBeanCountParser EventParser.swift
[41/79] Compiling SwiftBeanCountParser Collection.swift
[42/79] Compiling SwiftBeanCountParser CommodityParser.swift
[43/79] Compiling SwiftBeanCountParser CostParser.swift
[44/79] Compiling SwiftBeanCountParser String.swift
[45/79] Compiling SwiftBeanCountParser MetaDataParser.swift
[46/79] Compiling SwiftBeanCountParser OptionParser.swift
[47/79] Compiling SwiftBeanCountParser Parser.swift
[48/79] Compiling SwiftBeanCountParser AccountParser.swift
[49/79] Compiling SwiftBeanCountParser BalanceParser.swift
[50/79] Emitting module SwiftBeanCountParser
[51/79] Compiling OAuthSwift URL+OAuthSwift.swift
[52/79] Compiling OAuthSwift URLConvertible.swift
[53/79] Compiling OAuthSwift Utils.swift
[54/79] Compiling SwiftBeanCountParser TransactionMetaDataParser.swift
[57/79] Compiling OAuthSwift OAuthSwiftClient.swift
[67/79] Compiling OAuthSwift OAuthSwiftMultipartData.swift
[68/79] Compiling OAuthSwift OAuthSwiftResponse.swift
[69/79] Compiling OAuthSwift OAuthSwiftURLHandlerType.swift
[70/79] Compiling OAuthSwift OAuthSwiftCredential.swift
[71/79] Compiling OAuthSwift OAuthSwiftError.swift
[72/79] Compiling OAuthSwift OAuthSwiftHTTPRequest.swift
[80/82] Emitting module GoogleAuthentication
[81/82] Compiling GoogleAuthentication ASWebAuthenticationURLHandler.swift
[82/82] Compiling GoogleAuthentication Authentication.swift
[83/91] Compiling SwiftBeanCountSheetSync Uploader.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Uploader.swift:18:26: warning: capture of 'self' with non-sendable type 'Uploader' in a '@Sendable' closure
12 |
13 | /// Uploads transactions from the ledger to the sheet
14 | public class Uploader: GenericSyncer, Syncer {
| `- note: class 'Uploader' does not conform to the 'Sendable' protocol
15 |
16 | public func start(authentication: Authentication, completion: @escaping (Result<SyncResult, Error>) -> Void) {
17 | DispatchQueue.global(qos: .userInitiated).async { [self] in
18 | let result = readLedgerSettingsAndTransactions()
| `- warning: capture of 'self' with non-sendable type 'Uploader' in a '@Sendable' closure
19 | .flatMap { ledgerTransactions, ledgerSettings -> Result<SyncResult, Error> in
20 | let sheetTransactions = getTransactionsFromSheet(authentication: authentication, ledgerSettings: ledgerSettings)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Uploader.swift:20:86: warning: capture of 'authentication' with non-sendable type 'Authentication' in a '@Sendable' closure
18 | let result = readLedgerSettingsAndTransactions()
19 | .flatMap { ledgerTransactions, ledgerSettings -> Result<SyncResult, Error> in
20 | let sheetTransactions = getTransactionsFromSheet(authentication: authentication, ledgerSettings: ledgerSettings)
| `- warning: capture of 'authentication' with non-sendable type 'Authentication' in a '@Sendable' closure
21 | switch sheetTransactions {
22 | case .success(let (sheetTransactions, sheetParserErrors)):
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GoogleAuthentication/Sources/GoogleAuthentication/Authentication.swift:15:14: note: class 'Authentication' does not conform to the 'Sendable' protocol
13 |
14 | /// Wraper around OAuthSwift and KeychainAccess to authenticate to Google APIs while automatically saving the tokens into the keychain
15 | public class Authentication {
| `- note: class 'Authentication' does not conform to the 'Sendable' protocol
16 |
17 | private static let keychainKey = "googleOAuthCredentials"
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Uploader.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'GoogleAuthentication'
8 |
9 | import Foundation
10 | import GoogleAuthentication
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'GoogleAuthentication'
11 | import SwiftBeanCountModel
12 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Uploader.swift:35:13: warning: capture of 'completion' with non-sendable type '(Result<SyncResult, any Error>) -> Void' in a '@Sendable' closure
33 | }
34 | }
35 | completion(result)
| |- warning: capture of 'completion' with non-sendable type '(Result<SyncResult, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
36 | }
37 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Uploader.swift:20:45: warning: capture of 'self' with non-sendable type 'Uploader' in an isolated closure; this is an error in the Swift 6 language mode
12 |
13 | /// Uploads transactions from the ledger to the sheet
14 | public class Uploader: GenericSyncer, Syncer {
| `- note: class 'Uploader' does not conform to the 'Sendable' protocol
15 |
16 | public func start(authentication: Authentication, completion: @escaping (Result<SyncResult, Error>) -> Void) {
:
18 | let result = readLedgerSettingsAndTransactions()
19 | .flatMap { ledgerTransactions, ledgerSettings -> Result<SyncResult, Error> in
20 | let sheetTransactions = getTransactionsFromSheet(authentication: authentication, ledgerSettings: ledgerSettings)
| `- warning: capture of 'self' with non-sendable type 'Uploader' in an isolated closure; this is an error in the Swift 6 language mode
21 | switch sheetTransactions {
22 | case .success(let (sheetTransactions, sheetParserErrors)):
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Uploader.swift:20:86: warning: capture of 'authentication' with non-sendable type 'Authentication' in an isolated closure; this is an error in the Swift 6 language mode
18 | let result = readLedgerSettingsAndTransactions()
19 | .flatMap { ledgerTransactions, ledgerSettings -> Result<SyncResult, Error> in
20 | let sheetTransactions = getTransactionsFromSheet(authentication: authentication, ledgerSettings: ledgerSettings)
| `- warning: capture of 'authentication' with non-sendable type 'Authentication' in an isolated closure; this is an error in the Swift 6 language mode
21 | switch sheetTransactions {
22 | case .success(let (sheetTransactions, sheetParserErrors)):
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GoogleAuthentication/Sources/GoogleAuthentication/Authentication.swift:15:14: note: class 'Authentication' does not conform to the 'Sendable' protocol
13 |
14 | /// Wraper around OAuthSwift and KeychainAccess to authenticate to Google APIs while automatically saving the tokens into the keychain
15 | public class Authentication {
| `- note: class 'Authentication' does not conform to the 'Sendable' protocol
16 |
17 | private static let keychainKey = "googleOAuthCredentials"
[84/91] Compiling SwiftBeanCountSheetSync TransactionMapper.swift
[85/91] Compiling SwiftBeanCountSheetSync SheetDownloader.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/SheetDownloader.swift:39:24: warning: capture of 'result' with non-sendable type 'Result<OAuthSwiftResponse, OAuthSwiftError>' in a '@Sendable' closure
37 | authentication.startAuthorizedGETRequest("https://sheets.googleapis.com/v4/spreadsheets/\(id)/values/\(area)") { result in
38 | DispatchQueue.global(qos: .userInitiated).async {
39 | switch result {
| `- warning: capture of 'result' with non-sendable type 'Result<OAuthSwiftResponse, OAuthSwiftError>' in a '@Sendable' closure
40 | case .success(let response):
41 | guard let data = try? JSONSerialization.jsonObject(with: response.data, options: []) as? [String: Any], let values = data["values"] as? [[String]] else {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/OAuthSwift/Sources/OAuthSwiftResponse.swift:13:14: note: class 'OAuthSwiftResponse' does not conform to the 'Sendable' protocol
11 | /// Response object
12 | @objc
13 | public class OAuthSwiftResponse: NSObject { // not a struct for objc
| `- note: class 'OAuthSwiftResponse' does not conform to the 'Sendable' protocol
14 | /// The data returned by the server.
15 | public var data: Data
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/SheetDownloader.swift:42:25: warning: capture of 'completion' with non-sendable type '(Result<[[String]], SheetDownloader.DownloaderError>) -> Void' in a '@Sendable' closure
40 | case .success(let response):
41 | guard let data = try? JSONSerialization.jsonObject(with: response.data, options: []) as? [String: Any], let values = data["values"] as? [[String]] else {
42 | completion(.failure(.unableToParseResponse("Unable to parse response: \(response.dataString() ?? "")")))
| |- warning: capture of 'completion' with non-sendable type '(Result<[[String]], SheetDownloader.DownloaderError>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
43 | return
44 | }
[86/91] Compiling SwiftBeanCountSheetSync LedgerReader.swift
[87/91] Compiling SwiftBeanCountSheetSync LedgerSettings.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/LedgerSettings.swift:27:16: warning: static property 'fallbackAccountName' is not concurrency-safe because non-'Sendable' type 'AccountName' may have shared mutable state; this is an error in the Swift 6 language mode
25 | public struct LedgerSettings {
26 |
27 | static let fallbackAccountName = try! AccountName("Expenses:TODO") // swiftlint:disable:this force_try
| `- warning: static property 'fallbackAccountName' is not concurrency-safe because non-'Sendable' type 'AccountName' may have shared mutable state; this is an error in the Swift 6 language mode
28 | static let ownAccountName = try! AccountName("Assets:TODO") // swiftlint:disable:this force_try
29 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SwiftBeanCountModel/Sources/SwiftBeanCountModel/AccountName.swift:18:15: note: struct 'AccountName' does not conform to the 'Sendable' protocol
16 |
17 | /// Struct with represents just the name of an Account
18 | public struct AccountName: AccountItem {
| `- note: struct 'AccountName' does not conform to the 'Sendable' protocol
19 |
20 | /// Full quilified name of the account, e.g. Assets:Cash:CAD
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/LedgerSettings.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'SwiftBeanCountModel'
8 |
9 | import Foundation
10 | import SwiftBeanCountModel
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'SwiftBeanCountModel'
11 |
12 | enum LedgerSettingsConstants {
:
25 | public struct LedgerSettings {
26 |
27 | static let fallbackAccountName = try! AccountName("Expenses:TODO") // swiftlint:disable:this force_try
| |- note: add '@MainActor' to make static property 'fallbackAccountName' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 | static let ownAccountName = try! AccountName("Assets:TODO") // swiftlint:disable:this force_try
29 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/LedgerSettings.swift:28:16: warning: static property 'ownAccountName' is not concurrency-safe because non-'Sendable' type 'AccountName' may have shared mutable state; this is an error in the Swift 6 language mode
26 |
27 | static let fallbackAccountName = try! AccountName("Expenses:TODO") // swiftlint:disable:this force_try
28 | static let ownAccountName = try! AccountName("Assets:TODO") // swiftlint:disable:this force_try
| |- warning: static property 'ownAccountName' is not concurrency-safe because non-'Sendable' type 'AccountName' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'ownAccountName' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |
30 | /// Commodity symbol for all transactions - The syncronization only supports one commodity
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SwiftBeanCountModel/Sources/SwiftBeanCountModel/AccountName.swift:18:15: note: struct 'AccountName' does not conform to the 'Sendable' protocol
16 |
17 | /// Struct with represents just the name of an Account
18 | public struct AccountName: AccountItem {
| `- note: struct 'AccountName' does not conform to the 'Sendable' protocol
19 |
20 | /// Full quilified name of the account, e.g. Assets:Cash:CAD
[88/91] Compiling SwiftBeanCountSheetSync Syncer.swift
[89/91] Compiling SwiftBeanCountSheetSync SheetParser.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/SheetParser.swift:50: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
48 | }
49 |
50 | 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
51 | var dateFormatter = DateFormatter()
52 | dateFormatter.dateFormat = "yyyy-MM-dd"
[90/91] Compiling SwiftBeanCountSheetSync Downloader.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Downloader.swift:18:26: warning: capture of 'self' with non-sendable type 'Downloader' in a '@Sendable' closure
12 |
13 | /// Downloads transactions from the Sheet and merges them into transactions in the ledgers
14 | public class Downloader: GenericSyncer, Syncer {
| `- note: class 'Downloader' does not conform to the 'Sendable' protocol
15 |
16 | public func start(authentication: Authentication, completion: @escaping (Result<SyncResult, Error>) -> Void) {
17 | DispatchQueue.global(qos: .userInitiated).async { [self] in
18 | let result = readLedgerSettingsAndTransactions()
| `- warning: capture of 'self' with non-sendable type 'Downloader' in a '@Sendable' closure
19 | .flatMap { ledgerTransactions, ledgerSettings -> Result<SyncResult, Error> in
20 | let sheetTransactions = getTransactionsFromSheet(authentication: authentication, ledgerSettings: ledgerSettings)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Downloader.swift:20:86: warning: capture of 'authentication' with non-sendable type 'Authentication' in a '@Sendable' closure
18 | let result = readLedgerSettingsAndTransactions()
19 | .flatMap { ledgerTransactions, ledgerSettings -> Result<SyncResult, Error> in
20 | let sheetTransactions = getTransactionsFromSheet(authentication: authentication, ledgerSettings: ledgerSettings)
| `- warning: capture of 'authentication' with non-sendable type 'Authentication' in a '@Sendable' closure
21 | switch sheetTransactions {
22 | case .success(let (sheetTransactions, sheetParserErrors)):
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GoogleAuthentication/Sources/GoogleAuthentication/Authentication.swift:15:14: note: class 'Authentication' does not conform to the 'Sendable' protocol
13 |
14 | /// Wraper around OAuthSwift and KeychainAccess to authenticate to Google APIs while automatically saving the tokens into the keychain
15 | public class Authentication {
| `- note: class 'Authentication' does not conform to the 'Sendable' protocol
16 |
17 | private static let keychainKey = "googleOAuthCredentials"
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Downloader.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'GoogleAuthentication'
8 |
9 | import Foundation
10 | import GoogleAuthentication
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'GoogleAuthentication'
11 | import SwiftBeanCountModel
12 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Downloader.swift:36:13: warning: capture of 'completion' with non-sendable type '(Result<SyncResult, any Error>) -> Void' in a '@Sendable' closure
34 | }
35 | }
36 | completion(result)
| |- warning: capture of 'completion' with non-sendable type '(Result<SyncResult, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
37 | }
38 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Downloader.swift:20:45: warning: capture of 'self' with non-sendable type 'Downloader' in an isolated closure; this is an error in the Swift 6 language mode
12 |
13 | /// Downloads transactions from the Sheet and merges them into transactions in the ledgers
14 | public class Downloader: GenericSyncer, Syncer {
| `- note: class 'Downloader' does not conform to the 'Sendable' protocol
15 |
16 | public func start(authentication: Authentication, completion: @escaping (Result<SyncResult, Error>) -> Void) {
:
18 | let result = readLedgerSettingsAndTransactions()
19 | .flatMap { ledgerTransactions, ledgerSettings -> Result<SyncResult, Error> in
20 | let sheetTransactions = getTransactionsFromSheet(authentication: authentication, ledgerSettings: ledgerSettings)
| `- warning: capture of 'self' with non-sendable type 'Downloader' in an isolated closure; this is an error in the Swift 6 language mode
21 | switch sheetTransactions {
22 | case .success(let (sheetTransactions, sheetParserErrors)):
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/Downloader.swift:20:86: warning: capture of 'authentication' with non-sendable type 'Authentication' in an isolated closure; this is an error in the Swift 6 language mode
18 | let result = readLedgerSettingsAndTransactions()
19 | .flatMap { ledgerTransactions, ledgerSettings -> Result<SyncResult, Error> in
20 | let sheetTransactions = getTransactionsFromSheet(authentication: authentication, ledgerSettings: ledgerSettings)
| `- warning: capture of 'authentication' with non-sendable type 'Authentication' in an isolated closure; this is an error in the Swift 6 language mode
21 | switch sheetTransactions {
22 | case .success(let (sheetTransactions, sheetParserErrors)):
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GoogleAuthentication/Sources/GoogleAuthentication/Authentication.swift:15:14: note: class 'Authentication' does not conform to the 'Sendable' protocol
13 |
14 | /// Wraper around OAuthSwift and KeychainAccess to authenticate to Google APIs while automatically saving the tokens into the keychain
15 | public class Authentication {
| `- note: class 'Authentication' does not conform to the 'Sendable' protocol
16 |
17 | private static let keychainKey = "googleOAuthCredentials"
[91/91] Emitting module SwiftBeanCountSheetSync
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/LedgerSettings.swift:27:16: warning: static property 'fallbackAccountName' is not concurrency-safe because non-'Sendable' type 'AccountName' may have shared mutable state; this is an error in the Swift 6 language mode
25 | public struct LedgerSettings {
26 |
27 | static let fallbackAccountName = try! AccountName("Expenses:TODO") // swiftlint:disable:this force_try
| `- warning: static property 'fallbackAccountName' is not concurrency-safe because non-'Sendable' type 'AccountName' may have shared mutable state; this is an error in the Swift 6 language mode
28 | static let ownAccountName = try! AccountName("Assets:TODO") // swiftlint:disable:this force_try
29 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SwiftBeanCountModel/Sources/SwiftBeanCountModel/AccountName.swift:18:15: note: struct 'AccountName' does not conform to the 'Sendable' protocol
16 |
17 | /// Struct with represents just the name of an Account
18 | public struct AccountName: AccountItem {
| `- note: struct 'AccountName' does not conform to the 'Sendable' protocol
19 |
20 | /// Full quilified name of the account, e.g. Assets:Cash:CAD
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/LedgerSettings.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'SwiftBeanCountModel'
8 |
9 | import Foundation
10 | import SwiftBeanCountModel
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'SwiftBeanCountModel'
11 |
12 | enum LedgerSettingsConstants {
:
25 | public struct LedgerSettings {
26 |
27 | static let fallbackAccountName = try! AccountName("Expenses:TODO") // swiftlint:disable:this force_try
| |- note: add '@MainActor' to make static property 'fallbackAccountName' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 | static let ownAccountName = try! AccountName("Assets:TODO") // swiftlint:disable:this force_try
29 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/LedgerSettings.swift:28:16: warning: static property 'ownAccountName' is not concurrency-safe because non-'Sendable' type 'AccountName' may have shared mutable state; this is an error in the Swift 6 language mode
26 |
27 | static let fallbackAccountName = try! AccountName("Expenses:TODO") // swiftlint:disable:this force_try
28 | static let ownAccountName = try! AccountName("Assets:TODO") // swiftlint:disable:this force_try
| |- warning: static property 'ownAccountName' is not concurrency-safe because non-'Sendable' type 'AccountName' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'ownAccountName' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 |
30 | /// Commodity symbol for all transactions - The syncronization only supports one commodity
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SwiftBeanCountModel/Sources/SwiftBeanCountModel/AccountName.swift:18:15: note: struct 'AccountName' does not conform to the 'Sendable' protocol
16 |
17 | /// Struct with represents just the name of an Account
18 | public struct AccountName: AccountItem {
| `- note: struct 'AccountName' does not conform to the 'Sendable' protocol
19 |
20 | /// Full quilified name of the account, e.g. Assets:Cash:CAD
/Users/admin/builder/spi-builder-workspace/Sources/SwiftBeanCountSheetSync/SheetParser.swift:50: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
48 | }
49 |
50 | 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
51 | var dateFormatter = DateFormatter()
52 | dateFormatter.dateFormat = "yyyy-MM-dd"
Build complete! (17.18s)
Build complete.
{
"dependencies" : [
{
"identity" : "swiftbeancountmodel",
"requirement" : {
"exact" : [
"0.1.6"
]
},
"type" : "sourceControl",
"url" : "https://github.com/Nef10/SwiftBeanCountModel.git"
},
{
"identity" : "swiftbeancountparser",
"requirement" : {
"exact" : [
"0.1.8"
]
},
"type" : "sourceControl",
"url" : "https://github.com/Nef10/SwiftBeanCountParser.git"
},
{
"identity" : "googleauthentication",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.3",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Nef10/GoogleAuthentication.git"
}
],
"manifest_display_name" : "SwiftBeanCountSheetSync",
"name" : "SwiftBeanCountSheetSync",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
}
],
"products" : [
{
"name" : "SwiftBeanCountSheetSync",
"targets" : [
"SwiftBeanCountSheetSync"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SwiftBeanCountSheetSyncTests",
"module_type" : "SwiftTarget",
"name" : "SwiftBeanCountSheetSyncTests",
"path" : "Tests/SwiftBeanCountSheetSyncTests",
"sources" : [
"SwiftBeanCountSheetSyncTests.swift"
],
"target_dependencies" : [
"SwiftBeanCountSheetSync"
],
"type" : "test"
},
{
"c99name" : "SwiftBeanCountSheetSync",
"module_type" : "SwiftTarget",
"name" : "SwiftBeanCountSheetSync",
"path" : "Sources/SwiftBeanCountSheetSync",
"product_dependencies" : [
"SwiftBeanCountModel",
"SwiftBeanCountParser",
"GoogleAuthentication"
],
"product_memberships" : [
"SwiftBeanCountSheetSync"
],
"sources" : [
"Downloader.swift",
"LedgerReader.swift",
"LedgerSettings.swift",
"SheetDownloader.swift",
"SheetParser.swift",
"Syncer.swift",
"TransactionMapper.swift",
"Uploader.swift"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
Done.