This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of kubrick with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 7

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/krad/kubrick.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/krad/kubrick
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 41b1abc Not really happy with this compromise but it will do for pre-processing on macOS.  Super frustrated with CMSampleBuffer behavior
Cloned https://github.com/krad/kubrick.git
Revision (git rev-parse @):
41b1abcb79d58c9e70379bb314187c20ebabcf0f
SUCCESS checkout https://github.com/krad/kubrick.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/krad/kubrick.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-6F35C1178C84523A.txt
[4/16] Compiling grip StreamType.swift
[5/16] Compiling grip VideoParamSetPacket.swift
[6/16] Compiling grip StreamTypePacket.swift
[7/16] Compiling grip VideoSamplePacket.swift
[8/16] Compiling grip VideoDimensionsPacket.swift
[9/16] Compiling grip Packets.swift
[10/17] Compiling grip NALU.swift
[11/17] Compiling grip AudioSamplePacket.swift
[12/17] Emitting module grip
[13/17] Compiling grip BinaryEncodable.swift
[14/17] Compiling grip BinaryEncodableExtensions.swift
[15/17] Compiling grip CompressedSample.swift
[16/17] Compiling grip ByteHelpers.swift
[17/17] Compiling grip Writeable.swift
[18/47] Emitting module kubrick
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/Rational.swift:7:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 5 |
 6 | extension Rational: Hashable {
 7 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 8 |         return Int(self.numerator ^ Int64(self.denominator))
 9 |     }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDeviceInput.swift:20:9: warning: var 'makeInput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
