Build Information
Successful build of multipart-kit, reference 5.0.0-beta.2 (a97308), with Swift 6.4 for Android on 21 Sep 2026 15:29:45 UTC.
Swift 6 data race errors: 0
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344844-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/vapor/multipart-kit.git
Reference: 5.0.0-beta.2
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/vapor/multipart-kit
* tag 5.0.0-beta.2 -> FETCH_HEAD
HEAD is now at a973089 Add streamable multipart part (#145)
Cloned https://github.com/vapor/multipart-kit.git
Revision (git rev-parse @):
a97308911fec948fd47a3d464465114b648e96b2
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/vapor/multipart-kit.git at 5.0.0-beta.2
========================================
Build
========================================
Selected platform: android
Swift version: 6.4
Building package at path: $PWD
https://github.com/vapor/multipart-kit.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344844-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:abadcff584c273feba50641b454858d377ba30b35ea7287a94f45ebd8afd0ea0
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.4-latest
Fetching https://github.com/apple/swift-http-types.git
Fetching https://github.com/apple/swift-algorithms.git
Fetching https://github.com/apple/swift-collections.git
[1/1935] Fetching swift-http-types
[79/8080] Fetching swift-http-types, swift-algorithms
[7927/35432] Fetching swift-http-types, swift-algorithms, swift-collections
Fetched https://github.com/apple/swift-algorithms.git (0.67s)
[2055/29287] Fetching swift-http-types, swift-collections
Fetched https://github.com/apple/swift-http-types.git (1.57s)
Fetched https://github.com/apple/swift-collections.git (1.60s)
Computing version for https://github.com/apple/swift-algorithms.git
Computed https://github.com/apple/swift-algorithms.git at 1.2.1 (3.37s)
Fetching https://github.com/apple/swift-numerics.git
[1/6640] Fetching swift-numerics
Fetched https://github.com/apple/swift-numerics.git (0.72s)
Computing version for https://github.com/apple/swift-numerics.git
Computed https://github.com/apple/swift-numerics.git at 1.1.1 (1.05s)
Computing version for https://github.com/apple/swift-http-types.git
Computed https://github.com/apple/swift-http-types.git at 1.8.0 (0.41s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.6.0 (0.53s)
Creating working copy for https://github.com/apple/swift-http-types.git
Working copy of https://github.com/apple/swift-http-types.git resolved at 1.8.0
Creating working copy for https://github.com/apple/swift-algorithms.git
Working copy of https://github.com/apple/swift-algorithms.git resolved at 1.2.1
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.6.0
Creating working copy for https://github.com/apple/swift-numerics.git
Working copy of https://github.com/apple/swift-numerics.git resolved at 1.1.1
Building for debugging...
[Computing dependencies]
[Constructing description]
[Pre-planning 1 / 448]
[Planning deferred tasks]
[Starting]
[28 / 186] RealModule
[97 / 189] RealModule
[106 / 216] InternalCollectionsUtilities
[107 / 216] RealModule
[109 / 216] RealModule
[120 / 216] RealModule
[123 / 216] _RopeModule
[125 / 216] InternalCollectionsUtilities
[127 / 217] HeapModule
[131 / 217] HTTPTypes
[132 / 217] HTTPTypes
[133 / 217] HTTPTypes
[134 / 217] HTTPTypes
[136 / 217] HTTPTypes
[136 / 217] ContainersPreview
[137 / 218]
[140 / 228] _RopeModule
[143 / 228] HTTPTypes
[149 / 228] _RopeModule
[150 / 228] _RopeModule
[151 / 228] _RopeModule
[152 / 229] InternalCollectionsUtilities
[153 / 229] HTTPTypes
[156 / 229] HTTPTypes-product
[158 / 229]
[160 / 231]
[162 / 240] OrderedCollections
[163 / 248] OrderedCollections
[164 / 257] HashTreeCollections
[164 / 257] _RopeModule
[172 / 257] OrderedCollections
[173 / 257] _RopeModule
[175 / 257] _RopeModule
[179 / 257] _RopeModule
[180 / 258] OrderedCollections
[181 / 258] _RopeModule
[183 / 258] _RopeModule
[185 / 258] HeapModule
[187 / 258] HeapModule
[189 / 258] HeapModule
[192 / 258] HashTreeCollections
[194 / 258] HashTreeCollections
[195 / 259] HeapModule
[197 / 259] OrderedCollections
[205 / 259] OrderedCollections
[205 / 260] OrderedCollections
[206 / 260]
[208 / 263] ContainersPreview
[211 / 281] BitCollections
[212 / 290] Algorithms
[212 / 290] HashTreeCollections
[216 / 290] ContainersPreview
[220 / 290] ContainersPreview
[221 / 290] DequeModule
[229 / 290] ContainersPreview
[232 / 290] BitCollections
[234 / 290] HashTreeCollections
[235 / 290] ContainersPreview
[242 / 291] ContainersPreview
[244 / 291] BitCollections
[245 / 291] BitCollections
[246 / 291] BitCollections
[247 / 291] Algorithms
[248 / 291] Algorithms
[250 / 292] HashTreeCollections
[253 / 292] HashTreeCollections
[255 / 292] Algorithms
[256 / 293] BitCollections
[257 / 293] Algorithms
[262 / 293] HeapModule
[265 / 293] Algorithms
[270 / 294]
[270 / 294] DequeModule
[275 / 303] DequeModule
[276 / 303] DequeModule
[277 / 303] DequeModule
[278 / 303] DequeModule
[279 / 303] Algorithms
[279 / 303] DequeModule
[279 / 303] Algorithms
[282 / 304] Algorithms
[282 / 304] DequeModule
[282 / 305] DequeModule
[297 / 312] Collections
[304 / 314] Collections
[315 / 323] MultipartKit
/host/spi-builder-workspace/Sources/MultipartKit/StreamingMultipartPart/StreamingMultipartPartBody.swift:22:38: [1;33mwarning: [1;39mconformance of 'BackingSequence' to protocol 'AsyncSequence' may be isolated and cannot be passed to actor-isolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m20 |[0;0m
[0;36m21 |[0;0m public func next() async throws -> Element? {
[0;36m22 |[0;0m try await sharedIterator.nextBodyChunkForSubsequence(id: id)
[0;36m|[0;0m `- [1;33mwarning: [1;39mconformance of 'BackingSequence' to protocol 'AsyncSequence' may be isolated and cannot be passed to actor-isolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m23 |[0;0m }
[0;36m24 |[0;0m
/host/spi-builder-workspace/Sources/MultipartKit/StreamingMultipartPart/StreamingMultipartPartBody.swift:27:38: [1;33mwarning: [1;39mconformance of 'BackingSequence' to protocol 'AsyncSequence' may be isolated and cannot be passed to actor-isolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m25 |[0;0m @available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
[0;36m26 |[0;0m public func next(isolation actor: isolated (any Actor)? = #isolation) async throws -> Element? {
[0;36m27 |[0;0m try await sharedIterator.nextBodyChunkForSubsequence(id: id)
[0;36m|[0;0m `- [1;33mwarning: [1;39mconformance of 'BackingSequence' to protocol 'AsyncSequence' may be isolated and cannot be passed to actor-isolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m28 |[0;0m }
[0;36m29 |[0;0m }
[#IsolatedConformances]: <https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances>
/host/spi-builder-workspace/Sources/MultipartKit/Writer/StreamingMultipartWriterAsyncSequence.swift:145:46: [1;33mwarning: [1;39mconformance of 'AsyncIterator' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m143 |[0;0m nonisolated(unsafe) var iterator = backingIterator
[0;36m144 |[0;0m defer { backingIterator = iterator }
[0;36m145 |[0;0m section = try await iterator.next()
[0;36m|[0;0m `- [1;33mwarning: [1;39mconformance of 'AsyncIterator' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m146 |[0;0m }
[0;36m147 |[0;0m
[#IsolatedConformances]: <https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances>
[320 / 323] MultipartKit
/host/spi-builder-workspace/Sources/MultipartKit/StreamingMultipartPart/StreamingMultipartSectionAsyncSequence.swift:110:39: [1;33mwarning: [1;39mconformance of 'AsyncIterator' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m108 |[0;0m nonisolated(unsafe) var iterator = backingIterator
[0;36m109 |[0;0m defer { backingIterator = iterator }
[0;36m110 |[0;0m return try await iterator.next()
[0;36m|[0;0m `- [1;33mwarning: [1;39mconformance of 'AsyncIterator' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m111 |[0;0m }
[0;36m112 |[0;0m }
[#IsolatedConformances]: <https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances>
/host/spi-builder-workspace/Sources/MultipartKit/Parser/StreamingMultipartParserAsyncSequence.swift:98:55: [1;33mwarning: [1;39mconformance of 'AsyncIterator' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m96 |[0;0m nonisolated(unsafe) var iterator = backingIterator
[0;36m97 |[0;0m defer { backingIterator = iterator }
[0;36m98 |[0;0m next = try await iterator.next()
[0;36m|[0;0m `- [1;33mwarning: [1;39mconformance of 'AsyncIterator' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m99 |[0;0m }
[0;36m100 |[0;0m } catch {
/host/spi-builder-workspace/Sources/MultipartKit/StreamingMultipartPart/StreamingMultipartPart+SharedIterator.swift:50:43: [1;33mwarning: [1;39mconformance of 'AsyncIterator' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m48 |[0;0m next = try await iterator.next(isolation: self)
[0;36m49 |[0;0m } else {
[0;36m50 |[0;0m next = try await iterator.next()
[0;36m|[0;0m `- [1;33mwarning: [1;39mconformance of 'AsyncIterator' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m51 |[0;0m }
[0;36m52 |[0;0m
/host/spi-builder-workspace/Sources/MultipartKit/StreamingMultipartPart/StreamingMultipartPart+SharedIterator.swift:111:39: [1;33mwarning: [1;39mconformance of 'AsyncIterator' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m109 |[0;0m next = try await iterator.next(isolation: self)
[0;36m110 |[0;0m } else {
[0;36m111 |[0;0m next = try await iterator.next()
[0;36m|[0;0m `- [1;33mwarning: [1;39mconformance of 'AsyncIterator' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances\IsolatedConformances]8;;\]
[0;36m112 |[0;0m }
[0;36m113 |[0;0m
[#IsolatedConformances]: <https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances>
[324 / 324] MultipartKit-product
Build complete! (34.11 secs)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-http-types",
"requirement" : {
"range" : [
{
"lower_bound" : "1.3.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-http-types.git"
},
{
"identity" : "swift-collections",
"requirement" : {
"range" : [
{
"lower_bound" : "1.1.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-collections.git"
},
{
"identity" : "swift-algorithms",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.1",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-algorithms.git"
}
],
"manifest_display_name" : "multipart-kit",
"name" : "multipart-kit",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "maccatalyst",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "6.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "MultipartKit",
"targets" : [
"MultipartKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "MultipartKitTests",
"module_type" : "SwiftTarget",
"name" : "MultipartKitTests",
"path" : "Tests/MultipartKitTests",
"sources" : [
"ContentDispositionTests.swift",
"FormDataDecodingTests.swift",
"FormDataEncodingTests.swift",
"ParserTests.swift",
"StreamingMultipartPartTests.swift",
"StreamingMultipartSectionTests.swift",
"Utilities/File.swift",
"Utilities/MultipartSection+Equatable.swift",
"WriterTests.swift"
],
"target_dependencies" : [
"MultipartKit"
],
"type" : "test"
},
{
"c99name" : "MultipartKit",
"module_type" : "SwiftTarget",
"name" : "MultipartKit",
"path" : "Sources/MultipartKit",
"product_dependencies" : [
"HTTPTypes",
"Collections",
"Algorithms"
],
"product_memberships" : [
"MultipartKit"
],
"sources" : [
"BasicCodingKey.swift",
"FormDataDecoder/FormDataDecoder+Decoder.swift",
"FormDataDecoder/FormDataDecoder+KeyedContainer.swift",
"FormDataDecoder/FormDataDecoder+SingleValueContainer.swift",
"FormDataDecoder/FormDataDecoder+UnkeyedContainer.swift",
"FormDataDecoder/FormDataDecoder.swift",
"FormDataEncoder/FormDataEncoder+Encoder.swift",
"FormDataEncoder/FormDataEncoder+KeyedContainer.swift",
"FormDataEncoder/FormDataEncoder+SingleValueContainer.swift",
"FormDataEncoder/FormDataEncoder+UnkeyedContainer.swift",
"FormDataEncoder/FormDataEncoder.swift",
"FormDataEncoder/Storage.swift",
"MultipartFormData.swift",
"MultipartPart.swift",
"MultipartPartConvertible.swift",
"MultipartSection.swift",
"Parser/MultipartParser+parse.swift",
"Parser/MultipartParser.swift",
"Parser/MultipartParserAsyncSequence.swift",
"Parser/MultipartParserError.swift",
"Parser/StreamingMultipartParserAsyncSequence+Isolation.swift",
"Parser/StreamingMultipartParserAsyncSequence.swift",
"StreamingMultipartPart/StreamingMultipartPart+SharedIterator.swift",
"StreamingMultipartPart/StreamingMultipartPart+StateMachine.swift",
"StreamingMultipartPart/StreamingMultipartPart.swift",
"StreamingMultipartPart/StreamingMultipartPartAsyncSequence.swift",
"StreamingMultipartPart/StreamingMultipartPartBody.swift",
"StreamingMultipartPart/StreamingMultipartSectionAsyncSequence+Isolation.swift",
"StreamingMultipartPart/StreamingMultipartSectionAsyncSequence.swift",
"Utilities.swift",
"Writer/BufferedMultipartWriter.swift",
"Writer/MemoryMultipartWriter.swift",
"Writer/MultipartWriter.swift",
"Writer/StreamingMultipartWriterAsyncSequence+Isolation.swift",
"Writer/StreamingMultipartWriterAsyncSequence.swift"
],
"type" : "library"
}
],
"tools_version" : "6.1"
}
android-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:abadcff584c273feba50641b454858d377ba30b35ea7287a94f45ebd8afd0ea0
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.4-latest
Done.