Build Information
Successful build of OpenAIKit, reference master (d95088
), with Swift 6.2 (beta) for macOS (SPM) on 27 Jun 2025 12:47:40 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Build Log
========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/marcusziade/OpenAIKit.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/marcusziade/OpenAIKit
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at d95088d docs: Add missing code files for DeepResearch streaming tutorial section 5
Cloned https://github.com/marcusziade/OpenAIKit.git
Revision (git rev-parse @):
d95088d74f21986e9e0b722ec155a99150ce5aae
SUCCESS checkout https://github.com/marcusziade/OpenAIKit.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.2
Building package at path: $PWD
https://github.com/marcusziade/OpenAIKit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/9] Write OpenAIKitTester-entitlement.plist
[3/9] Write sources
[5/9] Write swift-version-1EA4D86E10B52AF.txt
[7/38] Emitting module OpenAIKit
[8/41] Compiling OpenAIKit Responses.swift
[9/41] Compiling OpenAIKit OpenAIKit.swift
[10/41] Compiling OpenAIKit JSONValue.swift
[11/41] Compiling OpenAIKit AssistantsEndpoint.swift
[12/41] Compiling OpenAIKit AudioEndpoint.swift
[13/41] Compiling OpenAIKit BatchEndpoint.swift
[14/41] Compiling OpenAIKit Embeddings.swift
[15/41] Compiling OpenAIKit Files.swift
[16/41] Compiling OpenAIKit Images.swift
[17/41] Compiling OpenAIKit ThreadsEndpoint.swift
[18/41] Compiling OpenAIKit VectorStoresEndpoint.swift
[19/41] Compiling OpenAIKit OpenAIError+UI.swift
[20/41] Compiling OpenAIKit ModelConstants.swift
[21/41] Compiling OpenAIKit Models.swift
[22/41] Compiling OpenAIKit Moderations.swift
[23/41] Compiling OpenAIKit BatchesEndpoint.swift
[24/41] Compiling OpenAIKit ChatEndpoint.swift
[25/41] Compiling OpenAIKit EmbeddingsEndpoint.swift
[26/41] Compiling OpenAIKit FilesEndpoint.swift
[27/41] Compiling OpenAIKit FineTuningEndpoint.swift
[28/41] Compiling OpenAIKit ImagesEndpoint.swift
[29/41] Compiling OpenAIKit Audio.swift
[30/41] Compiling OpenAIKit Batch.swift
[31/41] Compiling OpenAIKit Chat.swift
[32/41] Compiling OpenAIKit ModelsEndpoint.swift
[33/41] Compiling OpenAIKit ModerationsEndpoint.swift
[34/41] Compiling OpenAIKit ResponsesEndpoint.swift
[35/41] Compiling OpenAIKit NetworkClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:136:29: warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
134 | let jsonString = String(line.dropFirst(6))
135 | guard jsonString != "[DONE]" else {
136 | continuation.finish()
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
137 | return
138 | }
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:54:31: warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
52 |
53 | public func stream<T: Decodable>(_ request: any Request) -> AsyncThrowingStream<T, Error> {
54 | AsyncThrowingStream { continuation in
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
55 | Task {
56 | do {
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:144:42: warning: sending 'decoded' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
142 | do {
143 | let decoded = try self.decoder.decode(T.self, from: data)
144 | continuation.yield(decoded)
| |- warning: sending 'decoded' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
| `- note: task-isolated 'decoded' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
145 | } catch {
146 | continuation.finish(throwing: OpenAIError.decodingFailed(error))
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[36/41] Compiling OpenAIKit OpenAIError.swift
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:136:29: warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
134 | let jsonString = String(line.dropFirst(6))
135 | guard jsonString != "[DONE]" else {
136 | continuation.finish()
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
137 | return
138 | }
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:54:31: warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
52 |
53 | public func stream<T: Decodable>(_ request: any Request) -> AsyncThrowingStream<T, Error> {
54 | AsyncThrowingStream { continuation in
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
55 | Task {
56 | do {
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:144:42: warning: sending 'decoded' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
142 | do {
143 | let decoded = try self.decoder.decode(T.self, from: data)
144 | continuation.yield(decoded)
| |- warning: sending 'decoded' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
| `- note: task-isolated 'decoded' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
145 | } catch {
146 | continuation.finish(throwing: OpenAIError.decodingFailed(error))
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[37/41] Compiling OpenAIKit Request.swift
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:136:29: warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
134 | let jsonString = String(line.dropFirst(6))
135 | guard jsonString != "[DONE]" else {
136 | continuation.finish()
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
137 | return
138 | }
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:54:31: warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
52 |
53 | public func stream<T: Decodable>(_ request: any Request) -> AsyncThrowingStream<T, Error> {
54 | AsyncThrowingStream { continuation in
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
55 | Task {
56 | do {
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:144:42: warning: sending 'decoded' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
142 | do {
143 | let decoded = try self.decoder.decode(T.self, from: data)
144 | continuation.yield(decoded)
| |- warning: sending 'decoded' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
| `- note: task-isolated 'decoded' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
145 | } catch {
146 | continuation.finish(throwing: OpenAIError.decodingFailed(error))
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[38/41] Compiling OpenAIKit RetryHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:136:29: warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
134 | let jsonString = String(line.dropFirst(6))
135 | guard jsonString != "[DONE]" else {
136 | continuation.finish()
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
137 | return
138 | }
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:54:31: warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
52 |
53 | public func stream<T: Decodable>(_ request: any Request) -> AsyncThrowingStream<T, Error> {
54 | AsyncThrowingStream { continuation in
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure; this is an error in the Swift 6 language mode
55 | Task {
56 | do {
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKit/Core/NetworkClient.swift:144:42: warning: sending 'decoded' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
142 | do {
143 | let decoded = try self.decoder.decode(T.self, from: data)
144 | continuation.yield(decoded)
| |- warning: sending 'decoded' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
| `- note: task-isolated 'decoded' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
145 | } catch {
146 | continuation.finish(throwing: OpenAIError.decodingFailed(error))
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[39/56] Compiling OpenAIKitTester ModerationTests.swift
[40/57] Compiling OpenAIKitTester ModelTests.swift
[41/57] Compiling OpenAIKitTester TestProtocol.swift
[42/57] Compiling OpenAIKitTester ImageTests.swift
[43/57] Compiling OpenAIKitTester FileTests.swift
[44/57] Compiling OpenAIKitTester TestRunner.swift
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKitTester/Tests/AdvancedTests.swift:52:35: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
50 | print("\n Testing parallel chat requests...")
51 | do {
52 | async let response1 = performChatRequest(openAI: openAI, message: "What is 2+2?")
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
| `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
53 | async let response2 = performChatRequest(openAI: openAI, message: "What is the capital of France?")
54 | async let response3 = performChatRequest(openAI: openAI, message: "Name a color")
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKitTester/Tests/AdvancedTests.swift:53:35: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
51 | do {
52 | async let response1 = performChatRequest(openAI: openAI, message: "What is 2+2?")
53 | async let response2 = performChatRequest(openAI: openAI, message: "What is the capital of France?")
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
| `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
54 | async let response3 = performChatRequest(openAI: openAI, message: "Name a color")
55 |
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKitTester/Tests/AdvancedTests.swift:54:35: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
52 | async let response1 = performChatRequest(openAI: openAI, message: "What is 2+2?")
53 | async let response2 = performChatRequest(openAI: openAI, message: "What is the capital of France?")
54 | async let response3 = performChatRequest(openAI: openAI, message: "Name a color")
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
| `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
55 |
56 | let responses = await [try response1, try response2, try response3]
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[45/57] Compiling OpenAIKitTester AdvancedTests.swift
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKitTester/Tests/AdvancedTests.swift:52:35: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
50 | print("\n Testing parallel chat requests...")
51 | do {
52 | async let response1 = performChatRequest(openAI: openAI, message: "What is 2+2?")
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
| `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
53 | async let response2 = performChatRequest(openAI: openAI, message: "What is the capital of France?")
54 | async let response3 = performChatRequest(openAI: openAI, message: "Name a color")
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKitTester/Tests/AdvancedTests.swift:53:35: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
51 | do {
52 | async let response1 = performChatRequest(openAI: openAI, message: "What is 2+2?")
53 | async let response2 = performChatRequest(openAI: openAI, message: "What is the capital of France?")
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
| `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
54 | async let response3 = performChatRequest(openAI: openAI, message: "Name a color")
55 |
/Users/admin/builder/spi-builder-workspace/Sources/OpenAIKitTester/Tests/AdvancedTests.swift:54:35: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
52 | async let response1 = performChatRequest(openAI: openAI, message: "What is 2+2?")
53 | async let response2 = performChatRequest(openAI: openAI, message: "What is the capital of France?")
54 | async let response3 = performChatRequest(openAI: openAI, message: "Name a color")
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#SendingRisksDataRace]
| `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
55 |
56 | let responses = await [try response1, try response2, try response3]
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[46/57] Compiling OpenAIKitTester TestConfiguration.swift
[47/57] Compiling OpenAIKitTester OpenAIKitTester.swift
[48/57] Compiling OpenAIKitTester EdgeCaseTests.swift
[49/57] Compiling OpenAIKitTester EmbeddingTests.swift
[50/57] Emitting module OpenAIKitTester
[51/57] Compiling OpenAIKitTester ChatTests.swift
[52/57] Compiling OpenAIKitTester DeepResearchTests.swift
[53/57] Compiling OpenAIKitTester AudioTests.swift
[54/57] Compiling OpenAIKitTester BatchTests.swift
[54/57] Write Objects.LinkFileList
[55/57] Linking OpenAIKitTester
[56/57] Applying OpenAIKitTester
Build complete! (23.41s)
Fetching https://github.com/apple/swift-docc-plugin
[1/2082] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-docc-plugin from cache (1.21s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.4 (4.26s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3418] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.08s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.71s)
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.4.4
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Build complete.
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin"
}
],
"manifest_display_name" : "OpenAIKit",
"name" : "OpenAIKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "8.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "OpenAIKit",
"targets" : [
"OpenAIKit"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "OpenAIKitTester",
"targets" : [
"OpenAIKitTester"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "OpenAIKitTests",
"module_type" : "SwiftTarget",
"name" : "OpenAIKitTests",
"path" : "Tests/OpenAIKitTests",
"sources" : [
"AudioModelsTests.swift",
"ChatModelsTests.swift",
"ConfigurationTests.swift",
"EmbeddingModelsTests.swift",
"EnhancedErrorHandlingTests.swift",
"ErrorHandlingTests.swift",
"JSONValueTests.swift",
"ModelConstantsTests.swift",
"OpenAIKitTests.swift",
"RequestSerializationTests.swift",
"ResponseParsingTests.swift"
],
"target_dependencies" : [
"OpenAIKit"
],
"type" : "test"
},
{
"c99name" : "OpenAIKitTester",
"module_type" : "SwiftTarget",
"name" : "OpenAIKitTester",
"path" : "Sources/OpenAIKitTester",
"product_memberships" : [
"OpenAIKitTester"
],
"sources" : [
"Configuration/TestConfiguration.swift",
"OpenAIKitTester.swift",
"TestRunner.swift",
"Tests/AdvancedTests.swift",
"Tests/AudioTests.swift",
"Tests/BatchTests.swift",
"Tests/ChatTests.swift",
"Tests/DeepResearchTests.swift",
"Tests/EdgeCaseTests.swift",
"Tests/EmbeddingTests.swift",
"Tests/FileTests.swift",
"Tests/ImageTests.swift",
"Tests/ModelTests.swift",
"Tests/ModerationTests.swift",
"Utilities/TestProtocol.swift"
],
"target_dependencies" : [
"OpenAIKit"
],
"type" : "executable"
},
{
"c99name" : "OpenAIKit",
"module_type" : "SwiftTarget",
"name" : "OpenAIKit",
"path" : "Sources/OpenAIKit",
"product_memberships" : [
"OpenAIKit",
"OpenAIKitTester"
],
"sources" : [
"Core/NetworkClient.swift",
"Core/OpenAIError.swift",
"Core/Request.swift",
"Core/RetryHandler.swift",
"Endpoints/AssistantsEndpoint.swift",
"Endpoints/AudioEndpoint.swift",
"Endpoints/BatchEndpoint.swift",
"Endpoints/BatchesEndpoint.swift",
"Endpoints/ChatEndpoint.swift",
"Endpoints/EmbeddingsEndpoint.swift",
"Endpoints/FilesEndpoint.swift",
"Endpoints/FineTuningEndpoint.swift",
"Endpoints/ImagesEndpoint.swift",
"Endpoints/ModelsEndpoint.swift",
"Endpoints/ModerationsEndpoint.swift",
"Endpoints/ResponsesEndpoint.swift",
"Endpoints/ThreadsEndpoint.swift",
"Endpoints/VectorStoresEndpoint.swift",
"Extensions/OpenAIError+UI.swift",
"Models/Audio.swift",
"Models/Batch.swift",
"Models/Chat.swift",
"Models/Embeddings.swift",
"Models/Files.swift",
"Models/Images.swift",
"Models/ModelConstants.swift",
"Models/Models.swift",
"Models/Moderations.swift",
"Models/Responses.swift",
"OpenAIKit.swift",
"Utilities/JSONValue.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.