Build Information
Failed to build WikipediaKit, reference main (a601bf
), with Swift 6.1 for Android on 28 May 2025 07:10:51 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1
Build Log
83 | self.articleCache.add(article)
84 | DispatchQueue.main.async {
85 | completion(.success(article))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
86 | }
87 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:85:41: warning: sending 'article' risks causing data races; this is an error in the Swift 6 language mode
83 | self.articleCache.add(article)
84 | DispatchQueue.main.async {
85 | completion(.success(article))
| |- warning: sending 'article' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'article' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
86 | }
87 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:89:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
87 | } else {
88 | DispatchQueue.main.async {
89 | completion(.failure(.decodingError))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
90 | }
91 | }
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:77:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
75 | guard let jsonDictionary = jsonDictionary else {
76 | DispatchQueue.main.async {
77 | completion (.failure(.decodingError))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
78 | }
79 | return
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:70:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
68 | guard error == nil else {
69 | DispatchQueue.main.async {
70 | completion (.failure(error!))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
71 | }
72 | return
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
/host/spi-builder-workspace/Sources/Wikipedia+ArticleSummary.swift:51:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
49 | else {
50 | DispatchQueue.main.async {
51 | completion(nil, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
52 | }
53 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+ArticleSummary.swift:78:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
76 |
77 | DispatchQueue.main.async {
78 | completion(articlePreview, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
79 | }
80 | }
/host/spi-builder-workspace/Sources/Wikipedia+ArticleSummary.swift:78:32: warning: sending 'articlePreview' risks causing data races; this is an error in the Swift 6 language mode
76 |
77 | DispatchQueue.main.async {
78 | completion(articlePreview, error)
| |- warning: sending 'articlePreview' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'articlePreview' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
79 | }
80 | }
/host/spi-builder-workspace/Sources/Wikipedia+ArticleSummary.swift:70:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
68 | guard let jsonDictionary = jsonDictionary else {
69 | DispatchQueue.main.async {
70 | completion (nil, .decodingError)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
71 | }
72 | return
/host/spi-builder-workspace/Sources/Wikipedia+ArticleSummary.swift:63:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
61 | // (also occurs when the request was cancelled programmatically)
62 | DispatchQueue.main.async {
63 | completion (nil, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
64 | }
65 | return
[17/31] Compiling WikipediaKit Wikipedia+ArticleSummary.swift
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:47:17: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
45 | if let cachedArticle = self.articleCache.get(language: language, title: title) {
46 | DispatchQueue.main.async {
47 | completion(.success(cachedArticle))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
48 | }
49 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:47:37: warning: sending 'cachedArticle' risks causing data races; this is an error in the Swift 6 language mode
45 | if let cachedArticle = self.articleCache.get(language: language, title: title) {
46 | DispatchQueue.main.async {
47 | completion(.success(cachedArticle))
| |- warning: sending 'cachedArticle' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'cachedArticle' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
48 | }
49 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:59:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
57 | else {
58 | DispatchQueue.main.async {
59 | completion(.failure(.other(nil)))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
60 | }
61 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:85:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
83 | self.articleCache.add(article)
84 | DispatchQueue.main.async {
85 | completion(.success(article))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
86 | }
87 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:85:41: warning: sending 'article' risks causing data races; this is an error in the Swift 6 language mode
83 | self.articleCache.add(article)
84 | DispatchQueue.main.async {
85 | completion(.success(article))
| |- warning: sending 'article' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'article' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
86 | }
87 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:89:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
87 | } else {
88 | DispatchQueue.main.async {
89 | completion(.failure(.decodingError))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
90 | }
91 | }
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:77:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
75 | guard let jsonDictionary = jsonDictionary else {
76 | DispatchQueue.main.async {
77 | completion (.failure(.decodingError))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
78 | }
79 | return
/host/spi-builder-workspace/Sources/Wikipedia+Article.swift:70:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
68 | guard error == nil else {
69 | DispatchQueue.main.async {
70 | completion (.failure(error!))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
71 | }
72 | return
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
/host/spi-builder-workspace/Sources/Wikipedia+ArticleSummary.swift:51:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
49 | else {
50 | DispatchQueue.main.async {
51 | completion(nil, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
52 | }
53 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+ArticleSummary.swift:78:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
76 |
77 | DispatchQueue.main.async {
78 | completion(articlePreview, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
79 | }
80 | }
/host/spi-builder-workspace/Sources/Wikipedia+ArticleSummary.swift:78:32: warning: sending 'articlePreview' risks causing data races; this is an error in the Swift 6 language mode
76 |
77 | DispatchQueue.main.async {
78 | completion(articlePreview, error)
| |- warning: sending 'articlePreview' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'articlePreview' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
79 | }
80 | }
/host/spi-builder-workspace/Sources/Wikipedia+ArticleSummary.swift:70:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
68 | guard let jsonDictionary = jsonDictionary else {
69 | DispatchQueue.main.async {
70 | completion (nil, .decodingError)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
71 | }
72 | return
/host/spi-builder-workspace/Sources/Wikipedia+ArticleSummary.swift:63:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
61 | // (also occurs when the request was cancelled programmatically)
62 | DispatchQueue.main.async {
63 | completion (nil, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
64 | }
65 | return
[18/31] Compiling WikipediaKit WikipediaRandomArticlesBuffer.swift
/host/spi-builder-workspace/Sources/WikipediaRandomArticlesBuffer.swift:34:16: warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
32 | class WikipediaRandomArticlesBuffer {
33 |
34 | static var shared: WikipediaRandomArticlesBuffer = {
| |- warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 | return WikipediaRandomArticlesBuffer()
36 | }()
[19/31] Compiling WikipediaKit WikipediaSearchMethod.swift
/host/spi-builder-workspace/Sources/WikipediaRandomArticlesBuffer.swift:34:16: warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
32 | class WikipediaRandomArticlesBuffer {
33 |
34 | static var shared: WikipediaRandomArticlesBuffer = {
| |- warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 | return WikipediaRandomArticlesBuffer()
36 | }()
[20/31] Compiling WikipediaKit WikipediaSearchResults.swift
/host/spi-builder-workspace/Sources/WikipediaRandomArticlesBuffer.swift:34:16: warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
32 | class WikipediaRandomArticlesBuffer {
33 |
34 | static var shared: WikipediaRandomArticlesBuffer = {
| |- warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 | return WikipediaRandomArticlesBuffer()
36 | }()
[21/31] Compiling WikipediaKit Wikipedia+RandomArticles.swift
/host/spi-builder-workspace/Sources/Wikipedia.swift:42:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Wikipedia' may have shared mutable state; this is an error in the Swift 6 language mode
35 | typealias JSONDictionary = [String:AnyObject]
36 |
37 | public class Wikipedia {
| `- note: class 'Wikipedia' does not conform to the 'Sendable' protocol
38 |
39 | // Public initializer is required if we don’t use the shared singleton
40 | public init() {}
41 |
42 | public static let shared: Wikipedia = {
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Wikipedia' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 | return Wikipedia()
44 | }()
/host/spi-builder-workspace/Sources/Wikipedia.swift:46:28: warning: static property 'sharedFormattingDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
44 | }()
45 |
46 | public static weak var sharedFormattingDelegate: WikipediaTextFormattingDelegate?
| |- warning: static property 'sharedFormattingDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sharedFormattingDelegate' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'sharedFormattingDelegate' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 | let articleCache: WikipediaArticleCache = {
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:110:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
108 | else {
109 | DispatchQueue.main.async {
110 | completion(nil, language, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
111 | }
112 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:110:37: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
108 | else {
109 | DispatchQueue.main.async {
110 | completion(nil, language, .other(nil))
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
111 | }
112 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:61:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
59 | let articlePreview = WikipediaRandomArticlesBuffer.shared.nextArticlePreview()
60 | DispatchQueue.main.async {
61 | completion(articlePreview, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
62 | }
63 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:61:48: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
59 | let articlePreview = WikipediaRandomArticlesBuffer.shared.nextArticlePreview()
60 | DispatchQueue.main.async {
61 | completion(articlePreview, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
62 | }
63 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:52:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
50 | guard let articlePreviews = articlePreviews else {
51 | DispatchQueue.main.async {
52 | completion(nil, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
53 | }
54 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:52:41: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
50 | guard let articlePreviews = articlePreviews else {
51 | DispatchQueue.main.async {
52 | completion(nil, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
53 | }
54 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:145:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
143 | let info = error["info"] as? String {
144 | DispatchQueue.main.async {
145 | completion (nil, language, .apiError(info))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
146 | }
147 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:145:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
143 | let info = error["info"] as? String {
144 | DispatchQueue.main.async {
145 | completion (nil, language, .apiError(info))
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
146 | }
147 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:17: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:28: warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'results' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:37: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:152:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
150 | guard let pages = query["pages"] as? [JSONDictionary] else {
151 | DispatchQueue.main.async {
152 | completion (nil, language, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
153 | }
154 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:152:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
150 | guard let pages = query["pages"] as? [JSONDictionary] else {
151 | DispatchQueue.main.async {
152 | completion (nil, language, .notFound)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
153 | }
154 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:137:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
135 | // there is no “query” key,
136 | // but unfortunately no error message either
137 | completion (nil, language, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
138 | }
139 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:137:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
135 | // there is no “query” key,
136 | // but unfortunately no error message either
137 | completion (nil, language, .notFound)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
138 | }
139 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:127:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
125 | guard let jsonDictionary = jsonDictionary else {
126 | DispatchQueue.main.async {
127 | completion (nil, language, .decodingError)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
128 | }
129 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:127:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
125 | guard let jsonDictionary = jsonDictionary else {
126 | DispatchQueue.main.async {
127 | completion (nil, language, .decodingError)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
128 | }
129 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:120:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
118 | // (also occurs when the request was cancelled programmatically)
119 | DispatchQueue.main.async {
120 | completion (nil, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
121 | }
122 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:120:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
118 | // (also occurs when the request was cancelled programmatically)
119 | DispatchQueue.main.async {
120 | completion (nil, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
121 | }
122 | return
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:99:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
97 | sr.term == term else {
98 | DispatchQueue.main.async {
99 | completion(nil, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
100 | }
101 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:114:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
112 | if cachedSearchResults.items.count > searchResults.items.count {
113 | DispatchQueue.main.async {
114 | completion(cachedSearchResults, nil)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
115 | }
116 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:114:32: warning: sending 'cachedSearchResults' risks causing data races; this is an error in the Swift 6 language mode
112 | if cachedSearchResults.items.count > searchResults.items.count {
113 | DispatchQueue.main.async {
114 | completion(cachedSearchResults, nil)
| |- warning: sending 'cachedSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'cachedSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
115 | }
116 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:200:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
198 | else {
199 | DispatchQueue.main.async {
200 | completion(nil, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
201 | }
202 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:76:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
74 | } else {
75 | DispatchQueue.main.async {
76 | completion(searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
77 | }
78 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:76:32: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
74 | } else {
75 | DispatchQueue.main.async {
76 | completion(searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
77 | }
78 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:65:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
63 | if (fullTextSearchResults?.items.count ?? 0) >= (prefixSearchResults?.items.count ?? 0) {
64 | DispatchQueue.main.async {
65 | completion(fullTextSearchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
66 | }
67 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:65:40: warning: sending 'fullTextSearchResults' risks causing data races; this is an error in the Swift 6 language mode
63 | if (fullTextSearchResults?.items.count ?? 0) >= (prefixSearchResults?.items.count ?? 0) {
64 | DispatchQueue.main.async {
65 | completion(fullTextSearchResults, error)
| |- warning: sending 'fullTextSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'fullTextSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
66 | }
67 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:69:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
67 | } else {
68 | DispatchQueue.main.async {
69 | completion(prefixSearchResults, nil)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:69:40: warning: sending 'prefixSearchResults' risks causing data races; this is an error in the Swift 6 language mode
67 | } else {
68 | DispatchQueue.main.async {
69 | completion(prefixSearchResults, nil)
| |- warning: sending 'prefixSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'prefixSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:261:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
259 |
260 | DispatchQueue.main.async {
261 | completion (searchResults, .notEnoughResults)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
262 | }
263 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:261:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
259 |
260 | DispatchQueue.main.async {
261 | completion (searchResults, .notEnoughResults)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
262 | }
263 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:269:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
267 |
268 | DispatchQueue.main.async {
269 | completion(searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
270 | }
271 |
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:269:32: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
267 |
268 | DispatchQueue.main.async {
269 | completion(searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
270 | }
271 |
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:277:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
275 | if searchResults.offset == 0 {
276 | DispatchQueue.main.async {
277 | completion (searchResults, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
278 | }
279 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:277:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
275 | if searchResults.offset == 0 {
276 | DispatchQueue.main.async {
277 | completion (searchResults, .notFound)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
278 | }
279 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:284:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
282 | searchResults.canLoadMore = false
283 | DispatchQueue.main.async {
284 | completion (searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
285 | }
286 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:284:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
282 | searchResults.canLoadMore = false
283 | DispatchQueue.main.async {
284 | completion (searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
285 | }
286 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:224:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
222 | guard let query = jsonDictionary["query"] as? JSONDictionary else {
223 | DispatchQueue.main.async {
224 | completion (searchResults, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
225 | }
226 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:224:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
222 | guard let query = jsonDictionary["query"] as? JSONDictionary else {
223 | DispatchQueue.main.async {
224 | completion (searchResults, .notFound)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
225 | }
226 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:217:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
215 | guard let jsonDictionary = jsonDictionary else {
216 | DispatchQueue.main.async {
217 | completion (searchResults, .decodingError)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
218 | }
219 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:217:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
215 | guard let jsonDictionary = jsonDictionary else {
216 | DispatchQueue.main.async {
217 | completion (searchResults, .decodingError)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
218 | }
219 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:210:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
208 | // (also occurs when the request was cancelled programmatically)
209 | DispatchQueue.main.async {
210 | completion (searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
211 | }
212 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:210:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
208 | // (also occurs when the request was cancelled programmatically)
209 | DispatchQueue.main.async {
210 | completion (searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
211 | }
212 | return
[22/31] Compiling WikipediaKit Wikipedia+Search.swift
/host/spi-builder-workspace/Sources/Wikipedia.swift:42:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Wikipedia' may have shared mutable state; this is an error in the Swift 6 language mode
35 | typealias JSONDictionary = [String:AnyObject]
36 |
37 | public class Wikipedia {
| `- note: class 'Wikipedia' does not conform to the 'Sendable' protocol
38 |
39 | // Public initializer is required if we don’t use the shared singleton
40 | public init() {}
41 |
42 | public static let shared: Wikipedia = {
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Wikipedia' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 | return Wikipedia()
44 | }()
/host/spi-builder-workspace/Sources/Wikipedia.swift:46:28: warning: static property 'sharedFormattingDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
44 | }()
45 |
46 | public static weak var sharedFormattingDelegate: WikipediaTextFormattingDelegate?
| |- warning: static property 'sharedFormattingDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sharedFormattingDelegate' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'sharedFormattingDelegate' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 | let articleCache: WikipediaArticleCache = {
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:110:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
108 | else {
109 | DispatchQueue.main.async {
110 | completion(nil, language, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
111 | }
112 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:110:37: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
108 | else {
109 | DispatchQueue.main.async {
110 | completion(nil, language, .other(nil))
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
111 | }
112 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:61:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
59 | let articlePreview = WikipediaRandomArticlesBuffer.shared.nextArticlePreview()
60 | DispatchQueue.main.async {
61 | completion(articlePreview, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
62 | }
63 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:61:48: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
59 | let articlePreview = WikipediaRandomArticlesBuffer.shared.nextArticlePreview()
60 | DispatchQueue.main.async {
61 | completion(articlePreview, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
62 | }
63 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:52:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
50 | guard let articlePreviews = articlePreviews else {
51 | DispatchQueue.main.async {
52 | completion(nil, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
53 | }
54 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:52:41: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
50 | guard let articlePreviews = articlePreviews else {
51 | DispatchQueue.main.async {
52 | completion(nil, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
53 | }
54 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:145:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
143 | let info = error["info"] as? String {
144 | DispatchQueue.main.async {
145 | completion (nil, language, .apiError(info))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
146 | }
147 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:145:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
143 | let info = error["info"] as? String {
144 | DispatchQueue.main.async {
145 | completion (nil, language, .apiError(info))
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
146 | }
147 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:17: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:28: warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'results' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:37: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:152:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
150 | guard let pages = query["pages"] as? [JSONDictionary] else {
151 | DispatchQueue.main.async {
152 | completion (nil, language, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
153 | }
154 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:152:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
150 | guard let pages = query["pages"] as? [JSONDictionary] else {
151 | DispatchQueue.main.async {
152 | completion (nil, language, .notFound)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
153 | }
154 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:137:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
135 | // there is no “query” key,
136 | // but unfortunately no error message either
137 | completion (nil, language, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
138 | }
139 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:137:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
135 | // there is no “query” key,
136 | // but unfortunately no error message either
137 | completion (nil, language, .notFound)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
138 | }
139 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:127:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
125 | guard let jsonDictionary = jsonDictionary else {
126 | DispatchQueue.main.async {
127 | completion (nil, language, .decodingError)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
128 | }
129 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:127:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
125 | guard let jsonDictionary = jsonDictionary else {
126 | DispatchQueue.main.async {
127 | completion (nil, language, .decodingError)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
128 | }
129 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:120:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
118 | // (also occurs when the request was cancelled programmatically)
119 | DispatchQueue.main.async {
120 | completion (nil, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
121 | }
122 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:120:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
118 | // (also occurs when the request was cancelled programmatically)
119 | DispatchQueue.main.async {
120 | completion (nil, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
121 | }
122 | return
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:99:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
97 | sr.term == term else {
98 | DispatchQueue.main.async {
99 | completion(nil, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
100 | }
101 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:114:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
112 | if cachedSearchResults.items.count > searchResults.items.count {
113 | DispatchQueue.main.async {
114 | completion(cachedSearchResults, nil)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
115 | }
116 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:114:32: warning: sending 'cachedSearchResults' risks causing data races; this is an error in the Swift 6 language mode
112 | if cachedSearchResults.items.count > searchResults.items.count {
113 | DispatchQueue.main.async {
114 | completion(cachedSearchResults, nil)
| |- warning: sending 'cachedSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'cachedSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
115 | }
116 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:200:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
198 | else {
199 | DispatchQueue.main.async {
200 | completion(nil, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
201 | }
202 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:76:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
74 | } else {
75 | DispatchQueue.main.async {
76 | completion(searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
77 | }
78 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:76:32: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
74 | } else {
75 | DispatchQueue.main.async {
76 | completion(searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
77 | }
78 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:65:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
63 | if (fullTextSearchResults?.items.count ?? 0) >= (prefixSearchResults?.items.count ?? 0) {
64 | DispatchQueue.main.async {
65 | completion(fullTextSearchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
66 | }
67 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:65:40: warning: sending 'fullTextSearchResults' risks causing data races; this is an error in the Swift 6 language mode
63 | if (fullTextSearchResults?.items.count ?? 0) >= (prefixSearchResults?.items.count ?? 0) {
64 | DispatchQueue.main.async {
65 | completion(fullTextSearchResults, error)
| |- warning: sending 'fullTextSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'fullTextSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
66 | }
67 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:69:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
67 | } else {
68 | DispatchQueue.main.async {
69 | completion(prefixSearchResults, nil)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:69:40: warning: sending 'prefixSearchResults' risks causing data races; this is an error in the Swift 6 language mode
67 | } else {
68 | DispatchQueue.main.async {
69 | completion(prefixSearchResults, nil)
| |- warning: sending 'prefixSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'prefixSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:261:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
259 |
260 | DispatchQueue.main.async {
261 | completion (searchResults, .notEnoughResults)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
262 | }
263 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:261:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
259 |
260 | DispatchQueue.main.async {
261 | completion (searchResults, .notEnoughResults)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
262 | }
263 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:269:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
267 |
268 | DispatchQueue.main.async {
269 | completion(searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
270 | }
271 |
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:269:32: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
267 |
268 | DispatchQueue.main.async {
269 | completion(searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
270 | }
271 |
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:277:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
275 | if searchResults.offset == 0 {
276 | DispatchQueue.main.async {
277 | completion (searchResults, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
278 | }
279 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:277:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
275 | if searchResults.offset == 0 {
276 | DispatchQueue.main.async {
277 | completion (searchResults, .notFound)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
278 | }
279 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:284:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
282 | searchResults.canLoadMore = false
283 | DispatchQueue.main.async {
284 | completion (searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
285 | }
286 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:284:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
282 | searchResults.canLoadMore = false
283 | DispatchQueue.main.async {
284 | completion (searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
285 | }
286 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:224:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
222 | guard let query = jsonDictionary["query"] as? JSONDictionary else {
223 | DispatchQueue.main.async {
224 | completion (searchResults, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
225 | }
226 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:224:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
222 | guard let query = jsonDictionary["query"] as? JSONDictionary else {
223 | DispatchQueue.main.async {
224 | completion (searchResults, .notFound)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
225 | }
226 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:217:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
215 | guard let jsonDictionary = jsonDictionary else {
216 | DispatchQueue.main.async {
217 | completion (searchResults, .decodingError)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
218 | }
219 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:217:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
215 | guard let jsonDictionary = jsonDictionary else {
216 | DispatchQueue.main.async {
217 | completion (searchResults, .decodingError)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
218 | }
219 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:210:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
208 | // (also occurs when the request was cancelled programmatically)
209 | DispatchQueue.main.async {
210 | completion (searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
211 | }
212 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:210:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
208 | // (also occurs when the request was cancelled programmatically)
209 | DispatchQueue.main.async {
210 | completion (searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
211 | }
212 | return
[23/31] Compiling WikipediaKit Wikipedia.swift
/host/spi-builder-workspace/Sources/Wikipedia.swift:42:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Wikipedia' may have shared mutable state; this is an error in the Swift 6 language mode
35 | typealias JSONDictionary = [String:AnyObject]
36 |
37 | public class Wikipedia {
| `- note: class 'Wikipedia' does not conform to the 'Sendable' protocol
38 |
39 | // Public initializer is required if we don’t use the shared singleton
40 | public init() {}
41 |
42 | public static let shared: Wikipedia = {
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Wikipedia' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 | return Wikipedia()
44 | }()
/host/spi-builder-workspace/Sources/Wikipedia.swift:46:28: warning: static property 'sharedFormattingDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
44 | }()
45 |
46 | public static weak var sharedFormattingDelegate: WikipediaTextFormattingDelegate?
| |- warning: static property 'sharedFormattingDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sharedFormattingDelegate' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'sharedFormattingDelegate' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 | let articleCache: WikipediaArticleCache = {
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:110:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
108 | else {
109 | DispatchQueue.main.async {
110 | completion(nil, language, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
111 | }
112 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:110:37: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
108 | else {
109 | DispatchQueue.main.async {
110 | completion(nil, language, .other(nil))
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
111 | }
112 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:61:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
59 | let articlePreview = WikipediaRandomArticlesBuffer.shared.nextArticlePreview()
60 | DispatchQueue.main.async {
61 | completion(articlePreview, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
62 | }
63 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:61:48: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
59 | let articlePreview = WikipediaRandomArticlesBuffer.shared.nextArticlePreview()
60 | DispatchQueue.main.async {
61 | completion(articlePreview, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
62 | }
63 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:52:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
50 | guard let articlePreviews = articlePreviews else {
51 | DispatchQueue.main.async {
52 | completion(nil, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
53 | }
54 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:52:41: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
50 | guard let articlePreviews = articlePreviews else {
51 | DispatchQueue.main.async {
52 | completion(nil, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
53 | }
54 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:145:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
143 | let info = error["info"] as? String {
144 | DispatchQueue.main.async {
145 | completion (nil, language, .apiError(info))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
146 | }
147 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:145:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
143 | let info = error["info"] as? String {
144 | DispatchQueue.main.async {
145 | completion (nil, language, .apiError(info))
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
146 | }
147 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:17: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:28: warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'results' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:37: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:152:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
150 | guard let pages = query["pages"] as? [JSONDictionary] else {
151 | DispatchQueue.main.async {
152 | completion (nil, language, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
153 | }
154 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:152:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
150 | guard let pages = query["pages"] as? [JSONDictionary] else {
151 | DispatchQueue.main.async {
152 | completion (nil, language, .notFound)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
153 | }
154 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:137:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
135 | // there is no “query” key,
136 | // but unfortunately no error message either
137 | completion (nil, language, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
138 | }
139 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:137:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
135 | // there is no “query” key,
136 | // but unfortunately no error message either
137 | completion (nil, language, .notFound)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
138 | }
139 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:127:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
125 | guard let jsonDictionary = jsonDictionary else {
126 | DispatchQueue.main.async {
127 | completion (nil, language, .decodingError)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
128 | }
129 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:127:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
125 | guard let jsonDictionary = jsonDictionary else {
126 | DispatchQueue.main.async {
127 | completion (nil, language, .decodingError)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
128 | }
129 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:120:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
118 | // (also occurs when the request was cancelled programmatically)
119 | DispatchQueue.main.async {
120 | completion (nil, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
121 | }
122 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:120:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
118 | // (also occurs when the request was cancelled programmatically)
119 | DispatchQueue.main.async {
120 | completion (nil, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
121 | }
122 | return
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:99:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
97 | sr.term == term else {
98 | DispatchQueue.main.async {
99 | completion(nil, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
100 | }
101 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:114:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
112 | if cachedSearchResults.items.count > searchResults.items.count {
113 | DispatchQueue.main.async {
114 | completion(cachedSearchResults, nil)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
115 | }
116 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:114:32: warning: sending 'cachedSearchResults' risks causing data races; this is an error in the Swift 6 language mode
112 | if cachedSearchResults.items.count > searchResults.items.count {
113 | DispatchQueue.main.async {
114 | completion(cachedSearchResults, nil)
| |- warning: sending 'cachedSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'cachedSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
115 | }
116 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:200:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
198 | else {
199 | DispatchQueue.main.async {
200 | completion(nil, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
201 | }
202 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:76:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
74 | } else {
75 | DispatchQueue.main.async {
76 | completion(searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
77 | }
78 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:76:32: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
74 | } else {
75 | DispatchQueue.main.async {
76 | completion(searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
77 | }
78 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:65:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
63 | if (fullTextSearchResults?.items.count ?? 0) >= (prefixSearchResults?.items.count ?? 0) {
64 | DispatchQueue.main.async {
65 | completion(fullTextSearchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
66 | }
67 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:65:40: warning: sending 'fullTextSearchResults' risks causing data races; this is an error in the Swift 6 language mode
63 | if (fullTextSearchResults?.items.count ?? 0) >= (prefixSearchResults?.items.count ?? 0) {
64 | DispatchQueue.main.async {
65 | completion(fullTextSearchResults, error)
| |- warning: sending 'fullTextSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'fullTextSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
66 | }
67 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:69:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
67 | } else {
68 | DispatchQueue.main.async {
69 | completion(prefixSearchResults, nil)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:69:40: warning: sending 'prefixSearchResults' risks causing data races; this is an error in the Swift 6 language mode
67 | } else {
68 | DispatchQueue.main.async {
69 | completion(prefixSearchResults, nil)
| |- warning: sending 'prefixSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'prefixSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:261:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
259 |
260 | DispatchQueue.main.async {
261 | completion (searchResults, .notEnoughResults)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
262 | }
263 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:261:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
259 |
260 | DispatchQueue.main.async {
261 | completion (searchResults, .notEnoughResults)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
262 | }
263 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:269:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
267 |
268 | DispatchQueue.main.async {
269 | completion(searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
270 | }
271 |
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:269:32: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
267 |
268 | DispatchQueue.main.async {
269 | completion(searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
270 | }
271 |
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:277:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
275 | if searchResults.offset == 0 {
276 | DispatchQueue.main.async {
277 | completion (searchResults, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
278 | }
279 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:277:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
275 | if searchResults.offset == 0 {
276 | DispatchQueue.main.async {
277 | completion (searchResults, .notFound)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
278 | }
279 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:284:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
282 | searchResults.canLoadMore = false
283 | DispatchQueue.main.async {
284 | completion (searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
285 | }
286 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:284:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
282 | searchResults.canLoadMore = false
283 | DispatchQueue.main.async {
284 | completion (searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
285 | }
286 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:224:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
222 | guard let query = jsonDictionary["query"] as? JSONDictionary else {
223 | DispatchQueue.main.async {
224 | completion (searchResults, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
225 | }
226 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:224:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
222 | guard let query = jsonDictionary["query"] as? JSONDictionary else {
223 | DispatchQueue.main.async {
224 | completion (searchResults, .notFound)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
225 | }
226 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:217:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
215 | guard let jsonDictionary = jsonDictionary else {
216 | DispatchQueue.main.async {
217 | completion (searchResults, .decodingError)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
218 | }
219 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:217:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
215 | guard let jsonDictionary = jsonDictionary else {
216 | DispatchQueue.main.async {
217 | completion (searchResults, .decodingError)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
218 | }
219 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:210:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
208 | // (also occurs when the request was cancelled programmatically)
209 | DispatchQueue.main.async {
210 | completion (searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
211 | }
212 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:210:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
208 | // (also occurs when the request was cancelled programmatically)
209 | DispatchQueue.main.async {
210 | completion (searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
211 | }
212 | return
[24/31] Compiling WikipediaKit WikipediaArticle.swift
/host/spi-builder-workspace/Sources/Wikipedia.swift:42:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Wikipedia' may have shared mutable state; this is an error in the Swift 6 language mode
35 | typealias JSONDictionary = [String:AnyObject]
36 |
37 | public class Wikipedia {
| `- note: class 'Wikipedia' does not conform to the 'Sendable' protocol
38 |
39 | // Public initializer is required if we don’t use the shared singleton
40 | public init() {}
41 |
42 | public static let shared: Wikipedia = {
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Wikipedia' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 | return Wikipedia()
44 | }()
/host/spi-builder-workspace/Sources/Wikipedia.swift:46:28: warning: static property 'sharedFormattingDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
44 | }()
45 |
46 | public static weak var sharedFormattingDelegate: WikipediaTextFormattingDelegate?
| |- warning: static property 'sharedFormattingDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sharedFormattingDelegate' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'sharedFormattingDelegate' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 | let articleCache: WikipediaArticleCache = {
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:110:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
108 | else {
109 | DispatchQueue.main.async {
110 | completion(nil, language, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
111 | }
112 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:110:37: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
108 | else {
109 | DispatchQueue.main.async {
110 | completion(nil, language, .other(nil))
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
111 | }
112 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:61:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
59 | let articlePreview = WikipediaRandomArticlesBuffer.shared.nextArticlePreview()
60 | DispatchQueue.main.async {
61 | completion(articlePreview, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
62 | }
63 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:61:48: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
59 | let articlePreview = WikipediaRandomArticlesBuffer.shared.nextArticlePreview()
60 | DispatchQueue.main.async {
61 | completion(articlePreview, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
62 | }
63 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:52:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
50 | guard let articlePreviews = articlePreviews else {
51 | DispatchQueue.main.async {
52 | completion(nil, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
53 | }
54 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:52:41: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
50 | guard let articlePreviews = articlePreviews else {
51 | DispatchQueue.main.async {
52 | completion(nil, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
53 | }
54 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:145:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
143 | let info = error["info"] as? String {
144 | DispatchQueue.main.async {
145 | completion (nil, language, .apiError(info))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
146 | }
147 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:145:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
143 | let info = error["info"] as? String {
144 | DispatchQueue.main.async {
145 | completion (nil, language, .apiError(info))
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
146 | }
147 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:17: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:28: warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'results' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'results' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:166:37: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
164 |
165 | DispatchQueue.main.async {
166 | completion(results, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
167 | }
168 | }
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:152:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
150 | guard let pages = query["pages"] as? [JSONDictionary] else {
151 | DispatchQueue.main.async {
152 | completion (nil, language, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
153 | }
154 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:152:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
150 | guard let pages = query["pages"] as? [JSONDictionary] else {
151 | DispatchQueue.main.async {
152 | completion (nil, language, .notFound)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
153 | }
154 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:137:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
135 | // there is no “query” key,
136 | // but unfortunately no error message either
137 | completion (nil, language, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
138 | }
139 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:137:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
135 | // there is no “query” key,
136 | // but unfortunately no error message either
137 | completion (nil, language, .notFound)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
138 | }
139 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:127:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
125 | guard let jsonDictionary = jsonDictionary else {
126 | DispatchQueue.main.async {
127 | completion (nil, language, .decodingError)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
128 | }
129 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:127:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
125 | guard let jsonDictionary = jsonDictionary else {
126 | DispatchQueue.main.async {
127 | completion (nil, language, .decodingError)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
128 | }
129 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:120:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
118 | // (also occurs when the request was cancelled programmatically)
119 | DispatchQueue.main.async {
120 | completion (nil, language, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
121 | }
122 | return
/host/spi-builder-workspace/Sources/Wikipedia+RandomArticles.swift:120:38: warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
118 | // (also occurs when the request was cancelled programmatically)
119 | DispatchQueue.main.async {
120 | completion (nil, language, error)
| |- warning: sending 'language' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'language' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
121 | }
122 | return
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:99:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
97 | sr.term == term else {
98 | DispatchQueue.main.async {
99 | completion(nil, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
100 | }
101 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:114:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
112 | if cachedSearchResults.items.count > searchResults.items.count {
113 | DispatchQueue.main.async {
114 | completion(cachedSearchResults, nil)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
115 | }
116 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:114:32: warning: sending 'cachedSearchResults' risks causing data races; this is an error in the Swift 6 language mode
112 | if cachedSearchResults.items.count > searchResults.items.count {
113 | DispatchQueue.main.async {
114 | completion(cachedSearchResults, nil)
| |- warning: sending 'cachedSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'cachedSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
115 | }
116 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:200:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
198 | else {
199 | DispatchQueue.main.async {
200 | completion(nil, .other(nil))
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
201 | }
202 | return nil
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:76:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
74 | } else {
75 | DispatchQueue.main.async {
76 | completion(searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
77 | }
78 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:76:32: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
74 | } else {
75 | DispatchQueue.main.async {
76 | completion(searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
77 | }
78 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:65:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
63 | if (fullTextSearchResults?.items.count ?? 0) >= (prefixSearchResults?.items.count ?? 0) {
64 | DispatchQueue.main.async {
65 | completion(fullTextSearchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
66 | }
67 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:65:40: warning: sending 'fullTextSearchResults' risks causing data races; this is an error in the Swift 6 language mode
63 | if (fullTextSearchResults?.items.count ?? 0) >= (prefixSearchResults?.items.count ?? 0) {
64 | DispatchQueue.main.async {
65 | completion(fullTextSearchResults, error)
| |- warning: sending 'fullTextSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'fullTextSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
66 | }
67 | } else {
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:69:29: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
67 | } else {
68 | DispatchQueue.main.async {
69 | completion(prefixSearchResults, nil)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:69:40: warning: sending 'prefixSearchResults' risks causing data races; this is an error in the Swift 6 language mode
67 | } else {
68 | DispatchQueue.main.async {
69 | completion(prefixSearchResults, nil)
| |- warning: sending 'prefixSearchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'prefixSearchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | }
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:261:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
259 |
260 | DispatchQueue.main.async {
261 | completion (searchResults, .notEnoughResults)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
262 | }
263 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:261:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
259 |
260 | DispatchQueue.main.async {
261 | completion (searchResults, .notEnoughResults)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
262 | }
263 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:269:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
267 |
268 | DispatchQueue.main.async {
269 | completion(searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
270 | }
271 |
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:269:32: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
267 |
268 | DispatchQueue.main.async {
269 | completion(searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
270 | }
271 |
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:277:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
275 | if searchResults.offset == 0 {
276 | DispatchQueue.main.async {
277 | completion (searchResults, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
278 | }
279 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:277:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
275 | if searchResults.offset == 0 {
276 | DispatchQueue.main.async {
277 | completion (searchResults, .notFound)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
278 | }
279 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:284:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
282 | searchResults.canLoadMore = false
283 | DispatchQueue.main.async {
284 | completion (searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
285 | }
286 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:284:37: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
282 | searchResults.canLoadMore = false
283 | DispatchQueue.main.async {
284 | completion (searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
285 | }
286 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:224:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
222 | guard let query = jsonDictionary["query"] as? JSONDictionary else {
223 | DispatchQueue.main.async {
224 | completion (searchResults, .notFound)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
225 | }
226 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:224:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
222 | guard let query = jsonDictionary["query"] as? JSONDictionary else {
223 | DispatchQueue.main.async {
224 | completion (searchResults, .notFound)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
225 | }
226 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:217:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
215 | guard let jsonDictionary = jsonDictionary else {
216 | DispatchQueue.main.async {
217 | completion (searchResults, .decodingError)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
218 | }
219 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:217:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
215 | guard let jsonDictionary = jsonDictionary else {
216 | DispatchQueue.main.async {
217 | completion (searchResults, .decodingError)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
218 | }
219 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:210:21: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
208 | // (also occurs when the request was cancelled programmatically)
209 | DispatchQueue.main.async {
210 | completion (searchResults, error)
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
211 | }
212 | return
/host/spi-builder-workspace/Sources/Wikipedia+Search.swift:210:33: warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
208 | // (also occurs when the request was cancelled programmatically)
209 | DispatchQueue.main.async {
210 | completion (searchResults, error)
| |- warning: sending 'searchResults' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'searchResults' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
211 | }
212 | return
[25/31] Compiling WikipediaKit WikipediaArticleCache.swift
[26/31] Compiling WikipediaKit WikipediaArticleLanguageLink.swift
[27/31] Compiling WikipediaKit WikipediaArticlePreview.swift
[28/31] Compiling WikipediaKit WikipediaError.swift
[29/31] Compiling WikipediaKit WikipediaNamespace.swift
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:37:23: warning: static property 'appAuthorEmailForAPI' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 | public class WikipediaNetworking {
36 |
37 | public static var appAuthorEmailForAPI = ""
| |- warning: static property 'appAuthorEmailForAPI' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'appAuthorEmailForAPI' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'appAuthorEmailForAPI' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 |
39 | public static let shared: WikipediaNetworking = {
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'WikipediaNetworking' may have shared mutable state; this is an error in the Swift 6 language mode
33 | #endif
34 |
35 | public class WikipediaNetworking {
| `- note: class 'WikipediaNetworking' does not conform to the 'Sendable' protocol
36 |
37 | public static var appAuthorEmailForAPI = ""
38 |
39 | public static let shared: WikipediaNetworking = {
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'WikipediaNetworking' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | return WikipediaNetworking()
41 | }()
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:43:23: warning: static property 'debugPerformance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
41 | }()
42 |
43 | public static var debugPerformance = false
| |- warning: static property 'debugPerformance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'debugPerformance' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'debugPerformance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 |
45 | private func logMessage(_ message: String) {
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:53:28: warning: static property 'sharedActivityIndicatorDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
51 | }
52 |
53 | public static weak var sharedActivityIndicatorDelegate: WikipediaNetworkingActivityDelegate?
| |- warning: static property 'sharedActivityIndicatorDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sharedActivityIndicatorDelegate' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'sharedActivityIndicatorDelegate' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 |
55 | let session = URLSession(configuration: URLSessionConfiguration.default)
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:88:17: warning: capture of 'self' with non-sendable type 'WikipediaNetworking' in a '@Sendable' closure; this is an error in the Swift 6 language mode
33 | #endif
34 |
35 | public class WikipediaNetworking {
| `- note: class 'WikipediaNetworking' does not conform to the 'Sendable' protocol
36 |
37 | public static var appAuthorEmailForAPI = ""
:
86 | let endNetworkingTime = Date()
87 | let totalNetworkingTime: Double = endNetworkingTime.timeIntervalSince(startTime)
88 | self.logMessage("\(totalNetworkingTime) seconds for network retrieval")
| `- warning: capture of 'self' with non-sendable type 'WikipediaNetworking' in a '@Sendable' closure; this is an error in the Swift 6 language mode
89 | #endif
90 |
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:113:17: warning: capture of 'completion' with non-sendable type '(JSONDictionary?, WikipediaError?) -> ()' (aka '(Optional<Dictionary<String, AnyObject>>, Optional<WikipediaError>) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
111 | }
112 | }
113 | completion(nil, wikipediaError)
| |- warning: capture of 'completion' with non-sendable type '(JSONDictionary?, WikipediaError?) -> ()' (aka '(Optional<Dictionary<String, AnyObject>>, Optional<WikipediaError>) -> ()') 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'
114 | return
115 | }
[30/31] Compiling WikipediaKit WikipediaNetworking.swift
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:37:23: warning: static property 'appAuthorEmailForAPI' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 | public class WikipediaNetworking {
36 |
37 | public static var appAuthorEmailForAPI = ""
| |- warning: static property 'appAuthorEmailForAPI' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'appAuthorEmailForAPI' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'appAuthorEmailForAPI' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 |
39 | public static let shared: WikipediaNetworking = {
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'WikipediaNetworking' may have shared mutable state; this is an error in the Swift 6 language mode
33 | #endif
34 |
35 | public class WikipediaNetworking {
| `- note: class 'WikipediaNetworking' does not conform to the 'Sendable' protocol
36 |
37 | public static var appAuthorEmailForAPI = ""
38 |
39 | public static let shared: WikipediaNetworking = {
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'WikipediaNetworking' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | return WikipediaNetworking()
41 | }()
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:43:23: warning: static property 'debugPerformance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
41 | }()
42 |
43 | public static var debugPerformance = false
| |- warning: static property 'debugPerformance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'debugPerformance' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'debugPerformance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 |
45 | private func logMessage(_ message: String) {
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:53:28: warning: static property 'sharedActivityIndicatorDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
51 | }
52 |
53 | public static weak var sharedActivityIndicatorDelegate: WikipediaNetworkingActivityDelegate?
| |- warning: static property 'sharedActivityIndicatorDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sharedActivityIndicatorDelegate' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'sharedActivityIndicatorDelegate' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 |
55 | let session = URLSession(configuration: URLSessionConfiguration.default)
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:88:17: warning: capture of 'self' with non-sendable type 'WikipediaNetworking' in a '@Sendable' closure; this is an error in the Swift 6 language mode
33 | #endif
34 |
35 | public class WikipediaNetworking {
| `- note: class 'WikipediaNetworking' does not conform to the 'Sendable' protocol
36 |
37 | public static var appAuthorEmailForAPI = ""
:
86 | let endNetworkingTime = Date()
87 | let totalNetworkingTime: Double = endNetworkingTime.timeIntervalSince(startTime)
88 | self.logMessage("\(totalNetworkingTime) seconds for network retrieval")
| `- warning: capture of 'self' with non-sendable type 'WikipediaNetworking' in a '@Sendable' closure; this is an error in the Swift 6 language mode
89 | #endif
90 |
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:113:17: warning: capture of 'completion' with non-sendable type '(JSONDictionary?, WikipediaError?) -> ()' (aka '(Optional<Dictionary<String, AnyObject>>, Optional<WikipediaError>) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
111 | }
112 | }
113 | completion(nil, wikipediaError)
| |- warning: capture of 'completion' with non-sendable type '(JSONDictionary?, WikipediaError?) -> ()' (aka '(Optional<Dictionary<String, AnyObject>>, Optional<WikipediaError>) -> ()') 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'
114 | return
115 | }
[31/31] Compiling WikipediaKit WikipediaNetworkingActivityDelegate.swift
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:37:23: warning: static property 'appAuthorEmailForAPI' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 | public class WikipediaNetworking {
36 |
37 | public static var appAuthorEmailForAPI = ""
| |- warning: static property 'appAuthorEmailForAPI' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'appAuthorEmailForAPI' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'appAuthorEmailForAPI' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 |
39 | public static let shared: WikipediaNetworking = {
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'WikipediaNetworking' may have shared mutable state; this is an error in the Swift 6 language mode
33 | #endif
34 |
35 | public class WikipediaNetworking {
| `- note: class 'WikipediaNetworking' does not conform to the 'Sendable' protocol
36 |
37 | public static var appAuthorEmailForAPI = ""
38 |
39 | public static let shared: WikipediaNetworking = {
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'WikipediaNetworking' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | return WikipediaNetworking()
41 | }()
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:43:23: warning: static property 'debugPerformance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
41 | }()
42 |
43 | public static var debugPerformance = false
| |- warning: static property 'debugPerformance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'debugPerformance' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'debugPerformance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 |
45 | private func logMessage(_ message: String) {
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:53:28: warning: static property 'sharedActivityIndicatorDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
51 | }
52 |
53 | public static weak var sharedActivityIndicatorDelegate: WikipediaNetworkingActivityDelegate?
| |- warning: static property 'sharedActivityIndicatorDelegate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sharedActivityIndicatorDelegate' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'sharedActivityIndicatorDelegate' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 |
55 | let session = URLSession(configuration: URLSessionConfiguration.default)
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:88:17: warning: capture of 'self' with non-sendable type 'WikipediaNetworking' in a '@Sendable' closure; this is an error in the Swift 6 language mode
33 | #endif
34 |
35 | public class WikipediaNetworking {
| `- note: class 'WikipediaNetworking' does not conform to the 'Sendable' protocol
36 |
37 | public static var appAuthorEmailForAPI = ""
:
86 | let endNetworkingTime = Date()
87 | let totalNetworkingTime: Double = endNetworkingTime.timeIntervalSince(startTime)
88 | self.logMessage("\(totalNetworkingTime) seconds for network retrieval")
| `- warning: capture of 'self' with non-sendable type 'WikipediaNetworking' in a '@Sendable' closure; this is an error in the Swift 6 language mode
89 | #endif
90 |
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:113:17: warning: capture of 'completion' with non-sendable type '(JSONDictionary?, WikipediaError?) -> ()' (aka '(Optional<Dictionary<String, AnyObject>>, Optional<WikipediaError>) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
111 | }
112 | }
113 | completion(nil, wikipediaError)
| |- warning: capture of 'completion' with non-sendable type '(JSONDictionary?, WikipediaError?) -> ()' (aka '(Optional<Dictionary<String, AnyObject>>, Optional<WikipediaError>) -> ()') 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'
114 | return
115 | }
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[2/27] Emitting module WikipediaKit
/host/spi-builder-workspace/Sources/WikipediaLanguage.swift:98:41: warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
96 | public static var systemLanguageCode: String = {
97 | guard let preferredLanguage = Locale.preferredLanguages.first else { return "en" }
98 | let languageComponents = Locale.components(fromIdentifier: preferredLanguage)
| `- warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
99 | let languageCode = languageComponents[NSLocale.Key.languageCode.rawValue]
100 | return languageCode ?? "en"
/host/spi-builder-workspace/Sources/WikipediaLanguage.swift:129:45: warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
127 | guard language.hasPrefix("zh") else { continue }
128 |
129 | let languageComponents = Locale.components(fromIdentifier: language)
| `- warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
130 | let languageCode = languageComponents[NSLocale.Key.languageCode.rawValue]
131 | guard let variant = languageComponents[NSLocale.Key.scriptCode.rawValue]?.lowercased(),
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
[3/30] Compiling WikipediaKit WikipediaRandomArticlesBuffer.swift
[4/30] Compiling WikipediaKit WikipediaSearchMethod.swift
[5/30] Compiling WikipediaKit WikipediaSearchResults.swift
[6/30] Compiling WikipediaKit WikipediaArticleCache.swift
[7/30] Compiling WikipediaKit WikipediaArticleLanguageLink.swift
[8/30] Compiling WikipediaKit WikipediaArticlePreview.swift
[9/30] Compiling WikipediaKit WikipediaError.swift
[10/30] Compiling WikipediaKit WikipediaNamespace.swift
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
[11/30] Compiling WikipediaKit WikipediaNetworking.swift
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
[12/30] Compiling WikipediaKit WikipediaNetworkingActivityDelegate.swift
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:156:53: error: cannot find 'kCFBundleExecutableKey' in scope
154 | #if !os(Linux)
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
| `- error: cannot find 'kCFBundleExecutableKey' in scope
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
/host/spi-builder-workspace/Sources/WikipediaNetworking.swift:157:51: error: cannot find 'kCFBundleIdentifierKey' in scope
155 | if let infoDictionary = Bundle.main.infoDictionary {
156 | let bundleName = infoDictionary[kCFBundleExecutableKey as String] as? String ?? "Unknown App"
157 | let bundleID = infoDictionary[kCFBundleIdentifierKey as String] as? String ?? "Unkown Bundle ID"
| `- error: cannot find 'kCFBundleIdentifierKey' in scope
158 | let marketingVersionString = infoDictionary["CFBundleShortVersionString"] as? String ?? "Unknown Version"
159 | userAgent = "\(bundleName)/\(marketingVersionString) (\(bundleID); \(WikipediaNetworking.appAuthorEmailForAPI)) \(framework)"
[13/30] Compiling WikipediaKit Wikipedia+Featured.swift
[14/30] Compiling WikipediaKit Wikipedia+ImageMeta.swift
[15/30] Compiling WikipediaKit Wikipedia+Languages.swift
[16/30] Compiling WikipediaKit Wikipedia+NearbySearch.swift
[17/30] Compiling WikipediaKit String+Wikipedia.swift
[18/30] Compiling WikipediaKit URL+Wikipedia.swift
[19/30] Compiling WikipediaKit Wikipedia+Article.swift
[20/30] Compiling WikipediaKit Wikipedia+ArticleSummary.swift
[21/30] Compiling WikipediaKit WikipediaSearchResultsCache.swift
[22/30] Compiling WikipediaKit WikipediaTOCItem.swift
[23/30] Compiling WikipediaKit WikipediaTextFormattingDelegate.swift
[24/30] Compiling WikipediaKit Wikipedia+RandomArticles.swift
[25/30] Compiling WikipediaKit Wikipedia+Search.swift
[26/30] Compiling WikipediaKit Wikipedia.swift
[27/30] Compiling WikipediaKit WikipediaArticle.swift
[28/30] Compiling WikipediaKit WikipediaFeatured.swift
/host/spi-builder-workspace/Sources/WikipediaLanguage.swift:98:41: warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
96 | public static var systemLanguageCode: String = {
97 | guard let preferredLanguage = Locale.preferredLanguages.first else { return "en" }
98 | let languageComponents = Locale.components(fromIdentifier: preferredLanguage)
| `- warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
99 | let languageCode = languageComponents[NSLocale.Key.languageCode.rawValue]
100 | return languageCode ?? "en"
/host/spi-builder-workspace/Sources/WikipediaLanguage.swift:129:45: warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
127 | guard language.hasPrefix("zh") else { continue }
128 |
129 | let languageComponents = Locale.components(fromIdentifier: language)
| `- warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
130 | let languageCode = languageComponents[NSLocale.Key.languageCode.rawValue]
131 | guard let variant = languageComponents[NSLocale.Key.scriptCode.rawValue]?.lowercased(),
[29/30] Compiling WikipediaKit WikipediaImage.swift
/host/spi-builder-workspace/Sources/WikipediaLanguage.swift:98:41: warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
96 | public static var systemLanguageCode: String = {
97 | guard let preferredLanguage = Locale.preferredLanguages.first else { return "en" }
98 | let languageComponents = Locale.components(fromIdentifier: preferredLanguage)
| `- warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
99 | let languageCode = languageComponents[NSLocale.Key.languageCode.rawValue]
100 | return languageCode ?? "en"
/host/spi-builder-workspace/Sources/WikipediaLanguage.swift:129:45: warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
127 | guard language.hasPrefix("zh") else { continue }
128 |
129 | let languageComponents = Locale.components(fromIdentifier: language)
| `- warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
130 | let languageCode = languageComponents[NSLocale.Key.languageCode.rawValue]
131 | guard let variant = languageComponents[NSLocale.Key.scriptCode.rawValue]?.lowercased(),
[30/30] Compiling WikipediaKit WikipediaLanguage.swift
/host/spi-builder-workspace/Sources/WikipediaLanguage.swift:98:41: warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
96 | public static var systemLanguageCode: String = {
97 | guard let preferredLanguage = Locale.preferredLanguages.first else { return "en" }
98 | let languageComponents = Locale.components(fromIdentifier: preferredLanguage)
| `- warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
99 | let languageCode = languageComponents[NSLocale.Key.languageCode.rawValue]
100 | return languageCode ?? "en"
/host/spi-builder-workspace/Sources/WikipediaLanguage.swift:129:45: warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
127 | guard language.hasPrefix("zh") else { continue }
128 |
129 | let languageComponents = Locale.components(fromIdentifier: language)
| `- warning: 'components(fromIdentifier:)' is deprecated: Use `Locale.Components(identifier:)` to access components
130 | let languageCode = languageComponents[NSLocale.Key.languageCode.rawValue]
131 | guard let variant = languageComponents[NSLocale.Key.scriptCode.rawValue]?.lowercased(),
BUILD FAILURE 6.1 android