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

Successful build of Deferred, reference 4.1.0 (96ad3f), with Swift 6.2 (beta) for macOS (SPM) on 19 Jun 2025 16:52:00 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bignerdranch/Deferred.git
Reference: 4.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bignerdranch/Deferred
 * tag               4.1.0      -> FETCH_HEAD
HEAD is now at 96ad3f6 Merge pull request #293 from bignerdranch/zwaldowski/bump-version
Cloned https://github.com/bignerdranch/Deferred.git
Revision (git rev-parse @):
96ad3f6dd1ddaffe1830dbb3b1cb783a87d6e952
SUCCESS checkout https://github.com/bignerdranch/Deferred.git at 4.1.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/bignerdranch/Deferred.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Building for debugging...
[0/4] Write sources
[2/4] Compiling Atomics Empty.c
[3/4] Write swift-version-1EA4D86E10B52AF.txt
[5/23] Compiling Deferred Atomics.swift
[6/23] Compiling Deferred Deferred.swift
[7/23] Emitting module Deferred
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:46:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 44 | ///     }
 45 | ///
 46 | public protocol Executor: class {
    |                           `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 47 |     /// Execute the `body` closure.
 48 |     func submit(_ body: @escaping() -> Void)
[8/24] Compiling Deferred Protected.swift
[9/24] Compiling Deferred DeferredQueue.swift
[10/24] Compiling Deferred DeferredVariant.swift
[11/24] Compiling Deferred Future.swift
[12/24] Compiling Deferred FutureAndThen.swift
[13/24] Compiling Deferred FuturePeek.swift
[14/24] Compiling Deferred FutureUpon.swift
[15/24] Compiling Deferred Locking.swift
[16/24] Compiling Deferred Promise.swift
[17/24] Compiling Deferred FutureIgnore.swift
[18/24] Compiling Deferred FutureMap.swift
[19/24] Compiling Deferred FutureAsync.swift
[20/24] Compiling Deferred FutureCollections.swift
[21/24] Compiling Deferred Executor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:46:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 44 | ///     }
 45 | ///
 46 | public protocol Executor: class {
    |                           `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 47 |     /// Execute the `body` closure.
 48 |     func submit(_ body: @escaping() -> Void)
[22/24] Compiling Deferred ExistentialFuture.swift
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:46:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 44 | ///     }
 45 | ///
 46 | public protocol Executor: class {
    |                           `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 47 |     /// Execute the `body` closure.
 48 |     func submit(_ body: @escaping() -> Void)
[23/24] Compiling Deferred FutureComposition.swift
[24/24] Compiling Deferred FutureEveryMap.swift
[25/40] Compiling Task TaskRecovery.swift
[26/40] Compiling Task TaskIgnore.swift
[27/40] Compiling Task TaskMap.swift
[28/41] Compiling Task Task.swift
[29/41] Compiling Task TaskAndThen.swift
[30/41] Compiling Task TaskCollections.swift
[31/41] Compiling Task TaskFallback.swift
[32/41] Compiling Task Either.swift
[33/41] Compiling Task ExistentialTask.swift
[34/41] Emitting module Task
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:109:31: warning: 'cancellable' has been renamed to 'isCancellable'
107 |             #keyPath(Progress.localizedDescription),
108 |             #keyPath(Progress.localizedAdditionalDescription),
109 |             #keyPath(Progress.cancellable),
    |                               `- warning: 'cancellable' has been renamed to 'isCancellable'
110 |             #keyPath(Progress.pausable),
111 |             #keyPath(Progress.kind)
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:111:39: note: 'cancellable' was obsoleted in Swift 3
109 | /* Whether the work being done can be cancelled or paused, respectively. By default NSProgresses are cancellable but not pausable. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. These properties are for communicating whether controls for cancelling and pausing should appear in a progress reporting user interface. NSProgress itself does not do anything with these properties other than help pass their values from progress reporters to progress observers. It is valid for the values of these properties to change in virtually any way during the lifetime of an NSProgress. Of course, if an NSProgress is cancellable you should actually implement cancellability by setting a cancellation handler or by making your code poll the result of invoking -isCancelled. Likewise for pausability.
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
    |                                       `- note: 'cancellable' was obsoleted in Swift 3
112 | @property (getter=isPausable) BOOL pausable;
113 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:110:31: warning: 'pausable' has been renamed to 'isPausable'
108 |             #keyPath(Progress.localizedAdditionalDescription),
109 |             #keyPath(Progress.cancellable),
110 |             #keyPath(Progress.pausable),
    |                               `- warning: 'pausable' has been renamed to 'isPausable'
111 |             #keyPath(Progress.kind)
112 |         ]
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:112:36: note: 'pausable' was obsoleted in Swift 3
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
112 | @property (getter=isPausable) BOOL pausable;
    |                                    `- note: 'pausable' was obsoleted in Swift 3
113 |
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:20:21: warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 18 | /// tree.
 19 | @objc(BNRTaskProxyProgress)
 20 | private final class ProxyProgress: Progress {
    |                     `- warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 21 |
 22 |     @objc dynamic let observee: Progress
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskChain.swift:35:19: warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 33 |     /// that first task's `Root`.
 34 |     @objc(BNRTaskRootProgress)
 35 |     private class Root: Progress {
    |                   `- warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 36 |         /// Key for value of type `[Root]?` in `Thread.threadDictionary`.
 37 |         static let threadKey = "_BNRTaskProgressStack"
[35/41] Compiling Task TaskResult.swift
[36/41] Compiling Task Progress+ExplicitComposition.swift
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:109:31: warning: 'cancellable' has been renamed to 'isCancellable'
107 |             #keyPath(Progress.localizedDescription),
108 |             #keyPath(Progress.localizedAdditionalDescription),
109 |             #keyPath(Progress.cancellable),
    |                               `- warning: 'cancellable' has been renamed to 'isCancellable'
110 |             #keyPath(Progress.pausable),
111 |             #keyPath(Progress.kind)
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:111:39: note: 'cancellable' was obsoleted in Swift 3
109 | /* Whether the work being done can be cancelled or paused, respectively. By default NSProgresses are cancellable but not pausable. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. These properties are for communicating whether controls for cancelling and pausing should appear in a progress reporting user interface. NSProgress itself does not do anything with these properties other than help pass their values from progress reporters to progress observers. It is valid for the values of these properties to change in virtually any way during the lifetime of an NSProgress. Of course, if an NSProgress is cancellable you should actually implement cancellability by setting a cancellation handler or by making your code poll the result of invoking -isCancelled. Likewise for pausability.
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
    |                                       `- note: 'cancellable' was obsoleted in Swift 3
112 | @property (getter=isPausable) BOOL pausable;
113 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:110:31: warning: 'pausable' has been renamed to 'isPausable'
108 |             #keyPath(Progress.localizedAdditionalDescription),
109 |             #keyPath(Progress.cancellable),
110 |             #keyPath(Progress.pausable),
    |                               `- warning: 'pausable' has been renamed to 'isPausable'
111 |             #keyPath(Progress.kind)
112 |         ]
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:112:36: note: 'pausable' was obsoleted in Swift 3
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
112 | @property (getter=isPausable) BOOL pausable;
    |                                    `- note: 'pausable' was obsoleted in Swift 3
113 |
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:20:21: warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 18 | /// tree.
 19 | @objc(BNRTaskProxyProgress)
 20 | private final class ProxyProgress: Progress {
    |                     `- warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 21 |
 22 |     @objc dynamic let observee: Progress
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:139:70: warning: 'cancelled' has been renamed to 'isCancelled'
137 |                 observee.addObserver(self, forKeyPath: key, options: [ .initial, .new ], context: &Observation.attributesContext)
138 |             }
139 |             observee.addObserver(self, forKeyPath: #keyPath(Progress.cancelled), options: .initial, context: &Observation.cancelledContext)
    |                                                                      `- warning: 'cancelled' has been renamed to 'isCancelled'
140 |             observee.addObserver(self, forKeyPath: #keyPath(Progress.paused), options: .initial, context: &Observation.pausedContext)
141 |
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:116:47: note: 'cancelled' was obsoleted in Swift 3
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
    |                                               `- note: 'cancelled' was obsoleted in Swift 3
117 | @property (readonly, getter=isPaused) BOOL paused;
118 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:140:70: warning: 'paused' has been renamed to 'isPaused'
138 |             }
139 |             observee.addObserver(self, forKeyPath: #keyPath(Progress.cancelled), options: .initial, context: &Observation.cancelledContext)
140 |             observee.addObserver(self, forKeyPath: #keyPath(Progress.paused), options: .initial, context: &Observation.pausedContext)
    |                                                                      `- warning: 'paused' has been renamed to 'isPaused'
141 |
142 |             bnr_atomic_fetch_or(&state, State.observing.rawValue, .release)
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:117:44: note: 'paused' was obsoleted in Swift 3
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
117 | @property (readonly, getter=isPaused) BOOL paused;
    |                                            `- note: 'paused' was obsoleted in Swift 3
118 |
119 | /* A block to be invoked when cancel is invoked. The block will be invoked even when the method is invoked on an ancestor of the receiver, or an instance of NSProgress in another process that resulted from publishing the receiver or an ancestor of the receiver. Your block won't be invoked on any particular queue. If it must do work on a specific queue then it should schedule that work on that queue.
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:157:73: warning: 'cancelled' has been renamed to 'isCancelled'
155 |                 observee.removeObserver(self, forKeyPath: key, context: &Observation.attributesContext)
156 |             }
157 |             observee.removeObserver(self, forKeyPath: #keyPath(Progress.cancelled), context: &Observation.cancelledContext)
    |                                                                         `- warning: 'cancelled' has been renamed to 'isCancelled'
158 |             observee.removeObserver(self, forKeyPath: #keyPath(Progress.paused), context: &Observation.pausedContext)
159 |         }
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:116:47: note: 'cancelled' was obsoleted in Swift 3
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
    |                                               `- note: 'cancelled' was obsoleted in Swift 3
117 | @property (readonly, getter=isPaused) BOOL paused;
118 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:158:73: warning: 'paused' has been renamed to 'isPaused'
156 |             }
157 |             observee.removeObserver(self, forKeyPath: #keyPath(Progress.cancelled), context: &Observation.cancelledContext)
158 |             observee.removeObserver(self, forKeyPath: #keyPath(Progress.paused), context: &Observation.pausedContext)
    |                                                                         `- warning: 'paused' has been renamed to 'isPaused'
159 |         }
160 |
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:117:44: note: 'paused' was obsoleted in Swift 3
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
117 | @property (readonly, getter=isPaused) BOOL paused;
    |                                            `- note: 'paused' was obsoleted in Swift 3
118 |
119 | /* A block to be invoked when cancel is invoked. The block will be invoked even when the method is invoked on an ancestor of the receiver, or an instance of NSProgress in another process that resulted from publishing the receiver or an ancestor of the receiver. Your block won't be invoked on any particular queue. If it must do work on a specific queue then it should schedule that work on that queue.
[37/41] Compiling Task Progress+Future.swift
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:109:31: warning: 'cancellable' has been renamed to 'isCancellable'
107 |             #keyPath(Progress.localizedDescription),
108 |             #keyPath(Progress.localizedAdditionalDescription),
109 |             #keyPath(Progress.cancellable),
    |                               `- warning: 'cancellable' has been renamed to 'isCancellable'
110 |             #keyPath(Progress.pausable),
111 |             #keyPath(Progress.kind)
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:111:39: note: 'cancellable' was obsoleted in Swift 3
109 | /* Whether the work being done can be cancelled or paused, respectively. By default NSProgresses are cancellable but not pausable. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. These properties are for communicating whether controls for cancelling and pausing should appear in a progress reporting user interface. NSProgress itself does not do anything with these properties other than help pass their values from progress reporters to progress observers. It is valid for the values of these properties to change in virtually any way during the lifetime of an NSProgress. Of course, if an NSProgress is cancellable you should actually implement cancellability by setting a cancellation handler or by making your code poll the result of invoking -isCancelled. Likewise for pausability.
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
    |                                       `- note: 'cancellable' was obsoleted in Swift 3
112 | @property (getter=isPausable) BOOL pausable;
113 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:110:31: warning: 'pausable' has been renamed to 'isPausable'
108 |             #keyPath(Progress.localizedAdditionalDescription),
109 |             #keyPath(Progress.cancellable),
110 |             #keyPath(Progress.pausable),
    |                               `- warning: 'pausable' has been renamed to 'isPausable'
111 |             #keyPath(Progress.kind)
112 |         ]
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:112:36: note: 'pausable' was obsoleted in Swift 3
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
112 | @property (getter=isPausable) BOOL pausable;
    |                                    `- note: 'pausable' was obsoleted in Swift 3
113 |
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:20:21: warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 18 | /// tree.
 19 | @objc(BNRTaskProxyProgress)
 20 | private final class ProxyProgress: Progress {
    |                     `- warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 21 |
 22 |     @objc dynamic let observee: Progress
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:139:70: warning: 'cancelled' has been renamed to 'isCancelled'
137 |                 observee.addObserver(self, forKeyPath: key, options: [ .initial, .new ], context: &Observation.attributesContext)
138 |             }
139 |             observee.addObserver(self, forKeyPath: #keyPath(Progress.cancelled), options: .initial, context: &Observation.cancelledContext)
    |                                                                      `- warning: 'cancelled' has been renamed to 'isCancelled'
140 |             observee.addObserver(self, forKeyPath: #keyPath(Progress.paused), options: .initial, context: &Observation.pausedContext)
141 |
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:116:47: note: 'cancelled' was obsoleted in Swift 3
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
    |                                               `- note: 'cancelled' was obsoleted in Swift 3
117 | @property (readonly, getter=isPaused) BOOL paused;
118 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:140:70: warning: 'paused' has been renamed to 'isPaused'
138 |             }
139 |             observee.addObserver(self, forKeyPath: #keyPath(Progress.cancelled), options: .initial, context: &Observation.cancelledContext)
140 |             observee.addObserver(self, forKeyPath: #keyPath(Progress.paused), options: .initial, context: &Observation.pausedContext)
    |                                                                      `- warning: 'paused' has been renamed to 'isPaused'
141 |
142 |             bnr_atomic_fetch_or(&state, State.observing.rawValue, .release)
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:117:44: note: 'paused' was obsoleted in Swift 3
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
117 | @property (readonly, getter=isPaused) BOOL paused;
    |                                            `- note: 'paused' was obsoleted in Swift 3
118 |
119 | /* A block to be invoked when cancel is invoked. The block will be invoked even when the method is invoked on an ancestor of the receiver, or an instance of NSProgress in another process that resulted from publishing the receiver or an ancestor of the receiver. Your block won't be invoked on any particular queue. If it must do work on a specific queue then it should schedule that work on that queue.
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:157:73: warning: 'cancelled' has been renamed to 'isCancelled'
155 |                 observee.removeObserver(self, forKeyPath: key, context: &Observation.attributesContext)
156 |             }
157 |             observee.removeObserver(self, forKeyPath: #keyPath(Progress.cancelled), context: &Observation.cancelledContext)
    |                                                                         `- warning: 'cancelled' has been renamed to 'isCancelled'
158 |             observee.removeObserver(self, forKeyPath: #keyPath(Progress.paused), context: &Observation.pausedContext)
159 |         }
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:116:47: note: 'cancelled' was obsoleted in Swift 3
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
    |                                               `- note: 'cancelled' was obsoleted in Swift 3
117 | @property (readonly, getter=isPaused) BOOL paused;
118 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:158:73: warning: 'paused' has been renamed to 'isPaused'
156 |             }
157 |             observee.removeObserver(self, forKeyPath: #keyPath(Progress.cancelled), context: &Observation.cancelledContext)
158 |             observee.removeObserver(self, forKeyPath: #keyPath(Progress.paused), context: &Observation.pausedContext)
    |                                                                         `- warning: 'paused' has been renamed to 'isPaused'
159 |         }
160 |
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:117:44: note: 'paused' was obsoleted in Swift 3
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
117 | @property (readonly, getter=isPaused) BOOL paused;
    |                                            `- note: 'paused' was obsoleted in Swift 3
118 |
119 | /* A block to be invoked when cancel is invoked. The block will be invoked even when the method is invoked on an ancestor of the receiver, or an instance of NSProgress in another process that resulted from publishing the receiver or an ancestor of the receiver. Your block won't be invoked on any particular queue. If it must do work on a specific queue then it should schedule that work on that queue.
[38/41] Compiling Task TaskPromise.swift
[39/41] Compiling Task TaskAsync.swift
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskChain.swift:35:19: warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 33 |     /// that first task's `Root`.
 34 |     @objc(BNRTaskRootProgress)
 35 |     private class Root: Progress {
    |                   `- warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 36 |         /// Key for value of type `[Root]?` in `Thread.threadDictionary`.
 37 |         static let threadKey = "_BNRTaskProgressStack"
[40/41] Compiling Task TaskChain.swift
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskChain.swift:35:19: warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 33 |     /// that first task's `Root`.
 34 |     @objc(BNRTaskRootProgress)
 35 |     private class Root: Progress {
    |                   `- warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 36 |         /// Key for value of type `[Root]?` in `Thread.threadDictionary`.
 37 |         static let threadKey = "_BNRTaskProgressStack"
[41/41] Compiling Task TaskUpon.swift
Build complete! (4.97s)
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Tests/DeferredTests/Tests/AllTestsCommon.swift': File not found.
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Tests/TaskTests/Tests/AllTestsCommon.swift': File not found.
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Deferred",
  "name" : "Deferred",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Deferred",
      "targets" : [
        "Deferred",
        "Task"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "4.2",
    "5"
  ],
  "targets" : [
    {
      "c99name" : "TaskTests",
      "module_type" : "SwiftTarget",
      "name" : "TaskTests",
      "path" : "Tests/TaskTests",
      "sources" : [
        "AllTestsCommon.swift",
        "TaskAsyncTests.swift",
        "TaskComprehensiveTests.swift",
        "TaskProgressTests.swift",
        "TaskProtocolTests.swift",
        "TaskResultTests.swift",
        "TaskTests.swift"
      ],
      "target_dependencies" : [
        "Deferred",
        "Task"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Task",
      "module_type" : "SwiftTarget",
      "name" : "Task",
      "path" : "Sources/Task",
      "product_memberships" : [
        "Deferred"
      ],
      "sources" : [
        "Either.swift",
        "ExistentialTask.swift",
        "Progress+ExplicitComposition.swift",
        "Progress+Future.swift",
        "Task.swift",
        "TaskAndThen.swift",
        "TaskAsync.swift",
        "TaskChain.swift",
        "TaskCollections.swift",
        "TaskFallback.swift",
        "TaskIgnore.swift",
        "TaskMap.swift",
        "TaskPromise.swift",
        "TaskRecovery.swift",
        "TaskResult.swift",
        "TaskUpon.swift"
      ],
      "target_dependencies" : [
        "Deferred"
      ],
      "type" : "library"
    },
    {
      "c99name" : "DeferredTests",
      "module_type" : "SwiftTarget",
      "name" : "DeferredTests",
      "path" : "Tests/DeferredTests",
      "sources" : [
        "AllTestsCommon.swift",
        "DeferredTests.swift",
        "ExistentialFutureTests.swift",
        "FilledDeferredTests.swift",
        "FutureAsyncTests.swift",
        "FutureCustomExecutorTests.swift",
        "FutureIgnoreTests.swift",
        "FutureTests.swift",
        "LockingTests.swift",
        "ObjectDeferredTests.swift",
        "PerformanceTests.swift",
        "ProtectedTests.swift",
        "SwiftBugTests.swift"
      ],
      "target_dependencies" : [
        "Deferred"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Deferred",
      "module_type" : "SwiftTarget",
      "name" : "Deferred",
      "path" : "Sources/Deferred",
      "product_memberships" : [
        "Deferred"
      ],
      "sources" : [
        "Atomics.swift",
        "Deferred.swift",
        "DeferredQueue.swift",
        "DeferredVariant.swift",
        "Executor.swift",
        "ExistentialFuture.swift",
        "Future.swift",
        "FutureAndThen.swift",
        "FutureAsync.swift",
        "FutureCollections.swift",
        "FutureComposition.swift",
        "FutureEveryMap.swift",
        "FutureIgnore.swift",
        "FutureMap.swift",
        "FuturePeek.swift",
        "FutureUpon.swift",
        "Locking.swift",
        "Promise.swift",
        "Protected.swift"
      ],
      "target_dependencies" : [
        "Atomics"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Atomics",
      "module_type" : "ClangTarget",
      "name" : "Atomics",
      "path" : "Sources/Atomics",
      "product_memberships" : [
        "Deferred"
      ],
      "sources" : [
        "Empty.c"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "4.2"
}
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Tests/DeferredTests/Tests/AllTestsCommon.swift': File not found.
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Tests/TaskTests/Tests/AllTestsCommon.swift': File not found.
Done.