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 RPiLight, reference main (c546e2), with Swift 6.0 for macOS (SPM) on 28 Nov 2024 10:24:47 UTC.

Swift 6 data race errors: 6

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.58.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
Fetching https://github.com/Kaiede/PCA9685.git
Fetching https://github.com/Kaiede/MCP4725.git
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/jpsim/Yams.git
Fetching https://github.com/apple/swift-log.git
[1/70] Fetching pca9685
[29/728] Fetching pca9685, moderator
[95/756] Fetching pca9685, moderator, mcp4725
[123/966] Fetching pca9685, moderator, mcp4725, ephemeris
Fetched https://github.com/Kaiede/PCA9685.git from cache (0.65s)
[181/896] Fetching moderator, mcp4725, ephemeris
[195/1173] Fetching moderator, mcp4725, ephemeris, singleboard
[957/11109] Fetching moderator, mcp4725, ephemeris, singleboard, yams
[3971/14811] Fetching moderator, mcp4725, ephemeris, singleboard, yams, swift-log
Fetched https://github.com/Kaiede/MCP4725.git from cache (1.92s)
Fetched https://github.com/apple/swift-log.git from cache (1.92s)
Fetched https://github.com/jpsim/Yams.git from cache (1.97s)
Fetched https://github.com/kareman/Moderator.git from cache (1.97s)
Fetched https://github.com/Kaiede/Ephemeris.git from cache (1.97s)
Fetched https://github.com/Kaiede/SingleBoard.git from cache (1.97s)
Computing version for https://github.com/Kaiede/SingleBoard.git
Computed https://github.com/Kaiede/SingleBoard.git at 1.0.0 (2.42s)
Computing version for https://github.com/Kaiede/MCP4725.git
Computed https://github.com/Kaiede/MCP4725.git at 0.1.0 (0.60s)
Computing version for https://github.com/Kaiede/PCA9685.git
Computed https://github.com/Kaiede/PCA9685.git at 3.0.0 (0.59s)
Computing version for https://github.com/Kaiede/Ephemeris.git
Computed https://github.com/Kaiede/Ephemeris.git at 1.0.2 (0.60s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 2.0.0 (0.56s)
Computing version for https://github.com/kareman/Moderator.git
Computed https://github.com/kareman/Moderator.git at 0.5.1 (0.61s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.2 (0.43s)
Creating working copy for https://github.com/kareman/Moderator.git
Working copy of https://github.com/kareman/Moderator.git resolved at 0.5.1
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/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.6.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/SingleBoard.git
Working copy of https://github.com/Kaiede/SingleBoard.git resolved at 1.0.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/MCP4725.git
Working copy of https://github.com/Kaiede/MCP4725.git resolved at 0.1.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "rpilight",
      "name": "RPiLight",
      "url": "https://github.com/kaiede/rpilight.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/rpilight",
      "dependencies": [
        {
          "identity": "moderator",
          "name": "Moderator",
          "url": "https://github.com/kareman/Moderator.git",
          "version": "0.5.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Moderator",
          "dependencies": [
          ]
        },
        {
          "identity": "yams",
          "name": "Yams",
          "url": "https://github.com/jpsim/Yams.git",
          "version": "2.0.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Yams",
          "dependencies": [
          ]
        },
        {
          "identity": "swift-log",
          "name": "swift-log",
          "url": "https://github.com/apple/swift-log.git",
          "version": "1.6.2",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-log",
          "dependencies": [
          ]
        },
        {
          "identity": "ephemeris",
          "name": "Ephemeris",
          "url": "https://github.com/Kaiede/Ephemeris.git",
          "version": "1.0.2",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Ephemeris",
          "dependencies": [
          ]
        },
        {
          "identity": "pca9685",
          "name": "PCA9685",
          "url": "https://github.com/Kaiede/PCA9685.git",
          "version": "3.0.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/PCA9685",
          "dependencies": [
            {
              "identity": "singleboard",
              "name": "SingleBoard",
              "url": "https://github.com/Kaiede/SingleBoard.git",
              "version": "1.0.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SingleBoard",
              "dependencies": [
              ]
            }
          ]
        },
        {
          "identity": "mcp4725",
          "name": "MCP4725",
          "url": "https://github.com/Kaiede/MCP4725.git",
          "version": "0.1.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/MCP4725",
          "dependencies": [
            {
              "identity": "singleboard",
              "name": "SingleBoard",
              "url": "https://github.com/Kaiede/SingleBoard.git",
              "version": "1.0.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SingleBoard",
              "dependencies": [
              ]
            }
          ]
        },
        {
          "identity": "singleboard",
          "name": "SingleBoard",
          "url": "https://github.com/Kaiede/SingleBoard.git",
          "version": "1.0.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SingleBoard",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/kaiede/rpilight.git
[1/3047] Fetching rpilight
Fetched https://github.com/kaiede/rpilight.git from cache (0.96s)
Fetching https://github.com/Kaiede/MCP4725.git from cache
Fetching https://github.com/Kaiede/SingleBoard.git from cache
Fetching https://github.com/apple/swift-log.git from cache
Fetching https://github.com/jpsim/Yams.git from cache
Fetching https://github.com/kareman/Moderator.git from cache
Fetching https://github.com/Kaiede/PCA9685.git from cache
Fetching https://github.com/Kaiede/Ephemeris.git from cache
Fetched https://github.com/Kaiede/MCP4725.git from cache (0.46s)
Fetched https://github.com/Kaiede/SingleBoard.git from cache (0.46s)
Fetched https://github.com/jpsim/Yams.git from cache (0.56s)
Fetched https://github.com/apple/swift-log.git from cache (0.56s)
Fetched https://github.com/Kaiede/Ephemeris.git from cache (0.56s)
Fetched https://github.com/Kaiede/PCA9685.git from cache (0.56s)
Fetched https://github.com/kareman/Moderator.git from cache (0.56s)
Computing version for https://github.com/Kaiede/SingleBoard.git
Computed https://github.com/Kaiede/SingleBoard.git at 1.0.0 (0.03s)
Computing version for https://github.com/Kaiede/MCP4725.git
Computed https://github.com/Kaiede/MCP4725.git at 0.1.0 (0.03s)
Computing version for https://github.com/Kaiede/PCA9685.git
Computed https://github.com/Kaiede/PCA9685.git at 3.0.0 (0.03s)
Computing version for https://github.com/Kaiede/Ephemeris.git
Computed https://github.com/Kaiede/Ephemeris.git at 1.0.2 (0.03s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 2.0.0 (0.03s)
Computing version for https://github.com/kareman/Moderator.git
Computed https://github.com/kareman/Moderator.git at 0.5.1 (0.03s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.2 (0.02s)
Creating working copy for https://github.com/kaiede/rpilight.git
Working copy of https://github.com/kaiede/rpilight.git resolved at main (c546e24)
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/Ephemeris.git
Working copy of https://github.com/Kaiede/Ephemeris.git resolved at 1.0.2
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/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.6.2
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/Kaiede/MCP4725.git
Working copy of https://github.com/Kaiede/MCP4725.git resolved at 0.1.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
Found 7 product dependencies
  - Moderator
  - Yams
  - swift-log
  - Ephemeris
  - PCA9685
  - MCP4725
  - SingleBoard
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/kaiede/rpilight.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/21] Write sources
[2/21] Write RPiLight-entitlement.plist
[2/21] Write sources
[11/21] Write swift-version--7754E27361AE5C74.txt
[12/47] Compiling writer.c
[13/47] Compiling reader.c
[14/47] Compiling api.c
[15/47] Compiling parser.c
[16/47] Compiling emitter.c
[17/47] Compiling scanner.c
[19/63] Compiling Logging MetadataProvider.swift
[20/63] Compiling Logging Locks.swift
[21/63] Emitting module Logging
[22/63] Compiling Logging LogHandler.swift
[23/63] Compiling Logging Logging.swift
[24/63] Compiling SingleBoard Chip_Board.swift
[25/63] Emitting module SingleBoard
[26/63] Compiling SingleBoard Raspberry_Registers.swift
[27/63] Compiling Moderator SwiftCompat.swift
[28/63] Compiling Moderator Parsers.swift
[29/63] Compiling Yams YamlError.swift
[30/63] Compiling Yams Tag.swift
[31/63] Compiling Yams Constructor.swift
[32/63] Compiling Yams Decoder.swift
[33/63] Emitting module Yams
[34/64] Compiling Yams shim.swift
[35/64] Emitting module Moderator
[36/64] Compiling Moderator Moderator.swift
[37/64] Compiling SingleBoard SingleBoard.swift
[38/64] Compiling Ephemeris Solar.swift
[39/64] Compiling Yams Node.Scalar.swift
[40/64] Compiling Yams Node.Sequence.swift
[41/64] Compiling SingleBoard Pine_Board.swift
[42/64] Compiling SingleBoard Raspberry_Board.swift
[43/64] Compiling SingleBoard Raspberry_PWM.swift
[44/64] Emitting module Ephemeris
[45/64] Compiling Ephemeris Matrix.swift
[46/64] Compiling Ephemeris Date.swift
[47/64] Compiling Ephemeris Lunar.swift
[48/64] Compiling Ephemeris Body.swift
[49/64] Compiling Ephemeris Coordinates.swift
[50/64] Compiling SingleBoard GPIO.swift
[51/64] Compiling SingleBoard Extensions.swift
[52/64] Compiling SingleBoard I2C.swift
[53/68] Compiling Yams Representer.swift
[54/68] Compiling Yams Resolver.swift
[55/68] Compiling Yams String+Yams.swift
[56/68] Compiling Yams Node.swift
[57/68] Compiling Yams Parser.swift
[58/68] Compiling Yams Mark.swift
[59/68] Compiling Yams Node.Mapping.swift
[60/68] Compiling Yams Emitter.swift
[61/68] Compiling Yams Encoder.swift
[62/68] Emitting module PCA9685
[63/68] Compiling PCA9685 PCA9685.swift
[64/68] Compiling MCP4725 MCP4725.swift
[65/68] Emitting module MCP4725
[66/77] Compiling LED Types.swift
[67/77] Compiling LED RaspberryPi.swift
[68/77] Compiling LED Simulated.swift
[69/77] Compiling LED MCP4725.swift
[70/77] Compiling LED PCA9685.swift
[71/77] Compiling LED LEDModule_Internal.swift
[72/77] Compiling LED LEDModule.swift
[73/77] Emitting module LED
[74/77] Compiling LED Utilities.swift
[75/89] Compiling Service LogUtilities.swift
[76/89] Compiling Service ServiceDescription.swift
[77/89] Compiling Service ScheduleDescription.swift
[78/89] Compiling Service SwiftExtensions.swift
[79/90] Compiling Service Event.swift
[80/90] Compiling Service Layer.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] 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: 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 |                 }
[86/90] Emitting module Service
[87/90] Compiling Service Timers.swift
[88/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 nonisolated 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 nonisolated 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 {
[89/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
[90/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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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? {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:31:7: warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
29 | // swiftlint:disable function_parameter_count
30 |
31 | class ServiceLogHandler: LogHandler {
   |       `- warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
32 |     private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 |     private static var stdErr: StderrOutputStream = StderrOutputStream()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-log/Sources/Logging/LogHandler.swift:209:17: note: 'log(level:message:metadata:source:file:function:line:)' declared here
133 |     ///     - function: The function the log line was emitted from.
134 |     ///     - line: The line the log message was emitted from.
135 |     func log(
    |          `- note: requirement 'log(level:message:metadata:source:file:function:line:)' declared here
136 |         level: Logger.Level,
137 |         message: Logger.Message,
    :
207 | extension LogHandler {
208 |     @available(*, deprecated, message: "You should implement this method instead of using the default implementation")
209 |     public func log(
    |                 `- note: 'log(level:message:metadata:source:file:function:line:)' declared here
210 |         level: Logger.Level,
211 |         message: Logger.Message,
[91/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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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 nonisolated 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? {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:31:7: warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
29 | // swiftlint:disable function_parameter_count
30 |
31 | class ServiceLogHandler: LogHandler {
   |       `- warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
32 |     private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 |     private static var stdErr: StderrOutputStream = StderrOutputStream()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-log/Sources/Logging/LogHandler.swift:209:17: note: 'log(level:message:metadata:source:file:function:line:)' declared here
133 |     ///     - function: The function the log line was emitted from.
134 |     ///     - line: The line the log message was emitted from.
135 |     func log(
    |          `- note: requirement 'log(level:message:metadata:source:file:function:line:)' declared here
136 |         level: Logger.Level,
137 |         message: Logger.Message,
    :
207 | extension LogHandler {
208 |     @available(*, deprecated, message: "You should implement this method instead of using the default implementation")
209 |     public func log(
    |                 `- note: 'log(level:message:metadata:source:file:function:line:)' declared here
210 |         level: Logger.Level,
211 |         message: Logger.Message,
[92/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 nonisolated 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 nonisolated 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] Write Objects.LinkFileList
[93/95] Linking RPiLight
[94/95] Applying RPiLight
Build complete! (37.30s)
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.