The Swift Package Index logo.Swift Package Index

Build Information

Failed to build MosaicKit, reference 1.7.4 (5016e6), with Swift 6.2 for macOS (SPM) on 29 Sep 2026 04:27:11 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/fdenis75/MosaicKit.git
Reference: 1.7.4
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/fdenis75/MosaicKit
 * tag               1.7.4      -> FETCH_HEAD
HEAD is now at 5016e6d Merge pull request #30 from fdenis75/fix/output-transaction-smb-link
Cloned https://github.com/fdenis75/MosaicKit.git
Revision (git rev-parse @):
5016e6d29b4a3f6b9818a7e90861cd03585cc291
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/fdenis75/MosaicKit.git at 1.7.4
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/fdenis75/MosaicKit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64
Building for debugging...
[0/15] Write sources
[5/15] Copying libwebpmux.a
[7/15] Copying libwebpdemux.a
[8/15] Copying libsharpyuv.a
[8/15] Copying libwebp.a
[10/15] Copying MetalShaders.metal
[11/15] Write swift-version--3CB7CFEC50E0D141.txt
[13/66] Compiling Logging LogEvent.swift
[14/67] Compiling Logging LoggingSystem.swift
[15/67] Compiling Logging LogHandler.swift
[16/67] Compiling Logging Logger.swift
[17/67] Compiling Logging Logger+Attributes.swift
[18/67] Compiling Logging Logger+With.swift
[18/67] Compiling webpbridge WebpIncrementalDecoder.mm
[19/67] Compiling webpbridge WebpIncrementalDecoderResult.mm
[21/67] Compiling Logging MetadataProvider.swift
[22/67] Emitting module Logging
[23/67] Compiling DominantColors AverageColor+UIColor.swift
[24/67] Compiling DominantColors AverageColor.swift
[25/67] Compiling Logging Locks.swift
[26/67] Compiling Logging SwiftLogNoOpLogHandler.swift
[26/67] Compiling webpbridge WebpRGBAMultiplier.mm
[28/79] Compiling DominantColors RGB.swift
[29/79] Compiling DominantColors RGB255.swift
[30/79] Compiling DominantColors XYZ.swift
[31/79] Compiling DominantColors ComplementaryColor.swift
[32/82] Emitting module DominantColors
[33/82] Compiling DominantColors UIImageExtension.swift
[34/82] Compiling DominantColors GradientColors.swift
[35/82] Compiling DominantColors ImageColorError.swift
[36/82] Compiling DominantColors ColorShade.swift
[37/82] Compiling DominantColors HSL.swift
[38/82] Compiling DominantColors Hex.swift
[39/82] Compiling DominantColors Lab.swift
[40/82] Compiling webp CGImage+Util.swift
[41/82] Compiling webp InternalRawRepresentable.swift
[42/82] Compiling webp WebPAnimatedEncoder.swift
[43/82] Compiling webp WebPDecoder+Platform.swift
[44/82] Compiling DominantColors ContrastRatio.swift
[45/82] Compiling DominantColors DeltaEFormula.swift
[46/82] Compiling DominantColors Difference.swift
[47/82] Compiling DominantColors DominantColorAlgorithm.swift
[48/82] Compiling SJSAssetExportSession ExportSession+Error.swift
[49/82] Compiling SJSAssetExportSession ExportSession.swift
[50/82] Compiling SJSAssetExportSession CMTime+seconds.swift
[51/82] Compiling SJSAssetExportSession AudioOutputSettings.swift
[52/82] Emitting module SJSAssetExportSession
[53/82] Compiling SJSAssetExportSession Array+Extensions.swift
[54/82] Compiling SJSAssetExportSession SampleWriter.swift
[55/82] Compiling SJSAssetExportSession VideoOutputSettings.swift
[56/82] Compiling DominantColors DominantColors+UIColor.swift
[57/82] Compiling DominantColors DominantColors.swift
[58/82] Compiling DominantColors CGFloatExtensions.swift
[59/82] Compiling DominantColors CGImageExtensions.swift
[60/82] Compiling DominantColors CGSizeExtensions.swift
[61/82] Compiling DominantColors NSImageExtension.swift
[62/82] Compiling DominantColors ImageFIlter.swift
[63/82] Compiling DominantColors ImageTrimAlpha.swift
[64/82] Compiling DominantColors RelativeLuminance.swift
[65/82] Compiling DominantColors DominantColorQuality.swift
[66/82] Compiling DominantColors DominantColors+CIAreaAverage.swift
[67/82] Compiling DominantColors DominantColors+CIE.swift
[68/82] Compiling DominantColors DominantColors+CIKMeans.swift
[69/82] Compiling DominantColors DominantColors+ColorResolved.swift
[70/82] Compiling DominantColors DominantColors+NSColor.swift
[71/115] Compiling webp WebPError.swift
[72/116] Compiling webp WebPImageInspector.swift
[73/116] Compiling webp WebPEncoderConfig.swift
[74/116] Compiling webp WebPEncoder.swift
[75/116] Compiling webp WebPEncoder+Platform.swift
[76/116] Compiling webp WebPDecoderConfig.swift
[77/116] Compiling webp WebPDecoder.swift
[78/116] Compiling webp WebPEncoder+CGImage.swift
[79/116] Emitting module webp
[80/116] Compiling MosaicKit FFmpegEncodingOptions.swift
[81/116] Compiling MosaicKit LayoutConfiguration.swift
[82/116] Compiling MosaicKit ConfigurationValidation.swift
[83/116] Compiling MosaicKit DensityConfig.swift
[84/116] Emitting module MosaicKit
[85/119] Compiling MosaicKit WebPSupport.swift
[86/119] Compiling MosaicKit VideoInputScanner.swift
[87/119] Compiling MosaicKit resource_bundle_accessor.swift
[88/119] Compiling MosaicKit PreviewExportDescription.swift
[89/119] Compiling MosaicKit PreviewGenerationProgress.swift
[90/119] Compiling MosaicKit VideoFormat.swift
[91/119] Compiling MosaicKit VideoInput.swift
[96/119] Compiling MosaicKit MosaicConfiguration.swift
[97/119] Compiling MosaicKit MosaicLayout.swift
[98/119] Compiling MosaicKit OverlayConfiguration.swift
[99/119] Compiling MosaicKit PreviewConfiguration.swift
[100/119] Compiling MosaicKit MosaicGeneratorProtocol.swift
[101/119] Compiling MosaicKit OutputTransaction.swift
[102/119] Compiling MosaicKit OverlayProcessor.swift
[103/119] Compiling MosaicKit AppLifecycleMonitor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/FFmpegEncoder.swift:306:9: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Process', consider removing it
304 |         // Reference types so they can be safely captured across concurrency boundaries
305 |         // without triggering Swift 6 Sendable errors (Process and Pipe are not Sendable).
306 |         nonisolated(unsafe) let processRef = process
    |         `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Process', consider removing it
307 |         nonisolated(unsafe) let pipeRef = stderrPipe
308 |
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/FFmpegEncoder.swift:307:9: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Pipe', consider removing it
305 |         // without triggering Swift 6 Sendable errors (Process and Pipe are not Sendable).
306 |         nonisolated(unsafe) let processRef = process
307 |         nonisolated(unsafe) let pipeRef = stderrPipe
    |         `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Pipe', consider removing it
