Build Information
Successful build of Kadr, reference v0.9.2 (4f20c5), with Swift 6.2 for macOS (SPM) on 30 Apr 2026 06:06:37 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/SteliyanH/kadr.git
Reference: v0.9.2
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/SteliyanH/kadr
* tag v0.9.2 -> FETCH_HEAD
HEAD is now at 4f20c51 docs: v0.9.2 release prep — CHANGELOG, ROADMAP
Cloned https://github.com/SteliyanH/kadr.git
Revision (git rev-parse @):
4f20c51afb814b4d07f4085472b4e8c082ec2b98
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/SteliyanH/kadr.git at v0.9.2
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.2
Building package at path: $PWD
https://github.com/SteliyanH/kadr.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--3CB7CFEC50E0D141.txt
[3/54] Emitting module Kadr
[4/59] Compiling Kadr Animatable.swift
[5/59] Compiling Kadr Animation.swift
[6/59] Compiling Kadr TimingFunction.swift
[7/59] Compiling Kadr AudioBuilder.swift
[8/59] Compiling Kadr AudioTimePitchAlgorithm.swift
[9/59] Compiling Kadr AudioTrack.swift
[10/59] Compiling Kadr TextOverlay.swift
[11/59] Compiling Kadr TextStyle.swift
[12/59] Compiling Kadr Watermark.swift
[13/59] Compiling Kadr PlatformTypes.swift
[14/59] Compiling Kadr Timecode.swift
[15/59] Compiling Kadr BackgroundMusic.swift
[16/59] Compiling Kadr Caption.swift
[17/59] Compiling Kadr Clip.swift
[18/59] Compiling Kadr ImageClip.swift
[19/59] Compiling Kadr TitleSequence.swift
[20/59] Compiling Kadr Track.swift
[21/59] Compiling Kadr KadrError.swift
[22/59] Compiling Kadr ExportProgress.swift
[23/59] Compiling Kadr Exporter.swift
[24/59] Compiling Kadr Preset.swift
[25/59] Compiling Kadr ChromaKey.swift
[26/59] Compiling Kadr Filter.swift
[27/59] Compiling Kadr MaskCompositor.swift
[28/59] Compiling Kadr MultiInputCompositor.swift
[29/59] Compiling Kadr OverlayRenderer.swift
[30/59] Compiling Kadr PlaybackComposer.swift
[31/59] Compiling Kadr ReverseProcessor.swift
[32/59] Compiling Kadr SpeedCurveSampler.swift
[33/59] Compiling Kadr LUT.swift
[34/59] Compiling Kadr Anchor.swift
[35/59] Compiling Kadr ClipID.swift
[36/59] Compiling Kadr CropRegion.swift
[37/59] Compiling Kadr Frame.swift
[38/59] Compiling Kadr Compositor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Kadr/Engine/FilterProcessor.swift:52:35: warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
50 | : request.compositionTime
51 | for (i, filter) in filters.enumerated() {
52 | if let anim = animations[i],
| `- warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
53 | let scalar = anim.value(at: clipRelativeTime) {
54 | image = filter.withScalar(scalar).apply(to: image)
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[39/59] Compiling Kadr CropCompositor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Kadr/Engine/FilterProcessor.swift:52:35: warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
50 | : request.compositionTime
51 | for (i, filter) in filters.enumerated() {
52 | if let anim = animations[i],
| `- warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
53 | let scalar = anim.value(at: clipRelativeTime) {
54 | image = filter.withScalar(scalar).apply(to: image)
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[40/59] Compiling Kadr ExportEngine.swift
/Users/admin/builder/spi-builder-workspace/Sources/Kadr/Engine/FilterProcessor.swift:52:35: warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
50 | : request.compositionTime
51 | for (i, filter) in filters.enumerated() {
52 | if let anim = animations[i],
| `- warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
53 | let scalar = anim.value(at: clipRelativeTime) {
54 | image = filter.withScalar(scalar).apply(to: image)
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[41/59] Compiling Kadr FilterProcessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Kadr/Engine/FilterProcessor.swift:52:35: warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
50 | : request.compositionTime
51 | for (i, filter) in filters.enumerated() {
52 | if let anim = animations[i],
| `- warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
53 | let scalar = anim.value(at: clipRelativeTime) {
54 | image = filter.withScalar(scalar).apply(to: image)
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[42/59] Compiling Kadr ImageEncoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/Kadr/Engine/FilterProcessor.swift:52:35: warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
50 | : request.compositionTime
51 | for (i, filter) in filters.enumerated() {
52 | if let anim = animations[i],
| `- warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
53 | let scalar = anim.value(at: clipRelativeTime) {
54 | image = filter.withScalar(scalar).apply(to: image)
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[43/59] Compiling Kadr KadrVideoCompositor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Kadr/Engine/FilterProcessor.swift:52:35: warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
50 | : request.compositionTime
51 | for (i, filter) in filters.enumerated() {
52 | if let anim = animations[i],
| `- warning: reference to captured var 'animations' in concurrently-executing code [#SendableClosureCaptures]
53 | let scalar = anim.value(at: clipRelativeTime) {
54 | image = filter.withScalar(scalar).apply(to: image)
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[44/59] Compiling Kadr LayerID.swift
[45/59] Compiling Kadr Layout.swift
[46/59] Compiling Kadr Position.swift
[47/59] Compiling Kadr Size.swift
[48/59] Compiling Kadr Transform.swift
[49/59] Compiling Kadr Transition.swift
[50/59] Compiling Kadr Video.swift
[51/59] Compiling Kadr VideoBuilder.swift
[52/59] Compiling Kadr VideoClip.swift
[53/59] Compiling Kadr CancellationToken.swift
[54/59] Compiling Kadr CompositionBuilder.swift
[55/59] Compiling Kadr Clip+Speed.swift
[56/59] Compiling Kadr ImageOverlay.swift
[57/59] Compiling Kadr Overlay.swift
[58/59] Compiling Kadr StickerOverlay.swift
[59/59] Compiling Kadr TextAnimation.swift
Build complete! (10.99s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Kadr",
"name" : "Kadr",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "16.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "Kadr",
"targets" : [
"Kadr"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "KadrTests",
"module_type" : "SwiftTarget",
"name" : "KadrTests",
"path" : "Tests/KadrTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/KadrTests/Resources/sample.mov",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/KadrTests/Resources/sample.mp3",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/KadrTests/Resources/sample.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/KadrTests/Resources/sample.wav",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"APIValidationTests.swift",
"AnimationTests.swift",
"AudioCrossfadeTests.swift",
"AudioSpeedTests.swift",
"AudioTrackTimingTests.swift",
"AudioVolumeRampTests.swift",
"CMTimeAPITests.swift",
"CaptionTests.swift",
"ChromaKeyTests.swift",
"ClipAtTimeTests.swift",
"ClipCropTests.swift",
"ClipIDTests.swift",
"ClipMaskTests.swift",
"CompositorTests.swift",
"CropTests.swift",
"DSLTests.swift",
"DuckingTests.swift",
"EdgeCasesTests.swift",
"ExportTests.swift",
"FilterIntensityAnimationTests.swift",
"FilterPresetsTests.swift",
"FilterTests.swift",
"IntrospectionTests.swift",
"KadrVideoCompositorTests.swift",
"LUTTests.swift",
"LayoutHelpersTests.swift",
"LayoutTests.swift",
"MultiInputCompositorTests.swift",
"MultiTrackEngineTests.swift",
"MultiTrackRecursiveTests.swift",
"OverlayLayoutAnimationTests.swift",
"OverlayTests.swift",
"OverlayVisibilityTests.swift",
"PreviewAPITests.swift",
"SpeedCurveTests.swift",
"SpeedTests.swift",
"SugarTests.swift",
"TextAnimationTests.swift",
"TrackTests.swift",
"TransformTests.swift",
"TransitionsTests.swift"
],
"target_dependencies" : [
"Kadr"
],
"type" : "test"
},
{
"c99name" : "Kadr",
"module_type" : "SwiftTarget",
"name" : "Kadr",
"path" : "Sources/Kadr",
"product_memberships" : [
"Kadr"
],
"sources" : [
"Animation/Animatable.swift",
"Animation/Animation.swift",
"Animation/TimingFunction.swift",
"DSL/AudioBuilder.swift",
"DSL/AudioTimePitchAlgorithm.swift",
"DSL/AudioTrack.swift",
"DSL/BackgroundMusic.swift",
"DSL/Caption.swift",
"DSL/Clip.swift",
"DSL/ImageClip.swift",
"DSL/TitleSequence.swift",
"DSL/Track.swift",
"DSL/Transition.swift",
"DSL/Video.swift",
"DSL/VideoBuilder.swift",
"DSL/VideoClip.swift",
"Engine/CancellationToken.swift",
"Engine/CompositionBuilder.swift",
"Engine/Compositor.swift",
"Engine/CropCompositor.swift",
"Engine/ExportEngine.swift",
"Engine/FilterProcessor.swift",
"Engine/ImageEncoder.swift",
"Engine/KadrVideoCompositor.swift",
"Engine/MaskCompositor.swift",
"Engine/MultiInputCompositor.swift",
"Engine/OverlayRenderer.swift",
"Engine/PlaybackComposer.swift",
"Engine/ReverseProcessor.swift",
"Engine/SpeedCurveSampler.swift",
"Errors/KadrError.swift",
"Export/ExportProgress.swift",
"Export/Exporter.swift",
"Export/Preset.swift",
"Filters/ChromaKey.swift",
"Filters/Filter.swift",
"Filters/LUT.swift",
"Layout/Anchor.swift",
"Layout/ClipID.swift",
"Layout/CropRegion.swift",
"Layout/Frame.swift",
"Layout/LayerID.swift",
"Layout/Layout.swift",
"Layout/Position.swift",
"Layout/Size.swift",
"Layout/Transform.swift",
"Modifiers/Clip+Speed.swift",
"Overlays/ImageOverlay.swift",
"Overlays/Overlay.swift",
"Overlays/StickerOverlay.swift",
"Overlays/TextAnimation.swift",
"Overlays/TextOverlay.swift",
"Overlays/TextStyle.swift",
"Overlays/Watermark.swift",
"Platform/PlatformTypes.swift",
"Time/Timecode.swift"
],
"type" : "library"
}
],
"tools_version" : "6.0"
}
Done.