Build Information
Successful build of RPiLight with Swift 6.0 for macOS (SPM).
Swift 6 data race errors: 6
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/kaiede/rpilight.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/kaiede/rpilight
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at c546e24 Fix Bootstrap Script for Development Only Use
Cloned https://github.com/kaiede/rpilight.git
Revision (git rev-parse @):
c546e24b00bd0c9bfe9c2f3dc4467f2d388f8b38
SUCCESS checkout https://github.com/kaiede/rpilight.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $workDir
https://github.com/kaiede/rpilight.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/21] Write sources
[6/21] Write RPiLight-entitlement.plist
[9/21] Write sources
[11/21] Write swift-version-6F35C1178C84523A.txt
[12/47] Compiling writer.c
[13/47] Compiling reader.c
[14/47] Compiling parser.c
[15/47] Compiling emitter.c
[16/47] Compiling api.c
[17/47] Compiling scanner.c
[19/63] Compiling Logging MetadataProvider.swift
[20/63] Compiling Logging Locks.swift
[21/63] Compiling Logging LogHandler.swift
[22/63] Emitting module Logging
[23/63] Compiling Logging Logging.swift
[24/63] Compiling SingleBoard Chip_Board.swift
[25/63] Compiling Yams YamlError.swift
[26/64] Compiling Yams shim.swift
[27/64] Compiling Yams Node.Scalar.swift
[28/64] Compiling Yams Node.Sequence.swift
[29/64] Emitting module SingleBoard
[30/64] Compiling SingleBoard Pine_Board.swift
[31/64] Compiling SingleBoard Raspberry_Board.swift
[32/64] Compiling SingleBoard Raspberry_PWM.swift
[33/64] Compiling Yams Mark.swift
[34/64] Compiling Yams Node.Mapping.swift
[35/64] Compiling Ephemeris Matrix.swift
[36/64] Compiling SingleBoard I2C.swift
[37/64] Compiling SingleBoard GPIO.swift
[38/64] Compiling SingleBoard Extensions.swift
[39/64] Compiling SingleBoard SingleBoard.swift
[40/64] Compiling SingleBoard Raspberry_Registers.swift
[41/64] Compiling Moderator SwiftCompat.swift
[42/64] Emitting module Moderator
[43/64] Compiling Moderator Parsers.swift
[44/64] Compiling Moderator Moderator.swift
[45/64] Compiling Ephemeris Solar.swift
[46/64] Compiling Ephemeris Lunar.swift
[47/64] Compiling Ephemeris Date.swift
[48/64] Compiling Ephemeris Body.swift
[49/64] Compiling Ephemeris Coordinates.swift
[50/64] Emitting module Ephemeris
[51/64] Compiling Yams Representer.swift
[52/64] Compiling Yams Resolver.swift
[53/64] Compiling Yams Tag.swift
[54/64] Compiling Yams String+Yams.swift
[55/64] Compiling Yams Node.swift
[56/64] Compiling Yams Parser.swift
[57/68] Compiling Yams Emitter.swift
[58/68] Compiling Yams Encoder.swift
[59/68] Compiling Yams Constructor.swift
[60/68] Compiling Yams Decoder.swift
[61/68] Emitting module Yams
[62/68] Compiling PCA9685 PCA9685.swift
[63/68] Emitting module PCA9685
[64/68] Emitting module MCP4725
[65/68] Compiling MCP4725 MCP4725.swift
[66/77] Compiling LED Types.swift
[67/77] Compiling LED Simulated.swift
[68/77] Compiling LED Utilities.swift
[69/77] Compiling LED LEDModule_Internal.swift
[70/77] Emitting module LED
[71/77] Compiling LED MCP4725.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SingleBoard/Sources/SingleBoard/SingleBoard.swift:31:23: warning: static property 'raspberryPi' is not concurrency-safe because non-'Sendable' type 'any RaspberryCapabilities' (aka 'any HasGPIO & HasI2C & HasPWM') may have shared mutable state; this is an error in the Swift 6 language mode
29 |
30 | public struct SingleBoard {
31 | public static let raspberryPi: RaspberryCapabilities = { return RaspberryBoard() }()
| |- warning: static property 'raspberryPi' is not concurrency-safe because non-'Sendable' type 'any RaspberryCapabilities' (aka 'any HasGPIO & HasI2C & HasPWM') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'raspberryPi' 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
32 |
33 | public static let pine64: PineCapabilities = { return Pine64Board() }()
[72/77] Compiling LED PCA9685.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SingleBoard/Sources/SingleBoard/SingleBoard.swift:31:23: warning: static property 'raspberryPi' is not concurrency-safe because non-'Sendable' type 'any RaspberryCapabilities' (aka 'any HasGPIO & HasI2C & HasPWM') may have shared mutable state; this is an error in the Swift 6 language mode
29 |
30 | public struct SingleBoard {
31 | public static let raspberryPi: RaspberryCapabilities = { return RaspberryBoard() }()
| |- warning: static property 'raspberryPi' is not concurrency-safe because non-'Sendable' type 'any RaspberryCapabilities' (aka 'any HasGPIO & HasI2C & HasPWM') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'raspberryPi' 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
32 |
33 | public static let pine64: PineCapabilities = { return Pine64Board() }()
[73/77] Compiling LED LEDModule.swift
[74/77] Compiling LED RaspberryPi.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SingleBoard/Sources/SingleBoard/SingleBoard.swift:31:23: warning: static property 'raspberryPi' is not concurrency-safe because non-'Sendable' type 'any RaspberryCapabilities' (aka 'any HasGPIO & HasI2C & HasPWM') may have shared mutable state; this is an error in the Swift 6 language mode
29 |
30 | public struct SingleBoard {
31 | public static let raspberryPi: RaspberryCapabilities = { return RaspberryBoard() }()
| |- warning: static property 'raspberryPi' is not concurrency-safe because non-'Sendable' type 'any RaspberryCapabilities' (aka 'any HasGPIO & HasI2C & HasPWM') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'raspberryPi' 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
32 |
33 | public static let pine64: PineCapabilities = { return Pine64Board() }()
[75/89] Compiling Service ServiceDescription.swift
[76/89] Compiling Service SwiftExtensions.swift
[77/89] Compiling Service ScheduleDescription.swift
[78/89] Compiling Service LogUtilities.swift
[79/90] Compiling Service Layer.swift
[80/90] Compiling Service Event.swift
[81/90] Compiling Service ChannelPoint.swift
[82/90] Compiling Service DayTime.swift
[83/90] Compiling Service Behavior.swift
[84/90] Compiling Service ChannelController.swift
[85/90] Emitting module Service
[86/90] Compiling Service LightController.swift
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:181:13: warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
179 | public func setEvent(controller: EventController) {
180 | self.queue.async {
181 | self.eventControllers[controller.token] = controller
| `- warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |
183 | if self.isRunning {
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:181:35: warning: capture of 'controller' with non-sendable type 'any EventController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
179 | public func setEvent(controller: EventController) {
180 | self.queue.async {
181 | self.eventControllers[controller.token] = controller
| `- warning: capture of 'controller' with non-sendable type 'any EventController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |
183 | if self.isRunning {
/Users/admin/builder/spi-builder-workspace/Sources/Service/Event.swift:36:17: note: protocol 'EventController' does not conform to the 'Sendable' protocol
34 | }
35 |
36 | public protocol EventController {
| `- note: protocol 'EventController' does not conform to the 'Sendable' protocol
37 | var time: DayTime { get }
38 | var token: EventId { get }
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:196:13: warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
194 | self.queue.async {
195 | log.info("Starting Light Controller")
196 | self.isRunning = true
| `- warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
197 | self.isRefreshOneShot = true
198 | self.fireRefresh()
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:207:13: warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
205 | public func setStopHandler(_ closure: StopClosure?) {
206 | self.queue.async {
207 | self.stopClosure = closure
| `- warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
208 | }
209 | }
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:207:32: warning: capture of 'closure' with non-sendable type 'StopClosure?' (aka 'Optional<(LightController) -> ()>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
205 | public func setStopHandler(_ closure: StopClosure?) {
206 | self.queue.async {
207 | self.stopClosure = closure
| |- warning: capture of 'closure' with non-sendable type 'StopClosure?' (aka 'Optional<(LightController) -> ()>') 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'
208 | }
209 | }
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:213:13: warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
211 | public func stop() {
212 | self.queue.async {
213 | self.stopInternal()
| `- warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
214 | }
215 | }
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:219:16: warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
217 | public func invalidateRefreshTimer() {
218 | self.queue.async {
219 | if self.isRunning {
| `- warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
220 | let now = Date()
221 | self.scheduleRefresh(forDate: now)
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:279:37: warning: capture of 'self' with non-sendable type 'LightController?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
277 | self.stopEventInternal()
278 | DispatchQueue.main.async { [weak self] in
279 | if let controller = self {
| `- warning: capture of 'self' with non-sendable type 'LightController?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
280 | controller.stopClosure?(controller)
281 | }
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:279:37: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
277 | self.stopEventInternal()
278 | DispatchQueue.main.async { [weak self] in
279 | if let controller = self {
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
280 | controller.stopClosure?(controller)
281 | }
[87/90] Compiling Service Timers.swift
[88/95] Compiling RPiLight ServiceGlue.swift
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceGlue.swift:54:1: warning: extension declares a conformance of imported type 'LEDChannel' to imported protocol 'Channel'; this will not behave correctly if the owners of 'LED' introduce this conformance in the future
52 | }
53 |
54 | extension LEDChannel: Channel {}
| |- warning: extension declares a conformance of imported type 'LEDChannel' to imported protocol 'Channel'; this will not behave correctly if the owners of 'LED' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
55 |
56 | extension ServiceControllerDescription: LEDModuleConfig {}
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceGlue.swift:56:1: warning: extension declares a conformance of imported type 'ServiceControllerDescription' to imported protocol 'LEDModuleConfig'; this will not behave correctly if the owners of 'Service' introduce this conformance in the future
54 | extension LEDChannel: Channel {}
55 |
56 | extension ServiceControllerDescription: LEDModuleConfig {}
| |- warning: extension declares a conformance of imported type 'ServiceControllerDescription' to imported protocol 'LEDModuleConfig'; this will not behave correctly if the owners of 'Service' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
57 |
58 | // MARK: Casting Support between Logging and Service types
[89/95] Compiling RPiLight ServiceLogHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:32:24: warning: static property 'stdOut' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
30 |
31 | class ServiceLogHandler: LogHandler {
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
| |- warning: static property 'stdOut' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'stdOut' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'stdOut' 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
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
34 |
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:33:24: warning: static property 'stdErr' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
31 | class ServiceLogHandler: LogHandler {
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
| |- warning: static property 'stdErr' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'stdErr' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'stdErr' 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
34 |
35 | private static var time = DateFormatter(currentWithFormat: "HH:mm:ss.SSS")
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:35:24: warning: static property 'time' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
34 |
35 | private static var time = DateFormatter(currentWithFormat: "HH:mm:ss.SSS")
| |- warning: static property 'time' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'time' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'time' 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
36 |
37 | init(label: String) {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:48:16: warning: static property 'logLevelOverride' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
46 | }
47 |
48 | static var logLevelOverride: Logger.Level?
| |- warning: static property 'logLevelOverride' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logLevelOverride' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'logLevelOverride' 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
49 | private var handlerLogLevel: Logger.Level = .info
50 | var logLevel: Logger.Level {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:31:7: warning: non-final class 'ServiceLogHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
29 | // swiftlint:disable function_parameter_count
30 |
31 | class ServiceLogHandler: LogHandler {
| `- warning: non-final class 'ServiceLogHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:41:17: warning: stored property 'label' of 'Sendable'-conforming class 'ServiceLogHandler' is mutable; this is an error in the Swift 6 language mode
39 | }
40 |
41 | private var label: String
| `- warning: stored property 'label' of 'Sendable'-conforming class 'ServiceLogHandler' is mutable; this is an error in the Swift 6 language mode
42 | var metadata: Logger.Metadata = [:]
43 | subscript(metadataKey key: String) -> Logger.Metadata.Value? {
[90/95] Compiling RPiLight main.swift
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:48:16: warning: static property 'logLevelOverride' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
46 | }
47 |
48 | static var logLevelOverride: Logger.Level?
| |- warning: static property 'logLevelOverride' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logLevelOverride' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'logLevelOverride' 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
49 | private var handlerLogLevel: Logger.Level = .info
50 | var logLevel: Logger.Level {
[91/95] Compiling RPiLight LightService.swift
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:48:16: warning: static property 'logLevelOverride' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
46 | }
47 |
48 | static var logLevelOverride: Logger.Level?
| |- warning: static property 'logLevelOverride' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logLevelOverride' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'logLevelOverride' 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
49 | private var handlerLogLevel: Logger.Level = .info
50 | var logLevel: Logger.Level {
[92/95] Emitting module RPiLight
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:48:16: warning: static property 'logLevelOverride' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
46 | }
47 |
48 | static var logLevelOverride: Logger.Level?
| |- warning: static property 'logLevelOverride' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logLevelOverride' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'logLevelOverride' 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
49 | private var handlerLogLevel: Logger.Level = .info
50 | var logLevel: Logger.Level {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceGlue.swift:54:1: warning: extension declares a conformance of imported type 'LEDChannel' to imported protocol 'Channel'; this will not behave correctly if the owners of 'LED' introduce this conformance in the future
52 | }
53 |
54 | extension LEDChannel: Channel {}
| |- warning: extension declares a conformance of imported type 'LEDChannel' to imported protocol 'Channel'; this will not behave correctly if the owners of 'LED' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
55 |
56 | extension ServiceControllerDescription: LEDModuleConfig {}
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceGlue.swift:56:1: warning: extension declares a conformance of imported type 'ServiceControllerDescription' to imported protocol 'LEDModuleConfig'; this will not behave correctly if the owners of 'Service' introduce this conformance in the future
54 | extension LEDChannel: Channel {}
55 |
56 | extension ServiceControllerDescription: LEDModuleConfig {}
| |- warning: extension declares a conformance of imported type 'ServiceControllerDescription' to imported protocol 'LEDModuleConfig'; this will not behave correctly if the owners of 'Service' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
57 |
58 | // MARK: Casting Support between Logging and Service types
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:32:24: warning: static property 'stdOut' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
30 |
31 | class ServiceLogHandler: LogHandler {
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
| |- warning: static property 'stdOut' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'stdOut' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'stdOut' 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
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
34 |
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:33:24: warning: static property 'stdErr' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
31 | class ServiceLogHandler: LogHandler {
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
| |- warning: static property 'stdErr' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'stdErr' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'stdErr' 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
34 |
35 | private static var time = DateFormatter(currentWithFormat: "HH:mm:ss.SSS")
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:35:24: warning: static property 'time' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
34 |
35 | private static var time = DateFormatter(currentWithFormat: "HH:mm:ss.SSS")
| |- warning: static property 'time' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'time' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'time' 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
36 |
37 | init(label: String) {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:31:7: warning: non-final class 'ServiceLogHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
29 | // swiftlint:disable function_parameter_count
30 |
31 | class ServiceLogHandler: LogHandler {
| `- warning: non-final class 'ServiceLogHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:41:17: warning: stored property 'label' of 'Sendable'-conforming class 'ServiceLogHandler' is mutable; this is an error in the Swift 6 language mode
39 | }
40 |
41 | private var label: String
| `- warning: stored property 'label' of 'Sendable'-conforming class 'ServiceLogHandler' is mutable; this is an error in the Swift 6 language mode
42 | var metadata: Logger.Metadata = [:]
43 | subscript(metadataKey key: String) -> Logger.Metadata.Value? {
[92/95] Write Objects.LinkFileList
[93/95] Linking RPiLight
[94/95] Applying RPiLight
Build complete! (40.70s)
Fetching https://github.com/Kaiede/SingleBoard.git
Fetching https://github.com/kareman/Moderator.git
Fetching https://github.com/Kaiede/Ephemeris.git
Fetching https://github.com/apple/swift-log.git
Fetching https://github.com/Kaiede/PCA9685.git
Fetching https://github.com/Kaiede/MCP4725.git
Fetching https://github.com/jpsim/Yams.git
[1/70] Fetching pca9685
[29/728] Fetching pca9685, moderator
[95/756] Fetching pca9685, moderator, mcp4725
[123/966] Fetching pca9685, moderator, mcp4725, ephemeris
[501/4319] Fetching pca9685, moderator, mcp4725, ephemeris, swift-log
[602/4596] Fetching pca9685, moderator, mcp4725, ephemeris, swift-log, singleboard
[986/13933] Fetching pca9685, moderator, mcp4725, ephemeris, swift-log, singleboard, yams
Fetched https://github.com/Kaiede/SingleBoard.git from cache (0.90s)
[1192/13656] Fetching pca9685, moderator, mcp4725, ephemeris, swift-log, yams
Fetched https://github.com/Kaiede/MCP4725.git from cache (1.16s)
[4539/13628] Fetching pca9685, moderator, ephemeris, swift-log, yams
Fetched https://github.com/apple/swift-log.git from cache (1.84s)
Fetched https://github.com/Kaiede/Ephemeris.git from cache (1.84s)
Fetched https://github.com/jpsim/Yams.git from cache (1.84s)
Fetched https://github.com/kareman/Moderator.git from cache (1.84s)
Fetched https://github.com/Kaiede/PCA9685.git from cache (1.84s)
Computing version for https://github.com/Kaiede/SingleBoard.git
Computed https://github.com/Kaiede/SingleBoard.git at 1.0.0 (2.60s)
Computing version for https://github.com/Kaiede/MCP4725.git
Computed https://github.com/Kaiede/MCP4725.git at 0.1.0 (0.66s)
Computing version for https://github.com/Kaiede/PCA9685.git
Computed https://github.com/Kaiede/PCA9685.git at 3.0.0 (0.65s)
Computing version for https://github.com/Kaiede/Ephemeris.git
Computed https://github.com/Kaiede/Ephemeris.git at 1.0.2 (0.64s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 2.0.0 (0.67s)
Computing version for https://github.com/kareman/Moderator.git
Computed https://github.com/kareman/Moderator.git at 0.5.1 (0.65s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.5.4 (0.64s)
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.5.4
Creating working copy for https://github.com/Kaiede/Ephemeris.git
Working copy of https://github.com/Kaiede/Ephemeris.git resolved at 1.0.2
Creating working copy for https://github.com/jpsim/Yams.git
Working copy of https://github.com/jpsim/Yams.git resolved at 2.0.0
Creating working copy for https://github.com/Kaiede/MCP4725.git
Working copy of https://github.com/Kaiede/MCP4725.git resolved at 0.1.0
Creating working copy for https://github.com/Kaiede/PCA9685.git
Working copy of https://github.com/Kaiede/PCA9685.git resolved at 3.0.0
Creating working copy for https://github.com/Kaiede/SingleBoard.git
Working copy of https://github.com/Kaiede/SingleBoard.git resolved at 1.0.0
Creating working copy for https://github.com/kareman/Moderator.git
Working copy of https://github.com/kareman/Moderator.git resolved at 0.5.1
Build complete.
{
"dependencies" : [
{
"identity" : "moderator",
"requirement" : {
"range" : [
{
"lower_bound" : "0.5.1",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/kareman/Moderator.git"
},
{
"identity" : "yams",
"requirement" : {
"range" : [
{
"lower_bound" : "2.0.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/jpsim/Yams.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
},
{
"identity" : "ephemeris",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.2",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Kaiede/Ephemeris.git"
},
{
"identity" : "pca9685",
"requirement" : {
"range" : [
{
"lower_bound" : "3.0.0",
"upper_bound" : "4.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Kaiede/PCA9685.git"
},
{
"identity" : "mcp4725",
"requirement" : {
"range" : [
{
"lower_bound" : "0.1.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Kaiede/MCP4725.git"
},
{
"identity" : "singleboard",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Kaiede/SingleBoard.git"
}
],
"manifest_display_name" : "RPiLight",
"name" : "RPiLight",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "RPiLight",
"targets" : [
"RPiLight"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "ServiceTests",
"module_type" : "SwiftTarget",
"name" : "ServiceTests",
"path" : "Tests/ServiceTests",
"sources" : [
"BehaviorTests.swift",
"ChannelControllerTests.swift",
"DayTimeTests.swift",
"EventTests.swift",
"LayerTests.swift",
"LightControllerTests.swift",
"ScheduleDescriptionTests.swift",
"ServiceDescriptionTests.swift",
"SwiftExtensionsTests.swift"
],
"target_dependencies" : [
"Service"
],
"type" : "test"
},
{
"c99name" : "Service",
"module_type" : "SwiftTarget",
"name" : "Service",
"path" : "Sources/Service",
"product_dependencies" : [
"Logging",
"Ephemeris",
"Yams"
],
"product_memberships" : [
"RPiLight"
],
"sources" : [
"Behavior.swift",
"ChannelController.swift",
"ChannelPoint.swift",
"DayTime.swift",
"Event.swift",
"Layer.swift",
"LightController.swift",
"LogUtilities.swift",
"ScheduleDescription.swift",
"ServiceDescription.swift",
"SwiftExtensions.swift",
"Timers.swift"
],
"target_dependencies" : [
"LED"
],
"type" : "library"
},
{
"c99name" : "RPiLight",
"module_type" : "SwiftTarget",
"name" : "RPiLight",
"path" : "Sources/RPiLight",
"product_dependencies" : [
"Moderator"
],
"product_memberships" : [
"RPiLight"
],
"sources" : [
"LightService.swift",
"ServiceGlue.swift",
"ServiceLogHandler.swift",
"main.swift"
],
"target_dependencies" : [
"Service"
],
"type" : "executable"
},
{
"c99name" : "LEDTests",
"module_type" : "SwiftTarget",
"name" : "LEDTests",
"path" : "Tests/LEDTests",
"sources" : [
"ChannelTests.swift",
"ModuleTests.swift",
"TypeTests.swift"
],
"target_dependencies" : [
"LED"
],
"type" : "test"
},
{
"c99name" : "LED",
"module_type" : "SwiftTarget",
"name" : "LED",
"path" : "Sources/LED",
"product_dependencies" : [
"Logging",
"MCP4725",
"PCA9685",
"SingleBoard"
],
"product_memberships" : [
"RPiLight"
],
"sources" : [
"LEDModule.swift",
"LEDModule_Internal.swift",
"MCP4725.swift",
"PCA9685.swift",
"RaspberryPi.swift",
"Simulated.swift",
"Types.swift",
"Utilities.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
Done.