The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Failed to build DSFAppKitBuilder, reference 11.10.2 (d188d6), with Swift 6.0 for Linux on 1 Dec 2024 23:22:27 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.0-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

Build Log

========================================
RunAll
========================================
Builder version: 4.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dagronf/DSFAppKitBuilder.git
Reference: 11.10.2
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
 * tag               11.10.2    -> FETCH_HEAD
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 11.10.2
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/dagronf/DSFAppKitBuilder.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -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.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Fetching https://github.com/dagronf/DSFMenuBuilder
Fetching https://github.com/dagronf/DSFValueBinders
Fetching https://github.com/dagronf/DSFComboButton
Fetching https://github.com/dagronf/DSFToggleButton
Fetching https://github.com/dagronf/DSFSearchField
Fetching https://github.com/dagronf/DSFStepperView
[1/167] Fetching dsfcombobutton
[168/828] Fetching dsfcombobutton, dsfstepperview
[228/1063] Fetching dsfcombobutton, dsfstepperview, dsfvaluebinders
[1045/1246] Fetching dsfcombobutton, dsfstepperview, dsfvaluebinders, dsfsearchfield
[1220/1740] Fetching dsfcombobutton, dsfstepperview, dsfvaluebinders, dsfsearchfield, dsftogglebutton
[1741/2064] Fetching dsfcombobutton, dsfstepperview, dsfvaluebinders, dsfsearchfield, dsftogglebutton, dsfmenubuilder
Fetched https://github.com/dagronf/DSFValueBinders from cache (0.27s)
Fetched https://github.com/dagronf/DSFComboButton from cache (0.27s)
Fetched https://github.com/dagronf/DSFStepperView from cache (0.27s)
Fetched https://github.com/dagronf/DSFMenuBuilder from cache (0.27s)
Fetching https://github.com/dagronf/DSFPagerControl
Fetched https://github.com/dagronf/DSFSearchField from cache (0.28s)
Fetched https://github.com/dagronf/DSFToggleButton from cache (0.28s)
[1/312] Fetching dsfpagercontrol
Fetched https://github.com/dagronf/DSFPagerControl from cache (0.19s)
Computing version for https://github.com/dagronf/DSFSearchField
Computed https://github.com/dagronf/DSFSearchField at 2.2.2 (0.45s)
Computing version for https://github.com/dagronf/DSFStepperView
Computed https://github.com/dagronf/DSFStepperView at 4.3.0 (0.46s)
Fetching https://github.com/dagronf/DSFAppearanceManager
[1/398] Fetching dsfappearancemanager
Fetched https://github.com/dagronf/DSFAppearanceManager from cache (0.24s)
Computing version for https://github.com/dagronf/DSFToggleButton
Computed https://github.com/dagronf/DSFToggleButton at 7.1.0 (0.47s)
Computing version for https://github.com/dagronf/DSFComboButton
Computed https://github.com/dagronf/DSFComboButton at 1.0.0 (0.45s)
Computing version for https://github.com/dagronf/DSFMenuBuilder
Computed https://github.com/dagronf/DSFMenuBuilder at 1.2.1 (0.45s)
Computing version for https://github.com/dagronf/DSFPagerControl
Computed https://github.com/dagronf/DSFPagerControl at 2.5.2 (0.49s)
Computing version for https://github.com/dagronf/DSFValueBinders
Computed https://github.com/dagronf/DSFValueBinders at 1.0.1 (0.49s)
Computing version for https://github.com/dagronf/DSFAppearanceManager
Computed https://github.com/dagronf/DSFAppearanceManager at 3.5.1 (0.47s)
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/DSFMenuBuilder
Working copy of https://github.com/dagronf/DSFMenuBuilder resolved at 1.2.1
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/DSFSearchField
Working copy of https://github.com/dagronf/DSFSearchField resolved at 2.2.2
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/DSFToggleButton
Working copy of https://github.com/dagronf/DSFToggleButton resolved at 7.1.0
Creating working copy for https://github.com/dagronf/DSFComboButton
Working copy of https://github.com/dagronf/DSFComboButton resolved at 1.0.0
Creating working copy for https://github.com/dagronf/DSFStepperView
Working copy of https://github.com/dagronf/DSFStepperView resolved at 4.3.0
Building for debugging...
[0/26] Write sources
[0/26] Copying PrivacyInfo.xcprivacy
[0/26] Copying Localizable.strings
[0/26] Write sources
[0/26] Copying Info.plist
[0/26] Write sources
[12/26] Write swift-version-24593BA9C3E375BF.txt
[14/70] Emitting module DSFSearchField
[15/70] Emitting module DSFAppearanceManager
[16/71] Compiling DSFValueBinders CombiningValueBinder.swift
[17/71] Compiling DSFValueBinders DSFValueBinders.swift
[18/71] Emitting module DSFComboButton
[19/71] Compiling DSFComboButton DSFComboButton.swift
[20/71] Compiling DSFComboButton DSFComboButton+private.swift
[21/71] Compiling DSFComboButton DelayedMenuButton.swift
[22/72] Wrapping AST for DSFComboButton for debugging
[24/72] Compiling DSFAppearanceManager NSAppearance+extensions.swift
[25/72] Compiling DSFAppearanceManager WeakBag.swift
[26/72] Compiling DSFSearchField resource_bundle_accessor.swift
[27/72] Compiling DSFAppearanceManager DSFSimpleLock.swift
[28/72] Compiling DSFAppearanceManager WeakBox.swift
[29/72] 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 |
[30/72] Compiling DSFAppearanceManager NSWindow+Appearance.swift
[31/72] Compiling DSFAppearanceManager AutoplayAnimatedImages.swift
[32/72] 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
[33/72] 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
error: emit-module command failed with exit code 1 (use -v to see invocation)
[36/74] 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 | 	}
[37/74] Compiling DSFAppearanceManager DSFAppearanceManager.swift
/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:100:25: error: 'nil' requires a contextual type
 98 |
 99 | 	deinit {
100 | 		self.kvoObservation = nil
    |                         `- error: 'nil' requires a contextual type
101 | 	}
102 |
/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:93:25: error: 'nil' requires a contextual type
 91 |
 92 | 	deinit {
 93 | 		self.kvoObservation = nil
    |                         `- error: 'nil' requires a contextual type
 94 | 	}
 95 |
