This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

The Swift Package Index logo.Swift Package Index

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

Build Information

Failed to build 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
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.