The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of Interstellar, reference 2.2.0 (f5f628), with Swift 6.0 for Linux on 31 Oct 2024 01:00:51 UTC.

Swift 6 data race errors: 2

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/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 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/JensRavens/Interstellar.git
Reference: 2.2.0
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/JensRavens/Interstellar
 * tag               2.2.0      -> FETCH_HEAD
HEAD is now at f5f6287 Upgrade to Xcode 9.3 and Swift 4.1 (#66)
Cloned https://github.com/JensRavens/Interstellar.git
Revision (git rev-parse @):
f5f6287a902524d06d82edc3ac09aa739f43ef09
SUCCESS checkout https://github.com/JensRavens/Interstellar.git at 2.2.0
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/JensRavens/Interstellar.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/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 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
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/13] Compiling Interstellar Threading.swift
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Threading.swift:40:17: warning: capture of 'completion' with non-sendable type '(T) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
38 |         return { a, completion in
39 |             queue.async{
40 |                 completion(a)
   |                 |- warning: capture of 'completion' with non-sendable type '(T) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
   |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
41 |             }
42 |         }
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Threading.swift:40:28: warning: capture of 'a' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
35 |
36 |     /// Transform the signal to a specified queue
37 |     public static func queue<T>(_ queue: DispatchQueue) -> (T, @escaping (T)->Void) -> Void {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
38 |         return { a, completion in
39 |             queue.async{
40 |                 completion(a)
   |                            `- warning: capture of 'a' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 |             }
42 |         }
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Threading.swift:48:13: warning: capture of 'completion' with non-sendable type '(T) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
46 |     public static func background<T>(_ a: T, completion: @escaping (T)->Void) {
47 |         DispatchQueue.global(qos: .background).async {
48 |             completion(a)
   |             |- warning: capture of 'completion' with non-sendable type '(T) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
   |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
49 |         }
50 |     }
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Threading.swift:48:24: warning: capture of 'a' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
44 |
45 |     /// Transform the signal to a global background queue with priority default
46 |     public static func background<T>(_ a: T, completion: @escaping (T)->Void) {
   |                                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
47 |         DispatchQueue.global(qos: .background).async {
48 |             completion(a)
   |                        `- warning: capture of 'a' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
49 |         }
50 |     }
/host/spi-builder-workspace/Sources/Interstellar/Observable.swift:20:23: warning: static property 'Once' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | public struct ObservingOptions: OptionSet {
    |               `- note: consider making struct 'ObservingOptions' conform to the 'Sendable' protocol
 12 |     public let rawValue: Int
 13 |     public init(rawValue: Int) { self.rawValue = rawValue }
    :
 18 |     /// Observables will only fire once for an update and nil out their completion blocks afterwards.
 19 |     /// Use this to automatically resolve retain cycles for one-off operations.
 20 |     public static let Once = ObservingOptions(rawValue: 2)
    |                       |- warning: static property 'Once' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'Once' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 | }
 22 |
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Threading.swift:64:17: warning: capture of 'observable' with non-sendable type 'Observable<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
62 |             let observable = Observable<T>(options: [.Once])
63 |             queue.async{
64 |                 observable.update(t)
   |                 `- warning: capture of 'observable' with non-sendable type 'Observable<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
65 |             }
66 |             return observable
/host/spi-builder-workspace/Sources/Interstellar/Observable.swift:38:20: note: generic class 'Observable' does not conform to the 'Sendable' protocol
 36 |  Observables are thread safe.
 37 |  */
 38 | public final class Observable<T> {
    |                    `- note: generic class 'Observable' does not conform to the 'Sendable' protocol
 39 |     fileprivate typealias Observer = (T)->Void
 40 |     fileprivate var observers = [ObserverToken: Observer]()
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Threading.swift:64:35: warning: capture of 't' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
58 |
59 |     /// Transform the observalbe to a specified queue
60 |     public static func queue<T>(_ queue: DispatchQueue) -> (T) -> Observable<T> {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
61 |         return { t in
62 |             let observable = Observable<T>(options: [.Once])
63 |             queue.async{
64 |                 observable.update(t)
   |                                   `- warning: capture of 't' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
65 |             }
66 |             return observable
[4/14] Compiling Interstellar Result.swift
[5/14] Compiling Interstellar ResultType.swift
[6/14] Compiling Interstellar Signal.swift
/host/spi-builder-workspace/Sources/Interstellar/Signal.swift:41:2: warning: unexpected version number in 'available' attribute for non-specific platform '*'
 39 | */
 40 |
 41 | @available(*, deprecated: 2.0, message:"Use Observable<Result<T>> instead.")
    |  `- warning: unexpected version number in 'available' attribute for non-specific platform '*'
 42 | public final class Signal<T> {
 43 |
/host/spi-builder-workspace/Sources/Interstellar/Signal.swift:257:2: warning: unexpected version number in 'available' attribute for non-specific platform '*'
255 | }
256 |
257 | @available(*, deprecated: 2.0)
    |  `- warning: unexpected version number in 'available' attribute for non-specific platform '*'
258 | extension Signal {
259 |     func observable() -> Observable<Result<T>> {
[7/14] Compiling Interstellar Debounce.swift
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Debounce.swift:25:2: warning: unexpected version number in 'available' attribute for non-specific platform '*'
23 | import Foundation
24 |
25 | @available(*, deprecated: 2.0)
   |  `- warning: unexpected version number in 'available' attribute for non-specific platform '*'
26 | public extension Signal {
27 |     /**
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Debounce.swift:32:5: warning: 'public' modifier is redundant for instance method declared in a public extension
30 |         specified amount of seconds).
31 |     */
32 |     public func debounce(_ seconds: TimeInterval) -> Signal<T> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
33 |         let signal = Signal<T>()
34 |         var lastCalled: Date?
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Debounce.swift:68:5: warning: 'public' modifier is redundant for instance method declared in a public extension
66 |      specified amount of seconds).
67 |      */
68 |     public func debounce(_ seconds: TimeInterval) -> Observable<T> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
69 |         let observable = Observable<T>()
70 |         var lastCalled: Date?
[8/14] Compiling Interstellar Observable.swift
/host/spi-builder-workspace/Sources/Interstellar/Observable.swift:17:23: warning: static property 'NoInitialValue' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | public struct ObservingOptions: OptionSet {
    |               `- note: consider making struct 'ObservingOptions' conform to the 'Sendable' protocol
 12 |     public let rawValue: Int
 13 |     public init(rawValue: Int) { self.rawValue = rawValue }
    :
 15 |     /// The last value of this Observable will not retained, therefore `observable.value` will always be nil.
 16 |     /// - Note: Observables without retained values can not be merged.
 17 |     public static let NoInitialValue = ObservingOptions(rawValue: 1)
    |                       |- warning: static property 'NoInitialValue' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'NoInitialValue' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |     /// Observables will only fire once for an update and nil out their completion blocks afterwards.
 19 |     /// Use this to automatically resolve retain cycles for one-off operations.
/host/spi-builder-workspace/Sources/Interstellar/Observable.swift:20:23: warning: static property 'Once' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | public struct ObservingOptions: OptionSet {
    |               `- note: consider making struct 'ObservingOptions' conform to the 'Sendable' protocol
 12 |     public let rawValue: Int
 13 |     public init(rawValue: Int) { self.rawValue = rawValue }
    :
 18 |     /// Observables will only fire once for an update and nil out their completion blocks afterwards.
 19 |     /// Use this to automatically resolve retain cycles for one-off operations.
 20 |     public static let Once = ObservingOptions(rawValue: 2)
    |                       |- warning: static property 'Once' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'Once' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 | }
 22 |
/host/spi-builder-workspace/Sources/Interstellar/ObserverToken.swift:23:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ObserverToken' to 'Hashable' by implementing 'hash(into:)' instead
21 | /// Observer tokens are created by observables to hande unsubscription. You are not supposed to create them directly.
22 | public final class ObserverToken: Hashable {
23 |     public let hashValue: Int
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ObserverToken' to 'Hashable' by implementing 'hash(into:)' instead
24 |
25 |     internal init (hashValue: Int) {
[9/14] Compiling Interstellar ObserverToken.swift
/host/spi-builder-workspace/Sources/Interstellar/Observable.swift:17:23: warning: static property 'NoInitialValue' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | public struct ObservingOptions: OptionSet {
    |               `- note: consider making struct 'ObservingOptions' conform to the 'Sendable' protocol
 12 |     public let rawValue: Int
 13 |     public init(rawValue: Int) { self.rawValue = rawValue }
    :
 15 |     /// The last value of this Observable will not retained, therefore `observable.value` will always be nil.
 16 |     /// - Note: Observables without retained values can not be merged.
 17 |     public static let NoInitialValue = ObservingOptions(rawValue: 1)
    |                       |- warning: static property 'NoInitialValue' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'NoInitialValue' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |     /// Observables will only fire once for an update and nil out their completion blocks afterwards.
 19 |     /// Use this to automatically resolve retain cycles for one-off operations.
/host/spi-builder-workspace/Sources/Interstellar/Observable.swift:20:23: warning: static property 'Once' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | public struct ObservingOptions: OptionSet {
    |               `- note: consider making struct 'ObservingOptions' conform to the 'Sendable' protocol
 12 |     public let rawValue: Int
 13 |     public init(rawValue: Int) { self.rawValue = rawValue }
    :
 18 |     /// Observables will only fire once for an update and nil out their completion blocks afterwards.
 19 |     /// Use this to automatically resolve retain cycles for one-off operations.
 20 |     public static let Once = ObservingOptions(rawValue: 2)
    |                       |- warning: static property 'Once' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'Once' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 | }
 22 |
/host/spi-builder-workspace/Sources/Interstellar/ObserverToken.swift:23:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ObserverToken' to 'Hashable' by implementing 'hash(into:)' instead
21 | /// Observer tokens are created by observables to hande unsubscription. You are not supposed to create them directly.
22 | public final class ObserverToken: Hashable {
23 |     public let hashValue: Int
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ObserverToken' to 'Hashable' by implementing 'hash(into:)' instead
24 |
25 |     internal init (hashValue: Int) {
[10/14] Compiling Interstellar Mutex.swift
/host/spi-builder-workspace/Sources/Interstellar/Mutex.swift:37:52: warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
35 |     func lock(_ closure: () -> Void) {
36 |         let status = lock()
37 |         assert(status == 0, "pthread_mutex_lock: \(strerror(status))")
   |                                                    |- warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
   |                                                    |- note: use 'String(describing:)' to silence this warning
   |                                                    `- note: provide a default value to avoid this warning
38 |         defer { unlock() }
39 |         closure()
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:11:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 9 | public extension Observable where T : ResultType {
10 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
11 |     public func then<U>(_ transform: @escaping (T.Value) -> Result<U>) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
12 |         return map { $0.result.flatMap(transform) }
13 |     }
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:16:5: warning: 'public' modifier is redundant for instance method declared in a public extension
14 |
15 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
16 |     public func then<U>(_ transform: @escaping (T.Value) -> U) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
17 |         return map { $0.result.map(transform) }
18 |     }
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:21:5: warning: 'public' modifier is redundant for instance method declared in a public extension
19 |
20 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
21 |     public func then<U>(_ transform: @escaping (T.Value) throws -> U) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
22 |         return map { $0.result.flatMap(transform) }
23 |     }
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:26:5: warning: 'public' modifier is redundant for instance method declared in a public extension
24 |
25 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
26 |     public func then<U>(_ transform: @escaping (T.Value) -> Observable<U>) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
27 |         return flatMap { [options] in
28 |             let observable = Observable<Result<U>>(options: options)
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:38:5: warning: 'public' modifier is redundant for instance method declared in a public extension
36 |
37 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
38 |     public func then<U>(_ transform: @escaping (T.Value) -> Observable<Result<U>>) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
39 |         return flatMap { [options] in
40 |             switch $0.result {
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:48:24: warning: 'public' modifier is redundant for instance method declared in a public extension
46 |
47 |     /// Only subscribe to successful events.
48 |     @discardableResult public func next(_ block: @escaping (T.Value) -> Void) -> Observable<T> {
   |                        `- warning: 'public' modifier is redundant for instance method declared in a public extension
49 |         subscribe { result in
50 |             if let value = result.value {
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:58:24: warning: 'public' modifier is redundant for instance method declared in a public extension
56 |
57 |     /// Only subscribe to errors.
58 |     @discardableResult public func error(_ block: @escaping (Error) -> Void) -> Observable<T> {
   |                        `- warning: 'public' modifier is redundant for instance method declared in a public extension
59 |         subscribe { result in
60 |             if let error = result.error {
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:68:5: warning: 'public' modifier is redundant for instance method declared in a public extension
66 |
67 |     /// Peek at the value of the observable.
68 |     public func peek() -> T.Value? {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
69 |         return self.value?.value
70 |     }
[11/14] Compiling Interstellar Observable+Result.swift
/host/spi-builder-workspace/Sources/Interstellar/Mutex.swift:37:52: warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
35 |     func lock(_ closure: () -> Void) {
36 |         let status = lock()
37 |         assert(status == 0, "pthread_mutex_lock: \(strerror(status))")
   |                                                    |- warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
   |                                                    |- note: use 'String(describing:)' to silence this warning
   |                                                    `- note: provide a default value to avoid this warning
38 |         defer { unlock() }
39 |         closure()
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:11:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 9 | public extension Observable where T : ResultType {
10 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
11 |     public func then<U>(_ transform: @escaping (T.Value) -> Result<U>) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
12 |         return map { $0.result.flatMap(transform) }
13 |     }
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:16:5: warning: 'public' modifier is redundant for instance method declared in a public extension
14 |
15 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
16 |     public func then<U>(_ transform: @escaping (T.Value) -> U) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
17 |         return map { $0.result.map(transform) }
18 |     }
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:21:5: warning: 'public' modifier is redundant for instance method declared in a public extension
19 |
20 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
21 |     public func then<U>(_ transform: @escaping (T.Value) throws -> U) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
22 |         return map { $0.result.flatMap(transform) }
23 |     }
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:26:5: warning: 'public' modifier is redundant for instance method declared in a public extension
24 |
25 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
26 |     public func then<U>(_ transform: @escaping (T.Value) -> Observable<U>) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
27 |         return flatMap { [options] in
28 |             let observable = Observable<Result<U>>(options: options)
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:38:5: warning: 'public' modifier is redundant for instance method declared in a public extension
36 |
37 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
38 |     public func then<U>(_ transform: @escaping (T.Value) -> Observable<Result<U>>) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
39 |         return flatMap { [options] in
40 |             switch $0.result {
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:48:24: warning: 'public' modifier is redundant for instance method declared in a public extension
46 |
47 |     /// Only subscribe to successful events.
48 |     @discardableResult public func next(_ block: @escaping (T.Value) -> Void) -> Observable<T> {
   |                        `- warning: 'public' modifier is redundant for instance method declared in a public extension
49 |         subscribe { result in
50 |             if let value = result.value {
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:58:24: warning: 'public' modifier is redundant for instance method declared in a public extension
56 |
57 |     /// Only subscribe to errors.
58 |     @discardableResult public func error(_ block: @escaping (Error) -> Void) -> Observable<T> {
   |                        `- warning: 'public' modifier is redundant for instance method declared in a public extension
59 |         subscribe { result in
60 |             if let error = result.error {
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:68:5: warning: 'public' modifier is redundant for instance method declared in a public extension
66 |
67 |     /// Peek at the value of the observable.
68 |     public func peek() -> T.Value? {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
69 |         return self.value?.value
70 |     }
[12/14] Emitting module Interstellar
/host/spi-builder-workspace/Sources/Interstellar/Signal.swift:41:2: warning: unexpected version number in 'available' attribute for non-specific platform '*'
 39 | */
 40 |
 41 | @available(*, deprecated: 2.0, message:"Use Observable<Result<T>> instead.")
    |  `- warning: unexpected version number in 'available' attribute for non-specific platform '*'
 42 | public final class Signal<T> {
 43 |
/host/spi-builder-workspace/Sources/Interstellar/Signal.swift:257:2: warning: unexpected version number in 'available' attribute for non-specific platform '*'
255 | }
256 |
257 | @available(*, deprecated: 2.0)
    |  `- warning: unexpected version number in 'available' attribute for non-specific platform '*'
258 | extension Signal {
259 |     func observable() -> Observable<Result<T>> {
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Debounce.swift:25:2: warning: unexpected version number in 'available' attribute for non-specific platform '*'
23 | import Foundation
24 |
25 | @available(*, deprecated: 2.0)
   |  `- warning: unexpected version number in 'available' attribute for non-specific platform '*'
26 | public extension Signal {
27 |     /**
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Delay.swift:26:2: warning: unexpected version number in 'available' attribute for non-specific platform '*'
24 | import Foundation
25 |
26 | @available(*, deprecated: 2.0)
   |  `- warning: unexpected version number in 'available' attribute for non-specific platform '*'
27 | public extension Signal {
28 |     /**
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Waiting.swift:37:2: warning: unexpected version number in 'available' attribute for non-specific platform '*'
35 | }
36 |
37 | @available(*, deprecated: 2.0)
   |  `- warning: unexpected version number in 'available' attribute for non-specific platform '*'
38 | public extension Signal {
39 |     /**
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:11:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 9 | public extension Observable where T : ResultType {
10 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
11 |     public func then<U>(_ transform: @escaping (T.Value) -> Result<U>) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
12 |         return map { $0.result.flatMap(transform) }
13 |     }
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:16:5: warning: 'public' modifier is redundant for instance method declared in a public extension
14 |
15 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
16 |     public func then<U>(_ transform: @escaping (T.Value) -> U) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
17 |         return map { $0.result.map(transform) }
18 |     }
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:21:5: warning: 'public' modifier is redundant for instance method declared in a public extension
19 |
20 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
21 |     public func then<U>(_ transform: @escaping (T.Value) throws -> U) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
22 |         return map { $0.result.flatMap(transform) }
23 |     }
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:26:5: warning: 'public' modifier is redundant for instance method declared in a public extension
24 |
25 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
26 |     public func then<U>(_ transform: @escaping (T.Value) -> Observable<U>) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
27 |         return flatMap { [options] in
28 |             let observable = Observable<Result<U>>(options: options)
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:38:5: warning: 'public' modifier is redundant for instance method declared in a public extension
36 |
37 |     /// Observables containing a Result<T> can be chained to only continue in the success case.
38 |     public func then<U>(_ transform: @escaping (T.Value) -> Observable<Result<U>>) -> Observable<Result<U>> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
39 |         return flatMap { [options] in
40 |             switch $0.result {
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:48:24: warning: 'public' modifier is redundant for instance method declared in a public extension
46 |
47 |     /// Only subscribe to successful events.
48 |     @discardableResult public func next(_ block: @escaping (T.Value) -> Void) -> Observable<T> {
   |                        `- warning: 'public' modifier is redundant for instance method declared in a public extension
49 |         subscribe { result in
50 |             if let value = result.value {
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:58:24: warning: 'public' modifier is redundant for instance method declared in a public extension
56 |
57 |     /// Only subscribe to errors.
58 |     @discardableResult public func error(_ block: @escaping (Error) -> Void) -> Observable<T> {
   |                        `- warning: 'public' modifier is redundant for instance method declared in a public extension
59 |         subscribe { result in
60 |             if let error = result.error {
/host/spi-builder-workspace/Sources/Interstellar/Observable+Result.swift:68:5: warning: 'public' modifier is redundant for instance method declared in a public extension
66 |
67 |     /// Peek at the value of the observable.
68 |     public func peek() -> T.Value? {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
69 |         return self.value?.value
70 |     }
/host/spi-builder-workspace/Sources/Interstellar/Observable.swift:17:23: warning: static property 'NoInitialValue' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | public struct ObservingOptions: OptionSet {
    |               `- note: consider making struct 'ObservingOptions' conform to the 'Sendable' protocol
 12 |     public let rawValue: Int
 13 |     public init(rawValue: Int) { self.rawValue = rawValue }
    :
 15 |     /// The last value of this Observable will not retained, therefore `observable.value` will always be nil.
 16 |     /// - Note: Observables without retained values can not be merged.
 17 |     public static let NoInitialValue = ObservingOptions(rawValue: 1)
    |                       |- warning: static property 'NoInitialValue' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'NoInitialValue' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |     /// Observables will only fire once for an update and nil out their completion blocks afterwards.
 19 |     /// Use this to automatically resolve retain cycles for one-off operations.
/host/spi-builder-workspace/Sources/Interstellar/Observable.swift:20:23: warning: static property 'Once' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | public struct ObservingOptions: OptionSet {
    |               `- note: consider making struct 'ObservingOptions' conform to the 'Sendable' protocol
 12 |     public let rawValue: Int
 13 |     public init(rawValue: Int) { self.rawValue = rawValue }
    :
 18 |     /// Observables will only fire once for an update and nil out their completion blocks afterwards.
 19 |     /// Use this to automatically resolve retain cycles for one-off operations.
 20 |     public static let Once = ObservingOptions(rawValue: 2)
    |                       |- warning: static property 'Once' is not concurrency-safe because non-'Sendable' type 'ObservingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'Once' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 | }
 22 |
/host/spi-builder-workspace/Sources/Interstellar/ObserverToken.swift:23:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ObserverToken' to 'Hashable' by implementing 'hash(into:)' instead
21 | /// Observer tokens are created by observables to hande unsubscription. You are not supposed to create them directly.
22 | public final class ObserverToken: Hashable {
23 |     public let hashValue: Int
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ObserverToken' to 'Hashable' by implementing 'hash(into:)' instead
24 |
25 |     internal init (hashValue: Int) {
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Debounce.swift:32:5: warning: 'public' modifier is redundant for instance method declared in a public extension
30 |         specified amount of seconds).
31 |     */
32 |     public func debounce(_ seconds: TimeInterval) -> Signal<T> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
33 |         let signal = Signal<T>()
34 |         var lastCalled: Date?
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Debounce.swift:68:5: warning: 'public' modifier is redundant for instance method declared in a public extension
66 |      specified amount of seconds).
67 |      */
68 |     public func debounce(_ seconds: TimeInterval) -> Observable<T> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
69 |         let observable = Observable<T>()
70 |         var lastCalled: Date?
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Delay.swift:31:5: warning: 'public' modifier is redundant for instance method declared in a public extension
29 |         Creates a new signal that mirrors the original signal but is delayed by x seconds. If no queue is specified, the new signal will call it's observers and transforms on the main queue.
30 |     */
31 |     public func delay(_ seconds: TimeInterval, queue: DispatchQueue = DispatchQueue.main) -> Signal<T> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
32 |         let signal = Signal<T>()
33 |         subscribe { result in
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Delay.swift:46:5: warning: 'public' modifier is redundant for instance method declared in a public extension
44 |      Creates a new observable that mirrors the original observable but is delayed by x seconds. If no queue is specified, the new observable will call it's observers and transforms on the main queue.
45 |      */
46 |     public func delay(_ seconds: TimeInterval, queue: DispatchQueue = DispatchQueue.main) -> Observable<T> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
47 |         let observable = Observable<T>()
48 |         subscribe { result in
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Waiting.swift:43:5: warning: 'public' modifier is redundant for instance method declared in a public extension
41 |         is an error or a successfull value. In case of an error, the error will be thrown.
42 |     */
43 |     public func wait(_ timeout: TimeInterval? = nil) throws -> T {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
44 |         let group = DispatchGroup()
45 |         var result: Result<T>?
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Waiting.swift:67:5: warning: 'public' modifier is redundant for instance method declared in a public extension
65 |      there is a new value.
66 |      */
67 |     public func wait(_ timeout: TimeInterval? = nil) throws -> T {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
68 |         let group = DispatchGroup()
69 |         var value: T! = nil
[13/14] Compiling Interstellar Waiting.swift
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Waiting.swift:37:2: warning: unexpected version number in 'available' attribute for non-specific platform '*'
35 | }
36 |
37 | @available(*, deprecated: 2.0)
   |  `- warning: unexpected version number in 'available' attribute for non-specific platform '*'
38 | public extension Signal {
39 |     /**
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Waiting.swift:43:5: warning: 'public' modifier is redundant for instance method declared in a public extension
41 |         is an error or a successfull value. In case of an error, the error will be thrown.
42 |     */
43 |     public func wait(_ timeout: TimeInterval? = nil) throws -> T {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
44 |         let group = DispatchGroup()
45 |         var result: Result<T>?
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Waiting.swift:67:5: warning: 'public' modifier is redundant for instance method declared in a public extension
65 |      there is a new value.
66 |      */
67 |     public func wait(_ timeout: TimeInterval? = nil) throws -> T {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
68 |         let group = DispatchGroup()
69 |         var value: T! = nil
[14/14] Compiling Interstellar Delay.swift
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Delay.swift:26:2: warning: unexpected version number in 'available' attribute for non-specific platform '*'
24 | import Foundation
25 |
26 | @available(*, deprecated: 2.0)
   |  `- warning: unexpected version number in 'available' attribute for non-specific platform '*'
27 | public extension Signal {
28 |     /**
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Delay.swift:31:5: warning: 'public' modifier is redundant for instance method declared in a public extension
29 |         Creates a new signal that mirrors the original signal but is delayed by x seconds. If no queue is specified, the new signal will call it's observers and transforms on the main queue.
30 |     */
31 |     public func delay(_ seconds: TimeInterval, queue: DispatchQueue = DispatchQueue.main) -> Signal<T> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
32 |         let signal = Signal<T>()
33 |         subscribe { result in
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Delay.swift:46:5: warning: 'public' modifier is redundant for instance method declared in a public extension
44 |      Creates a new observable that mirrors the original observable but is delayed by x seconds. If no queue is specified, the new observable will call it's observers and transforms on the main queue.
45 |      */
46 |     public func delay(_ seconds: TimeInterval, queue: DispatchQueue = DispatchQueue.main) -> Observable<T> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
47 |         let observable = Observable<T>()
48 |         subscribe { result in
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Delay.swift:35:17: warning: capture of 'signal' with non-sendable type 'Signal<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
33 |         subscribe { result in
34 |             queue.asyncAfter(deadline: DispatchTime.now() + seconds) {
35 |                 signal.update(result)
   |                 `- warning: capture of 'signal' with non-sendable type 'Signal<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
36 |             }
37 |         }
/host/spi-builder-workspace/Sources/Interstellar/Signal.swift:42:20: note: generic class 'Signal' does not conform to the 'Sendable' protocol
 40 |
 41 | @available(*, deprecated: 2.0, message:"Use Observable<Result<T>> instead.")
 42 | public final class Signal<T> {
    |                    `- note: generic class 'Signal' does not conform to the 'Sendable' protocol
 43 |
 44 |     fileprivate var value: Result<T>?
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Delay.swift:35:31: warning: capture of 'result' with non-sendable type 'Result<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
33 |         subscribe { result in
34 |             queue.asyncAfter(deadline: DispatchTime.now() + seconds) {
35 |                 signal.update(result)
   |                               `- warning: capture of 'result' with non-sendable type 'Result<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
36 |             }
37 |         }
/host/spi-builder-workspace/Sources/Interstellar/Result.swift:30:13: note: consider making generic enum 'Result' conform to the 'Sendable' protocol
 28 |     [this blog post](http://jensravens.de/a-swifter-way-of-handling-errors/).
 29 | */
 30 | public enum Result<T>: ResultType {
    |             `- note: consider making generic enum 'Result' conform to the 'Sendable' protocol
 31 |     case success(T)
 32 |     case error(Error)
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Delay.swift:50:17: warning: capture of 'observable' with non-sendable type 'Observable<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
48 |         subscribe { result in
49 |             queue.asyncAfter(deadline: DispatchTime.now() + seconds) {
50 |                 observable.update(result)
   |                 `- warning: capture of 'observable' with non-sendable type 'Observable<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |             }
52 |         }
/host/spi-builder-workspace/Sources/Interstellar/Observable.swift:38:20: note: generic class 'Observable' does not conform to the 'Sendable' protocol
 36 |  Observables are thread safe.
 37 |  */
 38 | public final class Observable<T> {
    |                    `- note: generic class 'Observable' does not conform to the 'Sendable' protocol
 39 |     fileprivate typealias Observer = (T)->Void
 40 |     fileprivate var observers = [ObserverToken: Observer]()
/host/spi-builder-workspace/Sources/Interstellar/Warpdrive/Delay.swift:50:35: warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
48 |         subscribe { result in
49 |             queue.asyncAfter(deadline: DispatchTime.now() + seconds) {
50 |                 observable.update(result)
   |                                   `- warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
51 |             }
52 |         }
/host/spi-builder-workspace/Sources/Interstellar/Observable.swift:38:31: note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 36 |  Observables are thread safe.
 37 |  */
 38 | public final class Observable<T> {
    |                               `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 39 |     fileprivate typealias Observer = (T)->Void
 40 |     fileprivate var observers = [ObserverToken: Observer]()
Build complete! (21.00s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Interstellar",
  "name" : "Interstellar",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Interstellar",
      "targets" : [
        "Interstellar"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "InterstellarTests",
      "module_type" : "SwiftTarget",
      "name" : "InterstellarTests",
      "path" : "Tests/InterstellarTests",
      "sources" : [
        "ObservableTests.swift",
        "ResultObservableTests.swift",
        "ResultTests.swift",
        "SignalTests.swift"
      ],
      "target_dependencies" : [
        "Interstellar"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Interstellar",
      "module_type" : "SwiftTarget",
      "name" : "Interstellar",
      "path" : "Sources/Interstellar",
      "product_memberships" : [
        "Interstellar"
      ],
      "sources" : [
        "Mutex.swift",
        "Observable+Result.swift",
        "Observable.swift",
        "ObserverToken.swift",
        "Result.swift",
        "ResultType.swift",
        "Signal.swift",
        "Warpdrive/Debounce.swift",
        "Warpdrive/Delay.swift",
        "Warpdrive/Threading.swift",
        "Warpdrive/Waiting.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "4.0"
}
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
Done.