Build Information
Successful build of YouTubeKit, reference main (7f75a2), with Swift 6.4 for macOS (SPM) on 2 Nov 2026 06:05:04 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.4
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/alexeichhorn/YouTubeKit.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/alexeichhorn/YouTubeKit
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 7f75a22 Merge pull request #150 from alexeichhorn/feature/preroll-wait
Cloned https://github.com/alexeichhorn/YouTubeKit.git
Revision (git rev-parse @):
7f75a2299dc329c0b7855afb25d47663a02855cb
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/alexeichhorn/YouTubeKit.git at main
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"traits": [
"default"
],
"dependencies": [
{
"identity": "youtubekit",
"name": "YouTubeKit",
"url": "https://github.com/alexeichhorn/YouTubeKit.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/YouTubeKit",
"traits": [
"default"
],
"dependencies": [
]
}
]
}
Fetching https://github.com/alexeichhorn/YouTubeKit.git
[1/2221] Fetching youtubekit
Fetched https://github.com/alexeichhorn/YouTubeKit.git (1.03s)
Creating working copy for https://github.com/alexeichhorn/YouTubeKit.git
Working copy of https://github.com/alexeichhorn/YouTubeKit.git resolved at main (7f75a22)
warning: '.resolve-product-dependencies': dependency 'youtubekit' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/alexeichhorn/YouTubeKit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0.app xcrun swift build --arch arm64
Building for debugging...
[Pre-planning 1 / 95]
[Planning deferred tasks]
[32 / 43] YouTubeKit_YouTubeKit
[34 / 43]
[35 / 44] YouTubeKit
[44 / 105]
[47 / 105]
[55 / 105]
[57 / 105]
[58 / 105]
[62 / 105]
[64 / 105]
[67 / 105]
[72 / 105]
[75 / 105]
[76 / 105]
[82 / 105]
[83 / 105]
[84 / 105]
[85 / 105]
[96 / 105] YouTubeKit
[97 / 105] YouTubeKit
[102 / 105] YouTubeKit
Build complete! (10.88 sec)
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:48:15: [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m46 |[0;0m
[0;36m47 |[0;0m let codecs: [String]
[0;36m48 |[0;0m (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
[0;36m|[0;0m `- [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m49 |[0;0m
[0;36m50 |[0;0m let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:50:39: [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m48 |[0;0m (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
[0;36m49 |[0;0m
[0;36m50 |[0;0m let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
[0;36m|[0;0m `- [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m51 |[0;0m self.type = mimeTypeComponents.first ?? ""
[0;36m52 |[0;0m self.subtype = mimeTypeComponents[safe: 1] ?? ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:51:14: [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m49 |[0;0m
[0;36m50 |[0;0m let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
[0;36m51 |[0;0m self.type = mimeTypeComponents.first ?? ""
[0;36m|[0;0m `- [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m52 |[0;0m self.subtype = mimeTypeComponents[safe: 1] ?? ""
[0;36m53 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:52:14: [1;33mwarning: [1;39m'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m50 |[0;0m let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
[0;36m51 |[0;0m self.type = mimeTypeComponents.first ?? ""
[0;36m52 |[0;0m self.subtype = mimeTypeComponents[safe: 1] ?? ""
[0;36m|[0;0m `- [1;33mwarning: [1;39m'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m53 |[0;0m
[0;36m54 |[0;0m self.fileExtension = FileExtension(mimeType: self.mimeType)
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:54:59: [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m52 |[0;0m self.subtype = mimeTypeComponents[safe: 1] ?? ""
[0;36m53 |[0;0m
[0;36m54 |[0;0m self.fileExtension = FileExtension(mimeType: self.mimeType)
[0;36m|[0;0m `- [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m55 |[0;0m
[0;36m56 |[0;0m // codec decoding
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:61:21: [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m59 |[0;0m self.audioCodec = AudioCodec(rawValue: codecs[1])
[0;36m60 |[0;0m } else if let codec = codecs.first {
[0;36m61 |[0;0m if self.type == "audio" {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m62 |[0;0m self.audioCodec = AudioCodec(rawValue: codec)
[0;36m63 |[0;0m self.videoCodec = nil
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:102:14: [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m100 |[0;0m
[0;36m101 |[0;0m // Backward compatibility for deprecated `subtype` and `mimeType`
[0;36m102 |[0;0m self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
[0;36m|[0;0m `- [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m103 |[0;0m self.subtype = ""
[0;36m104 |[0;0m self.mimeType = ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:103:14: [1;33mwarning: [1;39m'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m101 |[0;0m // Backward compatibility for deprecated `subtype` and `mimeType`
[0;36m102 |[0;0m self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
[0;36m103 |[0;0m self.subtype = ""
[0;36m|[0;0m `- [1;33mwarning: [1;39m'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m104 |[0;0m self.mimeType = ""
[0;36m105 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:104:14: [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m102 |[0;0m self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
[0;36m103 |[0;0m self.subtype = ""
[0;36m104 |[0;0m self.mimeType = ""
[0;36m|[0;0m `- [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m105 |[0;0m }
[0;36m106 |[0;0m
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Extensions/AsyncCompatibility.swift:45:87: [1;33mwarning: [1;39mpassing non-Sendable parameter '$0' to function expecting a '@Sendable' closure[0;0m
[0;36m43 |[0;0m
[0;36m44 |[0;0m func data(from url: URL) async throws -> (Data, URLResponse) {
[0;36m45 |[0;0m try await performCancellableDataTask { dataTask(with: url, completionHandler: $0) }
[0;36m|[0;0m | `- [1;33mwarning: [1;39mpassing non-Sendable parameter '$0' to function expecting a '@Sendable' closure[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mparameter '$0' is implicitly non-Sendable[0;0m
[0;36m46 |[0;0m }
[0;36m47 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Extensions/AsyncCompatibility.swift:49:91: [1;33mwarning: [1;39mpassing non-Sendable parameter '$0' to function expecting a '@Sendable' closure[0;0m
[0;36m47 |[0;0m
[0;36m48 |[0;0m func data(for request: URLRequest) async throws -> (Data, URLResponse) {
[0;36m49 |[0;0m try await performCancellableDataTask { dataTask(with: request, completionHandler: $0) }
[0;36m|[0;0m | `- [1;33mwarning: [1;39mpassing non-Sendable parameter '$0' to function expecting a '@Sendable' closure[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mparameter '$0' is implicitly non-Sendable[0;0m
[0;36m50 |[0;0m }
[0;36m51 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTube.swift:356:19: [1;33mwarning: [1;39m'catch' block is unreachable because no errors are thrown in 'do' block[0;0m
[0;36m354 |[0;0m do {
[0;36m355 |[0;0m return nil //try await Extraction.getVideoInfo(fromHTML: watchHTML) // (temporarily disabled)
[0;36m356 |[0;0m } catch let error {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'catch' block is unreachable because no errors are thrown in 'do' block[0;0m
[0;36m357 |[0;0m os_log("Couldn't extract video info from main watch html: %{public}@", log: log, type: .debug, error.localizedDescription)
[0;36m358 |[0;0m return nil
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "YouTubeKit",
"name" : "YouTubeKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "YouTubeKit",
"targets" : [
"YouTubeKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "YouTubeKitTests",
"module_type" : "SwiftTarget",
"name" : "YouTubeKitTests",
"path" : "Tests/YouTubeKitTests",
"sources" : [
"CipherTests.swift",
"ExtensionTests.swift",
"Extensions.swift",
"ExtractionTests.swift",
"ITagsTests.swift",
"NSigTests.swift",
"ParserTests.swift",
"PlayabilityTests.swift",
"SignatureTests.swift",
"YouTubeKitTests.swift"
],
"target_dependencies" : [
"YouTubeKit"
],
"type" : "test"
},
{
"c99name" : "YouTubeKit",
"module_type" : "SwiftTarget",
"name" : "YouTubeKit",
"path" : "Sources/YouTubeKit",
"product_memberships" : [
"YouTubeKit"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Resources/astring.umd.js",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Resources/meriyah.umd.js",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Resources/yt_ejs_helper.js",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Cipher.swift",
"Errors.swift",
"Extensions/AsyncCompatibility.swift",
"Extensions/Concurrency.swift",
"Extensions/Foundation.swift",
"Extensions/Lazy.swift",
"Extensions/Logging.swift",
"Extensions/RegularExpression.swift",
"Extensions/Retry.swift",
"Extensions/URLSessionDelegates.swift",
"Extensions/WebSocket.swift",
"Extraction.swift",
"InnerTube+PrerollAds.swift",
"InnerTube.swift",
"Models/Codecs.swift",
"Models/FileExtension.swift",
"Models/ITag.swift",
"Models/Livestream.swift",
"Models/Method.swift",
"Models/Stream.swift",
"Models/StreamQuery.swift",
"Models/YouTubeMetadata.swift",
"Parser.swift",
"Remote/AppIdentity.swift",
"Remote/Chunking.swift",
"Remote/Models/RemoteStream.swift",
"Remote/RemoteYouTubeClient.swift",
"SignatureSolver.swift",
"YouTube.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/alexeichhorn/youtubekit/main
Repository: alexeichhorn/YouTubeKit
Swift version used: 6.4
Target: YouTubeKit
Extracting symbol information for 'YouTubeKit'...
Finished extracting symbol information for 'YouTubeKit'. (1.75s)
Building documentation for 'YouTubeKit'...
warning: Parameter 'videoID' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:75:168-75:168
73 | private let log = OSLog(YouTube.self)
74 |
75 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'videoID' parameter
76 | public init(videoID: String, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
77 | self.videoID = videoID
warning: Parameter 'proxies' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:75:168-75:168
73 | private let log = OSLog(YouTube.self)
74 |
75 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'proxies' parameter
76 | public init(videoID: String, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
77 | self.videoID = videoID
warning: Parameter 'allowOAuthCache' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:75:168-75:168
73 | private let log = OSLog(YouTube.self)
74 |
75 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'allowOAuthCache' parameter
76 | public init(videoID: String, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
77 | self.videoID = videoID
warning: Parameter 'useOAuth' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:75:168-75:168
73 | private let log = OSLog(YouTube.self)
74 |
75 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'useOAuth' parameter
76 | public init(videoID: String, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
77 | self.videoID = videoID
warning: Parameter 'useOAuth' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:93:168-93:168
91 | }
92 |
93 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'useOAuth' parameter
94 | public convenience init(url: URL, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
95 | let videoID = Extraction.extractVideoID(from: url.absoluteString) ?? ""
warning: Parameter 'allowOAuthCache' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:93:168-93:168
91 | }
92 |
93 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'allowOAuthCache' parameter
94 | public convenience init(url: URL, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
95 | let videoID = Extraction.extractVideoID(from: url.absoluteString) ?? ""
warning: Parameter 'url' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:93:168-93:168
91 | }
92 |
93 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'url' parameter
94 | public convenience init(url: URL, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
95 | let videoID = Extraction.extractVideoID(from: url.absoluteString) ?? ""
warning: Parameter 'proxies' is missing documentation
--> Sources/YouTubeKit/YouTube.swift:93:168-93:168
91 | }
92 |
93 + /// - parameter methods: Methods used to extract streams from the video - ordered by priority (Default: `local` on iOS, macOS, tvOS, visionOS; `remote` on watchOS)
| ╰─suggestion: Document 'proxies' parameter
94 | public convenience init(url: URL, proxies: [String: URL] = [:], useOAuth: Bool = false, allowOAuthCache: Bool = false, methods: [ExtractionMethod] = .default) {
95 | let videoID = Extraction.extractVideoID(from: url.absoluteString) ?? ""
Finished building documentation for 'YouTubeKit' (0.18s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/alexeichhorn/youtubekit/main
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2345] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin (1.59s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (3.87s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3850] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit (1.27s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (2.08s)
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
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
Building for debugging...
[Planning deferred tasks]
[18 / 41]
[20 / 43] Snippets
[31 / 58] SymbolKit
[40 / 58] SymbolKit
[44 / 58] SymbolKit
[52 / 59] SymbolKit
[53 / 59] SymbolKit
[58 / 63] snippet-extract-product
[59 / 63] snippet-extract-product
[61 / 63] snippet-extract-product
Build complete! (2.51 sec)
Building for debugging...
[Planning deferred tasks]
[4 / 12] YouTubeKit
[15 / 23] YouTubeKit
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Extensions/AsyncCompatibility.swift:45:87: [1;33mwarning: [1;39mpassing non-Sendable parameter '$0' to function expecting a '@Sendable' closure[0;0m
[0;36m43 |[0;0m
[0;36m44 |[0;0m func data(from url: URL) async throws -> (Data, URLResponse) {
[0;36m45 |[0;0m try await performCancellableDataTask { dataTask(with: url, completionHandler: $0) }
[0;36m|[0;0m | `- [1;33mwarning: [1;39mpassing non-Sendable parameter '$0' to function expecting a '@Sendable' closure[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mparameter '$0' is implicitly non-Sendable[0;0m
[0;36m46 |[0;0m }
[0;36m47 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Extensions/AsyncCompatibility.swift:49:91: [1;33mwarning: [1;39mpassing non-Sendable parameter '$0' to function expecting a '@Sendable' closure[0;0m
[0;36m47 |[0;0m
[0;36m48 |[0;0m func data(for request: URLRequest) async throws -> (Data, URLResponse) {
[0;36m49 |[0;0m try await performCancellableDataTask { dataTask(with: request, completionHandler: $0) }
[0;36m|[0;0m | `- [1;33mwarning: [1;39mpassing non-Sendable parameter '$0' to function expecting a '@Sendable' closure[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mparameter '$0' is implicitly non-Sendable[0;0m
[0;36m50 |[0;0m }
[0;36m51 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:48:15: [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m46 |[0;0m
[0;36m47 |[0;0m let codecs: [String]
[0;36m48 |[0;0m (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
[0;36m|[0;0m `- [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m49 |[0;0m
[0;36m50 |[0;0m let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:50:39: [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m48 |[0;0m (self.mimeType, codecs) = try Extraction.mimeTypeCodec(format.mimeType)
[0;36m49 |[0;0m
[0;36m50 |[0;0m let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
[0;36m|[0;0m `- [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m51 |[0;0m self.type = mimeTypeComponents.first ?? ""
[0;36m52 |[0;0m self.subtype = mimeTypeComponents[safe: 1] ?? ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:51:14: [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m49 |[0;0m
[0;36m50 |[0;0m let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
[0;36m51 |[0;0m self.type = mimeTypeComponents.first ?? ""
[0;36m|[0;0m `- [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m52 |[0;0m self.subtype = mimeTypeComponents[safe: 1] ?? ""
[0;36m53 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:52:14: [1;33mwarning: [1;39m'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m50 |[0;0m let mimeTypeComponents = self.mimeType.components(separatedBy: "/")
[0;36m51 |[0;0m self.type = mimeTypeComponents.first ?? ""
[0;36m52 |[0;0m self.subtype = mimeTypeComponents[safe: 1] ?? ""
[0;36m|[0;0m `- [1;33mwarning: [1;39m'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m53 |[0;0m
[0;36m54 |[0;0m self.fileExtension = FileExtension(mimeType: self.mimeType)
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:54:59: [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m52 |[0;0m self.subtype = mimeTypeComponents[safe: 1] ?? ""
[0;36m53 |[0;0m
[0;36m54 |[0;0m self.fileExtension = FileExtension(mimeType: self.mimeType)
[0;36m|[0;0m `- [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m55 |[0;0m
[0;36m56 |[0;0m // codec decoding
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:61:21: [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m59 |[0;0m self.audioCodec = AudioCodec(rawValue: codecs[1])
[0;36m60 |[0;0m } else if let codec = codecs.first {
[0;36m61 |[0;0m if self.type == "audio" {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m62 |[0;0m self.audioCodec = AudioCodec(rawValue: codec)
[0;36m63 |[0;0m self.videoCodec = nil
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:102:14: [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m100 |[0;0m
[0;36m101 |[0;0m // Backward compatibility for deprecated `subtype` and `mimeType`
[0;36m102 |[0;0m self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
[0;36m|[0;0m `- [1;33mwarning: [1;39m'type' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m103 |[0;0m self.subtype = ""
[0;36m104 |[0;0m self.mimeType = ""
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:103:14: [1;33mwarning: [1;39m'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m101 |[0;0m // Backward compatibility for deprecated `subtype` and `mimeType`
[0;36m102 |[0;0m self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
[0;36m103 |[0;0m self.subtype = ""
[0;36m|[0;0m `- [1;33mwarning: [1;39m'subtype' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m104 |[0;0m self.mimeType = ""
[0;36m105 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/Models/Stream.swift:104:14: [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m102 |[0;0m self.type = (remoteStream.videoCodec != nil) ? "video" : "audio"
[0;36m103 |[0;0m self.subtype = ""
[0;36m104 |[0;0m self.mimeType = ""
[0;36m|[0;0m `- [1;33mwarning: [1;39m'mimeType' is deprecated: Might be empty if using remote fetching method. Use `videoCodec`, `audioCodec` or `fileExtension` instead.[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m105 |[0;0m }
[0;36m106 |[0;0m
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
/Users/admin/builder/spi-builder-workspace/Sources/YouTubeKit/YouTube.swift:356:19: [1;33mwarning: [1;39m'catch' block is unreachable because no errors are thrown in 'do' block[0;0m
[0;36m354 |[0;0m do {
[0;36m355 |[0;0m return nil //try await Extraction.getVideoInfo(fromHTML: watchHTML) // (temporarily disabled)
[0;36m356 |[0;0m } catch let error {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'catch' block is unreachable because no errors are thrown in 'do' block[0;0m
[0;36m357 |[0;0m os_log("Couldn't extract video info from main watch html: %{public}@", log: log, type: .debug, error.localizedDescription)
[0;36m358 |[0;0m return nil
[17 / 19] YouTubeKit
Build complete! (1.54 sec)
408
3 /Users/admin/builder/spi-builder-workspace/.docs/alexeichhorn/youtubekit/main
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/alexeichhorn/youtubekit/main
File count: 408
Doc size: 3.0MB
Preparing doc bundle ...
Using presigned URL upload - AWS credentials not required
Uploading -alexeichhorn-youtubekit-main-0294cf96.zip to presigned URL
Starting upload of 735925 bytes...
Upload completed successfully
Done.