/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 | 		}
[38/74] Compiling DSFAppearanceManager NSView+Appearance.swift
/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:100:25: error: 'nil' requires a contextual type
 98 |
 99 | 	deinit {
100 | 		self.kvoObservation = nil
    |                         `- error: 'nil' requires a contextual type
101 | 	}
102 |
/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:93:25: error: 'nil' requires a contextual type
 91 |
 92 | 	deinit {
 93 | 		self.kvoObservation = nil
    |                         `- error: 'nil' requires a contextual type
 94 | 	}
 95 |
/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/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
[41/74] Compiling DSFSearchField DSFSearchField.swift
[42/74] Compiling DSFSearchField DSFSearchField+SwiftUI.swift
[47/74] Compiling DSFAppearanceManager DSFAppearanceManager+Listeners.swift
[48/74] Compiling DSFAppearanceManager DSFDebounce.swift
[49/75] Compiling DSFSearchField LocalizationHelpers.swift
[50/75] Compiling DSFSearchField SwiftUIHelpers.swift
[51/76] 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
[52/76] 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
[55/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
[56/76] Compiling DSFValueBinders ValueBinder+transformers.swift
[57/76] Compiling DSFValueBinders ValueBinder+Binding.swift
[58/76] 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? {
error: emit-module command failed with exit code 1 (use -v to see invocation)
[60/76] 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
[64/76] Compiling DSFValueBinders SemLock.swift
[64/76] Wrapping AST for DSFSearchField for debugging
[64/76] Wrapping AST for DSFAppearanceManager for debugging
BUILD FAILURE 6.0 linux