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 CatPrint, reference 1.0.3 (8901ba), with Swift 6.1 for macOS (SPM) on 28 Apr 2025 03:17:07 UTC.

Swift 6 data race errors: 7

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Benzoate/CatPrint.swift.git
Reference: 1.0.3
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Benzoate/CatPrint.swift
 * tag               1.0.3      -> FETCH_HEAD
HEAD is now at 8901ba6 Add optional setting for using run length encoding
Cloned https://github.com/Benzoate/CatPrint.swift.git
Revision (git rev-parse @):
8901ba6dbd620f4c004231ee98604c7c2a42b16e
SUCCESS checkout https://github.com/Benzoate/CatPrint.swift.git at 1.0.3
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "catprint.swift",
      "name": "CatPrint",
      "url": "https://github.com/Benzoate/CatPrint.swift.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/CatPrint.swift",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/Benzoate/CatPrint.swift.git
[1/54] Fetching catprint.swift
Fetched https://github.com/Benzoate/CatPrint.swift.git from cache (0.65s)
Creating working copy for https://github.com/Benzoate/CatPrint.swift.git
Working copy of https://github.com/Benzoate/CatPrint.swift.git resolved at 1.0.3 (8901ba6)
warning: '.resolve-product-dependencies': dependency 'catprint.swift' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/Benzoate/CatPrint.swift.git
https://github.com/Benzoate/CatPrint.swift.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "CatPrint",
  "name" : "CatPrint",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "16.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0"
    }
  ],
  "products" : [
    {
      "name" : "CatPrint",
      "targets" : [
        "CatPrint"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "CatPrint",
      "module_type" : "SwiftTarget",
      "name" : "CatPrint",
      "path" : "Sources",
      "product_memberships" : [
        "CatPrint"
      ],
      "sources" : [
        "CatPrinter.swift",
        "Extensions/Image+Grayscale.swift",
        "Models/CatPrinter+BluetoothInfo.swift",
        "Models/CatPrinter+ImageProcessingOption.swift",
        "Models/CatPrinter+Printer.swift",
        "Models/CatPrinter+Settings.swift",
        "Models/CatPrinterError.swift",
        "Models/PrinterImageData.swift",
        "PrinterCommands.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/12] Compiling CatPrint CatPrinter+Printer.swift
[4/12] Compiling CatPrint CatPrinter+Settings.swift
[5/12] Compiling CatPrint CatPrinter+ImageProcessingOption.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/CatPrinter+ImageProcessingOption.swift:5:27: warning: static property 'addWhiteBackground' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | public extension CatPrinter {
 2 |     struct ImageProcessingOption: OptionSet {
   |            `- note: consider making struct 'ImageProcessingOption' conform to the 'Sendable' protocol
 3 |         public let rawValue: Int
 4 |
 5 |         public static let addWhiteBackground = ImageProcessingOption(rawValue: 1 << 0)
   |                           |- warning: static property 'addWhiteBackground' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'addWhiteBackground' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |         public static let convertToGrayscale = ImageProcessingOption(rawValue: 1 << 1)
 7 |         public static let floydSteinbergDithering = ImageProcessingOption(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Models/CatPrinter+ImageProcessingOption.swift:6:27: warning: static property 'convertToGrayscale' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | public extension CatPrinter {
 2 |     struct ImageProcessingOption: OptionSet {
   |            `- note: consider making struct 'ImageProcessingOption' conform to the 'Sendable' protocol
 3 |         public let rawValue: Int
 4 |
 5 |         public static let addWhiteBackground = ImageProcessingOption(rawValue: 1 << 0)
 6 |         public static let convertToGrayscale = ImageProcessingOption(rawValue: 1 << 1)
   |                           |- warning: static property 'convertToGrayscale' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'convertToGrayscale' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 7 |         public static let floydSteinbergDithering = ImageProcessingOption(rawValue: 1 << 2)
 8 |
/Users/admin/builder/spi-builder-workspace/Sources/Models/CatPrinter+ImageProcessingOption.swift:7:27: warning: static property 'floydSteinbergDithering' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | public extension CatPrinter {
 2 |     struct ImageProcessingOption: OptionSet {
   |            `- note: consider making struct 'ImageProcessingOption' conform to the 'Sendable' protocol
 3 |         public let rawValue: Int
 4 |
 5 |         public static let addWhiteBackground = ImageProcessingOption(rawValue: 1 << 0)
 6 |         public static let convertToGrayscale = ImageProcessingOption(rawValue: 1 << 1)
 7 |         public static let floydSteinbergDithering = ImageProcessingOption(rawValue: 1 << 2)
   |                           |- warning: static property 'floydSteinbergDithering' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'floydSteinbergDithering' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |         public static let all: ImageProcessingOption = [.addWhiteBackground, .convertToGrayscale, .floydSteinbergDithering]
/Users/admin/builder/spi-builder-workspace/Sources/Models/CatPrinter+ImageProcessingOption.swift:9:27: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | public extension CatPrinter {
 2 |     struct ImageProcessingOption: OptionSet {
   |            `- note: consider making struct 'ImageProcessingOption' conform to the 'Sendable' protocol
 3 |         public let rawValue: Int
 4 |
   :
 7 |         public static let floydSteinbergDithering = ImageProcessingOption(rawValue: 1 << 2)
 8 |
 9 |         public static let all: ImageProcessingOption = [.addWhiteBackground, .convertToGrayscale, .floydSteinbergDithering]
   |                           |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |
11 |         public init(rawValue: Int) {
[6/12] Compiling CatPrint CatPrinter+BluetoothInfo.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/CatPrinter+BluetoothInfo.swift:2:22: warning: using '@_implementationOnly' without enabling library evolution for 'CatPrint' may lead to instability during execution
 1 | import Foundation
 2 | @_implementationOnly import CoreBluetooth
   |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'CatPrint' may lead to instability during execution
 3 |
 4 | extension CatPrinter {
[7/12] Compiling CatPrint PrinterCommands.swift
[8/12] Compiling CatPrint CatPrinterError.swift
[9/12] Compiling CatPrint PrinterImageData.swift
[10/12] Compiling CatPrint CatPrinter.swift
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:2:22: warning: using '@_implementationOnly' without enabling library evolution for 'CatPrint' may lead to instability during execution
  1 | import Foundation
  2 | @_implementationOnly import CoreBluetooth
    |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'CatPrint' may lead to instability during execution
  3 | import Combine
  4 | import CoreGraphics
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:28:14: warning: actor-isolated property 'settings' can not be mutated from the main actor; this is an error in the Swift 6 language mode
  8 |     @Published private(set) public var availablePrinters: Set<Printer> = []
  9 |
 10 |     let settings: Settings
    |         `- note: mutation of this property is only permitted within the actor
 11 |
 12 |     private let centralManager: CBCentralManager = .init()
    :
 26 |         settings: Settings = .default
 27 |     ) {
 28 |         self.settings = settings
    |              `- warning: actor-isolated property 'settings' can not be mutated from the main actor; this is an error in the Swift 6 language mode
 29 |         centralManager.delegate = managerProxy
 30 |         Task {
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:29:9: warning: actor-isolated property 'centralManager' can not be referenced from the main actor; this is an error in the Swift 6 language mode
 10 |     let settings: Settings
 11 |
 12 |     private let centralManager: CBCentralManager = .init()
    |                 `- note: property declared here
 13 |     private let managerProxy = CentralManagerProxy()
 14 |     private let peripheralProxy = PeripheralProxy()
    :
 27 |     ) {
 28 |         self.settings = settings
 29 |         centralManager.delegate = managerProxy
    |         `- warning: actor-isolated property 'centralManager' can not be referenced from the main actor; this is an error in the Swift 6 language mode
 30 |         Task {
 31 |             await setupObservers()
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:29:35: warning: actor-isolated property 'managerProxy' can not be referenced from the main actor; this is an error in the Swift 6 language mode
 11 |
 12 |     private let centralManager: CBCentralManager = .init()
 13 |     private let managerProxy = CentralManagerProxy()
    |                 `- note: property declared here
 14 |     private let peripheralProxy = PeripheralProxy()
 15 |     private let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "CatPrinter")
    :
 27 |     ) {
 28 |         self.settings = settings
 29 |         centralManager.delegate = managerProxy
    |                                   `- warning: actor-isolated property 'managerProxy' can not be referenced from the main actor; this is an error in the Swift 6 language mode
 30 |         Task {
 31 |             await setupObservers()
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:261:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
259 |             }
260 |             .sink { [weak self] peripheral in
261 |                 Task { [weak self] in
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
262 |                     await self?.connectToPeripheral(peripheral)
    |                                                     `- note: closure captures 'peripheral' which is accessible to code in the current task
263 |                 }
264 |             }
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:262:33: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
260 |             .sink { [weak self] peripheral in
261 |                 Task { [weak self] in
262 |                     await self?.connectToPeripheral(peripheral)
    |                                 |- warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
    |                                 `- note: sending task-isolated 'peripheral' to actor-isolated instance method 'connectToPeripheral' risks causing data races between actor-isolated and task-isolated uses
263 |                 }
264 |             }
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:275:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
273 |         managerProxy.peripheralDisconnected
274 |             .sink { [weak self] peripheral in
275 |                 Task { [weak self] in
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
276 |                     await self?.onPeripheralDisconnected(peripheral)
    |                                                          `- note: closure captures 'peripheral' which is accessible to code in the current task
277 |                 }
278 |             }
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:276:33: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
274 |             .sink { [weak self] peripheral in
275 |                 Task { [weak self] in
276 |                     await self?.onPeripheralDisconnected(peripheral)
    |                                 |- warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
    |                                 `- note: sending task-isolated 'peripheral' to actor-isolated instance method 'onPeripheralDisconnected' risks causing data races between actor-isolated and task-isolated uses
277 |                 }
278 |             }
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:283:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
281 |         peripheralProxy.servicesDiscovered
282 |             .sink { [weak self] peripheral in
283 |                 Task { [weak self] in
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
284 |                     await self?.onServicesDiscovered(peripheral)
    |                                                      `- note: closure captures 'peripheral' which is accessible to code in the current task
285 |                 }
286 |             }
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:284:33: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
282 |             .sink { [weak self] peripheral in
283 |                 Task { [weak self] in
284 |                     await self?.onServicesDiscovered(peripheral)
    |                                 |- warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
    |                                 `- note: sending task-isolated 'peripheral' to actor-isolated instance method 'onServicesDiscovered' risks causing data races between actor-isolated and task-isolated uses
285 |                 }
286 |             }
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:297:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
295 |             }
296 |             .sink { [weak self] peripheral, service, characteristic in
297 |                 Task { [weak self] in
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
298 |                     await self?.registerMatchedCharacteristic(
299 |                         peripheral: peripheral,
    |                                     `- note: closure captures non-Sendable 'peripheral'
300 |                         service: service,
    |                                  `- note: closure captures non-Sendable 'service'
301 |                         characteristic: characteristic
    |                                         `- note: closure captures non-Sendable 'characteristic'
302 |                     )
303 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:298:33: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
296 |             .sink { [weak self] peripheral, service, characteristic in
297 |                 Task { [weak self] in
298 |                     await self?.registerMatchedCharacteristic(
    |                                 |- warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
    |                                 `- note: sending task-isolated 'peripheral' to actor-isolated instance method 'registerMatchedCharacteristic(peripheral:service:characteristic:)' risks causing data races between actor-isolated and task-isolated uses
299 |                         peripheral: peripheral,
300 |                         service: service,
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:298:33: warning: sending 'service' risks causing data races; this is an error in the Swift 6 language mode
296 |             .sink { [weak self] peripheral, service, characteristic in
297 |                 Task { [weak self] in
298 |                     await self?.registerMatchedCharacteristic(
    |                                 |- warning: sending 'service' risks causing data races; this is an error in the Swift 6 language mode
    |                                 `- note: sending task-isolated 'service' to actor-isolated instance method 'registerMatchedCharacteristic(peripheral:service:characteristic:)' risks causing data races between actor-isolated and task-isolated uses
299 |                         peripheral: peripheral,
300 |                         service: service,
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:298:33: warning: sending 'characteristic' risks causing data races; this is an error in the Swift 6 language mode
296 |             .sink { [weak self] peripheral, service, characteristic in
297 |                 Task { [weak self] in
298 |                     await self?.registerMatchedCharacteristic(
    |                                 |- warning: sending 'characteristic' risks causing data races; this is an error in the Swift 6 language mode
    |                                 `- note: sending task-isolated 'characteristic' to actor-isolated instance method 'registerMatchedCharacteristic(peripheral:service:characteristic:)' risks causing data races between actor-isolated and task-isolated uses
299 |                         peripheral: peripheral,
300 |                         service: service,
[11/12] Compiling CatPrint Image+Grayscale.swift
[12/12] Emitting module CatPrint
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:2:22: warning: using '@_implementationOnly' without enabling library evolution for 'CatPrint' may lead to instability during execution
  1 | import Foundation
  2 | @_implementationOnly import CoreBluetooth
    |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'CatPrint' may lead to instability during execution
  3 | import Combine
  4 | import CoreGraphics
/Users/admin/builder/spi-builder-workspace/Sources/Models/CatPrinter+BluetoothInfo.swift:2:22: warning: using '@_implementationOnly' without enabling library evolution for 'CatPrint' may lead to instability during execution
 1 | import Foundation
 2 | @_implementationOnly import CoreBluetooth
   |                      `- warning: using '@_implementationOnly' without enabling library evolution for 'CatPrint' may lead to instability during execution
 3 |
 4 | extension CatPrinter {
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:28:14: warning: actor-isolated property 'settings' can not be mutated from the main actor; this is an error in the Swift 6 language mode
  8 |     @Published private(set) public var availablePrinters: Set<Printer> = []
  9 |
 10 |     let settings: Settings
    |         `- note: mutation of this property is only permitted within the actor
 11 |
 12 |     private let centralManager: CBCentralManager = .init()
    :
 26 |         settings: Settings = .default
 27 |     ) {
 28 |         self.settings = settings
    |              `- warning: actor-isolated property 'settings' can not be mutated from the main actor; this is an error in the Swift 6 language mode
 29 |         centralManager.delegate = managerProxy
 30 |         Task {
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:29:9: warning: actor-isolated property 'centralManager' can not be referenced from the main actor; this is an error in the Swift 6 language mode
 10 |     let settings: Settings
 11 |
 12 |     private let centralManager: CBCentralManager = .init()
    |                 `- note: property declared here
 13 |     private let managerProxy = CentralManagerProxy()
 14 |     private let peripheralProxy = PeripheralProxy()
    :
 27 |     ) {
 28 |         self.settings = settings
 29 |         centralManager.delegate = managerProxy
    |         `- warning: actor-isolated property 'centralManager' can not be referenced from the main actor; this is an error in the Swift 6 language mode
 30 |         Task {
 31 |             await setupObservers()
/Users/admin/builder/spi-builder-workspace/Sources/CatPrinter.swift:29:35: warning: actor-isolated property 'managerProxy' can not be referenced from the main actor; this is an error in the Swift 6 language mode
 11 |
 12 |     private let centralManager: CBCentralManager = .init()
 13 |     private let managerProxy = CentralManagerProxy()
    |                 `- note: property declared here
 14 |     private let peripheralProxy = PeripheralProxy()
 15 |     private let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "CatPrinter")
    :
 27 |     ) {
 28 |         self.settings = settings
 29 |         centralManager.delegate = managerProxy
    |                                   `- warning: actor-isolated property 'managerProxy' can not be referenced from the main actor; this is an error in the Swift 6 language mode
 30 |         Task {
 31 |             await setupObservers()
/Users/admin/builder/spi-builder-workspace/Sources/Models/CatPrinter+ImageProcessingOption.swift:5:27: warning: static property 'addWhiteBackground' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | public extension CatPrinter {
 2 |     struct ImageProcessingOption: OptionSet {
   |            `- note: consider making struct 'ImageProcessingOption' conform to the 'Sendable' protocol
 3 |         public let rawValue: Int
 4 |
 5 |         public static let addWhiteBackground = ImageProcessingOption(rawValue: 1 << 0)
   |                           |- warning: static property 'addWhiteBackground' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'addWhiteBackground' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |         public static let convertToGrayscale = ImageProcessingOption(rawValue: 1 << 1)
 7 |         public static let floydSteinbergDithering = ImageProcessingOption(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Models/CatPrinter+ImageProcessingOption.swift:6:27: warning: static property 'convertToGrayscale' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | public extension CatPrinter {
 2 |     struct ImageProcessingOption: OptionSet {
   |            `- note: consider making struct 'ImageProcessingOption' conform to the 'Sendable' protocol
 3 |         public let rawValue: Int
 4 |
 5 |         public static let addWhiteBackground = ImageProcessingOption(rawValue: 1 << 0)
 6 |         public static let convertToGrayscale = ImageProcessingOption(rawValue: 1 << 1)
   |                           |- warning: static property 'convertToGrayscale' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'convertToGrayscale' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 7 |         public static let floydSteinbergDithering = ImageProcessingOption(rawValue: 1 << 2)
 8 |
/Users/admin/builder/spi-builder-workspace/Sources/Models/CatPrinter+ImageProcessingOption.swift:7:27: warning: static property 'floydSteinbergDithering' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | public extension CatPrinter {
 2 |     struct ImageProcessingOption: OptionSet {
   |            `- note: consider making struct 'ImageProcessingOption' conform to the 'Sendable' protocol
 3 |         public let rawValue: Int
 4 |
 5 |         public static let addWhiteBackground = ImageProcessingOption(rawValue: 1 << 0)
 6 |         public static let convertToGrayscale = ImageProcessingOption(rawValue: 1 << 1)
 7 |         public static let floydSteinbergDithering = ImageProcessingOption(rawValue: 1 << 2)
   |                           |- warning: static property 'floydSteinbergDithering' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'floydSteinbergDithering' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |         public static let all: ImageProcessingOption = [.addWhiteBackground, .convertToGrayscale, .floydSteinbergDithering]
/Users/admin/builder/spi-builder-workspace/Sources/Models/CatPrinter+ImageProcessingOption.swift:9:27: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | public extension CatPrinter {
 2 |     struct ImageProcessingOption: OptionSet {
   |            `- note: consider making struct 'ImageProcessingOption' conform to the 'Sendable' protocol
 3 |         public let rawValue: Int
 4 |
   :
 7 |         public static let floydSteinbergDithering = ImageProcessingOption(rawValue: 1 << 2)
 8 |
 9 |         public static let all: ImageProcessingOption = [.addWhiteBackground, .convertToGrayscale, .floydSteinbergDithering]
   |                           |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'CatPrinter.ImageProcessingOption' may have shared mutable state; this is an error in the Swift 6 language mode
   |                           |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |
11 |         public init(rawValue: Int) {
Build complete! (6.76s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "CatPrint",
  "name" : "CatPrint",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "16.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0"
    }
  ],
  "products" : [
    {
      "name" : "CatPrint",
      "targets" : [
        "CatPrint"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "CatPrint",
      "module_type" : "SwiftTarget",
      "name" : "CatPrint",
      "path" : "Sources",
      "product_memberships" : [
        "CatPrint"
      ],
      "sources" : [
        "CatPrinter.swift",
        "Extensions/Image+Grayscale.swift",
        "Models/CatPrinter+BluetoothInfo.swift",
        "Models/CatPrinter+ImageProcessingOption.swift",
        "Models/CatPrinter+Printer.swift",
        "Models/CatPrinter+Settings.swift",
        "Models/CatPrinterError.swift",
        "Models/PrinterImageData.swift",
        "PrinterCommands.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.