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 SwiftWhisper, reference 1.2.0 (a19200), with Swift 6.0 for Linux on 3 Nov 2024 11:07:13 UTC.

Swift 6 data race errors: 1

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/exPHAT/SwiftWhisper.git
Reference: 1.2.0
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/exPHAT/SwiftWhisper
 * tag               1.2.0      -> FETCH_HEAD
HEAD is now at a192004 Merge pull request #25 from exPHAT/enhanced_platform_support
Submodule path 'whisper.cpp': checked out '95b02d76b04d18e4ce37ed8353a1f0797f1717ea'
Submodule path 'whisper.cpp/bindings/ios': checked out 'de46d9e7817fe851c109d66080239d415812d32a'
Submodule 'whisper.cpp' (https://github.com/ggerganov/whisper.cpp.git) registered for path 'whisper.cpp'
Cloning into '/host/spi-builder-workspace/whisper.cpp'...
Submodule 'bindings/ios' (https://github.com/ggerganov/whisper.spm) registered for path 'whisper.cpp/bindings/ios'
Cloning into '/host/spi-builder-workspace/whisper.cpp/bindings/ios'...
Cloned https://github.com/exPHAT/SwiftWhisper.git
Revision (git rev-parse @):
a192004db08de7c6eaa169eede77f1625e7d23fb
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/exPHAT/SwiftWhisper.git at 1.2.0
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/exPHAT/SwiftWhisper.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/4] Write sources
[1/4] Write swift-version-24593BA9C3E375BF.txt
[2/4] Compiling whisper_cpp ggml.c
[3/4] Compiling whisper_cpp whisper.cpp
[5/12] Compiling SwiftWhisper WhisperSamplingStrategy.swift
[6/12] Compiling SwiftWhisper WhisperDelegate.swift
[7/12] Emitting module SwiftWhisper
/host/spi-builder-workspace/Sources/SwiftWhisper/WhisperParams.swift:7:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'WhisperParams' may have shared mutable state; this is an error in the Swift 6 language mode
 4 | // swiftlint:disable identifier_name
 5 | @dynamicMemberLookup
 6 | public class WhisperParams {
   |              `- note: class 'WhisperParams' does not conform to the 'Sendable' protocol
 7 |     public static let `default` = WhisperParams(strategy: .greedy)
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'WhisperParams' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' 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
 8 |
 9 |     internal var whisperParams: whisper_full_params
[8/12] Compiling SwiftWhisper Whisper.swift
/host/spi-builder-workspace/Sources/SwiftWhisper/WhisperParams.swift:7:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'WhisperParams' may have shared mutable state; this is an error in the Swift 6 language mode
 4 | // swiftlint:disable identifier_name
 5 | @dynamicMemberLookup
 6 | public class WhisperParams {
   |              `- note: class 'WhisperParams' does not conform to the 'Sendable' protocol
 7 |     public static let `default` = WhisperParams(strategy: .greedy)
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'WhisperParams' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' 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
 8 |
 9 |     internal var whisperParams: whisper_full_params
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:72:17: warning: capture of 'delegate' with non-sendable type 'any WhisperDelegate' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 70 |
 71 |             DispatchQueue.main.async {
 72 |                 delegate.whisper(whisper, didProcessNewSegments: newSegments, atIndex: Int(startIndex))
    |                 `- warning: capture of 'delegate' with non-sendable type 'any WhisperDelegate' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 73 |             }
 74 |         }
/host/spi-builder-workspace/Sources/SwiftWhisper/WhisperDelegate.swift:3:17: note: protocol 'WhisperDelegate' does not conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public protocol WhisperDelegate: AnyObject {
   |                 `- note: protocol 'WhisperDelegate' does not conform to the 'Sendable' protocol
 4 |     func whisper(_ aWhisper: Whisper, didUpdateProgress progress: Double)
 5 |     func whisper(_ aWhisper: Whisper, didProcessNewSegments segments: [Segment], atIndex index: Int)
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:72:34: warning: capture of 'whisper' with non-sendable type 'Whisper' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  2 | import whisper_cpp
  3 |
  4 | public class Whisper {
    |              `- note: class 'Whisper' does not conform to the 'Sendable' protocol
  5 |     private let whisperContext: OpaquePointer
  6 |     private var unmanagedSelf: Unmanaged<Whisper>?
    :
 70 |
 71 |             DispatchQueue.main.async {
 72 |                 delegate.whisper(whisper, didProcessNewSegments: newSegments, atIndex: Int(startIndex))
    |                                  `- warning: capture of 'whisper' with non-sendable type 'Whisper' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 73 |             }
 74 |         }
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:72:66: warning: capture of 'newSegments' with non-sendable type '[Segment]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 70 |
 71 |             DispatchQueue.main.async {
 72 |                 delegate.whisper(whisper, didProcessNewSegments: newSegments, atIndex: Int(startIndex))
    |                                                                  `- warning: capture of 'newSegments' with non-sendable type '[Segment]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 73 |             }
 74 |         }
/host/spi-builder-workspace/Sources/SwiftWhisper/Segment.swift:3:15: note: consider making struct 'Segment' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Segment: Equatable {
  |               `- note: consider making struct 'Segment' conform to the 'Sendable' protocol
4 |     public let startTime: Int
5 |     public let endTime: Int
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:72:66: warning: reference to captured var 'newSegments' in concurrently-executing code; this is an error in the Swift 6 language mode
 70 |
 71 |             DispatchQueue.main.async {
 72 |                 delegate.whisper(whisper, didProcessNewSegments: newSegments, atIndex: Int(startIndex))
    |                                                                  `- warning: reference to captured var 'newSegments' in concurrently-executing code; this is an error in the Swift 6 language mode
 73 |             }
 74 |         }
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:94:17: warning: capture of 'whisper' with non-sendable type 'Whisper' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  2 | import whisper_cpp
  3 |
  4 | public class Whisper {
    |              `- note: class 'Whisper' does not conform to the 'Sendable' protocol
  5 |     private let whisperContext: OpaquePointer
  6 |     private var unmanagedSelf: Unmanaged<Whisper>?
    :
 92 |
 93 |             DispatchQueue.main.async {
 94 |                 whisper.delegate?.whisper(whisper, didUpdateProgress: Double(progress) / 100)
    |                 `- warning: capture of 'whisper' with non-sendable type 'Whisper' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 95 |             }
 96 |         }
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:127:26: warning: capture of 'self' with non-sendable type 'Whisper' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  2 | import whisper_cpp
  3 |
  4 | public class Whisper {
    |              `- note: class 'Whisper' does not conform to the 'Sendable' protocol
  5 |     private let whisperContext: OpaquePointer
  6 |     private var unmanagedSelf: Unmanaged<Whisper>?
    :
125 |
126 |         DispatchQueue.global(qos: .userInitiated).async {
127 |             whisper_full(self.whisperContext, self.params.whisperParams, audioFrames, Int32(audioFrames.count))
    |                          `- warning: capture of 'self' with non-sendable type 'Whisper' in a `@Sendable` closure; this is an error in the Swift 6 language mode
128 |
129 |             let segmentCount = whisper_full_n_segments(self.whisperContext)
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:156:21: warning: capture of 'wrappedCompletionHandler' with non-sendable type '(Result<[Segment], any Error>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
154 |
155 |                     self.delegate?.whisper(self, didErrorWith: error)
156 |                     wrappedCompletionHandler(.failure(error))
    |                     |- warning: capture of 'wrappedCompletionHandler' with non-sendable type '(Result<[Segment], any Error>) -> Void' 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'
157 |                 }
158 |             } else {
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:151:21: warning: capture of 'cancelCallback' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
149 |                 DispatchQueue.main.async {
150 |                     // Should cancel callback be called after delegate and completionHandler?
151 |                     cancelCallback()
    |                     |- warning: capture of 'cancelCallback' with non-sendable type '() -> Void' 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'
152 |
153 |                     let error = WhisperError.cancelled
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:155:21: warning: capture of 'self' with non-sendable type 'Whisper' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  2 | import whisper_cpp
  3 |
  4 | public class Whisper {
    |              `- note: class 'Whisper' does not conform to the 'Sendable' protocol
  5 |     private let whisperContext: OpaquePointer
  6 |     private var unmanagedSelf: Unmanaged<Whisper>?
    :
153 |                     let error = WhisperError.cancelled
154 |
155 |                     self.delegate?.whisper(self, didErrorWith: error)
    |                     `- warning: capture of 'self' with non-sendable type 'Whisper' in a `@Sendable` closure; this is an error in the Swift 6 language mode
156 |                     wrappedCompletionHandler(.failure(error))
157 |                 }
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:156:21: warning: capture of 'wrappedCompletionHandler' with non-sendable type '(Result<[Segment], any Error>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
154 |
155 |                     self.delegate?.whisper(self, didErrorWith: error)
156 |                     wrappedCompletionHandler(.failure(error))
    |                     |- warning: capture of 'wrappedCompletionHandler' with non-sendable type '(Result<[Segment], any Error>) -> Void' 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'
157 |                 }
158 |             } else {
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:160:21: warning: capture of 'self' with non-sendable type 'Whisper' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  2 | import whisper_cpp
  3 |
  4 | public class Whisper {
    |              `- note: class 'Whisper' does not conform to the 'Sendable' protocol
  5 |     private let whisperContext: OpaquePointer
  6 |     private var unmanagedSelf: Unmanaged<Whisper>?
    :
158 |             } else {
159 |                 DispatchQueue.main.async {
160 |                     self.delegate?.whisper(self, didCompleteWithSegments: segments)
    |                     `- warning: capture of 'self' with non-sendable type 'Whisper' in a `@Sendable` closure; this is an error in the Swift 6 language mode
161 |                     wrappedCompletionHandler(.success(segments))
162 |                 }
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:160:75: warning: capture of 'segments' with non-sendable type '[Segment]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
158 |             } else {
159 |                 DispatchQueue.main.async {
160 |                     self.delegate?.whisper(self, didCompleteWithSegments: segments)
    |                                                                           `- warning: capture of 'segments' with non-sendable type '[Segment]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
161 |                     wrappedCompletionHandler(.success(segments))
162 |                 }
/host/spi-builder-workspace/Sources/SwiftWhisper/Segment.swift:3:15: note: consider making struct 'Segment' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Segment: Equatable {
  |               `- note: consider making struct 'Segment' conform to the 'Sendable' protocol
4 |     public let startTime: Int
5 |     public let endTime: Int
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:161:21: warning: capture of 'wrappedCompletionHandler' with non-sendable type '(Result<[Segment], any Error>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
159 |                 DispatchQueue.main.async {
160 |                     self.delegate?.whisper(self, didCompleteWithSegments: segments)
161 |                     wrappedCompletionHandler(.success(segments))
    |                     |- warning: capture of 'wrappedCompletionHandler' with non-sendable type '(Result<[Segment], any Error>) -> Void' 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'
162 |                 }
163 |             }
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:160:75: warning: reference to captured var 'segments' in concurrently-executing code; this is an error in the Swift 6 language mode
158 |             } else {
159 |                 DispatchQueue.main.async {
160 |                     self.delegate?.whisper(self, didCompleteWithSegments: segments)
    |                                                                           `- warning: reference to captured var 'segments' in concurrently-executing code; this is an error in the Swift 6 language mode
161 |                     wrappedCompletionHandler(.success(segments))
162 |                 }
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:161:55: warning: reference to captured var 'segments' in concurrently-executing code; this is an error in the Swift 6 language mode
159 |                 DispatchQueue.main.async {
160 |                     self.delegate?.whisper(self, didCompleteWithSegments: segments)
161 |                     wrappedCompletionHandler(.success(segments))
    |                                                       `- warning: reference to captured var 'segments' in concurrently-executing code; this is an error in the Swift 6 language mode
162 |                 }
163 |             }
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:72:17: warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
 70 |
 71 |             DispatchQueue.main.async {
 72 |                 delegate.whisper(whisper, didProcessNewSegments: newSegments, atIndex: Int(startIndex))
    |                 |- warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'delegate' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 73 |             }
 74 |         }
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:72:34: warning: sending 'whisper' risks causing data races; this is an error in the Swift 6 language mode
 70 |
 71 |             DispatchQueue.main.async {
 72 |                 delegate.whisper(whisper, didProcessNewSegments: newSegments, atIndex: Int(startIndex))
    |                                  |- warning: sending 'whisper' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'whisper' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 73 |             }
 74 |         }
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:94:17: warning: sending 'whisper' risks causing data races; this is an error in the Swift 6 language mode
 92 |
 93 |             DispatchQueue.main.async {
 94 |                 whisper.delegate?.whisper(whisper, didUpdateProgress: Double(progress) / 100)
    |                 |- warning: sending 'whisper' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'whisper' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 95 |             }
 96 |         }
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:151:21: warning: sending 'cancelCallback' risks causing data races; this is an error in the Swift 6 language mode
147 |
148 |             if let cancelCallback = self.cancelCallback {
149 |                 DispatchQueue.main.async {
    |                                          `- note: access can happen concurrently
150 |                     // Should cancel callback be called after delegate and completionHandler?
151 |                     cancelCallback()
    |                     |- warning: sending 'cancelCallback' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: 'cancelCallback' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
152 |
153 |                     let error = WhisperError.cancelled
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:155:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
153 |                     let error = WhisperError.cancelled
154 |
155 |                     self.delegate?.whisper(self, didErrorWith: error)
    |                     |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
156 |                     wrappedCompletionHandler(.failure(error))
157 |                 }
    :
163 |             }
164 |
165 |             self.frameCount = nil
    |                             `- note: access can happen concurrently
166 |             self.cancelCallback = nil
167 |             self.inProgress = false
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:160:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
158 |             } else {
159 |                 DispatchQueue.main.async {
160 |                     self.delegate?.whisper(self, didCompleteWithSegments: segments)
    |                     |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
161 |                     wrappedCompletionHandler(.success(segments))
162 |                 }
163 |             }
164 |
165 |             self.frameCount = nil
    |                             `- note: access can happen concurrently
166 |             self.cancelCallback = nil
167 |             self.inProgress = false
/host/spi-builder-workspace/Sources/SwiftWhisper/Whisper.swift:184:26: warning: sending 'segments' risks causing data races; this is an error in the Swift 6 language mode
182 |                 switch result {
183 |                 case .success(let segments):
184 |                     cont.resume(returning: segments)
    |                          |- warning: sending 'segments' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'segments' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
185 |                 case .failure(let error):
186 |                     cont.resume(throwing: error)
[9/12] Compiling SwiftWhisper Segment.swift
[10/12] Compiling SwiftWhisper WhisperParams.swift
/host/spi-builder-workspace/Sources/SwiftWhisper/WhisperParams.swift:7:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'WhisperParams' may have shared mutable state; this is an error in the Swift 6 language mode
 4 | // swiftlint:disable identifier_name
 5 | @dynamicMemberLookup
 6 | public class WhisperParams {
   |              `- note: class 'WhisperParams' does not conform to the 'Sendable' protocol
 7 |     public static let `default` = WhisperParams(strategy: .greedy)
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'WhisperParams' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'default' 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
 8 |
 9 |     internal var whisperParams: whisper_full_params
[11/12] Compiling SwiftWhisper WhisperLanguage.swift
[12/12] Compiling SwiftWhisper WhisperError.swift
Build complete! (27.94s)
Build complete.
{
  "cxx_language_standard" : "c++11",
  "dependencies" : [
  ],
  "manifest_display_name" : "SwiftWhisper",
  "name" : "SwiftWhisper",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "SwiftWhisper",
      "targets" : [
        "SwiftWhisper"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "whisper_cpp",
      "module_type" : "ClangTarget",
      "name" : "whisper_cpp",
      "path" : "Sources/whisper_cpp",
      "product_memberships" : [
        "SwiftWhisper"
      ],
      "sources" : [
        "ggml.c",
        "whisper.cpp"
      ],
      "type" : "library"
    },
    {
      "c99name" : "WhisperTests",
      "module_type" : "SwiftTarget",
      "name" : "WhisperTests",
      "path" : "Tests/WhisperTests",
      "resources" : [
        {
          "path" : "/host/spi-builder-workspace/Tests/WhisperTests/TestResources",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "File Tests/AudioFileTestCase.swift",
        "File Tests/ModelFileTestCase.swift",
        "File Tests/ResourceDependentTestCase.swift",
        "Model Tests/LoadModelTests.swift",
        "Transcription Tests/TranscriptionCancellationTests.swift",
        "Transcription Tests/TranscriptionParameterTests.swift",
        "Transcription Tests/TranscriptionTests.swift"
      ],
      "target_dependencies" : [
        "SwiftWhisper"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftWhisper",
      "module_type" : "SwiftTarget",
      "name" : "SwiftWhisper",
      "path" : "Sources/SwiftWhisper",
      "product_memberships" : [
        "SwiftWhisper"
      ],
      "sources" : [
        "Segment.swift",
        "Whisper.swift",
        "WhisperDelegate.swift",
        "WhisperError.swift",
        "WhisperLanguage.swift",
        "WhisperParams.swift",
        "WhisperSamplingStrategy.swift"
      ],
      "target_dependencies" : [
        "whisper_cpp"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.