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 1.1.1 (3d5d60), with Swift 6.0 for macOS (SPM) on 28 Nov 2024 10:25:17 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: 1.1.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/kaiede/rpilight
 * tag               1.1.1      -> FETCH_HEAD
HEAD is now at 3d5d60c Update Swift CI Versions to 5.1.5 and 5.2
Cloned https://github.com/kaiede/rpilight.git
Revision (git rev-parse @):
3d5d60cf7817d8311469b061a356c38989ab1739
SUCCESS checkout https://github.com/kaiede/rpilight.git at 1.1.1
Fetching https://github.com/Kaiede/PCA9685.git
Fetching https://github.com/Kaiede/MCP4725.git
Fetching https://github.com/jpsim/Yams.git
Fetching https://github.com/apple/swift-log.git
Fetching https://github.com/kareman/Moderator.git
Fetching https://github.com/Kaiede/SingleBoard.git
Fetching https://github.com/Kaiede/Ephemeris.git
[5/210] Fetching ephemeris
[31/238] Fetching ephemeris, mcp4725
Fetched https://github.com/Kaiede/MCP4725.git from cache (0.63s)
[31/280] Fetching ephemeris, pca9685
[281/938] Fetching ephemeris, pca9685, moderator
[597/4640] Fetching ephemeris, pca9685, moderator, swift-log
[709/4917] Fetching ephemeris, pca9685, moderator, swift-log, singleboard
[1140/14853] Fetching ephemeris, pca9685, moderator, swift-log, singleboard, yams
Fetched https://github.com/Kaiede/Ephemeris.git from cache (2.19s)
Fetched https://github.com/Kaiede/SingleBoard.git from cache (2.19s)
Fetched https://github.com/Kaiede/PCA9685.git from cache (2.19s)
[5155/14296] Fetching moderator, swift-log, yams
Fetched https://github.com/apple/swift-log.git from cache (11.62s)
Fetched https://github.com/kareman/Moderator.git from cache (11.62s)
Fetched https://github.com/jpsim/Yams.git from cache (11.62s)
Computing version for https://github.com/Kaiede/SingleBoard.git
Computed https://github.com/Kaiede/SingleBoard.git at 1.0.0 (2.37s)
Computing version for https://github.com/Kaiede/MCP4725.git
Computed https://github.com/Kaiede/MCP4725.git at 0.1.0 (0.55s)
Computing version for https://github.com/Kaiede/PCA9685.git
Computed https://github.com/Kaiede/PCA9685.git at 3.0.0 (0.54s)
Computing version for https://github.com/Kaiede/Ephemeris.git
Computed https://github.com/Kaiede/Ephemeris.git at 1.0.2 (0.54s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 2.0.0 (0.54s)
Computing version for https://github.com/kareman/Moderator.git
Computed https://github.com/kareman/Moderator.git at 0.5.1 (0.54s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.2 (0.40s)
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/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/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/Kaiede/PCA9685.git
Working copy of https://github.com/Kaiede/PCA9685.git resolved at 3.0.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.97s)
Fetching https://github.com/Kaiede/MCP4725.git from cache
Fetching https://github.com/Kaiede/SingleBoard.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/jpsim/Yams.git from cache
Fetching https://github.com/Kaiede/Ephemeris.git from cache
Fetching https://github.com/apple/swift-log.git from cache
Fetched https://github.com/Kaiede/SingleBoard.git from cache (0.49s)
Fetched https://github.com/Kaiede/MCP4725.git from cache (0.49s)
Fetched https://github.com/kareman/Moderator.git from cache (0.49s)
Fetched https://github.com/Kaiede/PCA9685.git from cache (0.49s)
Fetched https://github.com/apple/swift-log.git from cache (0.60s)
Fetched https://github.com/jpsim/Yams.git from cache (0.60s)
Fetched https://github.com/Kaiede/Ephemeris.git from cache (0.60s)
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.02s)
Computing version for https://github.com/Kaiede/PCA9685.git
Computed https://github.com/Kaiede/PCA9685.git at 3.0.0 (0.02s)
Computing version for https://github.com/Kaiede/Ephemeris.git
Computed https://github.com/Kaiede/Ephemeris.git at 1.0.2 (0.02s)
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.02s)
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/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/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/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/rpilight.git
Working copy of https://github.com/kaiede/rpilight.git resolved at 1.1.1 (3d5d60c)
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/Ephemeris.git
Working copy of https://github.com/Kaiede/Ephemeris.git resolved at 1.0.2
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
[9/21] Write RPiLight-entitlement.plist
[11/21] Write swift-version--7754E27361AE5C74.txt
[12/47] Compiling reader.c
[13/47] Compiling writer.c
[14/47] Compiling emitter.c
[15/47] Compiling api.c
[16/47] Compiling parser.c
[17/47] Compiling scanner.c
[19/63] Emitting module SingleBoard
[20/63] Compiling Logging MetadataProvider.swift
[21/63] Compiling Logging LogHandler.swift
[22/63] Emitting module Logging
[23/63] Compiling Logging Locks.swift
[24/63] Compiling Logging Logging.swift
[25/63] Compiling SingleBoard Chip_Board.swift
[26/63] Compiling Yams YamlError.swift
[27/63] Compiling Yams Tag.swift
[28/64] Compiling Yams shim.swift
[29/64] Compiling Yams String+Yams.swift
[30/64] Compiling Yams Node.Scalar.swift
[31/64] Compiling Yams Node.Sequence.swift
[32/64] Compiling Moderator SwiftCompat.swift
[33/64] Emitting module Moderator
[34/64] Compiling Moderator Parsers.swift
[35/64] Compiling Moderator Moderator.swift
[36/64] Compiling SingleBoard SingleBoard.swift
[37/64] Compiling SingleBoard Raspberry_PWM.swift
[38/64] Compiling SingleBoard Extensions.swift
[39/64] Compiling SingleBoard Raspberry_Registers.swift
[40/64] Compiling SingleBoard GPIO.swift
[41/64] Compiling SingleBoard I2C.swift
[42/64] Compiling Ephemeris Matrix.swift
[43/64] Compiling Ephemeris Date.swift
[44/64] Compiling Ephemeris Coordinates.swift
[45/64] Compiling Ephemeris Lunar.swift
[46/64] Emitting module Ephemeris
[47/64] Compiling Ephemeris Body.swift
[48/64] Compiling Ephemeris Solar.swift
[49/64] Compiling SingleBoard Raspberry_Board.swift
[50/64] Compiling SingleBoard Pine_Board.swift
[51/64] Compiling Yams Representer.swift
[52/64] Compiling Yams Resolver.swift
[53/68] Compiling Yams Mark.swift
[54/68] Compiling Yams Node.Mapping.swift
[55/68] Compiling Yams Constructor.swift
[56/68] Compiling Yams Decoder.swift
[57/68] Compiling Yams Emitter.swift
[58/68] Compiling Yams Encoder.swift
[59/68] Emitting module Yams
[60/68] Compiling Yams Node.swift
[61/68] Compiling Yams Parser.swift
[62/68] Compiling PCA9685 PCA9685.swift
[63/68] Emitting module PCA9685
[64/68] Compiling MCP4725 MCP4725.swift
[65/68] Emitting module MCP4725
[66/77] Compiling LED RaspberryPi.swift
[67/77] Compiling LED PCA9685.swift
[68/77] Compiling LED MCP4725.swift
[69/77] Compiling LED Simulated.swift
[70/77] Compiling LED LEDModule.swift
[71/77] Compiling LED Utilities.swift
[72/77] Compiling LED LEDModule_Internal.swift
[73/77] Emitting module LED
[74/77] Compiling LED Types.swift
[75/89] Compiling Service SwiftExtensions.swift
[76/90] Compiling Service ServiceDescription.swift
[77/90] Compiling Service Timers.swift
[78/90] Compiling Service LogUtilities.swift
[79/90] Compiling Service ScheduleDescription.swift
[80/90] Compiling Service Layer.swift
[81/90] Compiling Service ChannelPoint.swift
[82/90] Compiling Service DayTime.swift
[83/90] Compiling Service Event.swift
[84/90] Compiling Service Behavior.swift
[85/90] Compiling Service ChannelController.swift
[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: 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] Emitting module Service
[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 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,
[90/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
[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! (35.76s)
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.