18 |     import AVFoundation
19 |
20 |     var makeInput: MakeMediaDeviceInput = { src, onCreate in
   |         |- warning: var 'makeInput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |         |- note: convert 'makeInput' to a 'let' constant to make 'Sendable' shared state immutable
   |         |- note: annotate 'makeInput' with '@MainActor' if property should only be accessed from the main actor
   |         `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |         let input = try AVCaptureInput.makeInput(device: src)
22 |         onCreate(input)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDeviceOutput.swift:16:9: warning: var 'makeOutput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
14 |     import AVFoundation
15 |
16 |     var makeOutput: MakeMediaDeviceOutput = { src, onCreate in
   |         |- warning: var 'makeOutput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |         |- note: convert 'makeOutput' to a 'let' constant to make 'Sendable' shared state immutable
   |         |- note: annotate 'makeOutput' with '@MainActor' if property should only be accessed from the main actor
   |         `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |         switch src.type {
18 |         case .video?:
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:39:10: warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 37 |
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
    |          `- warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:40:10: warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
    |          `- warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:41:10: warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
    |          `- warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:42:10: warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
    |          `- warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 43 |     case inputMissingPorts(mediaType: MediaType)
 44 | }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:43:10: warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
    |          `- warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 44 | }
 45 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/Source.swift:7:13: note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 5 | }
 6 |
 7 | public enum MediaType {
   |             `- note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 8 |     case video
 9 |     case audio
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
[19/50] Compiling kubrick EndpointSink.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sinks/FileEndpoint.swift:25:16: warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 4 |
 5 | /// Endpoint that can be set on an AVStream object that will stream a/v sample data into a file
 6 | public final class FileEndpoint: Writeable, Endable {
   |                    `- note: class 'FileEndpoint' does not conform to the 'Sendable' protocol
 7 |
 8 |     public var onEnd: EndedCallback?
   :
23 |     public func write(_ data: Data) {
24 |         self.writeQ.async {
25 |             if self.continueWriting {
   |                `- warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 |                 self.fileHandle.write(data)
27 |             }
[20/50] Compiling kubrick FileEndpoint.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sinks/FileEndpoint.swift:25:16: warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 4 |
 5 | /// Endpoint that can be set on an AVStream object that will stream a/v sample data into a file
 6 | public final class FileEndpoint: Writeable, Endable {
   |                    `- note: class 'FileEndpoint' does not conform to the 'Sendable' protocol
 7 |
 8 |     public var onEnd: EndedCallback?
   :
23 |     public func write(_ data: Data) {
24 |         self.writeQ.async {
25 |             if self.continueWriting {
   |                `- warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 |                 self.fileHandle.write(data)
27 |             }
[21/50] Compiling kubrick H264EncoderSink.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sinks/FileEndpoint.swift:25:16: warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 4 |
 5 | /// Endpoint that can be set on an AVStream object that will stream a/v sample data into a file
 6 | public final class FileEndpoint: Writeable, Endable {
   |                    `- note: class 'FileEndpoint' does not conform to the 'Sendable' protocol
 7 |
 8 |     public var onEnd: EndedCallback?
   :
23 |     public func write(_ data: Data) {
24 |         self.writeQ.async {
25 |             if self.continueWriting {
   |                `- warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 |                 self.fileHandle.write(data)
27 |             }
[22/50] Compiling kubrick VideoEncoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/Rational.swift:7:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 5 |
 6 | extension Rational: Hashable {
 7 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 8 |         return Int(self.numerator ^ Int64(self.denominator))
 9 |     }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:54: warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                                      `- warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:66: warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                                                  `- warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:26:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
24 |
25 |     public func remove(at index: Int) {
26 |         q.async(flags: .barrier) { self.array.remove(at: index) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |     }
28 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:30:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
28 |
29 |     public func removeFirst(n: Int) {
30 |         q.async(flags: .barrier) { self.array.removeFirst(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
31 |     }
32 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:34:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
32 |
33 |     public func removeLast() {
34 |         q.async(flags: .barrier) { self.array.removeLast() }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
35 |     }
36 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:38:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
36 |
37 |     public func removeLast(n: Int) {
38 |         q.async(flags: .barrier) { self.array.removeLast(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
39 |     }
40 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75:40: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                        `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 |         }
77 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75:60: warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                                            `- warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 |         }
77 |
[23/50] Compiling kubrick Bytes.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/Rational.swift:7:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 5 |
 6 | extension Rational: Hashable {
 7 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 8 |         return Int(self.numerator ^ Int64(self.denominator))
 9 |     }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:54: warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                                      `- warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:66: warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                                                  `- warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:26:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
24 |
25 |     public func remove(at index: Int) {
26 |         q.async(flags: .barrier) { self.array.remove(at: index) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |     }
28 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:30:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
28 |
29 |     public func removeFirst(n: Int) {
30 |         q.async(flags: .barrier) { self.array.removeFirst(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
31 |     }
32 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:34:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
32 |
33 |     public func removeLast() {
34 |         q.async(flags: .barrier) { self.array.removeLast() }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
35 |     }
36 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:38:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
36 |
37 |     public func removeLast(n: Int) {
38 |         q.async(flags: .barrier) { self.array.removeLast(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
39 |     }
40 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75:40: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                        `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 |         }
77 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75:60: warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                                            `- warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 |         }
77 |
[24/50] Compiling kubrick Rational.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/Rational.swift:7:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 5 |
 6 | extension Rational: Hashable {
 7 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 8 |         return Int(self.numerator ^ Int64(self.denominator))
 9 |     }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:54: warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                                      `- warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:66: warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                                                  `- warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:26:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
24 |
25 |     public func remove(at index: Int) {
26 |         q.async(flags: .barrier) { self.array.remove(at: index) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |     }
28 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:30:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
28 |
29 |     public func removeFirst(n: Int) {
30 |         q.async(flags: .barrier) { self.array.removeFirst(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
31 |     }
32 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:34:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
32 |
33 |     public func removeLast() {
34 |         q.async(flags: .barrier) { self.array.removeLast() }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
35 |     }
36 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:38:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
36 |
37 |     public func removeLast(n: Int) {
38 |         q.async(flags: .barrier) { self.array.removeLast(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
39 |     }
40 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75:40: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                        `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 |         }
77 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75:60: warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                                            `- warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 |         }
77 |
[25/50] Compiling kubrick ThreadSafeArray.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/Rational.swift:7:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 5 |
 6 | extension Rational: Hashable {
 7 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 8 |         return Int(self.numerator ^ Int64(self.denominator))
 9 |     }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:54: warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                                      `- warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:66: warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                                                  `- warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:26:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
24 |
25 |     public func remove(at index: Int) {
26 |         q.async(flags: .barrier) { self.array.remove(at: index) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |     }
28 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:30:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
28 |
29 |     public func removeFirst(n: Int) {
30 |         q.async(flags: .barrier) { self.array.removeFirst(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
31 |     }
32 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:34:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
32 |
33 |     public func removeLast() {
34 |         q.async(flags: .barrier) { self.array.removeLast() }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
35 |     }
36 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:38:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
36 |
37 |     public func removeLast(n: Int) {
38 |         q.async(flags: .barrier) { self.array.removeLast(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
39 |     }
40 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75:40: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                        `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 |         }
77 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75:60: warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                                            `- warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 |         }
77 |
[26/50] Compiling kubrick MediaDeviceReader.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:26:64: warning: capture of 'self' with non-sendable type 'AudioReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Dispatch
 2 |
 3 | public class AudioReader: NSObject, MediaDeviceReader {
   |              `- note: class 'AudioReader' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var ident: MediaSourceIdentifier
   :
24 |         {
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident, sampleBuffer: sampleBuffer)
   |                                                                `- warning: capture of 'self' with non-sendable type 'AudioReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |                 self.push(input: sample)
28 |             }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:26:90: warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
24 |         {
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident, sampleBuffer: sampleBuffer)
   |                                                                                          `- warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |                 self.push(input: sample)
28 |             }
CoreMedia.CMSampleBuffer:2:14: note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | public class CMSampleBuffer : _CFObject {
  |              `- note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
3 | }
[27/50] Compiling kubrick Microphone.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:26:64: warning: capture of 'self' with non-sendable type 'AudioReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Dispatch
 2 |
 3 | public class AudioReader: NSObject, MediaDeviceReader {
   |              `- note: class 'AudioReader' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var ident: MediaSourceIdentifier
   :
24 |         {
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident, sampleBuffer: sampleBuffer)
   |                                                                `- warning: capture of 'self' with non-sendable type 'AudioReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |                 self.push(input: sample)
28 |             }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:26:90: warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
24 |         {
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident, sampleBuffer: sampleBuffer)
   |                                                                                          `- warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |                 self.push(input: sample)
28 |             }
CoreMedia.CMSampleBuffer:2:14: note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | public class CMSampleBuffer : _CFObject {
  |              `- note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
3 | }
[28/50] Compiling kubrick AudioReader.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:26:64: warning: capture of 'self' with non-sendable type 'AudioReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Dispatch
 2 |
 3 | public class AudioReader: NSObject, MediaDeviceReader {
   |              `- note: class 'AudioReader' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var ident: MediaSourceIdentifier
   :
24 |         {
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident, sampleBuffer: sampleBuffer)
   |                                                                `- warning: capture of 'self' with non-sendable type 'AudioReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |                 self.push(input: sample)
28 |             }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:26:90: warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
24 |         {
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident, sampleBuffer: sampleBuffer)
   |                                                                                          `- warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |                 self.push(input: sample)
28 |             }
CoreMedia.CMSampleBuffer:2:14: note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | public class CMSampleBuffer : _CFObject {
  |              `- note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
3 | }
[29/50] Compiling kubrick MuxerSink.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
[30/50] Compiling kubrick PrettyPortraitSink.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
[31/50] Compiling kubrick Sink.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
[32/50] Compiling kubrick MediaDevice.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDeviceInput.swift:20:9: warning: var 'makeInput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
18 |     import AVFoundation
19 |
20 |     var makeInput: MakeMediaDeviceInput = { src, onCreate in
   |         |- warning: var 'makeInput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |         |- note: convert 'makeInput' to a 'let' constant to make 'Sendable' shared state immutable
   |         |- note: annotate 'makeInput' with '@MainActor' if property should only be accessed from the main actor
   |         `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |         let input = try AVCaptureInput.makeInput(device: src)
22 |         onCreate(input)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDeviceOutput.swift:16:9: warning: var 'makeOutput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
14 |     import AVFoundation
15 |
16 |     var makeOutput: MakeMediaDeviceOutput = { src, onCreate in
   |         |- warning: var 'makeOutput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |         |- note: convert 'makeOutput' to a 'let' constant to make 'Sendable' shared state immutable
   |         |- note: annotate 'makeOutput' with '@MainActor' if property should only be accessed from the main actor
   |         `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |         switch src.type {
18 |         case .video?:
[33/50] Compiling kubrick MediaDeviceInput.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDeviceInput.swift:20:9: warning: var 'makeInput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
18 |     import AVFoundation
19 |
20 |     var makeInput: MakeMediaDeviceInput = { src, onCreate in
   |         |- warning: var 'makeInput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |         |- note: convert 'makeInput' to a 'let' constant to make 'Sendable' shared state immutable
   |         |- note: annotate 'makeInput' with '@MainActor' if property should only be accessed from the main actor
   |         `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |         let input = try AVCaptureInput.makeInput(device: src)
22 |         onCreate(input)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDeviceOutput.swift:16:9: warning: var 'makeOutput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
14 |     import AVFoundation
15 |
16 |     var makeOutput: MakeMediaDeviceOutput = { src, onCreate in
   |         |- warning: var 'makeOutput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |         |- note: convert 'makeOutput' to a 'let' constant to make 'Sendable' shared state immutable
   |         |- note: annotate 'makeOutput' with '@MainActor' if property should only be accessed from the main actor
   |         `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |         switch src.type {
18 |         case .video?:
[34/50] Compiling kubrick MediaDeviceOutput.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDeviceInput.swift:20:9: warning: var 'makeInput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
18 |     import AVFoundation
19 |
20 |     var makeInput: MakeMediaDeviceInput = { src, onCreate in
   |         |- warning: var 'makeInput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |         |- note: convert 'makeInput' to a 'let' constant to make 'Sendable' shared state immutable
   |         |- note: annotate 'makeInput' with '@MainActor' if property should only be accessed from the main actor
   |         `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |         let input = try AVCaptureInput.makeInput(device: src)
22 |         onCreate(input)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDeviceOutput.swift:16:9: warning: var 'makeOutput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
14 |     import AVFoundation
15 |
16 |     var makeOutput: MakeMediaDeviceOutput = { src, onCreate in
   |         |- warning: var 'makeOutput' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |         |- note: convert 'makeOutput' to a 'let' constant to make 'Sendable' shared state immutable
   |         |- note: annotate 'makeOutput' with '@MainActor' if property should only be accessed from the main actor
   |         `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |         switch src.type {
18 |         case .video?:
[35/50] Compiling kubrick VideoReader.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:26:64: warning: capture of 'self' with non-sendable type 'VideoReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Dispatch
 2 |
 3 | public class VideoReader: NSObject, MediaDeviceReader {
   |              `- note: class 'VideoReader' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var ident: MediaSourceIdentifier
   :
24 |         {
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident,
   |                                                                `- warning: capture of 'self' with non-sendable type 'VideoReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |                                              sampleBuffer: sampleBuffer)
28 |                 self.push(input: sample)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:27:60: warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident,
27 |                                              sampleBuffer: sampleBuffer)
   |                                                            `- warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
28 |                 self.push(input: sample)
29 |             }
CoreMedia.CMSampleBuffer:2:14: note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | public class CMSampleBuffer : _CFObject {
  |              `- note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
3 | }
[36/50] Compiling kubrick MediaFormat.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:26:64: warning: capture of 'self' with non-sendable type 'VideoReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Dispatch
 2 |
 3 | public class VideoReader: NSObject, MediaDeviceReader {
   |              `- note: class 'VideoReader' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var ident: MediaSourceIdentifier
   :
24 |         {
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident,
   |                                                                `- warning: capture of 'self' with non-sendable type 'VideoReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |                                              sampleBuffer: sampleBuffer)
28 |                 self.push(input: sample)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:27:60: warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident,
27 |                                              sampleBuffer: sampleBuffer)
   |                                                            `- warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
28 |                 self.push(input: sample)
29 |             }
CoreMedia.CMSampleBuffer:2:14: note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | public class CMSampleBuffer : _CFObject {
  |              `- note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
3 | }
[37/50] Compiling kubrick Sample.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:26:64: warning: capture of 'self' with non-sendable type 'VideoReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Dispatch
 2 |
 3 | public class VideoReader: NSObject, MediaDeviceReader {
   |              `- note: class 'VideoReader' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var ident: MediaSourceIdentifier
   :
24 |         {
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident,
   |                                                                `- warning: capture of 'self' with non-sendable type 'VideoReader' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |                                              sampleBuffer: sampleBuffer)
28 |                 self.push(input: sample)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:27:60: warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 |             self.q.async {
26 |                 let sample = SampleTransport(sourceIdentifier: self.ident,
27 |                                              sampleBuffer: sampleBuffer)
   |                                                            `- warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
28 |                 self.push(input: sample)
29 |             }
CoreMedia.CMSampleBuffer:2:14: note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | public class CMSampleBuffer : _CFObject {
  |              `- note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
3 | }
[38/50] Compiling kubrick Camera.swift
[39/50] Compiling kubrick Clock.swift
[40/50] Compiling kubrick Display.swift
[41/50] Compiling kubrick SampleTransport.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:39:10: warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 37 |
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
    |          `- warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:40:10: warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
    |          `- warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:41:10: warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
    |          `- warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:42:10: warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
    |          `- warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 43 |     case inputMissingPorts(mediaType: MediaType)
 44 | }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:43:10: warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
    |          `- warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 44 | }
 45 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/Source.swift:7:13: note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 5 | }
 6 |
 7 | public enum MediaType {
   |             `- note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 8 |     case video
 9 |     case audio
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
[42/50] Compiling kubrick Session.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:39:10: warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 37 |
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
    |          `- warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:40:10: warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
    |          `- warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:41:10: warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
    |          `- warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:42:10: warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
    |          `- warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 43 |     case inputMissingPorts(mediaType: MediaType)
 44 | }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:43:10: warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
    |          `- warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 44 | }
 45 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/Source.swift:7:13: note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 5 | }
 6 |
 7 | public enum MediaType {
   |             `- note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 8 |     case video
 9 |     case audio
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
[43/50] Compiling kubrick AACEncoderSink.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:39:10: warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 37 |
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
    |          `- warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:40:10: warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
    |          `- warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:41:10: warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
    |          `- warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:42:10: warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
    |          `- warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 43 |     case inputMissingPorts(mediaType: MediaType)
 44 | }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:43:10: warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
    |          `- warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 44 | }
 45 |
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/Source.swift:7:13: note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 5 | }
 6 |
 7 | public enum MediaType {
   |             `- note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 8 |     case video
 9 |     case audio
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
[44/50] Compiling kubrick AACEncoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:81:17: warning: capture of 'self' with non-sendable type 'AACEncoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  6 | import CoreMedia
  7 |
  8 | internal class AACEncoder: AudioEncoder {
    |                `- note: class 'AACEncoder' does not conform to the 'Sendable' protocol
  9 |
 10 |     public var configured: Bool = false
    :
 79 |     func encode(_ sample: Sample, onComplete: @escaping AudioEncodedCallback) {
 80 |         self.encoderQ.async {
 81 |             if !self.configured { do { try self.setup(using: sample) } catch { }  }
    |                 `- warning: capture of 'self' with non-sendable type 'AACEncoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             guard let encoder = self.audioConverter,
 83 |                 sample.bytes.count > 0 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:81:62: warning: capture of 'sample' with non-sendable type 'any Sample' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 79 |     func encode(_ sample: Sample, onComplete: @escaping AudioEncodedCallback) {
 80 |         self.encoderQ.async {
 81 |             if !self.configured { do { try self.setup(using: sample) } catch { }  }
    |                                                              `- warning: capture of 'sample' with non-sendable type 'any Sample' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             guard let encoder = self.audioConverter,
 83 |                 sample.bytes.count > 0 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Sample.swift:1:17: note: protocol 'Sample' does not conform to the 'Sendable' protocol
 1 | public protocol Sample {
   |                 `- note: protocol 'Sample' does not conform to the 'Sendable' protocol
 2 |     var bytes: [UInt8] { get }
 3 |     var pts: Rational { get }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:124:21: warning: capture of 'onComplete' with non-sendable type 'AudioEncodedCallback' (aka '(any Sample) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
122 |                                                        numberOfSamples: sample.numberOfSamples)
123 |                 {
124 |                     onComplete(newSample)
    |                     |- warning: capture of 'onComplete' with non-sendable type 'AudioEncodedCallback' (aka '(any Sample) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
125 |                 }
126 |             case -1:
[45/50] Compiling kubrick AudioEncoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:81:17: warning: capture of 'self' with non-sendable type 'AACEncoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  6 | import CoreMedia
  7 |
  8 | internal class AACEncoder: AudioEncoder {
    |                `- note: class 'AACEncoder' does not conform to the 'Sendable' protocol
  9 |
 10 |     public var configured: Bool = false
    :
 79 |     func encode(_ sample: Sample, onComplete: @escaping AudioEncodedCallback) {
 80 |         self.encoderQ.async {
 81 |             if !self.configured { do { try self.setup(using: sample) } catch { }  }
    |                 `- warning: capture of 'self' with non-sendable type 'AACEncoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             guard let encoder = self.audioConverter,
 83 |                 sample.bytes.count > 0 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:81:62: warning: capture of 'sample' with non-sendable type 'any Sample' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 79 |     func encode(_ sample: Sample, onComplete: @escaping AudioEncodedCallback) {
 80 |         self.encoderQ.async {
 81 |             if !self.configured { do { try self.setup(using: sample) } catch { }  }
    |                                                              `- warning: capture of 'sample' with non-sendable type 'any Sample' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             guard let encoder = self.audioConverter,
 83 |                 sample.bytes.count > 0 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Sample.swift:1:17: note: protocol 'Sample' does not conform to the 'Sendable' protocol
 1 | public protocol Sample {
   |                 `- note: protocol 'Sample' does not conform to the 'Sendable' protocol
 2 |     var bytes: [UInt8] { get }
 3 |     var pts: Rational { get }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:124:21: warning: capture of 'onComplete' with non-sendable type 'AudioEncodedCallback' (aka '(any Sample) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
122 |                                                        numberOfSamples: sample.numberOfSamples)
123 |                 {
124 |                     onComplete(newSample)
    |                     |- warning: capture of 'onComplete' with non-sendable type 'AudioEncodedCallback' (aka '(any Sample) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
125 |                 }
126 |             case -1:
[46/50] Compiling kubrick H264Encoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:81:17: warning: capture of 'self' with non-sendable type 'AACEncoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  6 | import CoreMedia
  7 |
  8 | internal class AACEncoder: AudioEncoder {
    |                `- note: class 'AACEncoder' does not conform to the 'Sendable' protocol
  9 |
 10 |     public var configured: Bool = false
    :
 79 |     func encode(_ sample: Sample, onComplete: @escaping AudioEncodedCallback) {
 80 |         self.encoderQ.async {
 81 |             if !self.configured { do { try self.setup(using: sample) } catch { }  }
    |                 `- warning: capture of 'self' with non-sendable type 'AACEncoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             guard let encoder = self.audioConverter,
 83 |                 sample.bytes.count > 0 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:81:62: warning: capture of 'sample' with non-sendable type 'any Sample' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 79 |     func encode(_ sample: Sample, onComplete: @escaping AudioEncodedCallback) {
 80 |         self.encoderQ.async {
 81 |             if !self.configured { do { try self.setup(using: sample) } catch { }  }
    |                                                              `- warning: capture of 'sample' with non-sendable type 'any Sample' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             guard let encoder = self.audioConverter,
 83 |                 sample.bytes.count > 0 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Sample.swift:1:17: note: protocol 'Sample' does not conform to the 'Sendable' protocol
 1 | public protocol Sample {
   |                 `- note: protocol 'Sample' does not conform to the 'Sendable' protocol
 2 |     var bytes: [UInt8] { get }
 3 |     var pts: Rational { get }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:124:21: warning: capture of 'onComplete' with non-sendable type 'AudioEncodedCallback' (aka '(any Sample) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
122 |                                                        numberOfSamples: sample.numberOfSamples)
123 |                 {
124 |                     onComplete(newSample)
    |                     |- warning: capture of 'onComplete' with non-sendable type 'AudioEncodedCallback' (aka '(any Sample) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
125 |                 }
126 |             case -1:
[47/50] Compiling kubrick H264Settings.swift
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:81:17: warning: capture of 'self' with non-sendable type 'AACEncoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  6 | import CoreMedia
  7 |
  8 | internal class AACEncoder: AudioEncoder {
    |                `- note: class 'AACEncoder' does not conform to the 'Sendable' protocol
  9 |
 10 |     public var configured: Bool = false
    :
 79 |     func encode(_ sample: Sample, onComplete: @escaping AudioEncodedCallback) {
 80 |         self.encoderQ.async {
 81 |             if !self.configured { do { try self.setup(using: sample) } catch { }  }
    |                 `- warning: capture of 'self' with non-sendable type 'AACEncoder' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             guard let encoder = self.audioConverter,
 83 |                 sample.bytes.count > 0 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:81:62: warning: capture of 'sample' with non-sendable type 'any Sample' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 79 |     func encode(_ sample: Sample, onComplete: @escaping AudioEncodedCallback) {
 80 |         self.encoderQ.async {
 81 |             if !self.configured { do { try self.setup(using: sample) } catch { }  }
    |                                                              `- warning: capture of 'sample' with non-sendable type 'any Sample' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 82 |             guard let encoder = self.audioConverter,
 83 |                 sample.bytes.count > 0 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Sample.swift:1:17: note: protocol 'Sample' does not conform to the 'Sendable' protocol
 1 | public protocol Sample {
   |                 `- note: protocol 'Sample' does not conform to the 'Sendable' protocol
 2 |     var bytes: [UInt8] { get }
 3 |     var pts: Rational { get }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift:124:21: warning: capture of 'onComplete' with non-sendable type 'AudioEncodedCallback' (aka '(any Sample) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
122 |                                                        numberOfSamples: sample.numberOfSamples)
123 |                 {
124 |                     onComplete(newSample)
    |                     |- warning: capture of 'onComplete' with non-sendable type 'AudioEncodedCallback' (aka '(any Sample) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
125 |                 }
126 |             case -1:
[48/50] Compiling kubrick AVStream.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:147:34: warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 23 | }
 24 |
 25 | public class AVStream: AVStreamProtocol {
    |              `- note: class 'AVStream' does not conform to the 'Sendable' protocol
 26 |
 27 |     public var session: CaptureSession
    :
145 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
146 |             // If we have a video format, build the config packets and send them
147 |             if let videoFormat = self.muxSink.videoFormat {
    |                                  `- warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
148 |                 do {
149 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:162:43: warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |             // Append the endpoint sink to the mux sink
161 |             // Audio / Video data should start streaming over the network from here
162 |             self.muxSink.nextSinks.append(sink)
    |                                           `- warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
163 |         }
164 |     }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sinks/EndpointSink.swift:4:14: note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 2 | import Foundation
 3 |
 4 | public class EndpointSink: Sink<BinaryEncodable> {
   |              `- note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 5 |
 6 |     var endpoint: Writeable
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:147:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
145 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
146 |             // If we have a video format, build the config packets and send them
147 |             if let videoFormat = self.muxSink.videoFormat {
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
148 |                 do {
149 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:162:43: warning: sending 'sink' risks causing data races; this is an error in the Swift 6 language mode
160 |             // Append the endpoint sink to the mux sink
161 |             // Audio / Video data should start streaming over the network from here
162 |             self.muxSink.nextSinks.append(sink)
    |                                           |- warning: sending 'sink' risks causing data races; this is an error in the Swift 6 language mode
    |                                           `- note: task-isolated 'sink' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
163 |         }
164 |     }
[49/50] Compiling kubrick Source.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:147:34: warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 23 | }
 24 |
 25 | public class AVStream: AVStreamProtocol {
    |              `- note: class 'AVStream' does not conform to the 'Sendable' protocol
 26 |
 27 |     public var session: CaptureSession
    :
145 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
146 |             // If we have a video format, build the config packets and send them
147 |             if let videoFormat = self.muxSink.videoFormat {
    |                                  `- warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
148 |                 do {
149 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:162:43: warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |             // Append the endpoint sink to the mux sink
161 |             // Audio / Video data should start streaming over the network from here
162 |             self.muxSink.nextSinks.append(sink)
    |                                           `- warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
163 |         }
164 |     }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sinks/EndpointSink.swift:4:14: note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 2 | import Foundation
 3 |
 4 | public class EndpointSink: Sink<BinaryEncodable> {
   |              `- note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 5 |
 6 |     var endpoint: Writeable
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:147:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
145 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
146 |             // If we have a video format, build the config packets and send them
147 |             if let videoFormat = self.muxSink.videoFormat {
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
148 |                 do {
149 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:162:43: warning: sending 'sink' risks causing data races; this is an error in the Swift 6 language mode
160 |             // Append the endpoint sink to the mux sink
161 |             // Audio / Video data should start streaming over the network from here
162 |             self.muxSink.nextSinks.append(sink)
    |                                           |- warning: sending 'sink' risks causing data races; this is an error in the Swift 6 language mode
    |                                           `- note: task-isolated 'sink' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
163 |         }
164 |     }
[50/50] Compiling kubrick SourceDiscoverer.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:147:34: warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 23 | }
 24 |
 25 | public class AVStream: AVStreamProtocol {
    |              `- note: class 'AVStream' does not conform to the 'Sendable' protocol
 26 |
 27 |     public var session: CaptureSession
    :
145 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
146 |             // If we have a video format, build the config packets and send them
147 |             if let videoFormat = self.muxSink.videoFormat {
    |                                  `- warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
148 |                 do {
149 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:162:43: warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |             // Append the endpoint sink to the mux sink
161 |             // Audio / Video data should start streaming over the network from here
162 |             self.muxSink.nextSinks.append(sink)
    |                                           `- warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
163 |         }
164 |     }
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sinks/EndpointSink.swift:4:14: note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 2 | import Foundation
 3 |
 4 | public class EndpointSink: Sink<BinaryEncodable> {
   |              `- note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 5 |
 6 |     var endpoint: Writeable
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:147:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
145 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
146 |             // If we have a video format, build the config packets and send them
147 |             if let videoFormat = self.muxSink.videoFormat {
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
148 |                 do {
149 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
/Users/admin/builder/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:162:43: warning: sending 'sink' risks causing data races; this is an error in the Swift 6 language mode
160 |             // Append the endpoint sink to the mux sink
161 |             // Audio / Video data should start streaming over the network from here
162 |             self.muxSink.nextSinks.append(sink)
    |                                           |- warning: sending 'sink' risks causing data races; this is an error in the Swift 6 language mode
    |                                           `- note: task-isolated 'sink' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
163 |         }
164 |     }
Build complete! (34.39s)
Fetching https://github.com/krad/grip.git
[4/176] Fetching grip
Fetched https://github.com/krad/grip.git from cache (0.72s)
Computing version for https://github.com/krad/grip.git
Computed https://github.com/krad/grip.git at 1.3.5 (0.67s)
Creating working copy for https://github.com/krad/grip.git
Working copy of https://github.com/krad/grip.git resolved at 1.3.5
Build complete.
{
  "dependencies" : [
    {
      "identity" : "grip",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.3.5",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/krad/grip.git"
    }
  ],
  "manifest_display_name" : "kubrick",
  "name" : "kubrick",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "kubrick",
      "targets" : [
        "kubrick"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "kubrickTests",
      "module_type" : "SwiftTarget",
      "name" : "kubrickTests",
      "path" : "Tests/kubrickTests",
      "sources" : [
        "AudioSinkTests.swift",
        "BasicCaptureTests.swift",
        "CameraTests.swift",
        "DisplayStreamTests.swift",
        "Mocks.swift",
        "MuxerSinkTests.swift",
        "SessionTests.swift",
        "SinkTests.swift",
        "SourceDiscovererTests.swift",
        "SourceTests.swift",
        "StreamTests.swift",
        "TestHelpers.swift",
        "VideoSinkTests.swift"
      ],
      "target_dependencies" : [
        "kubrick"
      ],
      "type" : "test"
    },
    {
      "c99name" : "kubrick",
      "module_type" : "SwiftTarget",
      "name" : "kubrick",
      "path" : "Sources/kubrick",
      "product_dependencies" : [
        "grip"
      ],
      "product_memberships" : [
        "kubrick"
      ],
      "sources" : [
        "Encoders/AACEncoder.swift",
        "Encoders/AudioEncoder.swift",
        "Encoders/H264Encoder.swift",
        "Encoders/H264Settings.swift",
        "Encoders/VideoEncoder.swift",
        "Helpers/Bytes.swift",
        "Helpers/Rational.swift",
        "Helpers/ThreadSafeArray.swift",
        "MediaDevices/Camera.swift",
        "MediaDevices/Clock.swift",
        "MediaDevices/Display.swift",
        "MediaDevices/MediaDevice.swift",
        "MediaDevices/MediaDeviceInput.swift",
        "MediaDevices/MediaDeviceOutput.swift",
        "MediaDevices/MediaDeviceReader.swift",
        "MediaDevices/Microphone.swift",
        "MediaDevices/Readers/AudioReader.swift",
        "MediaDevices/Readers/VideoReader.swift",
        "Samples/MediaFormat.swift",
        "Samples/Sample.swift",
        "Samples/SampleTransport.swift",
        "Samples/Session.swift",
        "Sinks/AACEncoderSink.swift",
        "Sinks/EndpointSink.swift",
        "Sinks/FileEndpoint.swift",
        "Sinks/H264EncoderSink.swift",
        "Sinks/MuxerSink.swift",
        "Sinks/PrettyPortraitSink.swift",
        "Sinks/Sink.swift",
        "Sources/AVStream.swift",
        "Sources/Source.swift",
        "Sources/SourceDiscoverer.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "4.0"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.