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

Failed to build DSFAppKitBuilder, reference main (d188d6), with Swift 6.1 for Linux on 29 Apr 2025 12:55:10 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.61.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dagronf/DSFAppKitBuilder.git
Reference: main
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/dagronf/DSFAppKitBuilder
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at d188d61 Update to latest focusoverlay
Cloned https://github.com/dagronf/DSFAppKitBuilder.git
Revision (git rev-parse @):
d188d61b706d8cac88bf9ba6a5bdd98f408f202b
SUCCESS checkout https://github.com/dagronf/DSFAppKitBuilder.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.1
Building package at path:  $PWD
https://github.com/dagronf/DSFAppKitBuilder.git
https://github.com/dagronf/DSFAppKitBuilder.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
    {
      "identity" : "dsfpagercontrol",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.5.2",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFPagerControl"
    },
    {
      "identity" : "dsfmenubuilder",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFMenuBuilder"
    },
    {
      "identity" : "dsfvaluebinders",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "1.1.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFValueBinders"
    },
    {
      "identity" : "dsfcombobutton",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFComboButton"
    },
    {
      "identity" : "dsftogglebutton",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "7.1.0",
            "upper_bound" : "8.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFToggleButton"
    },
    {
      "identity" : "dsfstepperview",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.3.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFStepperView"
    },
    {
      "identity" : "dsfsearchfield",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.2.2",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFSearchField"
    }
  ],
  "manifest_display_name" : "DSFAppKitBuilder",
  "name" : "DSFAppKitBuilder",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.13"
    }
  ],
  "products" : [
    {
      "name" : "DSFAppKitBuilder",
      "targets" : [
        "DSFAppKitBuilder"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "DSFAppKitBuilder-static",
      "targets" : [
        "DSFAppKitBuilder"
      ],
      "type" : {
        "library" : [
          "static"
        ]
      }
    },
    {
      "name" : "DSFAppKitBuilder-shared",
      "targets" : [
        "DSFAppKitBuilder"
      ],
      "type" : {
        "library" : [
          "dynamic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "DSFAppKitBuilderTests",
      "module_type" : "SwiftTarget",
      "name" : "DSFAppKitBuilderTests",
      "path" : "Tests/DSFAppKitBuilderTests",
      "sources" : [
        "DSFAppKitDSLTests.swift"
      ],
      "target_dependencies" : [
        "DSFAppKitBuilder"
      ],
      "type" : "test"
    },
    {
      "c99name" : "DSFAppKitBuilder",
      "module_type" : "SwiftTarget",
      "name" : "DSFAppKitBuilder",
      "path" : "Sources/DSFAppKitBuilder",
      "product_dependencies" : [
        "DSFMenuBuilder",
        "DSFPagerControl",
        "DSFValueBinders",
        "DSFComboButton",
        "DSFToggleButton",
        "DSFStepperView",
        "DSFSearchField"
      ],
      "product_memberships" : [
        "DSFAppKitBuilder",
        "DSFAppKitBuilder-static",
        "DSFAppKitBuilder-shared"
      ],
      "sources" : [
        "DSFAppKitBuilder.swift",
        "DSFAppKitBuilderViewHandler.swift",
        "binders/DoubleStringBinder.swift",
        "binders/ElementBinder.swift",
        "binders/WindowBinder.swift",
        "components/Accessibility.swift",
        "components/AttributedString.swift",
        "components/AutoLayout.swift",
        "components/Box.swift",
        "components/Button+radio.swift",
        "components/Button.swift",
        "components/ButtonStyle.swift",
        "components/CheckBox.swift",
        "components/ColorWell.swift",
        "components/ComboBox.swift",
        "components/ComboButton.swift",
        "components/Control.swift",
        "components/DatePicker.swift",
        "components/DisclosureGroup.swift",
        "components/DisclosureView.swift",
        "components/Divider.swift",
        "components/DynamicElement.swift",
        "components/EmptyView.swift",
        "components/FlatButton.swift",
        "components/Flow.swift",
        "components/ForEach.swift",
        "components/Form.swift",
        "components/Grid.swift",
        "components/Group.swift",
        "components/IfElse.swift",
        "components/Image.swift",
        "components/ImageView.swift",
        "components/Label.swift",
        "components/LabelStyle.swift",
        "components/LevelIndicator.swift",
        "components/Link.swift",
        "components/List.swift",
        "components/ManagedWindow.swift",
        "components/Maybe.swift",
        "components/Nothing.swift",
        "components/OneOf.swift",
        "components/Pager.swift",
        "components/PathControl.swift",
        "components/PlainTextView.swift",
        "components/PopupButton.swift",
        "components/ProgressBar.swift",
        "components/RadioGroup.swift",
        "components/ScrollView.swift",
        "components/SecureTextField.swift",
        "components/Segmented.swift",
        "components/Shape.swift",
        "components/Slider.swift",
        "components/SplitView.swift",
        "components/Stack.swift",
        "components/StackStyle.swift",
        "components/Stepper.swift",
        "components/StepperView.swift",
        "components/Switch.swift",
        "components/TabView.swift",
        "components/Toggle.swift",
        "components/View+SwiftUI.swift",
        "components/View.swift",
        "components/VisualEffectView.swift",
        "components/Window.swift",
        "components/ZStack.swift",
        "components/ZoomableScrollView.swift",
        "components/element/Element+Alert.swift",
        "components/element/Element+Change.swift",
        "components/element/Element+Gestures.swift",
        "components/element/Element+Panel.swift",
        "components/element/Element+Popover.swift",
        "components/element/Element+Sheet.swift",
        "components/element/Element+Size.swift",
        "components/element/Element.swift",
        "components/text-field/NumberField.swift",
        "components/text-field/SearchField.swift",
        "components/text-field/TextField.swift",
        "components/text-field/TokenField.swift",
        "fonts/DynamicFont.swift",
        "fonts/DynamicFontService.swift",
        "fonts/Font.swift",
        "presentation/DSFAppKitBuilderAssignableViewController.swift",
        "presentation/DSFAppKitBuilderView.swift",
        "presentation/DSFAppKitBuilderViewController.swift",
        "presentation/SwiftUIPreviews.swift",
        "utils/Animations.swift",
        "utils/Autolayout+helpers.swift",
        "utils/BindingBag.swift",
        "utils/CGColor+extensions.swift",
        "utils/CGSize+extensions.swift",
        "utils/CSFlatButton.swift",
        "utils/CenteringClipView.swift",
        "utils/CustomValueTransformers.swift",
        "utils/EmbeddedLayoutType.swift",
        "utils/Logging.swift",
        "utils/NSBezierPath+extensions.swift",
        "utils/NSColor+extensions.swift",
        "utils/NSGestureRecognizer+actionblock.swift",
        "utils/NumberFormatter+extensions.swift",
        "utils/PaddableTextField.swift",
        "utils/ProtectedLock.swift",
        "utils/RangeComponentBinder.swift",
        "utils/ScrollableTextView.swift",
        "utils/Shadow.swift",
        "utils/TrackingArea.swift",
        "utils/Utilities.swift",
        "utils/VerticalSizingTokenField.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Fetching https://github.com/dagronf/DSFSearchField
Fetching https://github.com/dagronf/DSFValueBinders
Fetching https://github.com/dagronf/DSFMenuBuilder
Fetching https://github.com/dagronf/DSFToggleButton
Fetching https://github.com/dagronf/DSFStepperView
Fetching https://github.com/dagronf/DSFComboButton
[1/324] Fetching dsfmenubuilder
[325/1022] Fetching dsfmenubuilder, dsfstepperview
[381/1205] Fetching dsfmenubuilder, dsfstepperview, dsfsearchfield
[443/1372] Fetching dsfmenubuilder, dsfstepperview, dsfsearchfield, dsfcombobutton
[1373/1607] Fetching dsfmenubuilder, dsfstepperview, dsfsearchfield, dsfcombobutton, dsfvaluebinders
Fetched https://github.com/dagronf/DSFComboButton from cache (0.31s)
Fetched https://github.com/dagronf/DSFSearchField from cache (0.31s)
Fetching https://github.com/dagronf/DSFPagerControl
[1/312] Fetching dsfpagercontrol
Fetched https://github.com/dagronf/DSFPagerControl from cache (0.24s)
[1/494] Fetching dsftogglebutton
Fetched https://github.com/dagronf/DSFToggleButton from cache (1.38s)
Fetched https://github.com/dagronf/DSFMenuBuilder from cache (1.38s)
Fetched https://github.com/dagronf/DSFStepperView from cache (1.38s)
Fetched https://github.com/dagronf/DSFValueBinders from cache (1.38s)
Computing version for https://github.com/dagronf/DSFSearchField
Computed https://github.com/dagronf/DSFSearchField at 2.2.2 (1.95s)
Computing version for https://github.com/dagronf/DSFToggleButton
Computed https://github.com/dagronf/DSFToggleButton at 7.1.0 (0.56s)
Fetching https://github.com/dagronf/DSFAppearanceManager
[1/459] Fetching dsfappearancemanager
Fetched https://github.com/dagronf/DSFAppearanceManager from cache (0.33s)
Computing version for https://github.com/dagronf/DSFComboButton
Computed https://github.com/dagronf/DSFComboButton at 1.0.0 (0.91s)
Computing version for https://github.com/dagronf/DSFMenuBuilder
Computed https://github.com/dagronf/DSFMenuBuilder at 1.2.1 (0.61s)
Computing version for https://github.com/dagronf/DSFPagerControl
Computed https://github.com/dagronf/DSFPagerControl at 2.5.2 (0.57s)
Computing version for https://github.com/dagronf/DSFStepperView
Computed https://github.com/dagronf/DSFStepperView at 4.4.0 (0.58s)
Computing version for https://github.com/dagronf/DSFAppearanceManager
Computed https://github.com/dagronf/DSFAppearanceManager at 3.5.1 (0.58s)
Computing version for https://github.com/dagronf/DSFValueBinders
Computed https://github.com/dagronf/DSFValueBinders at 1.0.1 (0.57s)
Creating working copy for https://github.com/dagronf/DSFValueBinders
Working copy of https://github.com/dagronf/DSFValueBinders resolved at 1.0.1
Creating working copy for https://github.com/dagronf/DSFStepperView
Working copy of https://github.com/dagronf/DSFStepperView resolved at 4.4.0
Creating working copy for https://github.com/dagronf/DSFPagerControl
Working copy of https://github.com/dagronf/DSFPagerControl resolved at 2.5.2
Creating working copy for https://github.com/dagronf/DSFToggleButton
Working copy of https://github.com/dagronf/DSFToggleButton resolved at 7.1.0
Creating working copy for https://github.com/dagronf/DSFSearchField
Working copy of https://github.com/dagronf/DSFSearchField resolved at 2.2.2
Creating working copy for https://github.com/dagronf/DSFMenuBuilder
Working copy of https://github.com/dagronf/DSFMenuBuilder resolved at 1.2.1
Creating working copy for https://github.com/dagronf/DSFAppearanceManager
Working copy of https://github.com/dagronf/DSFAppearanceManager resolved at 3.5.1
Creating working copy for https://github.com/dagronf/DSFComboButton
Working copy of https://github.com/dagronf/DSFComboButton resolved at 1.0.0
Building for debugging...
[0/26] Write sources
[1/26] Copying PrivacyInfo.xcprivacy
[1/26] Copying Localizable.strings
[5/26] Write sources
[7/26] Copying Info.plist
[7/26] Write sources
[12/26] Write swift-version-24593BA9C3E375BF.txt
[14/70] Emitting module DSFComboButton
[15/70] Compiling DSFComboButton DelayedMenuButton.swift
[16/70] Compiling DSFComboButton DSFComboButton+private.swift
[17/70] Compiling DSFMenuBuilder NSMenu+extensions.swift
[18/70] Compiling DSFMenuBuilder MenuItem.swift
[19/70] Emitting module DSFAppearanceManager
[20/71] Compiling DSFComboButton DSFComboButton.swift
[21/71] Compiling DSFAppearanceManager NSAppearance+extensions.swift
[22/72] Wrapping AST for DSFComboButton for debugging
[24/72] Compiling DSFAppearanceManager WeakBag.swift
[25/72] Compiling DSFAppearanceManager DSFSimpleLock.swift
[26/72] Compiling DSFSearchField LocalizationHelpers.swift
[27/72] Compiling DSFSearchField DSFSearchField+SwiftUI.swift
[28/72] Emitting module DSFSearchField
[29/72] Compiling DSFSearchField DSFSearchField.swift
[30/72] Compiling DSFAppearanceManager DSFAppearanceManager+Listeners.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[31/72] Compiling DSFValueBinders ValueBinder.swift
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:179:62: error: cannot find type 'AnyCancellable' in scope
177 | 	/// Attaches a subscriber with closure-based behavior to a publisher that never fails.
178 | 	/// Returns `nil` if the publisher isn't available
179 | 	func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable? {
    |                                                              `- error: cannot find type 'AnyCancellable' in scope
180 | 		self.publisher?.passthroughSubject.sink(receiveValue: receiveValue)
181 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:187:7: error: cannot find type 'AnyCancellable' in scope
185 | 		 receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
186 | 		 receiveValue: @escaping ((ValueType) -> Void)
187 | 	) -> AnyCancellable? {
    |       `- error: cannot find type 'AnyCancellable' in scope
188 | 		self.publisher?.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
189 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:185:35: error: cannot find type 'Subscribers' in scope
183 | 	/// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | 	func sink(
185 | 		 receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
    |                                   `- error: cannot find type 'Subscribers' in scope
186 | 		 receiveValue: @escaping ((ValueType) -> Void)
187 | 	) -> AnyCancellable? {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:185:23: error: @escaping attribute only applies to function types
183 | 	/// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | 	func sink(
185 | 		 receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
    |                       `- error: @escaping attribute only applies to function types
186 | 		 receiveValue: @escaping ((ValueType) -> Void)
187 | 	) -> AnyCancellable? {
[32/72] Compiling DSFAppearanceManager DSFDebounce.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
error: emit-module command failed with exit code 1 (use -v to see invocation)
[33/72] Emitting module DSFMenuBuilder
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[36/72] Compiling DSFAppearanceManager NSWindow+Appearance.swift
[37/72] Compiling DSFAppearanceManager AutoplayAnimatedImages.swift
[38/74] Compiling DSFAppearanceManager DSFAppearanceManager.swift
[39/74] Compiling DSFAppearanceManager NSView+Appearance.swift
[44/74] Compiling DSFSearchField SwiftUIHelpers.swift
[45/74] Compiling DSFSearchField resource_bundle_accessor.swift
[46/75] Compiling DSFValueBinders ValueBinder+transformers.swift
[47/75] Compiling DSFMenuBuilder AnyMenuItem.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[48/75] Compiling DSFMenuBuilder MenuItemTarget.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:104:30: error: cannot find type 'NSKeyValueObservation' in scope
102 |
103 | 	private weak var object: ClassType?
104 | 	private var kvoObservation: NSKeyValueObservation?
    |                              `- error: cannot find type 'NSKeyValueObservation' in scope
105 | 	private let stringPath: String
106 | 	private let lock = SemLock()
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 65 |
 66 | 		// A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
 67 | 		let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
    |                                                `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 68 | 		guard !stringKeyPath.isEmpty else {
 69 | 			throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:76:21: error: value of type 'ClassType' has no member 'value'
 74 | 		// If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
 75 | 		guard
 76 | 			let raw = object.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
    |                     `- error: value of type 'ClassType' has no member 'value'
 77 | 			let initialValue = ValueType(rawValue: raw)
 78 | 		else {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:32: error: value of type 'ClassType' has no member 'observe'
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                `- error: value of type 'ClassType' has no member 'observe'
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:60: error: reference to member 'new' cannot be resolved without a contextual type
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                            `- error: reference to member 'new' cannot be resolved without a contextual type
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:80: error: cannot infer type of closure parameter 'obj' without a type annotation
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                                                `- error: cannot infer type of closure parameter 'obj' without a type annotation
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:85: error: cannot infer type of closure parameter 'value' without a type annotation
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                                                     `- error: cannot infer type of closure parameter 'value' without a type annotation
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:124:12: error: value of type 'ClassType' has no member 'setValue'
122 | 		self.lock.tryLock {
123 | 			// Push the new value through to the bound keypath
124 | 			object?.setValue(self.wrappedValue.rawValue, forKey: stringPath)
    |            `- error: value of type 'ClassType' has no member 'setValue'
125 | 			self.callback?(self.wrappedValue)
126 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:97:30: error: cannot find type 'NSKeyValueObservation' in scope
 95 |
 96 | 	private weak var object: ClassType?
 97 | 	private var kvoObservation: NSKeyValueObservation?
    |                              `- error: cannot find type 'NSKeyValueObservation' in scope
 98 | 	private let stringPath: String
 99 | 	private let lock = SemLock()
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:104:34: error: cannot find type 'NSKeyValueObservedChange' in scope
102 | 	// MARK: - Change handling
103 |
104 | 	private func kvoUpdate(_ value: NSKeyValueObservedChange<ValueType>) {
    |                                  `- error: cannot find type 'NSKeyValueObservedChange' in scope
105 | 		if let value = value.newValue {
106 | 			self.update(with: value)
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 65 |
 66 | 		// A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
 67 | 		let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
    |                                                `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 68 | 		guard !stringKeyPath.isEmpty else {
 69 | 			throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:75:35: error: value of type 'ClassType' has no member 'value'
 73 | 		// Grab out the initial value from the bound keypath.
 74 | 		// If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
 75 | 		guard let initialValue = object.value(forKeyPath: stringKeyPath) as? ValueType else {
    |                                   `- error: value of type 'ClassType' has no member 'value'
 76 | 			Swift.print("The specified key path couldn't be resolved.")
 77 | 			Swift.print("If `keyPath` refers to an enum (eg, `NSToolbar.SizeMode`) use `EnumKeyPathBinder` instead")
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:32: error: value of type 'ClassType' has no member 'observe'
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                `- error: value of type 'ClassType' has no member 'observe'
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:60: error: reference to member 'new' cannot be resolved without a contextual type
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                            `- error: reference to member 'new' cannot be resolved without a contextual type
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:80: error: cannot infer type of closure parameter '_' without a type annotation
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                                                `- error: cannot infer type of closure parameter '_' without a type annotation
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:83: error: cannot infer type of closure parameter 'value' without a type annotation
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                                                   `- error: cannot infer type of closure parameter 'value' without a type annotation
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:122:12: error: value of type 'ClassType' has no member 'setValue'
120 | 		self.lock.tryLock {
121 | 			// Push the new value through to the bound keypath
122 | 			object?.setValue(self.wrappedValue, forKey: stringPath)
    |            `- error: value of type 'ClassType' has no member 'setValue'
123 | 			self.callback?(self.wrappedValue)
124 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:104:30: error: cannot find type 'NSKeyValueObservation' in scope
102 |
103 | 	private weak var object: ClassType?
104 | 	private var kvoObservation: NSKeyValueObservation?
    |                              `- error: cannot find type 'NSKeyValueObservation' in scope
105 | 	private let stringPath: String
106 | 	private let lock = SemLock()
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 65 |
 66 | 		// A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
 67 | 		let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
    |                                                `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 68 | 		guard !stringKeyPath.isEmpty else {
 69 | 			throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:76:21: error: value of type 'ClassType' has no member 'value'
 74 | 		// If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
 75 | 		guard
 76 | 			let raw = object.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
    |                     `- error: value of type 'ClassType' has no member 'value'
 77 | 			let initialValue = ValueType(rawValue: raw)
 78 | 		else {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:32: error: value of type 'ClassType' has no member 'observe'
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                `- error: value of type 'ClassType' has no member 'observe'
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:60: error: reference to member 'new' cannot be resolved without a contextual type
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                            `- error: reference to member 'new' cannot be resolved without a contextual type
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:80: error: cannot infer type of closure parameter 'obj' without a type annotation
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                                                `- error: cannot infer type of closure parameter 'obj' without a type annotation
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:85: error: cannot infer type of closure parameter 'value' without a type annotation
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                                                     `- error: cannot infer type of closure parameter 'value' without a type annotation
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:124:12: error: value of type 'ClassType' has no member 'setValue'
122 | 		self.lock.tryLock {
123 | 			// Push the new value through to the bound keypath
124 | 			object?.setValue(self.wrappedValue.rawValue, forKey: stringPath)
    |            `- error: value of type 'ClassType' has no member 'setValue'
125 | 			self.callback?(self.wrappedValue)
126 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:97:30: error: cannot find type 'NSKeyValueObservation' in scope
 95 |
 96 | 	private weak var object: ClassType?
 97 | 	private var kvoObservation: NSKeyValueObservation?
    |                              `- error: cannot find type 'NSKeyValueObservation' in scope
 98 | 	private let stringPath: String
 99 | 	private let lock = SemLock()
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:104:34: error: cannot find type 'NSKeyValueObservedChange' in scope
102 | 	// MARK: - Change handling
103 |
104 | 	private func kvoUpdate(_ value: NSKeyValueObservedChange<ValueType>) {
    |                                  `- error: cannot find type 'NSKeyValueObservedChange' in scope
105 | 		if let value = value.newValue {
106 | 			self.update(with: value)
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 65 |
 66 | 		// A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
 67 | 		let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
    |                                                `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 68 | 		guard !stringKeyPath.isEmpty else {
 69 | 			throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:75:35: error: value of type 'ClassType' has no member 'value'
 73 | 		// Grab out the initial value from the bound keypath.
 74 | 		// If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
 75 | 		guard let initialValue = object.value(forKeyPath: stringKeyPath) as? ValueType else {
    |                                   `- error: value of type 'ClassType' has no member 'value'
 76 | 			Swift.print("The specified key path couldn't be resolved.")
 77 | 			Swift.print("If `keyPath` refers to an enum (eg, `NSToolbar.SizeMode`) use `EnumKeyPathBinder` instead")
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:32: error: value of type 'ClassType' has no member 'observe'
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                `- error: value of type 'ClassType' has no member 'observe'
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:60: error: reference to member 'new' cannot be resolved without a contextual type
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                            `- error: reference to member 'new' cannot be resolved without a contextual type
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:80: error: cannot infer type of closure parameter '_' without a type annotation
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                                                `- error: cannot infer type of closure parameter '_' without a type annotation
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:83: error: cannot infer type of closure parameter 'value' without a type annotation
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                                                   `- error: cannot infer type of closure parameter 'value' without a type annotation
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:122:12: error: value of type 'ClassType' has no member 'setValue'
120 | 		self.lock.tryLock {
121 | 			// Push the new value through to the bound keypath
122 | 			object?.setValue(self.wrappedValue, forKey: stringPath)
    |            `- error: value of type 'ClassType' has no member 'setValue'
123 | 			self.callback?(self.wrappedValue)
124 | 		}
[51/75] Compiling DSFMenuBuilder ViewItem.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[54/75] Compiling DSFMenuBuilder ViewItem+NSViewController.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
error: emit-module command failed with exit code 1 (use -v to see invocation)
[57/75] Emitting module DSFValueBinders
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:104:30: error: cannot find type 'NSKeyValueObservation' in scope
102 |
103 | 	private weak var object: ClassType?
104 | 	private var kvoObservation: NSKeyValueObservation?
    |                              `- error: cannot find type 'NSKeyValueObservation' in scope
105 | 	private let stringPath: String
106 | 	private let lock = SemLock()
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:97:30: error: cannot find type 'NSKeyValueObservation' in scope
 95 |
 96 | 	private weak var object: ClassType?
 97 | 	private var kvoObservation: NSKeyValueObservation?
    |                              `- error: cannot find type 'NSKeyValueObservation' in scope
 98 | 	private let stringPath: String
 99 | 	private let lock = SemLock()
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:104:34: error: cannot find type 'NSKeyValueObservedChange' in scope
102 | 	// MARK: - Change handling
103 |
104 | 	private func kvoUpdate(_ value: NSKeyValueObservedChange<ValueType>) {
    |                                  `- error: cannot find type 'NSKeyValueObservedChange' in scope
105 | 		if let value = value.newValue {
106 | 			self.update(with: value)
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:179:62: error: cannot find type 'AnyCancellable' in scope
177 | 	/// Attaches a subscriber with closure-based behavior to a publisher that never fails.
178 | 	/// Returns `nil` if the publisher isn't available
179 | 	func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable? {
    |                                                              `- error: cannot find type 'AnyCancellable' in scope
180 | 		self.publisher?.passthroughSubject.sink(receiveValue: receiveValue)
181 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:187:7: error: cannot find type 'AnyCancellable' in scope
185 | 		 receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
186 | 		 receiveValue: @escaping ((ValueType) -> Void)
187 | 	) -> AnyCancellable? {
    |       `- error: cannot find type 'AnyCancellable' in scope
188 | 		self.publisher?.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
189 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:185:35: error: cannot find type 'Subscribers' in scope
183 | 	/// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | 	func sink(
185 | 		 receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
    |                                   `- error: cannot find type 'Subscribers' in scope
186 | 		 receiveValue: @escaping ((ValueType) -> Void)
187 | 	) -> AnyCancellable? {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:185:23: error: @escaping attribute only applies to function types
183 | 	/// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | 	func sink(
185 | 		 receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
    |                       `- error: @escaping attribute only applies to function types
186 | 		 receiveValue: @escaping ((ValueType) -> Void)
187 | 	) -> AnyCancellable? {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:51:17: error: cannot find type 'AnyPublisher' in scope
49 | 	/// Note that the publisher will send events on non-main threads, so its important
50 | 	/// for your listeners to swap to the main thread if they are updating UI
51 | 	var publisher: AnyPublisher<ValueType, Never> {
   |                 `- error: cannot find type 'AnyPublisher' in scope
52 | 		return self.passthroughSubject.eraseToAnyPublisher()
53 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:66:62: error: cannot find type 'AnyCancellable' in scope
64 |
65 | 	/// Attaches a subscriber with closure-based behavior to a publisher that never fails.
66 | 	func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable {
   |                                                              `- error: cannot find type 'AnyCancellable' in scope
67 | 		self.passthroughSubject.sink(receiveValue: receiveValue)
68 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:74:7: error: cannot find type 'AnyCancellable' in scope
72 | 		receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
73 | 		receiveValue: @escaping ((ValueType) -> Void)
74 | 	) -> AnyCancellable {
   |       `- error: cannot find type 'AnyCancellable' in scope
75 | 		self.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
76 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:34: error: cannot find type 'Subscribers' in scope
70 | 	/// Attaches a subscriber with closure-based behavior.
71 | 	func sink(
72 | 		receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
   |                                  `- error: cannot find type 'Subscribers' in scope
73 | 		receiveValue: @escaping ((ValueType) -> Void)
74 | 	) -> AnyCancellable {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:22: error: @escaping attribute only applies to function types
70 | 	/// Attaches a subscriber with closure-based behavior.
71 | 	func sink(
72 | 		receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
   |                      `- error: @escaping attribute only applies to function types
73 | 		receiveValue: @escaping ((ValueType) -> Void)
74 | 	) -> AnyCancellable {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:86:26: error: cannot find type 'PassthroughSubject' in scope
84 | internal extension WrappedPublisher {
85 | 	// Internal publisher to allow us to send new values
86 | 	var passthroughSubject: PassthroughSubject<ValueType, Never> {
   |                          `- error: cannot find type 'PassthroughSubject' in scope
87 | 		return self._publisher as! PassthroughSubject<ValueType, Never>
88 | 	}
[58/75] Compiling DSFValueBinders ValueBinder+Binding.swift
[59/75] Compiling DSFValueBinders WrappedPublisher.swift
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:51:17: error: cannot find type 'AnyPublisher' in scope
49 | 	/// Note that the publisher will send events on non-main threads, so its important
50 | 	/// for your listeners to swap to the main thread if they are updating UI
51 | 	var publisher: AnyPublisher<ValueType, Never> {
   |                 `- error: cannot find type 'AnyPublisher' in scope
52 | 		return self.passthroughSubject.eraseToAnyPublisher()
53 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:66:62: error: cannot find type 'AnyCancellable' in scope
64 |
65 | 	/// Attaches a subscriber with closure-based behavior to a publisher that never fails.
66 | 	func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable {
   |                                                              `- error: cannot find type 'AnyCancellable' in scope
67 | 		self.passthroughSubject.sink(receiveValue: receiveValue)
68 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:74:7: error: cannot find type 'AnyCancellable' in scope
72 | 		receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
73 | 		receiveValue: @escaping ((ValueType) -> Void)
74 | 	) -> AnyCancellable {
   |       `- error: cannot find type 'AnyCancellable' in scope
75 | 		self.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
76 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:34: error: cannot find type 'Subscribers' in scope
70 | 	/// Attaches a subscriber with closure-based behavior.
71 | 	func sink(
72 | 		receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
   |                                  `- error: cannot find type 'Subscribers' in scope
73 | 		receiveValue: @escaping ((ValueType) -> Void)
74 | 	) -> AnyCancellable {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:22: error: @escaping attribute only applies to function types
70 | 	/// Attaches a subscriber with closure-based behavior.
71 | 	func sink(
72 | 		receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
   |                      `- error: @escaping attribute only applies to function types
73 | 		receiveValue: @escaping ((ValueType) -> Void)
74 | 	) -> AnyCancellable {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:86:26: error: cannot find type 'PassthroughSubject' in scope
84 | internal extension WrappedPublisher {
85 | 	// Internal publisher to allow us to send new values
86 | 	var passthroughSubject: PassthroughSubject<ValueType, Never> {
   |                          `- error: cannot find type 'PassthroughSubject' in scope
87 | 		return self._publisher as! PassthroughSubject<ValueType, Never>
88 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:36:21: error: cannot find 'PassthroughSubject' in scope
34 | 			return nil
35 | 		}
36 | 		self._publisher = PassthroughSubject<ValueType, Never>()
   |                     `- error: cannot find 'PassthroughSubject' in scope
37 | 	}
38 |
[60/75] Compiling DSFAppearanceManager WeakBox.swift
[61/76] Compiling DSFMenuBuilder NSMenuItemHighlightableView.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
[0/1] Planning build
Building for debugging...
[0/14] Write swift-version-24593BA9C3E375BF.txt
[2/56] Compiling DSFAppearanceManager DSFAppearanceManager.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[3/56] Compiling DSFAppearanceManager NSView+Appearance.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[4/59] Compiling DSFComboButton DelayedMenuButton.swift
[5/59] Compiling DSFMenuBuilder NSMenuItemHighlightableView.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[6/59] Compiling DSFValueBinders WrappedPublisher.swift
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:51:17: error: cannot find type 'AnyPublisher' in scope
49 | 	/// Note that the publisher will send events on non-main threads, so its important
50 | 	/// for your listeners to swap to the main thread if they are updating UI
51 | 	var publisher: AnyPublisher<ValueType, Never> {
   |                 `- error: cannot find type 'AnyPublisher' in scope
52 | 		return self.passthroughSubject.eraseToAnyPublisher()
53 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:66:62: error: cannot find type 'AnyCancellable' in scope
64 |
65 | 	/// Attaches a subscriber with closure-based behavior to a publisher that never fails.
66 | 	func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable {
   |                                                              `- error: cannot find type 'AnyCancellable' in scope
67 | 		self.passthroughSubject.sink(receiveValue: receiveValue)
68 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:74:7: error: cannot find type 'AnyCancellable' in scope
72 | 		receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
73 | 		receiveValue: @escaping ((ValueType) -> Void)
74 | 	) -> AnyCancellable {
   |       `- error: cannot find type 'AnyCancellable' in scope
75 | 		self.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
76 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:34: error: cannot find type 'Subscribers' in scope
70 | 	/// Attaches a subscriber with closure-based behavior.
71 | 	func sink(
72 | 		receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
   |                                  `- error: cannot find type 'Subscribers' in scope
73 | 		receiveValue: @escaping ((ValueType) -> Void)
74 | 	) -> AnyCancellable {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:22: error: @escaping attribute only applies to function types
70 | 	/// Attaches a subscriber with closure-based behavior.
71 | 	func sink(
72 | 		receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
   |                      `- error: @escaping attribute only applies to function types
73 | 		receiveValue: @escaping ((ValueType) -> Void)
74 | 	) -> AnyCancellable {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:86:26: error: cannot find type 'PassthroughSubject' in scope
84 | internal extension WrappedPublisher {
85 | 	// Internal publisher to allow us to send new values
86 | 	var passthroughSubject: PassthroughSubject<ValueType, Never> {
   |                          `- error: cannot find type 'PassthroughSubject' in scope
87 | 		return self._publisher as! PassthroughSubject<ValueType, Never>
88 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/private/WrappedPublisher.swift:36:21: error: cannot find 'PassthroughSubject' in scope
34 | 			return nil
35 | 		}
36 | 		self._publisher = PassthroughSubject<ValueType, Never>()
   |                     `- error: cannot find 'PassthroughSubject' in scope
37 | 	}
38 |
[7/59] Compiling DSFMenuBuilder ViewItem.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[8/60] Compiling DSFAppearanceManager WeakBag.swift
[9/60] Compiling DSFAppearanceManager NSAppearance+extensions.swift
[10/61] Compiling DSFAppearanceManager DSFAppearanceCache.swift
[11/61] Compiling DSFAppearanceManager DSFAppearanceManager+ChangeDetector.swift
[12/61] Compiling DSFComboButton DSFComboButton+private.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[13/61] Emitting module DSFMenuBuilder
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[16/61] Compiling DSFAppearanceManager NSWindow+Appearance.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[17/61] Compiling DSFAppearanceManager AutoplayAnimatedImages.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[20/61] Compiling DSFComboButton DSFComboButton.swift
[21/61] Emitting module DSFComboButton
[22/61] Compiling DSFMenuBuilder AnyMenuItem.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[23/61] Compiling DSFMenuBuilder MenuItemTarget.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[24/61] Compiling DSFMenuBuilder ViewItem+NSViewController.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[25/62] Compiling DSFSearchField resource_bundle_accessor.swift
[26/62] Compiling DSFSearchField DSFSearchField+SwiftUI.swift
[27/62] Emitting module DSFSearchField
[28/62] Compiling DSFSearchField DSFSearchField.swift
[29/62] Compiling DSFValueBinders ValueBinder.swift
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:179:62: error: cannot find type 'AnyCancellable' in scope
177 | 	/// Attaches a subscriber with closure-based behavior to a publisher that never fails.
178 | 	/// Returns `nil` if the publisher isn't available
179 | 	func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable? {
    |                                                              `- error: cannot find type 'AnyCancellable' in scope
180 | 		self.publisher?.passthroughSubject.sink(receiveValue: receiveValue)
181 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:187:7: error: cannot find type 'AnyCancellable' in scope
185 | 		 receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
186 | 		 receiveValue: @escaping ((ValueType) -> Void)
187 | 	) -> AnyCancellable? {
    |       `- error: cannot find type 'AnyCancellable' in scope
188 | 		self.publisher?.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
189 | 	}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:185:35: error: cannot find type 'Subscribers' in scope
183 | 	/// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | 	func sink(
185 | 		 receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
    |                                   `- error: cannot find type 'Subscribers' in scope
186 | 		 receiveValue: @escaping ((ValueType) -> Void)
187 | 	) -> AnyCancellable? {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/ValueBinder.swift:185:23: error: @escaping attribute only applies to function types
183 | 	/// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | 	func sink(
185 | 		 receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
    |                       `- error: @escaping attribute only applies to function types
186 | 		 receiveValue: @escaping ((ValueType) -> Void)
187 | 	) -> AnyCancellable? {
[30/62] Compiling DSFValueBinders ValueBinder+transformers.swift
[31/62] Compiling DSFValueBinders ValueBinder+Binding.swift
[32/62] Compiling DSFSearchField LocalizationHelpers.swift
[33/62] Compiling DSFSearchField SwiftUIHelpers.swift
[34/63] Emitting module DSFAppearanceManager
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:104:30: error: cannot find type 'NSKeyValueObservation' in scope
102 |
103 | 	private weak var object: ClassType?
104 | 	private var kvoObservation: NSKeyValueObservation?
    |                              `- error: cannot find type 'NSKeyValueObservation' in scope
105 | 	private let stringPath: String
106 | 	private let lock = SemLock()
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 65 |
 66 | 		// A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
 67 | 		let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
    |                                                `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 68 | 		guard !stringKeyPath.isEmpty else {
 69 | 			throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:76:21: error: value of type 'ClassType' has no member 'value'
 74 | 		// If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
 75 | 		guard
 76 | 			let raw = object.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
    |                     `- error: value of type 'ClassType' has no member 'value'
 77 | 			let initialValue = ValueType(rawValue: raw)
 78 | 		else {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:32: error: value of type 'ClassType' has no member 'observe'
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                `- error: value of type 'ClassType' has no member 'observe'
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:60: error: reference to member 'new' cannot be resolved without a contextual type
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                            `- error: reference to member 'new' cannot be resolved without a contextual type
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:80: error: cannot infer type of closure parameter 'obj' without a type annotation
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                                                `- error: cannot infer type of closure parameter 'obj' without a type annotation
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:85: error: cannot infer type of closure parameter 'value' without a type annotation
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                                                     `- error: cannot infer type of closure parameter 'value' without a type annotation
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:124:12: error: value of type 'ClassType' has no member 'setValue'
122 | 		self.lock.tryLock {
123 | 			// Push the new value through to the bound keypath
124 | 			object?.setValue(self.wrappedValue.rawValue, forKey: stringPath)
    |            `- error: value of type 'ClassType' has no member 'setValue'
125 | 			self.callback?(self.wrappedValue)
126 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:97:30: error: cannot find type 'NSKeyValueObservation' in scope
 95 |
 96 | 	private weak var object: ClassType?
 97 | 	private var kvoObservation: NSKeyValueObservation?
    |                              `- error: cannot find type 'NSKeyValueObservation' in scope
 98 | 	private let stringPath: String
 99 | 	private let lock = SemLock()
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:104:34: error: cannot find type 'NSKeyValueObservedChange' in scope
102 | 	// MARK: - Change handling
103 |
104 | 	private func kvoUpdate(_ value: NSKeyValueObservedChange<ValueType>) {
    |                                  `- error: cannot find type 'NSKeyValueObservedChange' in scope
105 | 		if let value = value.newValue {
106 | 			self.update(with: value)
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 65 |
 66 | 		// A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
 67 | 		let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
    |                                                `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 68 | 		guard !stringKeyPath.isEmpty else {
 69 | 			throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:75:35: error: value of type 'ClassType' has no member 'value'
 73 | 		// Grab out the initial value from the bound keypath.
 74 | 		// If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
 75 | 		guard let initialValue = object.value(forKeyPath: stringKeyPath) as? ValueType else {
    |                                   `- error: value of type 'ClassType' has no member 'value'
 76 | 			Swift.print("The specified key path couldn't be resolved.")
 77 | 			Swift.print("If `keyPath` refers to an enum (eg, `NSToolbar.SizeMode`) use `EnumKeyPathBinder` instead")
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:32: error: value of type 'ClassType' has no member 'observe'
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                `- error: value of type 'ClassType' has no member 'observe'
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:60: error: reference to member 'new' cannot be resolved without a contextual type
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                            `- error: reference to member 'new' cannot be resolved without a contextual type
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:80: error: cannot infer type of closure parameter '_' without a type annotation
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                                                `- error: cannot infer type of closure parameter '_' without a type annotation
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:83: error: cannot infer type of closure parameter 'value' without a type annotation
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                                                   `- error: cannot infer type of closure parameter 'value' without a type annotation
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:122:12: error: value of type 'ClassType' has no member 'setValue'
120 | 		self.lock.tryLock {
121 | 			// Push the new value through to the bound keypath
122 | 			object?.setValue(self.wrappedValue, forKey: stringPath)
    |            `- error: value of type 'ClassType' has no member 'setValue'
123 | 			self.callback?(self.wrappedValue)
124 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:104:30: error: cannot find type 'NSKeyValueObservation' in scope
102 |
103 | 	private weak var object: ClassType?
104 | 	private var kvoObservation: NSKeyValueObservation?
    |                              `- error: cannot find type 'NSKeyValueObservation' in scope
105 | 	private let stringPath: String
106 | 	private let lock = SemLock()
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 65 |
 66 | 		// A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
 67 | 		let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
    |                                                `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 68 | 		guard !stringKeyPath.isEmpty else {
 69 | 			throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:76:21: error: value of type 'ClassType' has no member 'value'
 74 | 		// If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
 75 | 		guard
 76 | 			let raw = object.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
    |                     `- error: value of type 'ClassType' has no member 'value'
 77 | 			let initialValue = ValueType(rawValue: raw)
 78 | 		else {
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:32: error: value of type 'ClassType' has no member 'observe'
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                `- error: value of type 'ClassType' has no member 'observe'
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:60: error: reference to member 'new' cannot be resolved without a contextual type
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                            `- error: reference to member 'new' cannot be resolved without a contextual type
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:80: error: cannot infer type of closure parameter 'obj' without a type annotation
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                                                `- error: cannot infer type of closure parameter 'obj' without a type annotation
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:85: error: cannot infer type of closure parameter 'value' without a type annotation
 87 |
 88 | 		// Start listening for kvo changes
 89 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
    |                                                                                     `- error: cannot infer type of closure parameter 'value' without a type annotation
 90 | 			if
 91 | 				let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/EnumKeyPathBinder.swift:124:12: error: value of type 'ClassType' has no member 'setValue'
122 | 		self.lock.tryLock {
123 | 			// Push the new value through to the bound keypath
124 | 			object?.setValue(self.wrappedValue.rawValue, forKey: stringPath)
    |            `- error: value of type 'ClassType' has no member 'setValue'
125 | 			self.callback?(self.wrappedValue)
126 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:97:30: error: cannot find type 'NSKeyValueObservation' in scope
 95 |
 96 | 	private weak var object: ClassType?
 97 | 	private var kvoObservation: NSKeyValueObservation?
    |                              `- error: cannot find type 'NSKeyValueObservation' in scope
 98 | 	private let stringPath: String
 99 | 	private let lock = SemLock()
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:104:34: error: cannot find type 'NSKeyValueObservedChange' in scope
102 | 	// MARK: - Change handling
103 |
104 | 	private func kvoUpdate(_ value: NSKeyValueObservedChange<ValueType>) {
    |                                  `- error: cannot find type 'NSKeyValueObservedChange' in scope
105 | 		if let value = value.newValue {
106 | 			self.update(with: value)
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 65 |
 66 | 		// A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
 67 | 		let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
    |                                                `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
 68 | 		guard !stringKeyPath.isEmpty else {
 69 | 			throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:75:35: error: value of type 'ClassType' has no member 'value'
 73 | 		// Grab out the initial value from the bound keypath.
 74 | 		// If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
 75 | 		guard let initialValue = object.value(forKeyPath: stringKeyPath) as? ValueType else {
    |                                   `- error: value of type 'ClassType' has no member 'value'
 76 | 			Swift.print("The specified key path couldn't be resolved.")
 77 | 			Swift.print("If `keyPath` refers to an enum (eg, `NSToolbar.SizeMode`) use `EnumKeyPathBinder` instead")
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:32: error: value of type 'ClassType' has no member 'observe'
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                `- error: value of type 'ClassType' has no member 'observe'
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:60: error: reference to member 'new' cannot be resolved without a contextual type
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                            `- error: reference to member 'new' cannot be resolved without a contextual type
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:80: error: cannot infer type of closure parameter '_' without a type annotation
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                                                `- error: cannot infer type of closure parameter '_' without a type annotation
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:87:83: error: cannot infer type of closure parameter 'value' without a type annotation
 85 |
 86 | 		// Start listening for kvo changes
 87 | 		self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
    |                                                                                   `- error: cannot infer type of closure parameter 'value' without a type annotation
 88 | 			self?.kvoUpdate(value)
 89 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/Sources/DSFValueBinders/KeyPathBinder.swift:122:12: error: value of type 'ClassType' has no member 'setValue'
120 | 		self.lock.tryLock {
121 | 			// Push the new value through to the bound keypath
122 | 			object?.setValue(self.wrappedValue, forKey: stringPath)
    |            `- error: value of type 'ClassType' has no member 'setValue'
123 | 			self.callback?(self.wrappedValue)
124 | 		}
BUILD FAILURE 6.1 linux