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 Knob with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 0

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/bradhowes/Knob.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bradhowes/Knob
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 16e2265 Additional make targets to run KnobDemo
Cloned https://github.com/bradhowes/Knob.git
Revision (git rev-parse @):
16e2265e836fede2bf1a3b8df5a3b32dc26fe4fe
SUCCESS checkout https://github.com/bradhowes/Knob.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/bradhowes/Knob.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/12] Compiling Knob_iOS KnobView.swift
[5/12] Compiling Knob_iOS Knob.swift
[6/12] Emitting module Knob_iOS
[7/12] Compiling Knob_iOS Color.swift
[8/12] Emitting module Knob_macOS
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:242:15: warning: main actor-isolated instance method 'display' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
238 | // MARK: - CALayerDelegate
239 |
240 | extension Knob: CALayerDelegate {
    |                 `- note: add '@preconcurrency' to the 'CALayerDelegate' conformance to defer isolation checking to run time
241 |
242 |   public func display(_ layer: CALayer) {
    |               |- warning: main actor-isolated instance method 'display' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |               `- note: add 'nonisolated' to 'display' to make this instance method not isolated to the actor
243 |     if layer === trackLayer {
244 |       trackLayer.lineWidth = trackLineWidth
QuartzCore.CALayerDelegate:3:19: note: 'display' declared here
 1 | public protocol CALayerDelegate : NSObjectProtocol {
 2 |     @available(macOS 10.5, *)
 3 |     optional func display(_ layer: CALayer)
   |                   `- note: 'display' declared here
 4 |     @available(swift, obsoleted: 3, renamed: "display(_:)")
 5 |     optional func displayLayer(_ layer: CALayer)
AppKit.NSView:595:26: warning: main actor-isolated instance method 'accessibilityLabel()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
593 |     open func setAccessibilityContents(_ accessibilityContents: [Any]?)
594 |     @available(macOS 10.10, *)
595 |     @MainActor open func accessibilityLabel() -> String?
    |                          |- warning: main actor-isolated instance method 'accessibilityLabel()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                          `- note: add 'nonisolated' to 'accessibilityLabel()' to make this instance method not isolated to the actor
596 |     @available(macOS 10.10, *)
597 |     open func setAccessibilityLabel(_ accessibilityLabel: String?)
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:301:18: note: add '@preconcurrency' to the 'NSAccessibilitySlider' conformance to defer isolation checking to run time
299 | }
300 |
301 | extension Knob : NSAccessibilitySlider {
    |                  `- note: add '@preconcurrency' to the 'NSAccessibilitySlider' conformance to defer isolation checking to run time
302 |   public override func isAccessibilityElement() -> Bool { true }
303 |   public override func isAccessibilityEnabled() -> Bool { true }
AppKit.NSAccessibilitySlider:2:10: note: 'accessibilityLabel()' declared here
1 | public protocol NSAccessibilitySlider : NSAccessibilityElementProtocol {
2 |     func accessibilityLabel() -> String?
  |          `- note: 'accessibilityLabel()' declared here
3 |     func accessibilityValue() -> Any?
4 |     func accessibilityPerformIncrement() -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:306:24: warning: main actor-isolated instance method 'accessibilityValue()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
304 |
305 |   // Value is a NSString or a NSNumber
306 |   override public func accessibilityValue() -> Any? {
    |                        |- warning: main actor-isolated instance method 'accessibilityValue()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                        `- note: add 'nonisolated' to 'accessibilityValue()' to make this instance method not isolated to the actor
307 |     return NSNumber(value: value)
308 |   }
AppKit.NSAccessibilitySlider:3:10: note: 'accessibilityValue()' declared here
1 | public protocol NSAccessibilitySlider : NSAccessibilityElementProtocol {
2 |     func accessibilityLabel() -> String?
3 |     func accessibilityValue() -> Any?
  |          `- note: 'accessibilityValue()' declared here
4 |     func accessibilityPerformIncrement() -> Bool
5 |     func accessibilityPerformDecrement() -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:310:24: warning: main actor-isolated instance method 'accessibilityPerformIncrement()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
308 |   }
309 |
310 |   override public func accessibilityPerformIncrement() -> Bool {
    |                        |- warning: main actor-isolated instance method 'accessibilityPerformIncrement()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                        `- note: add 'nonisolated' to 'accessibilityPerformIncrement()' to make this instance method not isolated to the actor
311 |     guard value < maximumValue else { return false }
312 |     value += 1.0
AppKit.NSAccessibilitySlider:4:10: note: 'accessibilityPerformIncrement()' declared here
2 |     func accessibilityLabel() -> String?
3 |     func accessibilityValue() -> Any?
4 |     func accessibilityPerformIncrement() -> Bool
  |          `- note: 'accessibilityPerformIncrement()' declared here
5 |     func accessibilityPerformDecrement() -> Bool
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:316:24: warning: main actor-isolated instance method 'accessibilityPerformDecrement()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
314 |   }
315 |
316 |   override public func accessibilityPerformDecrement() -> Bool {
    |                        |- warning: main actor-isolated instance method 'accessibilityPerformDecrement()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                        `- note: add 'nonisolated' to 'accessibilityPerformDecrement()' to make this instance method not isolated to the actor
317 |     guard value > minimumValue else { return false }
318 |     value -= 1.0
AppKit.NSAccessibilitySlider:5:10: note: 'accessibilityPerformDecrement()' declared here
3 |     func accessibilityValue() -> Any?
4 |     func accessibilityPerformIncrement() -> Bool
5 |     func accessibilityPerformDecrement() -> Bool
  |          `- note: 'accessibilityPerformDecrement()' declared here
6 | }
[9/12] Compiling Knob_macOS Knob.swift
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:242:15: warning: main actor-isolated instance method 'display' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
238 | // MARK: - CALayerDelegate
239 |
240 | extension Knob: CALayerDelegate {
    |                 `- note: add '@preconcurrency' to the 'CALayerDelegate' conformance to defer isolation checking to run time
241 |
242 |   public func display(_ layer: CALayer) {
    |               |- warning: main actor-isolated instance method 'display' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |               `- note: add 'nonisolated' to 'display' to make this instance method not isolated to the actor
243 |     if layer === trackLayer {
244 |       trackLayer.lineWidth = trackLineWidth
QuartzCore.CALayerDelegate:3:19: note: 'display' declared here
 1 | public protocol CALayerDelegate : NSObjectProtocol {
 2 |     @available(macOS 10.5, *)
 3 |     optional func display(_ layer: CALayer)
   |                   `- note: 'display' declared here
 4 |     @available(swift, obsoleted: 3, renamed: "display(_:)")
 5 |     optional func displayLayer(_ layer: CALayer)
AppKit.NSView:595:26: warning: main actor-isolated instance method 'accessibilityLabel()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
593 |     open func setAccessibilityContents(_ accessibilityContents: [Any]?)
594 |     @available(macOS 10.10, *)
595 |     @MainActor open func accessibilityLabel() -> String?
    |                          |- warning: main actor-isolated instance method 'accessibilityLabel()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                          `- note: add 'nonisolated' to 'accessibilityLabel()' to make this instance method not isolated to the actor
596 |     @available(macOS 10.10, *)
597 |     open func setAccessibilityLabel(_ accessibilityLabel: String?)
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:301:18: note: add '@preconcurrency' to the 'NSAccessibilitySlider' conformance to defer isolation checking to run time
299 | }
300 |
301 | extension Knob : NSAccessibilitySlider {
    |                  `- note: add '@preconcurrency' to the 'NSAccessibilitySlider' conformance to defer isolation checking to run time
302 |   public override func isAccessibilityElement() -> Bool { true }
303 |   public override func isAccessibilityEnabled() -> Bool { true }
AppKit.NSAccessibilitySlider:2:10: note: 'accessibilityLabel()' declared here
1 | public protocol NSAccessibilitySlider : NSAccessibilityElementProtocol {
2 |     func accessibilityLabel() -> String?
  |          `- note: 'accessibilityLabel()' declared here
3 |     func accessibilityValue() -> Any?
4 |     func accessibilityPerformIncrement() -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:306:24: warning: main actor-isolated instance method 'accessibilityValue()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
304 |
305 |   // Value is a NSString or a NSNumber
306 |   override public func accessibilityValue() -> Any? {
    |                        |- warning: main actor-isolated instance method 'accessibilityValue()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                        `- note: add 'nonisolated' to 'accessibilityValue()' to make this instance method not isolated to the actor
307 |     return NSNumber(value: value)
308 |   }
AppKit.NSAccessibilitySlider:3:10: note: 'accessibilityValue()' declared here
1 | public protocol NSAccessibilitySlider : NSAccessibilityElementProtocol {
2 |     func accessibilityLabel() -> String?
3 |     func accessibilityValue() -> Any?
  |          `- note: 'accessibilityValue()' declared here
4 |     func accessibilityPerformIncrement() -> Bool
5 |     func accessibilityPerformDecrement() -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:310:24: warning: main actor-isolated instance method 'accessibilityPerformIncrement()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
308 |   }
309 |
310 |   override public func accessibilityPerformIncrement() -> Bool {
    |                        |- warning: main actor-isolated instance method 'accessibilityPerformIncrement()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                        `- note: add 'nonisolated' to 'accessibilityPerformIncrement()' to make this instance method not isolated to the actor
311 |     guard value < maximumValue else { return false }
312 |     value += 1.0
AppKit.NSAccessibilitySlider:4:10: note: 'accessibilityPerformIncrement()' declared here
2 |     func accessibilityLabel() -> String?
3 |     func accessibilityValue() -> Any?
4 |     func accessibilityPerformIncrement() -> Bool
  |          `- note: 'accessibilityPerformIncrement()' declared here
5 |     func accessibilityPerformDecrement() -> Bool
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:316:24: warning: main actor-isolated instance method 'accessibilityPerformDecrement()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
314 |   }
315 |
316 |   override public func accessibilityPerformDecrement() -> Bool {
    |                        |- warning: main actor-isolated instance method 'accessibilityPerformDecrement()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                        `- note: add 'nonisolated' to 'accessibilityPerformDecrement()' to make this instance method not isolated to the actor
317 |     guard value > minimumValue else { return false }
318 |     value -= 1.0
AppKit.NSAccessibilitySlider:5:10: note: 'accessibilityPerformDecrement()' declared here
3 |     func accessibilityValue() -> Any?
4 |     func accessibilityPerformIncrement() -> Bool
5 |     func accessibilityPerformDecrement() -> Bool
  |          `- note: 'accessibilityPerformDecrement()' declared here
6 | }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:278:12: warning: call to main actor-isolated instance method 'performRestoration(label:value:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
276 |     restorationTimer = Timer.scheduledTimer(withTimeInterval: valuePersistence, repeats: false) { [weak self] _ in
277 |       guard let self = self else { return }
278 |       self.performRestoration(label: valueLabel, value: valueName)
    |            `- warning: call to main actor-isolated instance method 'performRestoration(label:value:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
279 |     }
280 |   }
281 |
282 |   private func performRestoration(label: NSTextField, value: String) {
    |                `- note: calls to instance method 'performRestoration(label:value:)' from outside of its actor context are implicitly asynchronous
283 |       NSAnimationContext.runAnimationGroup({ context in
284 |         context.duration = nameTransitionDuration
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:368:30: warning: call to main actor-isolated instance method 'sendAction(_:to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
366 |
367 |   private func notifyTarget() {
368 |     updateQueue.async { self.sendAction(self.action, to: self.target) }
    |                              `- warning: call to main actor-isolated instance method 'sendAction(_:to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
369 |   }
370 | }
AppKit.NSControl:36:26: note: calls to instance method 'sendAction(_:to:)' from outside of its actor context are implicitly asynchronous
34 |     @available(swift, obsoleted: 3, renamed: "sendAction(on:)")
35 |     open func sendActionOn(_ mask: NSEvent.EventTypeMask) -> Int
36 |     @MainActor open func sendAction(_ action: Selector?, to target: Any?) -> Bool
   |                          `- note: calls to instance method 'sendAction(_:to:)' from outside of its actor context are implicitly asynchronous
37 |     open func takeIntValueFrom(_ sender: Any?)
38 |     open func takeFloatValueFrom(_ sender: Any?)
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:368:46: warning: main actor-isolated property 'action' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
366 |
367 |   private func notifyTarget() {
368 |     updateQueue.async { self.sendAction(self.action, to: self.target) }
    |                                              `- warning: main actor-isolated property 'action' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
369 |   }
370 | }
AppKit.NSControl:5:14: note: property declared here
 3 |     @MainActor public init?(coder: NSCoder)
 4 |     weak open var target: AnyObject? { get set }
 5 |     open var action: Selector? { get set }
   |              `- note: property declared here
 6 |     @MainActor open var tag: Int { get set }
 7 |     open var ignoresMultiClick: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:368:63: warning: main actor-isolated property 'target' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
366 |
367 |   private func notifyTarget() {
368 |     updateQueue.async { self.sendAction(self.action, to: self.target) }
    |                                                               `- warning: main actor-isolated property 'target' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
369 |   }
370 | }
AppKit.NSControl:4:19: note: property declared here
 2 |     @MainActor public init(frame frameRect: NSRect)
 3 |     @MainActor public init?(coder: NSCoder)
 4 |     weak open var target: AnyObject? { get set }
   |                   `- note: property declared here
 5 |     open var action: Selector? { get set }
 6 |     @MainActor open var tag: Int { get set }
[10/12] Compiling Knob_macOS NSBezierPath.swift
[11/12] Compiling Knob_macOS Color.swift
[12/12] Compiling Knob_macOS KnobView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:64:16: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 61 |   public func updateNSView(_ view: Knob, context: Context) { updateView(view, context: context) }
 62 |
 63 |   func makeView(context: Context) -> Knob {
    |        `- note: add '@MainActor' to make instance method 'makeView(context:)' part of global actor 'MainActor'
 64 |     let knob = Knob()
    |                `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 65 |     context.coordinator.monitor(knob)
 66 |     updateView(knob, context: context)
AppKit.NSControl:67:35: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
65 |     @available(swift, obsoleted: 3, renamed: "draw(withExpansionFrame:in:)")
66 |     open func drawWithExpansionFrame(_ contentFrame: NSRect, inView view: NSView)
67 |     @MainActor public convenience init()
   |                                   `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:65:13: warning: main actor-isolated property 'coordinator' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 61 |   public func updateNSView(_ view: Knob, context: Context) { updateView(view, context: context) }
 62 |
 63 |   func makeView(context: Context) -> Knob {
    |        `- note: add '@MainActor' to make instance method 'makeView(context:)' part of global actor 'MainActor'
 64 |     let knob = Knob()
 65 |     context.coordinator.monitor(knob)
    |             `- warning: main actor-isolated property 'coordinator' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 66 |     updateView(knob, context: context)
 67 |     return knob
SwiftUI.NSViewRepresentableContext:7:27: note: property declared here
 5 | @available(visionOS, unavailable)
 6 | @MainActor public struct NSViewRepresentableContext<View> where View : NSViewRepresentable {
 7 |     @MainActor public let coordinator: View.Coordinator
   |                           `- note: property declared here
 8 |     @MainActor public var transaction: Transaction { get }
 9 |     @MainActor public var environment: EnvironmentValues { get }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:71:10: warning: main actor-isolated property 'value' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
    |          `- warning: main actor-isolated property 'value' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 72 |
 73 |     view.minimumValue = minimumValue
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:36:28: note: mutation of this property is only permitted within the actor
 34 |
 35 |   /// The current value of the control, expressed in a value between `minimumValue` and `maximumValue`
 36 |   @objc public dynamic var value: Float {
    |                            `- note: mutation of this property is only permitted within the actor
 37 |     get { _normalizedValue * (maximumValue - minimumValue) + minimumValue }
 38 |     set { setValue(newValue) }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:73:10: warning: main actor-isolated property 'minimumValue' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
 73 |     view.minimumValue = minimumValue
    |          `- warning: main actor-isolated property 'minimumValue' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 74 |     view.maximumValue = maximumValue
 75 |
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:20:14: note: mutation of this property is only permitted within the actor
 18 |
 19 |   /// The minimum value reported by the control.
 20 |   public var minimumValue: Float = 0.0 {
    |              `- note: mutation of this property is only permitted within the actor
 21 |     didSet {
 22 |       if minimumValue >= maximumValue { maximumValue = minimumValue + 1.0 }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:74:10: warning: main actor-isolated property 'maximumValue' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
 73 |     view.minimumValue = minimumValue
 74 |     view.maximumValue = maximumValue
    |          `- warning: main actor-isolated property 'maximumValue' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 75 |
 76 |     view.touchSensitivity = touchSensitivity
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:28:14: note: mutation of this property is only permitted within the actor
 26 |
 27 |   /// The maximum value reported by the control.
 28 |   public var maximumValue: Float = 1.0 {
    |              `- note: mutation of this property is only permitted within the actor
 29 |     didSet {
 30 |       if maximumValue <= minimumValue { minimumValue = maximumValue - 1.0 }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:76:10: warning: main actor-isolated property 'touchSensitivity' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 74 |     view.maximumValue = maximumValue
 75 |
 76 |     view.touchSensitivity = touchSensitivity
    |          `- warning: main actor-isolated property 'touchSensitivity' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 77 |     view.maxChangeRegionWidthPercentage = maxChangeRegionWidthPercentage
 78 |
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:50:14: note: mutation of this property is only permitted within the actor
 48 |   /// By default this is 1x the `travelDistance` value. Setting it to 2 will require 2x the `travelDistance` to go from
 49 |   /// `minimumValue` to `maximumValue`.
 50 |   public var touchSensitivity: CGFloat = 1.0
    |              `- note: mutation of this property is only permitted within the actor
 51 |
 52 |   /// Percentage of `travelDistance` where a touch/mouse event will perform maximum value change. This defines a
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:77:10: warning: main actor-isolated property 'maxChangeRegionWidthPercentage' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 75 |
 76 |     view.touchSensitivity = touchSensitivity
 77 |     view.maxChangeRegionWidthPercentage = maxChangeRegionWidthPercentage
    |          `- warning: main actor-isolated property 'maxChangeRegionWidthPercentage' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 78 |
 79 |     view.trackWidthFactor = trackWidthFactor
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:55:14: note: mutation of this property is only permitted within the actor
 53 |   /// vertical region in the middle of the view. Events outside of this region will have finer sensitivity and control
 54 |   /// over value changes.
 55 |   public var maxChangeRegionWidthPercentage: CGFloat = 0.1
    |              `- note: mutation of this property is only permitted within the actor
 56 |
 57 |   /// Controls the width of the track arc that is shown behind the progress track. The track with will be the smaller of
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:79:10: warning: main actor-isolated property 'trackWidthFactor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 77 |     view.maxChangeRegionWidthPercentage = maxChangeRegionWidthPercentage
 78 |
 79 |     view.trackWidthFactor = trackWidthFactor
    |          `- warning: main actor-isolated property 'trackWidthFactor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 80 |     view.progressWidthFactor = progressWidthFactor
 81 |
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:59:14: note: mutation of this property is only permitted within the actor
 57 |   /// Controls the width of the track arc that is shown behind the progress track. The track with will be the smaller of
 58 |   /// the width/height of the bounds times this value.
 59 |   public var trackWidthFactor: CGFloat = 0.08 { didSet { trackLayer.setNeedsDisplay() } }
    |              `- note: mutation of this property is only permitted within the actor
 60 |
 61 |   /// The color of the arc shown after the current value.
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:80:10: warning: main actor-isolated property 'progressWidthFactor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 78 |
 79 |     view.trackWidthFactor = trackWidthFactor
 80 |     view.progressWidthFactor = progressWidthFactor
    |          `- warning: main actor-isolated property 'progressWidthFactor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 81 |
 82 |     view.indicatorWidthFactor = indicatorWidthFactor
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:66:14: note: mutation of this property is only permitted within the actor
 64 |   /// Controls the width of the progress arc that is shown on top of the track arc. The width with will be the smaller
 65 |   /// of the width/height of the bounds times this value. See `trackWidthFactor`.
 66 |   public var progressWidthFactor: CGFloat = 0.055 { didSet { progressLayer.setNeedsDisplay() } }
    |              `- note: mutation of this property is only permitted within the actor
 67 |
 68 |   /// The color of the arc from the start up to the current value.
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:82:10: warning: main actor-isolated property 'indicatorWidthFactor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 80 |     view.progressWidthFactor = progressWidthFactor
 81 |
 82 |     view.indicatorWidthFactor = indicatorWidthFactor
    |          `- warning: main actor-isolated property 'indicatorWidthFactor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 83 |     view.indicatorLineLength = indicatorLineLength
 84 |
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:73:14: note: mutation of this property is only permitted within the actor
 71 |
 72 |   /// The width of the radial line drawn from the current value on the arc towards the arc center.
 73 |   public var indicatorWidthFactor: CGFloat = 0.055 { didSet { indicatorLayer.setNeedsDisplay() } }
    |              `- note: mutation of this property is only permitted within the actor
 74 |
 75 |   /// The color of the radial line drawn from the current value on the arc towards the arc center.
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:83:10: warning: main actor-isolated property 'indicatorLineLength' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 81 |
 82 |     view.indicatorWidthFactor = indicatorWidthFactor
 83 |     view.indicatorLineLength = indicatorLineLength
    |          `- warning: main actor-isolated property 'indicatorLineLength' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 84 |
 85 |     view.tickCount = tickCount
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:82:14: note: mutation of this property is only permitted within the actor
 80 |   /// Range is from 0.0 to 1.0, where 1.0 will draw a complete line, and anything less will draw that fraction of it
 81 |   /// starting from the arc.
 82 |   public var indicatorLineLength: CGFloat = 0.3 { didSet { indicatorLayer.setNeedsDisplay() } }
    |              `- note: mutation of this property is only permitted within the actor
 83 |
 84 |   /// Number of ticks to show inside the track, with the first indicating the `minimumValue` and the last indicating
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:85:10: warning: main actor-isolated property 'tickCount' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 83 |     view.indicatorLineLength = indicatorLineLength
 84 |
 85 |     view.tickCount = tickCount
    |          `- warning: main actor-isolated property 'tickCount' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 86 |     view.tickLineOffset = tickLineOffset
 87 |     view.tickLineLength = tickLineLength
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:86:14: note: mutation of this property is only permitted within the actor
 84 |   /// Number of ticks to show inside the track, with the first indicating the `minimumValue` and the last indicating
 85 |   /// the `maximumValue`
 86 |   public var tickCount: Int = 0 { didSet { ticksLayer.setNeedsDisplay() } }
    |              `- note: mutation of this property is only permitted within the actor
 87 |
 88 |   /// Offset for the start of a tick line. Range is from 0.0 to 1.0 where 0.0 starts at the circumference of the arc,
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:86:10: warning: main actor-isolated property 'tickLineOffset' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 84 |
 85 |     view.tickCount = tickCount
 86 |     view.tickLineOffset = tickLineOffset
    |          `- warning: main actor-isolated property 'tickLineOffset' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 87 |     view.tickLineLength = tickLineLength
 88 |     view.tickLineWidth = tickLineWidth
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:90:14: note: mutation of this property is only permitted within the actor
 88 |   /// Offset for the start of a tick line. Range is from 0.0 to 1.0 where 0.0 starts at the circumference of the arc,
 89 |   /// and 0.5 is midway between the circumference and the center along a radial.
 90 |   public var tickLineOffset: CGFloat = 0.1 { didSet { ticksLayer.setNeedsDisplay() } }
    |              `- note: mutation of this property is only permitted within the actor
 91 |
 92 |   /// Length of the tick. Range is from 0.0 to 1.0 where 1.0 will draw a line ending at the center of the knob.
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:87:10: warning: main actor-isolated property 'tickLineLength' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 85 |     view.tickCount = tickCount
 86 |     view.tickLineOffset = tickLineOffset
 87 |     view.tickLineLength = tickLineLength
    |          `- warning: main actor-isolated property 'tickLineLength' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 88 |     view.tickLineWidth = tickLineWidth
 89 |
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:93:14: note: mutation of this property is only permitted within the actor
 91 |
 92 |   /// Length of the tick. Range is from 0.0 to 1.0 where 1.0 will draw a line ending at the center of the knob.
 93 |   public var tickLineLength: CGFloat = 0.2 { didSet { ticksLayer.setNeedsDisplay() } }
    |              `- note: mutation of this property is only permitted within the actor
 94 |
 95 |   /// The width of the tick line.
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:88:10: warning: main actor-isolated property 'tickLineWidth' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 86 |     view.tickLineOffset = tickLineOffset
 87 |     view.tickLineLength = tickLineLength
 88 |     view.tickLineWidth = tickLineWidth
    |          `- warning: main actor-isolated property 'tickLineWidth' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 89 |
 90 |     if #available(iOS 14, macOS 11, *) {
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:96:14: note: mutation of this property is only permitted within the actor
 94 |
 95 |   /// The width of the tick line.
 96 |   public var tickLineWidth: CGFloat = 1.0 { didSet { ticksLayer.setNeedsDisplay() } }
    |              `- note: mutation of this property is only permitted within the actor
 97 |
 98 |   /// The color of the tick line.
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:91:12: warning: main actor-isolated property 'trackColor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 89 |
 90 |     if #available(iOS 14, macOS 11, *) {
 91 |       view.trackColor = NSColor(trackColor)
    |            `- warning: main actor-isolated property 'trackColor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 92 |       view.progressColor = NSColor(progressColor)
 93 |       view.indicatorColor = NSColor(indicatorColor)
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:62:14: note: mutation of this property is only permitted within the actor
 60 |
 61 |   /// The color of the arc shown after the current value.
 62 |   public var trackColor: NSColor = .darkGray.darker.darker.darker { didSet { trackLayer.setNeedsDisplay() } }
    |              `- note: mutation of this property is only permitted within the actor
 63 |
 64 |   /// Controls the width of the progress arc that is shown on top of the track arc. The width with will be the smaller
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:92:12: warning: main actor-isolated property 'progressColor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 90 |     if #available(iOS 14, macOS 11, *) {
 91 |       view.trackColor = NSColor(trackColor)
 92 |       view.progressColor = NSColor(progressColor)
    |            `- warning: main actor-isolated property 'progressColor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 93 |       view.indicatorColor = NSColor(indicatorColor)
 94 |       view.tickColor = NSColor(tickColor)
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:69:14: note: mutation of this property is only permitted within the actor
 67 |
 68 |   /// The color of the arc from the start up to the current value.
 69 |   public var progressColor: NSColor = .init(red: 1.0, green: 0.575, blue: 0.0, alpha: 1.0)
    |              `- note: mutation of this property is only permitted within the actor
 70 |   { didSet { progressLayer.setNeedsDisplay() } }
 71 |
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:93:12: warning: main actor-isolated property 'indicatorColor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 91 |       view.trackColor = NSColor(trackColor)
 92 |       view.progressColor = NSColor(progressColor)
 93 |       view.indicatorColor = NSColor(indicatorColor)
    |            `- warning: main actor-isolated property 'indicatorColor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 94 |       view.tickColor = NSColor(tickColor)
 95 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:76:14: note: mutation of this property is only permitted within the actor
 74 |
 75 |   /// The color of the radial line drawn from the current value on the arc towards the arc center.
 76 |   public var indicatorColor: NSColor = .init(red: 1.0, green: 0.575, blue: 0.0, alpha: 1.0)
    |              `- note: mutation of this property is only permitted within the actor
 77 |   { didSet { indicatorLayer.setNeedsDisplay() } }
 78 |
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:94:12: warning: main actor-isolated property 'tickColor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 68 |   }
 69 |
 70 |   func updateView(_ view: Knob, context: Context) {
    |        `- note: add '@MainActor' to make instance method 'updateView(_:context:)' part of global actor 'MainActor'
 71 |     view.value = value
 72 |
    :
 92 |       view.progressColor = NSColor(progressColor)
 93 |       view.indicatorColor = NSColor(indicatorColor)
 94 |       view.tickColor = NSColor(tickColor)
    |            `- warning: main actor-isolated property 'tickColor' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 95 |     }
 96 |   }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:99:14: note: mutation of this property is only permitted within the actor
 97 |
 98 |   /// The color of the tick line.
 99 |   public var tickColor: NSColor = .black { didSet { ticksLayer.setNeedsDisplay() } }
    |              `- note: mutation of this property is only permitted within the actor
100 |
101 |   public var backgroundColor: NSColor {
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:115:12: warning: main actor-isolated property 'target' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
112 |     public init(_ knobView: KnobView) { self.knobView = knobView }
113 |
114 |     func monitor(_ knob: Knob) {
    |          `- note: add '@MainActor' to make instance method 'monitor' part of global actor 'MainActor'
115 |       knob.target = self
    |            `- warning: main actor-isolated property 'target' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
116 |       knob.action = #selector(valueChanged(_:))
117 |     }
AppKit.NSControl:4:19: note: mutation of this property is only permitted within the actor
 2 |     public init(frame frameRect: NSRect)
 3 |     public init?(coder: NSCoder)
 4 |     weak open var target: AnyObject? { get set }
   |                   `- note: mutation of this property is only permitted within the actor
 5 |     open var action: Selector? { get set }
 6 |     open var tag: Int { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:116:12: warning: main actor-isolated property 'action' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
112 |     public init(_ knobView: KnobView) { self.knobView = knobView }
113 |
114 |     func monitor(_ knob: Knob) {
    |          `- note: add '@MainActor' to make instance method 'monitor' part of global actor 'MainActor'
115 |       knob.target = self
116 |       knob.action = #selector(valueChanged(_:))
    |            `- warning: main actor-isolated property 'action' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
117 |     }
118 |
AppKit.NSControl:5:14: note: mutation of this property is only permitted within the actor
 3 |     public init?(coder: NSCoder)
 4 |     weak open var target: AnyObject? { get set }
 5 |     open var action: Selector? { get set }
   |              `- note: mutation of this property is only permitted within the actor
 6 |     open var tag: Int { get set }
 7 |     open var ignoresMultiClick: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:120:31: warning: main actor-isolated property 'value' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
117 |     }
118 |
119 |     @objc func valueChanged(_ sender: Knob) {
    |                `- note: add '@MainActor' to make instance method 'valueChanged' part of global actor 'MainActor'
120 |       knobView.value = sender.value
    |                               `- warning: main actor-isolated property 'value' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
121 |       knobView.manipulating = sender.manipulating
122 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:36:28: note: property declared here
 34 |
 35 |   /// The current value of the control, expressed in a value between `minimumValue` and `maximumValue`
 36 |   @objc public dynamic var value: Float {
    |                            `- note: property declared here
 37 |     get { _normalizedValue * (maximumValue - minimumValue) + minimumValue }
 38 |     set { setValue(newValue) }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/KnobView.swift:121:38: warning: main actor-isolated property 'manipulating' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
117 |     }
118 |
119 |     @objc func valueChanged(_ sender: Knob) {
    |                `- note: add '@MainActor' to make instance method 'valueChanged' part of global actor 'MainActor'
120 |       knobView.value = sender.value
121 |       knobView.manipulating = sender.manipulating
    |                                      `- warning: main actor-isolated property 'manipulating' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
122 |     }
123 |   }
/Users/admin/builder/spi-builder-workspace/Sources/Knob-macOS/Knob.swift:128:27: note: property declared here
126 |   /// Obtain the manipulating state of the knob. This is `true` during a touch event or a mouse-down event, and it goes
127 |   /// back to `false` once the event ends.
128 |   public private(set) var manipulating = false
    |                           `- note: property declared here
129 |
130 |   /**
Build complete! (34.92s)
Fetching https://github.com/pointfreeco/swift-snapshot-testing.git
Fetching https://github.com/apple/swift-syntax.git
[1/11249] Fetching swift-snapshot-testing
[564/72202] Fetching swift-snapshot-testing, swift-syntax
Fetched https://github.com/apple/swift-syntax.git from cache (3.07s)
Fetched https://github.com/pointfreeco/swift-snapshot-testing.git from cache (3.07s)
Computing version for https://github.com/pointfreeco/swift-snapshot-testing.git
Computed https://github.com/pointfreeco/swift-snapshot-testing.git at 1.15.1 (0.69s)
Computing version for https://github.com/apple/swift-syntax.git
Computed https://github.com/apple/swift-syntax.git at 509.0.2 (0.78s)
Creating working copy for https://github.com/apple/swift-syntax.git
Working copy of https://github.com/apple/swift-syntax.git resolved at 509.0.2
Creating working copy for https://github.com/pointfreeco/swift-snapshot-testing.git
Working copy of https://github.com/pointfreeco/swift-snapshot-testing.git resolved at 1.15.1
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-snapshot-testing",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.11.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/pointfreeco/swift-snapshot-testing.git"
    }
  ],
  "manifest_display_name" : "Knob",
  "name" : "Knob",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "Knob-iOS",
      "targets" : [
        "Knob-iOS"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Knob-macOS",
      "targets" : [
        "Knob-macOS"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Knob_macOSTests",
      "module_type" : "SwiftTarget",
      "name" : "Knob-macOSTests",
      "path" : "Tests/Knob-macOSTests",
      "product_dependencies" : [
        "SnapshotTesting"
      ],
      "sources" : [
        "KnobTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "Knob-macOS"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Knob_macOS",
      "module_type" : "SwiftTarget",
      "name" : "Knob-macOS",
      "path" : "Sources/Knob-macOS",
      "product_memberships" : [
        "Knob-macOS"
      ],
      "sources" : [
        "Extensions/Color.swift",
        "Extensions/NSBezierPath.swift",
        "Knob.swift",
        "KnobView.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Knob_iOSTests",
      "module_type" : "SwiftTarget",
      "name" : "Knob-iOSTests",
      "path" : "Tests/Knob-iOSTests",
      "product_dependencies" : [
        "SnapshotTesting"
      ],
      "sources" : [
        "KnobTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "Knob-iOS"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Knob_iOS",
      "module_type" : "SwiftTarget",
      "name" : "Knob-iOS",
      "path" : "Sources/Knob-iOS",
      "product_memberships" : [
        "Knob-iOS"
      ],
      "sources" : [
        "Extensions/Color.swift",
        "Knob.swift",
        "KnobView.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.