308 |
309 |         // Mutable stderr state: only accessed from Foundation's serial readability queue.
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/FFmpegEncoder.swift:249:28: error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
247 |         do {
248 |             nonisolated(unsafe) let sessionRef = exportSession
249 |             try await Task.detached(priority: .userInitiated) {
    |                            `- error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
250 |                 try await sessionRef.export(to: outputURL, as: .mov)
    |                                      `- note: closure captures 'sessionRef' which is accessible to main actor-isolated code
251 |             }.value
252 |         } catch {
[104/119] Compiling MosaicKit FFmpegEncoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/FFmpegEncoder.swift:306:9: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Process', consider removing it
304 |         // Reference types so they can be safely captured across concurrency boundaries
305 |         // without triggering Swift 6 Sendable errors (Process and Pipe are not Sendable).
306 |         nonisolated(unsafe) let processRef = process
    |         `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Process', consider removing it
307 |         nonisolated(unsafe) let pipeRef = stderrPipe
308 |
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/FFmpegEncoder.swift:307:9: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Pipe', consider removing it
305 |         // without triggering Swift 6 Sendable errors (Process and Pipe are not Sendable).
306 |         nonisolated(unsafe) let processRef = process
307 |         nonisolated(unsafe) let pipeRef = stderrPipe
    |         `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Pipe', consider removing it
308 |
309 |         // Mutable stderr state: only accessed from Foundation's serial readability queue.
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/FFmpegEncoder.swift:249:28: error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
247 |         do {
248 |             nonisolated(unsafe) let sessionRef = exportSession
249 |             try await Task.detached(priority: .userInitiated) {
    |                            `- error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
250 |                 try await sessionRef.export(to: outputURL, as: .mov)
    |                                      `- note: closure captures 'sessionRef' which is accessible to main actor-isolated code
251 |             }.value
252 |         } catch {
[105/119] Compiling MosaicKit PreviewError.swift
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/FFmpegEncoder.swift:306:9: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Process', consider removing it
304 |         // Reference types so they can be safely captured across concurrency boundaries
305 |         // without triggering Swift 6 Sendable errors (Process and Pipe are not Sendable).
306 |         nonisolated(unsafe) let processRef = process
    |         `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Process', consider removing it
307 |         nonisolated(unsafe) let pipeRef = stderrPipe
308 |
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/FFmpegEncoder.swift:307:9: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Pipe', consider removing it
305 |         // without triggering Swift 6 Sendable errors (Process and Pipe are not Sendable).
306 |         nonisolated(unsafe) let processRef = process
307 |         nonisolated(unsafe) let pipeRef = stderrPipe
    |         `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'Pipe', consider removing it
308 |
309 |         // Mutable stderr state: only accessed from Foundation's serial readability queue.
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/FFmpegEncoder.swift:249:28: error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
247 |         do {
248 |             nonisolated(unsafe) let sessionRef = exportSession
249 |             try await Task.detached(priority: .userInitiated) {
    |                            `- error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
250 |                 try await sessionRef.export(to: outputURL, as: .mov)
    |                                      `- note: closure captures 'sessionRef' which is accessible to main actor-isolated code
251 |             }.value
252 |         } catch {
[106/119] Compiling MosaicKit ThumbnailProcessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Processing/ThumbnailProcessor.swift:206:24: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 204 |         nonisolated(unsafe) let generatorRef = generator
 205 |         let (stream, continuation) = AsyncThrowingStream<(index: Int, image: CGImage, timestamp: String), Error>.makeStream()
 206 |         let producer = Task {
     |                        `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 207 |             do {
 208 |                 let duration = try await assetRef.load(.duration).seconds
     |                                                   `- note: closure captures non-Sendable 'assetRef'
 209 |                 let times = calculateExtractionTimes(duration: duration, count: layout.positions.count)
 210 |                 var index = 0
 211 |                 for try await result in generatorRef.images(for: times) {
     |                                                      `- note: closure captures non-Sendable 'generatorRef'
 212 |                     try Task.checkCancellation()
 213 |                     switch result {
/Users/admin/builder/spi-builder-workspace/Sources/Processing/ThumbnailProcessor.swift:153:24: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 151 |         nonisolated(unsafe) let assetRef = asset
 152 |         nonisolated(unsafe) let generatorRef = generator
 153 |         let producer = Task {
     |                        `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 154 |             do {
 155 |                 let duration = try await assetRef.load(.duration).seconds
     |                                                   `- note: closure captures non-Sendable 'assetRef'
 156 |                 let times = calculateExtractionTimes(duration: duration, count: layout.positions.count)
 157 |                 var index = 0
 158 |                 try await withThrowingTaskGroup(of: (Int, CGImage).self) { group in
 159 |                     var pending = 0
 160 |                     for try await result in generatorRef.images(for: times) {
     |                                                          `- note: closure captures non-Sendable 'generatorRef'
 161 |                         try Task.checkCancellation()
 162 |                         guard case .success(_, let image, let actualTime) = result else {
[107/119] Compiling MosaicKit VideoError.swift
/Users/admin/builder/spi-builder-workspace/Sources/Processing/ThumbnailProcessor.swift:206:24: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 204 |         nonisolated(unsafe) let generatorRef = generator
 205 |         let (stream, continuation) = AsyncThrowingStream<(index: Int, image: CGImage, timestamp: String), Error>.makeStream()
 206 |         let producer = Task {
     |                        `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 207 |             do {
 208 |                 let duration = try await assetRef.load(.duration).seconds
     |                                                   `- note: closure captures non-Sendable 'assetRef'
 209 |                 let times = calculateExtractionTimes(duration: duration, count: layout.positions.count)
 210 |                 var index = 0
 211 |                 for try await result in generatorRef.images(for: times) {
     |                                                      `- note: closure captures non-Sendable 'generatorRef'
 212 |                     try Task.checkCancellation()
 213 |                     switch result {
/Users/admin/builder/spi-builder-workspace/Sources/Processing/ThumbnailProcessor.swift:153:24: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 151 |         nonisolated(unsafe) let assetRef = asset
 152 |         nonisolated(unsafe) let generatorRef = generator
 153 |         let producer = Task {
     |                        `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 154 |             do {
 155 |                 let duration = try await assetRef.load(.duration).seconds
     |                                                   `- note: closure captures non-Sendable 'assetRef'
 156 |                 let times = calculateExtractionTimes(duration: duration, count: layout.positions.count)
 157 |                 var index = 0
 158 |                 try await withThrowingTaskGroup(of: (Int, CGImage).self) { group in
 159 |                     var pending = 0
 160 |                     for try await result in generatorRef.images(for: times) {
     |                                                          `- note: closure captures non-Sendable 'generatorRef'
 161 |                         try Task.checkCancellation()
 162 |                         guard case .success(_, let image, let actualTime) = result else {
[108/119] Compiling MosaicKit VideoMetadataExtractor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Processing/ThumbnailProcessor.swift:206:24: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 204 |         nonisolated(unsafe) let generatorRef = generator
 205 |         let (stream, continuation) = AsyncThrowingStream<(index: Int, image: CGImage, timestamp: String), Error>.makeStream()
 206 |         let producer = Task {
     |                        `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 207 |             do {
 208 |                 let duration = try await assetRef.load(.duration).seconds
     |                                                   `- note: closure captures non-Sendable 'assetRef'
 209 |                 let times = calculateExtractionTimes(duration: duration, count: layout.positions.count)
 210 |                 var index = 0
 211 |                 for try await result in generatorRef.images(for: times) {
     |                                                      `- note: closure captures non-Sendable 'generatorRef'
 212 |                     try Task.checkCancellation()
 213 |                     switch result {
/Users/admin/builder/spi-builder-workspace/Sources/Processing/ThumbnailProcessor.swift:153:24: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 151 |         nonisolated(unsafe) let assetRef = asset
 152 |         nonisolated(unsafe) let generatorRef = generator
 153 |         let producer = Task {
     |                        `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
 154 |             do {
 155 |                 let duration = try await assetRef.load(.duration).seconds
     |                                                   `- note: closure captures non-Sendable 'assetRef'
 156 |                 let times = calculateExtractionTimes(duration: duration, count: layout.positions.count)
 157 |                 var index = 0
 158 |                 try await withThrowingTaskGroup(of: (Int, CGImage).self) { group in
 159 |                     var pending = 0
 160 |                     for try await result in generatorRef.images(for: times) {
     |                                                          `- note: closure captures non-Sendable 'generatorRef'
 161 |                         try Task.checkCancellation()
 162 |                         guard case .success(_, let image, let actualTime) = result else {
[109/119] Compiling MosaicKit PreviewGeneratorCoordinator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:869:27: warning: 'AVMutableVideoCompositionInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionInstruction.Configuration instead [#DeprecatedDeclaration]
 867 |         nominalFrameRate: Float
 868 |     ) -> AVVideoComposition {
 869 |         let instruction = AVMutableVideoCompositionInstruction()
     |                           `- warning: 'AVMutableVideoCompositionInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionInstruction.Configuration instead [#DeprecatedDeclaration]
 870 |         instruction.timeRange = CMTimeRange(start: .zero, duration: composition.duration)
 871 |
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:872:32: warning: 'AVMutableVideoCompositionLayerInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionLayerInstruction.Configuration instead [#DeprecatedDeclaration]
 870 |         instruction.timeRange = CMTimeRange(start: .zero, duration: composition.duration)
 871 |
 872 |         let layerInstruction = AVMutableVideoCompositionLayerInstruction(assetTrack: compositionVideoTrack)
     |                                `- warning: 'AVMutableVideoCompositionLayerInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionLayerInstruction.Configuration instead [#DeprecatedDeclaration]
 873 |         layerInstruction.setTransform(finalTransform, at: .zero)
 874 |         instruction.layerInstructions = [layerInstruction]
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:876:32: warning: 'AVMutableVideoComposition' was deprecated in macOS 26.0: Use AVVideoComposition.Configuration instead [#DeprecatedDeclaration]
 874 |         instruction.layerInstructions = [layerInstruction]
 875 |
 876 |         let videoComposition = AVMutableVideoComposition()
     |                                `- warning: 'AVMutableVideoComposition' was deprecated in macOS 26.0: Use AVVideoComposition.Configuration instead [#DeprecatedDeclaration]
 877 |         videoComposition.instructions = [instruction]
 878 |         videoComposition.renderSize = renderSize
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1569:28: error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
1567 |         do {
1568 |             nonisolated(unsafe) let sessionRef = exportSession
1569 |             try await Task.detached(priority: .userInitiated) {
     |                            `- error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
1570 |                 try await sessionRef.export(to: outputURL, as: config.format.avFileType)
     |                                      `- note: closure captures 'sessionRef' which is accessible to main actor-isolated code
1571 |             }.value
1572 |         } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1230:35: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1228 |             if let vc = videoComposition {
1229 |                 // Use the raw-settings overload so we can pass our custom video composition for scaling.
1230 |                 exportTask = Task.detached(priority: .userInitiated) {
     |                                   `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1231 |                     try await exporter.export(
     |                                        |- note: closure captures non-Sendable 'compositionAsset'
     |                                        `- note: closure captures non-Sendable 'exportAudioMix'
1232 |                         asset: compositionAsset,
1233 |                         audioOutputSettings: AudioOutputSettings.default.settingsDictionary,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1242:35: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1240 |                 }
1241 |             } else {
1242 |                 exportTask = Task.detached(priority: .userInitiated) {
     |                                   `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1243 |                     try await exporter.export(
     |                                        |- note: closure captures non-Sendable 'compositionAsset'
     |                                        `- note: closure captures non-Sendable 'exportAudioMix'
1244 |                         asset: compositionAsset,
1245 |                         audio: .default,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1231:40: error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
1229 |                 // Use the raw-settings overload so we can pass our custom video composition for scaling.
1230 |                 exportTask = Task.detached(priority: .userInitiated) {
1231 |                     try await exporter.export(
     |                                        |- error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'compositionAsset' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1232 |                         asset: compositionAsset,
1233 |                         audioOutputSettings: AudioOutputSettings.default.settingsDictionary,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1231:40: error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
1229 |                 // Use the raw-settings overload so we can pass our custom video composition for scaling.
1230 |                 exportTask = Task.detached(priority: .userInitiated) {
1231 |                     try await exporter.export(
     |                                        |- error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'exportAudioMix' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1232 |                         asset: compositionAsset,
1233 |                         audioOutputSettings: AudioOutputSettings.default.settingsDictionary,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1243:40: error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
1241 |             } else {
1242 |                 exportTask = Task.detached(priority: .userInitiated) {
1243 |                     try await exporter.export(
     |                                        |- error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'compositionAsset' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1244 |                         asset: compositionAsset,
1245 |                         audio: .default,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1243:40: error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
1241 |             } else {
1242 |                 exportTask = Task.detached(priority: .userInitiated) {
1243 |                     try await exporter.export(
     |                                        |- error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'exportAudioMix' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1244 |                         asset: compositionAsset,
1245 |                         audio: .default,
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[110/119] Compiling MosaicKit PreviewVideoGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:869:27: warning: 'AVMutableVideoCompositionInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionInstruction.Configuration instead [#DeprecatedDeclaration]
 867 |         nominalFrameRate: Float
 868 |     ) -> AVVideoComposition {
 869 |         let instruction = AVMutableVideoCompositionInstruction()
     |                           `- warning: 'AVMutableVideoCompositionInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionInstruction.Configuration instead [#DeprecatedDeclaration]
 870 |         instruction.timeRange = CMTimeRange(start: .zero, duration: composition.duration)
 871 |
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:872:32: warning: 'AVMutableVideoCompositionLayerInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionLayerInstruction.Configuration instead [#DeprecatedDeclaration]
 870 |         instruction.timeRange = CMTimeRange(start: .zero, duration: composition.duration)
 871 |
 872 |         let layerInstruction = AVMutableVideoCompositionLayerInstruction(assetTrack: compositionVideoTrack)
     |                                `- warning: 'AVMutableVideoCompositionLayerInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionLayerInstruction.Configuration instead [#DeprecatedDeclaration]
 873 |         layerInstruction.setTransform(finalTransform, at: .zero)
 874 |         instruction.layerInstructions = [layerInstruction]
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:876:32: warning: 'AVMutableVideoComposition' was deprecated in macOS 26.0: Use AVVideoComposition.Configuration instead [#DeprecatedDeclaration]
 874 |         instruction.layerInstructions = [layerInstruction]
 875 |
 876 |         let videoComposition = AVMutableVideoComposition()
     |                                `- warning: 'AVMutableVideoComposition' was deprecated in macOS 26.0: Use AVVideoComposition.Configuration instead [#DeprecatedDeclaration]
 877 |         videoComposition.instructions = [instruction]
 878 |         videoComposition.renderSize = renderSize
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1569:28: error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
1567 |         do {
1568 |             nonisolated(unsafe) let sessionRef = exportSession
1569 |             try await Task.detached(priority: .userInitiated) {
     |                            `- error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
1570 |                 try await sessionRef.export(to: outputURL, as: config.format.avFileType)
     |                                      `- note: closure captures 'sessionRef' which is accessible to main actor-isolated code
1571 |             }.value
1572 |         } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1230:35: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1228 |             if let vc = videoComposition {
1229 |                 // Use the raw-settings overload so we can pass our custom video composition for scaling.
1230 |                 exportTask = Task.detached(priority: .userInitiated) {
     |                                   `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1231 |                     try await exporter.export(
     |                                        |- note: closure captures non-Sendable 'compositionAsset'
     |                                        `- note: closure captures non-Sendable 'exportAudioMix'
1232 |                         asset: compositionAsset,
1233 |                         audioOutputSettings: AudioOutputSettings.default.settingsDictionary,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1242:35: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1240 |                 }
1241 |             } else {
1242 |                 exportTask = Task.detached(priority: .userInitiated) {
     |                                   `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1243 |                     try await exporter.export(
     |                                        |- note: closure captures non-Sendable 'compositionAsset'
     |                                        `- note: closure captures non-Sendable 'exportAudioMix'
1244 |                         asset: compositionAsset,
1245 |                         audio: .default,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1231:40: error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
1229 |                 // Use the raw-settings overload so we can pass our custom video composition for scaling.
1230 |                 exportTask = Task.detached(priority: .userInitiated) {
1231 |                     try await exporter.export(
     |                                        |- error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'compositionAsset' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1232 |                         asset: compositionAsset,
1233 |                         audioOutputSettings: AudioOutputSettings.default.settingsDictionary,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1231:40: error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
1229 |                 // Use the raw-settings overload so we can pass our custom video composition for scaling.
1230 |                 exportTask = Task.detached(priority: .userInitiated) {
1231 |                     try await exporter.export(
     |                                        |- error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'exportAudioMix' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1232 |                         asset: compositionAsset,
1233 |                         audioOutputSettings: AudioOutputSettings.default.settingsDictionary,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1243:40: error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
1241 |             } else {
1242 |                 exportTask = Task.detached(priority: .userInitiated) {
1243 |                     try await exporter.export(
     |                                        |- error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'compositionAsset' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1244 |                         asset: compositionAsset,
1245 |                         audio: .default,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1243:40: error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
1241 |             } else {
1242 |                 exportTask = Task.detached(priority: .userInitiated) {
1243 |                     try await exporter.export(
     |                                        |- error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'exportAudioMix' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1244 |                         asset: compositionAsset,
1245 |                         audio: .default,
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[111/119] Compiling MosaicKit ProcessingError.swift
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:869:27: warning: 'AVMutableVideoCompositionInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionInstruction.Configuration instead [#DeprecatedDeclaration]
 867 |         nominalFrameRate: Float
 868 |     ) -> AVVideoComposition {
 869 |         let instruction = AVMutableVideoCompositionInstruction()
     |                           `- warning: 'AVMutableVideoCompositionInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionInstruction.Configuration instead [#DeprecatedDeclaration]
 870 |         instruction.timeRange = CMTimeRange(start: .zero, duration: composition.duration)
 871 |
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:872:32: warning: 'AVMutableVideoCompositionLayerInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionLayerInstruction.Configuration instead [#DeprecatedDeclaration]
 870 |         instruction.timeRange = CMTimeRange(start: .zero, duration: composition.duration)
 871 |
 872 |         let layerInstruction = AVMutableVideoCompositionLayerInstruction(assetTrack: compositionVideoTrack)
     |                                `- warning: 'AVMutableVideoCompositionLayerInstruction' was deprecated in macOS 26.0: Use AVVideoCompositionLayerInstruction.Configuration instead [#DeprecatedDeclaration]
 873 |         layerInstruction.setTransform(finalTransform, at: .zero)
 874 |         instruction.layerInstructions = [layerInstruction]
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:876:32: warning: 'AVMutableVideoComposition' was deprecated in macOS 26.0: Use AVVideoComposition.Configuration instead [#DeprecatedDeclaration]
 874 |         instruction.layerInstructions = [layerInstruction]
 875 |
 876 |         let videoComposition = AVMutableVideoComposition()
     |                                `- warning: 'AVMutableVideoComposition' was deprecated in macOS 26.0: Use AVVideoComposition.Configuration instead [#DeprecatedDeclaration]
 877 |         videoComposition.instructions = [instruction]
 878 |         videoComposition.renderSize = renderSize
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1569:28: error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
1567 |         do {
1568 |             nonisolated(unsafe) let sessionRef = exportSession
1569 |             try await Task.detached(priority: .userInitiated) {
     |                            `- error: passing closure as a 'sending' parameter risks causing data races between main actor-isolated code and concurrent execution of the closure
1570 |                 try await sessionRef.export(to: outputURL, as: config.format.avFileType)
     |                                      `- note: closure captures 'sessionRef' which is accessible to main actor-isolated code
1571 |             }.value
1572 |         } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1230:35: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1228 |             if let vc = videoComposition {
1229 |                 // Use the raw-settings overload so we can pass our custom video composition for scaling.
1230 |                 exportTask = Task.detached(priority: .userInitiated) {
     |                                   `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1231 |                     try await exporter.export(
     |                                        |- note: closure captures non-Sendable 'compositionAsset'
     |                                        `- note: closure captures non-Sendable 'exportAudioMix'
1232 |                         asset: compositionAsset,
1233 |                         audioOutputSettings: AudioOutputSettings.default.settingsDictionary,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1242:35: error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1240 |                 }
1241 |             } else {
1242 |                 exportTask = Task.detached(priority: .userInitiated) {
     |                                   `- error: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure
1243 |                     try await exporter.export(
     |                                        |- note: closure captures non-Sendable 'compositionAsset'
     |                                        `- note: closure captures non-Sendable 'exportAudioMix'
1244 |                         asset: compositionAsset,
1245 |                         audio: .default,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1231:40: error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
1229 |                 // Use the raw-settings overload so we can pass our custom video composition for scaling.
1230 |                 exportTask = Task.detached(priority: .userInitiated) {
1231 |                     try await exporter.export(
     |                                        |- error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'compositionAsset' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1232 |                         asset: compositionAsset,
1233 |                         audioOutputSettings: AudioOutputSettings.default.settingsDictionary,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1231:40: error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
1229 |                 // Use the raw-settings overload so we can pass our custom video composition for scaling.
1230 |                 exportTask = Task.detached(priority: .userInitiated) {
1231 |                     try await exporter.export(
     |                                        |- error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'exportAudioMix' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1232 |                         asset: compositionAsset,
1233 |                         audioOutputSettings: AudioOutputSettings.default.settingsDictionary,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1243:40: error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
1241 |             } else {
1242 |                 exportTask = Task.detached(priority: .userInitiated) {
1243 |                     try await exporter.export(
     |                                        |- error: sending 'compositionAsset' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'compositionAsset' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1244 |                         asset: compositionAsset,
1245 |                         audio: .default,
/Users/admin/builder/spi-builder-workspace/Sources/Processing/Preview/PreviewVideoGenerator.swift:1243:40: error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
1241 |             } else {
1242 |                 exportTask = Task.detached(priority: .userInitiated) {
1243 |                     try await exporter.export(
     |                                        |- error: sending 'exportAudioMix' risks causing data races [#SendingRisksDataRace]
     |                                        `- note: task-isolated 'exportAudioMix' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
1244 |                         asset: compositionAsset,
1245 |                         audio: .default,
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[112/119] Compiling MosaicKit VideoSource.swift
[113/119] Compiling MosaicKit AnimatedGifGenerator.swift
[114/119] Compiling MosaicKit GenerationJobs.swift
[115/119] Compiling MosaicKit LayoutProcessor.swift
[116/119] Compiling MosaicKit MetalImageProcessor.swift
[117/119] Compiling MosaicKit MetalMosaicGenerator.swift
[118/119] Compiling MosaicKit MosaicFrameSource.swift
[119/119] Compiling MosaicKit MosaicGeneratorCoordinator.swift
Fetching https://github.com/awxkee/webp.swift.git
Fetching https://github.com/DenDmitriev/DominantColors.git
Fetching https://github.com/samsonjs/SJSAssetExportSession.git
Fetching https://github.com/apple/swift-log.git
[1/430] Fetching sjsassetexportsession
[2/603] Fetching sjsassetexportsession, webp.swift
[175/8768] Fetching sjsassetexportsession, webp.swift, swift-log
[257/9779] Fetching sjsassetexportsession, webp.swift, swift-log, dominantcolors
Fetched https://github.com/apple/swift-log.git from cache (1.80s)
Fetched https://github.com/awxkee/webp.swift.git from cache (1.80s)
[299/1441] Fetching sjsassetexportsession, dominantcolors
Fetched https://github.com/DenDmitriev/DominantColors.git from cache (2.82s)
Fetched https://github.com/samsonjs/SJSAssetExportSession.git from cache (2.82s)
Computing version for https://github.com/awxkee/webp.swift.git
Computed https://github.com/awxkee/webp.swift.git at 1.1.2 (5.65s)
Fetching https://github.com/awxkee/libwebp-ios.git
[1/556] Fetching libwebp-ios
Fetched https://github.com/awxkee/libwebp-ios.git from cache (2.09s)
Computing version for https://github.com/samsonjs/SJSAssetExportSession.git
Computed https://github.com/samsonjs/SJSAssetExportSession.git at 0.4.0 (2.65s)
Computing version for https://github.com/awxkee/libwebp-ios.git
Computed https://github.com/awxkee/libwebp-ios.git at 1.1.1 (0.64s)
Computing version for https://github.com/DenDmitriev/DominantColors.git
Computed https://github.com/DenDmitriev/DominantColors.git at 1.2.2 (0.54s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.15.1 (0.57s)
Creating working copy for https://github.com/awxkee/webp.swift.git
Working copy of https://github.com/awxkee/webp.swift.git resolved at 1.1.2
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.15.1
Creating working copy for https://github.com/samsonjs/SJSAssetExportSession.git
Working copy of https://github.com/samsonjs/SJSAssetExportSession.git resolved at 0.4.0
Creating working copy for https://github.com/DenDmitriev/DominantColors.git
Working copy of https://github.com/DenDmitriev/DominantColors.git resolved at 1.2.2
Creating working copy for https://github.com/awxkee/libwebp-ios.git
Working copy of https://github.com/awxkee/libwebp-ios.git resolved at 1.1.1
BUILD FAILURE 6.2 macosSpm