Build Information
Failed to build Thingy with Swift 6.0 for macOS (SPM).
Build Command
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bojan/Thingy.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bojan/Thingy
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 1ed5bfc Update the documentation.
Cloned https://github.com/bojan/Thingy.git
Revision (git rev-parse @):
1ed5bfc174be905e4aed9c15269c17e3e6facec1
SUCCESS checkout https://github.com/bojan/Thingy.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $workDir
https://github.com/bojan/Thingy.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-6F35C1178C84523A.txt
[3/15] Compiling Thingy ThingyError.swift
[4/15] Compiling Thingy Protocols.swift
[5/16] Compiling Thingy Family.swift
[6/16] Compiling Thingy Lines.swift
[7/16] Compiling Thingy Device+ProductLines.swift
[8/16] Compiling Thingy Display.swift
/Users/admin/builder/spi-builder-workspace/Sources/Model/Display.swift:27:15: error: type 'Display' does not conform to protocol 'Equatable'
25 |
26 | /// A struct that provides an extended info on the display.
27 | public struct Display: Equatable {
| `- error: type 'Display' does not conform to protocol 'Equatable'
28 |
29 | /// An enum that describes the display size.
:
98 |
99 | /// Resolution of the device.
100 | public var resolution: CGSize
| `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
101 |
102 | /// Full physical resolution of the device, without any down-/up-sampling.
103 | public var physicalResolution: CGSize
| `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
104 |
105 | /// Rendered resolution of the device, with down-/up-sampling.
106 | public var renderedResolution: CGSize
| `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
107 |
108 | /// Screen scale, 1.0 for non-Retina devices.
Swift.==:1:24: note: candidate would match if 'Display' conformed to 'RawRepresentable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
| `- note: candidate would match if 'Display' conformed to 'RawRepresentable'
Swift.FloatingPoint:2:24: note: candidate would match if 'Display' conformed to 'FloatingPoint'
1 | extension FloatingPoint {
2 | public static func == (lhs: Self, rhs: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to 'FloatingPoint'
3 | public static func < (lhs: Self, rhs: Self) -> Bool
4 | public static func <= (lhs: Self, rhs: Self) -> Bool
Swift.BinaryInteger:2:24: note: candidate would match if 'Display' conformed to 'BinaryInteger'
1 | extension BinaryInteger {
2 | public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
| `- note: candidate would match if 'Display' conformed to 'BinaryInteger'
3 | public static func != <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
4 | public static func < <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
Swift._Pointer:2:24: note: candidate would match if 'Display' conformed to '_Pointer'
1 | extension _Pointer {
2 | public static func == (lhs: Self, rhs: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to '_Pointer'
3 | @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer
| `- note: candidate would match if 'Display' conformed to '_Pointer'
4 | @inlinable public static func != <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer
5 | }
Swift.Strideable:3:35: note: candidate would match if 'Display' conformed to 'Strideable'
1 | extension Strideable {
2 | @inlinable public static func < (x: Self, y: Self) -> Bool
3 | @inlinable public static func == (x: Self, y: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to 'Strideable'
4 | }
Swift.StringProtocol:2:35: note: candidate would match if 'Display' conformed to 'StringProtocol'
1 | extension StringProtocol {
2 | @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
| `- note: candidate would match if 'Display' conformed to 'StringProtocol'
3 | @inlinable public static func != <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
4 | @inlinable public static func < <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
Swift.SIMD:4:24: note: candidate would match if 'Display' conformed to 'SIMD'
2 | public var indices: Range<Int> { get }
3 | public init(repeating value: Self.Scalar)
4 | public static func == (a: Self, b: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to 'SIMD'
5 | @inlinable public func hash(into hasher: inout Hasher)
6 | public func encode(to encoder: any Encoder) throws
Foundation.AttributedStringProtocol:3:24: note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
1 | @available(macOS 12, iOS 15, tvOS 15, watchOS 8, *)
2 | extension AttributedStringProtocol {
3 | public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol
| `- note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
4 | public func hash(into hasher: inout Hasher)
5 | }
Foundation._BridgedStoredNSError:4:24: note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
2 | extension _BridgedStoredNSError {
3 | public func _getEmbeddedNSError() -> AnyObject?
4 | public static func == (lhs: Self, rhs: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
5 | }
CoreFoundation._CFObject:4:24: note: candidate would match if 'Display' conformed to '_CFObject'
2 | public var hashValue: Int { get }
3 | public func hash(into hasher: inout Hasher)
4 | public static func == (left: Self, right: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to '_CFObject'
5 | }
Swift.Equatable:2:17: note: protocol requires function '==' with type '(Display, Display) -> Bool'
1 | public protocol Equatable {
2 | static func == (lhs: Self, rhs: Self) -> Bool
| `- note: protocol requires function '==' with type '(Display, Display) -> Bool'
3 | }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[9/16] Compiling Thingy Device+MarketingName.swift
[10/16] Compiling Thingy Device+ModelNumbers.swift
[11/16] Compiling Thingy Device.swift
/Users/admin/builder/spi-builder-workspace/Sources/Device.swift:148:20: warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
27 | ///
28 | /// For iOS devices, only devices supporting iOS 8 are included.
29 | public enum Device: CaseIterable {
| `- note: consider making enum 'Device' conform to the 'Sendable' protocol
30 |
31 | /// - iPhone4S: iPhone 4S.
:
146 |
147 | /// All real-device values.
148 | public static let allCases: [Device] = [
| |- warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allCases' 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
149 | .iPhone4S,
150 | .iPhone5,
[12/16] Compiling Thingy Device+Comparison.swift
/Users/admin/builder/spi-builder-workspace/Sources/Device.swift:148:20: warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
27 | ///
28 | /// For iOS devices, only devices supporting iOS 8 are included.
29 | public enum Device: CaseIterable {
| `- note: consider making enum 'Device' conform to the 'Sendable' protocol
30 |
31 | /// - iPhone4S: iPhone 4S.
:
146 |
147 | /// All real-device values.
148 | public static let allCases: [Device] = [
| |- warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allCases' 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
149 | .iPhone4S,
150 | .iPhone5,
[13/16] Emitting module Thingy
/Users/admin/builder/spi-builder-workspace/Sources/Device.swift:148:20: warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
27 | ///
28 | /// For iOS devices, only devices supporting iOS 8 are included.
29 | public enum Device: CaseIterable {
| `- note: consider making enum 'Device' conform to the 'Sendable' protocol
30 |
31 | /// - iPhone4S: iPhone 4S.
:
146 |
147 | /// All real-device values.
148 | public static let allCases: [Device] = [
| |- warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allCases' 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
149 | .iPhone4S,
150 | .iPhone5,
/Users/admin/builder/spi-builder-workspace/Sources/Model/Display.swift:27:15: error: type 'Display' does not conform to protocol 'Equatable'
25 |
26 | /// A struct that provides an extended info on the display.
27 | public struct Display: Equatable {
| `- error: type 'Display' does not conform to protocol 'Equatable'
28 |
29 | /// An enum that describes the display size.
:
98 |
99 | /// Resolution of the device.
100 | public var resolution: CGSize
| `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
101 |
102 | /// Full physical resolution of the device, without any down-/up-sampling.
103 | public var physicalResolution: CGSize
| `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
104 |
105 | /// Rendered resolution of the device, with down-/up-sampling.
106 | public var renderedResolution: CGSize
| `- note: stored property type 'CGSize' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Display' to 'Equatable'
107 |
108 | /// Screen scale, 1.0 for non-Retina devices.
Swift.==:1:24: note: candidate would match if 'Display' conformed to 'RawRepresentable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
| `- note: candidate would match if 'Display' conformed to 'RawRepresentable'
Swift.FloatingPoint:2:24: note: candidate would match if 'Display' conformed to 'FloatingPoint'
1 | extension FloatingPoint {
2 | public static func == (lhs: Self, rhs: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to 'FloatingPoint'
3 | public static func < (lhs: Self, rhs: Self) -> Bool
4 | public static func <= (lhs: Self, rhs: Self) -> Bool
Swift.BinaryInteger:2:24: note: candidate would match if 'Display' conformed to 'BinaryInteger'
1 | extension BinaryInteger {
2 | public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
| `- note: candidate would match if 'Display' conformed to 'BinaryInteger'
3 | public static func != <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
4 | public static func < <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
Swift._Pointer:2:24: note: candidate would match if 'Display' conformed to '_Pointer'
1 | extension _Pointer {
2 | public static func == (lhs: Self, rhs: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to '_Pointer'
3 | @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer
| `- note: candidate would match if 'Display' conformed to '_Pointer'
4 | @inlinable public static func != <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer
5 | }
Swift.Strideable:3:35: note: candidate would match if 'Display' conformed to 'Strideable'
1 | extension Strideable {
2 | @inlinable public static func < (x: Self, y: Self) -> Bool
3 | @inlinable public static func == (x: Self, y: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to 'Strideable'
4 | }
Swift.StringProtocol:2:35: note: candidate would match if 'Display' conformed to 'StringProtocol'
1 | extension StringProtocol {
2 | @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
| `- note: candidate would match if 'Display' conformed to 'StringProtocol'
3 | @inlinable public static func != <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
4 | @inlinable public static func < <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
Swift.SIMD:4:24: note: candidate would match if 'Display' conformed to 'SIMD'
2 | public var indices: Range<Int> { get }
3 | public init(repeating value: Self.Scalar)
4 | public static func == (a: Self, b: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to 'SIMD'
5 | @inlinable public func hash(into hasher: inout Hasher)
6 | public func encode(to encoder: any Encoder) throws
Foundation.AttributedStringProtocol:3:24: note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
1 | @available(macOS 12, iOS 15, tvOS 15, watchOS 8, *)
2 | extension AttributedStringProtocol {
3 | public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol
| `- note: candidate would match if 'Display' conformed to 'AttributedStringProtocol'
4 | public func hash(into hasher: inout Hasher)
5 | }
Foundation._BridgedStoredNSError:4:24: note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
2 | extension _BridgedStoredNSError {
3 | public func _getEmbeddedNSError() -> AnyObject?
4 | public static func == (lhs: Self, rhs: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to '_BridgedStoredNSError'
5 | }
CoreFoundation._CFObject:4:24: note: candidate would match if 'Display' conformed to '_CFObject'
2 | public var hashValue: Int { get }
3 | public func hash(into hasher: inout Hasher)
4 | public static func == (left: Self, right: Self) -> Bool
| `- note: candidate would match if 'Display' conformed to '_CFObject'
5 | }
Swift.Equatable:2:17: note: protocol requires function '==' with type '(Display, Display) -> Bool'
1 | public protocol Equatable {
2 | static func == (lhs: Self, rhs: Self) -> Bool
| `- note: protocol requires function '==' with type '(Display, Display) -> Bool'
3 | }
[14/16] Compiling Thingy Device+Display.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:60: error: type 'CGSize' has no member 'zero'
130 |
131 | default:
132 | return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
| `- error: type 'CGSize' has no member 'zero'
133 |
134 | }
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:93: error: type 'CGSize' has no member 'zero'
130 |
131 | default:
132 | return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
| `- error: type 'CGSize' has no member 'zero'
133 |
134 | }
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:126: error: type 'CGSize' has no member 'zero'
130 |
131 | default:
132 | return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
| `- error: type 'CGSize' has no member 'zero'
133 |
134 | }
[15/16] Compiling Thingy Device+Family.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:60: error: type 'CGSize' has no member 'zero'
130 |
131 | default:
132 | return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
| `- error: type 'CGSize' has no member 'zero'
133 |
134 | }
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:93: error: type 'CGSize' has no member 'zero'
130 |
131 | default:
132 | return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
| `- error: type 'CGSize' has no member 'zero'
133 |
134 | }
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/Device+Display.swift:132:126: error: type 'CGSize' has no member 'zero'
130 |
131 | default:
132 | return Display(size: .notApplicable, resolution: CGSize.zero, physicalResolution: CGSize.zero, renderedResolution: CGSize.zero, scale: 0, density: 0, hasTrueTone: false, colorSpace: .sRGB)
| `- error: type 'CGSize' has no member 'zero'
133 |
134 | }
[16/16] Compiling Thingy RawDevice.swift
/Users/admin/builder/spi-builder-workspace/Sources/Device.swift:148:20: warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
27 | ///
28 | /// For iOS devices, only devices supporting iOS 8 are included.
29 | public enum Device: CaseIterable {
| `- note: consider making enum 'Device' conform to the 'Sendable' protocol
30 |
31 | /// - iPhone4S: iPhone 4S.
:
146 |
147 | /// All real-device values.
148 | public static let allCases: [Device] = [
| |- warning: static property 'allCases' is not concurrency-safe because non-'Sendable' type '[Device]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'allCases' 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
149 | .iPhone4S,
150 | .iPhone5,
BUILD FAILURE 6.0 macosSpm