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

The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of SimpleRoulette with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 8

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/fummicc1/SimpleRoulette.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/fummicc1/SimpleRoulette
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at e66a70d place content according to its degree. (#48)
Cloned https://github.com/fummicc1/SimpleRoulette.git
Revision (git rev-parse @):
e66a70ddbe04a1e892c7a45e908e8e4d96126a0c
SUCCESS checkout https://github.com/fummicc1/SimpleRoulette.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/fummicc1/SimpleRoulette.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
[1/1] Compiling plugin Swift-DocC
[2/2] Compiling plugin Swift-DocC Preview
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version-6F35C1178C84523A.txt
[5/17] Compiling SimpleRoulette RouletteState.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteSpeed.swift:26:23: warning: static property 'idle' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// - ``RouletteSpeed/idle``: never rotates.
11 | /// - ``RouletteSpeed/random()``: decide the speed in random.
12 | public struct RouletteSpeed: ExpressibleByFloatLiteral, Hashable {
   |               `- note: consider making struct 'RouletteSpeed' conform to the 'Sendable' protocol
13 |     var value: Double
14 |
   :
24 |     public static let fast: Self = .init(floatLiteral: 1440)
25 |     /// Not rotate at all.
26 |     public static let idle: Self = .init(floatLiteral: 0)
   |                       |- warning: static property 'idle' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'idle' 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
27 |
28 |     /// Decide speed randomly
[6/17] Compiling SimpleRoulette RouletteSpeed.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteSpeed.swift:20:23: warning: static property 'slow' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// - ``RouletteSpeed/idle``: never rotates.
11 | /// - ``RouletteSpeed/random()``: decide the speed in random.
12 | public struct RouletteSpeed: ExpressibleByFloatLiteral, Hashable {
   |               `- note: consider making struct 'RouletteSpeed' conform to the 'Sendable' protocol
13 |     var value: Double
14 |
   :
18 |
19 |     /// Rotate 1 cycle per second.
20 |     public static let slow: Self = .init(floatLiteral: 360)
   |                       |- warning: static property 'slow' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'slow' 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
21 |     /// Rotate 2 cycle per second.
22 |     public static let normal: Self = .init(floatLiteral: 720)
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteSpeed.swift:22:23: warning: static property 'normal' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// - ``RouletteSpeed/idle``: never rotates.
11 | /// - ``RouletteSpeed/random()``: decide the speed in random.
12 | public struct RouletteSpeed: ExpressibleByFloatLiteral, Hashable {
   |               `- note: consider making struct 'RouletteSpeed' conform to the 'Sendable' protocol
13 |     var value: Double
14 |
   :
20 |     public static let slow: Self = .init(floatLiteral: 360)
21 |     /// Rotate 2 cycle per second.
22 |     public static let normal: Self = .init(floatLiteral: 720)
   |                       |- warning: static property 'normal' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'normal' 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
23 |     /// Rotate 4 cycle per second.
24 |     public static let fast: Self = .init(floatLiteral: 1440)
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteSpeed.swift:24:23: warning: static property 'fast' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// - ``RouletteSpeed/idle``: never rotates.
11 | /// - ``RouletteSpeed/random()``: decide the speed in random.
12 | public struct RouletteSpeed: ExpressibleByFloatLiteral, Hashable {
   |               `- note: consider making struct 'RouletteSpeed' conform to the 'Sendable' protocol
13 |     var value: Double
14 |
   :
22 |     public static let normal: Self = .init(floatLiteral: 720)
23 |     /// Rotate 4 cycle per second.
24 |     public static let fast: Self = .init(floatLiteral: 1440)
   |                       |- warning: static property 'fast' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'fast' 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
25 |     /// Not rotate at all.
26 |     public static let idle: Self = .init(floatLiteral: 0)
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteSpeed.swift:26:23: warning: static property 'idle' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// - ``RouletteSpeed/idle``: never rotates.
11 | /// - ``RouletteSpeed/random()``: decide the speed in random.
12 | public struct RouletteSpeed: ExpressibleByFloatLiteral, Hashable {
   |               `- note: consider making struct 'RouletteSpeed' conform to the 'Sendable' protocol
13 |     var value: Double
14 |
   :
24 |     public static let fast: Self = .init(floatLiteral: 1440)
25 |     /// Not rotate at all.
26 |     public static let idle: Self = .init(floatLiteral: 0)
   |                       |- warning: static property 'idle' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'idle' 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
27 |
28 |     /// Decide speed randomly
[7/18] Compiling SimpleRoulette PartData.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/PartData.swift:64:25: warning: static property 'currentIndex' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 62 | public struct PartData: Identifiable, Hashable {
 63 |
 64 |     internal static var currentIndex: Int = 0
    |                         |- warning: static property 'currentIndex' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                         |- note: convert 'currentIndex' to a 'let' constant to make 'Sendable' shared state immutable
    |                         |- note: annotate 'currentIndex' 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
 65 |
 66 |     public static func == (lhs: PartData, rhs: PartData) -> Bool {
[8/18] Compiling SimpleRoulette SlotRouletteView.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Slot/SlotRouletteSpeed.swift:18:23: warning: static property 'normal' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 |     /// increase 1° per second.
18 |     public static var normal = SlotRouletteSpeed(floatLiteral: 360)
   |                       |- warning: static property 'normal' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'normal' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'normal' 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
19 |     /// increase 0.5° per second.
20 |     public static var slow = SlotRouletteSpeed(floatLiteral: 180)
[9/18] Compiling SimpleRoulette SlotRouletteSpeed.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Slot/SlotRouletteSpeed.swift:18:23: warning: static property 'normal' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 |     /// increase 1° per second.
18 |     public static var normal = SlotRouletteSpeed(floatLiteral: 360)
   |                       |- warning: static property 'normal' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'normal' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'normal' 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
19 |     /// increase 0.5° per second.
20 |     public static var slow = SlotRouletteSpeed(floatLiteral: 180)
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Slot/SlotRouletteSpeed.swift:20:23: warning: static property 'slow' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
18 |     public static var normal = SlotRouletteSpeed(floatLiteral: 360)
19 |     /// increase 0.5° per second.
20 |     public static var slow = SlotRouletteSpeed(floatLiteral: 180)
   |                       |- warning: static property 'slow' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'slow' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'slow' 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
21 |     /// increase 2° per second.
22 |     public static var hight = SlotRouletteSpeed(floatLiteral: 720)
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Slot/SlotRouletteSpeed.swift:22:23: warning: static property 'hight' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
20 |     public static var slow = SlotRouletteSpeed(floatLiteral: 180)
21 |     /// increase 2° per second.
22 |     public static var hight = SlotRouletteSpeed(floatLiteral: 720)
   |                       |- warning: static property 'hight' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'hight' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'hight' 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
23 |
24 |     /// Decide speed randomly in range [0.5°, 2°] per second.
[10/18] Compiling SimpleRoulette RouletteView.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Slot/SlotRouletteSpeed.swift:18:23: warning: static property 'normal' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 |     /// increase 1° per second.
18 |     public static var normal = SlotRouletteSpeed(floatLiteral: 360)
   |                       |- warning: static property 'normal' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'normal' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'normal' 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
19 |     /// increase 0.5° per second.
20 |     public static var slow = SlotRouletteSpeed(floatLiteral: 180)
[11/18] Compiling SimpleRoulette SlotRouletteModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Slot/SlotRouletteSpeed.swift:18:23: warning: static property 'normal' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 |     /// increase 1° per second.
18 |     public static var normal = SlotRouletteSpeed(floatLiteral: 360)
   |                       |- warning: static property 'normal' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'normal' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'normal' 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
19 |     /// increase 0.5° per second.
20 |     public static var slow = SlotRouletteSpeed(floatLiteral: 180)
[12/18] Compiling SimpleRoulette RouletteModel.swift
[13/18] Compiling SimpleRoulette RoulettePart.swift
[14/18] Compiling SimpleRoulette SlotRouletteWorker.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Slot/SlotRouletteWorker.swift:28:13: warning: capture of 'self' with non-sendable type 'SlotRouletteWorker' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 9 | import SwiftUI
10 |
11 | public class SlotRouletteWorker {
   |              `- note: class 'SlotRouletteWorker' does not conform to the 'Sendable' protocol
12 |
13 |     private var value: Int = 0
   :
26 |         }
27 |         timer = Timer.scheduledTimer(withTimeInterval: 1 / speed.value, repeats: true, block: { timer in
28 |             self.value += 1
   |             `- warning: capture of 'self' with non-sendable type 'SlotRouletteWorker' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 |             callback(self.value)
30 |         })
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Slot/SlotRouletteWorker.swift:29:13: warning: capture of 'callback' with non-sendable type '(Int) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |         timer = Timer.scheduledTimer(withTimeInterval: 1 / speed.value, repeats: true, block: { timer in
28 |             self.value += 1
29 |             callback(self.value)
   |             |- warning: capture of 'callback' with non-sendable type '(Int) -> Void' 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'
30 |         })
31 |     }
[15/18] Emitting module SimpleRoulette
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Slot/SlotRouletteSpeed.swift:18:23: warning: static property 'normal' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 |     /// increase 1° per second.
18 |     public static var normal = SlotRouletteSpeed(floatLiteral: 360)
   |                       |- warning: static property 'normal' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'normal' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'normal' 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
19 |     /// increase 0.5° per second.
20 |     public static var slow = SlotRouletteSpeed(floatLiteral: 180)
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Slot/SlotRouletteSpeed.swift:20:23: warning: static property 'slow' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
18 |     public static var normal = SlotRouletteSpeed(floatLiteral: 360)
19 |     /// increase 0.5° per second.
20 |     public static var slow = SlotRouletteSpeed(floatLiteral: 180)
   |                       |- warning: static property 'slow' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'slow' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'slow' 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
21 |     /// increase 2° per second.
22 |     public static var hight = SlotRouletteSpeed(floatLiteral: 720)
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Slot/SlotRouletteSpeed.swift:22:23: warning: static property 'hight' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
20 |     public static var slow = SlotRouletteSpeed(floatLiteral: 180)
21 |     /// increase 2° per second.
22 |     public static var hight = SlotRouletteSpeed(floatLiteral: 720)
   |                       |- warning: static property 'hight' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'hight' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'hight' 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
23 |
24 |     /// Decide speed randomly in range [0.5°, 2°] per second.
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/PartData.swift:64:25: warning: static property 'currentIndex' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 62 | public struct PartData: Identifiable, Hashable {
 63 |
 64 |     internal static var currentIndex: Int = 0
    |                         |- warning: static property 'currentIndex' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                         |- note: convert 'currentIndex' to a 'let' constant to make 'Sendable' shared state immutable
    |                         |- note: annotate 'currentIndex' 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
 65 |
 66 |     public static func == (lhs: PartData, rhs: PartData) -> Bool {
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteSpeed.swift:20:23: warning: static property 'slow' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// - ``RouletteSpeed/idle``: never rotates.
11 | /// - ``RouletteSpeed/random()``: decide the speed in random.
12 | public struct RouletteSpeed: ExpressibleByFloatLiteral, Hashable {
   |               `- note: consider making struct 'RouletteSpeed' conform to the 'Sendable' protocol
13 |     var value: Double
14 |
   :
18 |
19 |     /// Rotate 1 cycle per second.
20 |     public static let slow: Self = .init(floatLiteral: 360)
   |                       |- warning: static property 'slow' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'slow' 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
21 |     /// Rotate 2 cycle per second.
22 |     public static let normal: Self = .init(floatLiteral: 720)
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteSpeed.swift:22:23: warning: static property 'normal' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// - ``RouletteSpeed/idle``: never rotates.
11 | /// - ``RouletteSpeed/random()``: decide the speed in random.
12 | public struct RouletteSpeed: ExpressibleByFloatLiteral, Hashable {
   |               `- note: consider making struct 'RouletteSpeed' conform to the 'Sendable' protocol
13 |     var value: Double
14 |
   :
20 |     public static let slow: Self = .init(floatLiteral: 360)
21 |     /// Rotate 2 cycle per second.
22 |     public static let normal: Self = .init(floatLiteral: 720)
   |                       |- warning: static property 'normal' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'normal' 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
23 |     /// Rotate 4 cycle per second.
24 |     public static let fast: Self = .init(floatLiteral: 1440)
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteSpeed.swift:24:23: warning: static property 'fast' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// - ``RouletteSpeed/idle``: never rotates.
11 | /// - ``RouletteSpeed/random()``: decide the speed in random.
12 | public struct RouletteSpeed: ExpressibleByFloatLiteral, Hashable {
   |               `- note: consider making struct 'RouletteSpeed' conform to the 'Sendable' protocol
13 |     var value: Double
14 |
   :
22 |     public static let normal: Self = .init(floatLiteral: 720)
23 |     /// Rotate 4 cycle per second.
24 |     public static let fast: Self = .init(floatLiteral: 1440)
   |                       |- warning: static property 'fast' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'fast' 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
25 |     /// Not rotate at all.
26 |     public static let idle: Self = .init(floatLiteral: 0)
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteSpeed.swift:26:23: warning: static property 'idle' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
10 | /// - ``RouletteSpeed/idle``: never rotates.
11 | /// - ``RouletteSpeed/random()``: decide the speed in random.
12 | public struct RouletteSpeed: ExpressibleByFloatLiteral, Hashable {
   |               `- note: consider making struct 'RouletteSpeed' conform to the 'Sendable' protocol
13 |     var value: Double
14 |
   :
24 |     public static let fast: Self = .init(floatLiteral: 1440)
25 |     /// Not rotate at all.
26 |     public static let idle: Self = .init(floatLiteral: 0)
   |                       |- warning: static property 'idle' is not concurrency-safe because non-'Sendable' type 'RouletteSpeed' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'idle' 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
27 |
28 |     /// Decide speed randomly
[16/18] Compiling SimpleRoulette Color+Ex.swift
[17/18] Compiling SimpleRoulette RouletteInternalView.swift
[18/18] Compiling SimpleRoulette RouletteWorker.swift
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteWorker.swift:34:30: warning: capture of 'self' with non-sendable type 'RouletteWorker?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 9 | import SwiftUI
10 |
11 | public class RouletteWorker {
   |              `- note: class 'RouletteWorker' does not conform to the 'Sendable' protocol
12 |
13 |     private var value: Double = 0
   :
32 |
33 |         let timer = Timer(timeInterval: 0.001, repeats: true) { [weak self] _ in
34 |             guard let self = self else {
   |                              `- warning: capture of 'self' with non-sendable type 'RouletteWorker?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
35 |                 return
36 |             }
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteWorker.swift:37:27: warning: capture of 'speed' with non-sendable type 'RouletteSpeed' in a `@Sendable` closure; this is an error in the Swift 6 language mode
35 |                 return
36 |             }
37 |             self.value += speed.value * 0.001
   |                           `- warning: capture of 'speed' with non-sendable type 'RouletteSpeed' in a `@Sendable` closure; this is an error in the Swift 6 language mode
38 |             callback(self.value)
39 |
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteSpeed.swift:12:15: note: consider making struct 'RouletteSpeed' conform to the 'Sendable' protocol
10 | /// - ``RouletteSpeed/idle``: never rotates.
11 | /// - ``RouletteSpeed/random()``: decide the speed in random.
12 | public struct RouletteSpeed: ExpressibleByFloatLiteral, Hashable {
   |               `- note: consider making struct 'RouletteSpeed' conform to the 'Sendable' protocol
13 |     var value: Double
14 |
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteWorker.swift:38:13: warning: capture of 'callback' with non-sendable type '(Double) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
36 |             }
37 |             self.value += speed.value * 0.001
38 |             callback(self.value)
   |             |- warning: capture of 'callback' with non-sendable type '(Double) -> Void' 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'
39 |
40 |             if var automaticallyStopAfter = self.automaticallyStopAfter {
/Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Sources/Types/RouletteWorker.swift:43:21: warning: capture of 'onEnd' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 |                 automaticallyStopAfter -= 0.001
42 |                 if automaticallyStopAfter <= 0 {
43 |                     onEnd()
   |                     |- warning: capture of 'onEnd' with non-sendable type '() -> Void' 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'
44 |                 }
45 |                 self.automaticallyStopAfter = automaticallyStopAfter
Build complete! (50.10s)
Fetching https://github.com/apple/swift-docc-plugin
[1/1465] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-docc-plugin from cache (1.31s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.0.0 (0.66s)
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.0.0
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/Sources/SimpleRoulette/Info.plist
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "SimpleRoulette",
  "name" : "SimpleRoulette",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    }
  ],
  "products" : [
    {
      "name" : "SimpleRoulette",
      "targets" : [
        "SimpleRoulette"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SimpleRouletteTests",
      "module_type" : "SwiftTarget",
      "name" : "SimpleRouletteTests",
      "path" : "Tests/SimpleRouletteTests",
      "sources" : [
        "MockTarget.swift",
        "RouletteDataDelegateMock.swift",
        "Types/PartDataTests.swift",
        "Types/RouletteStateTests.swift"
      ],
      "target_dependencies" : [
        "SimpleRoulette"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SimpleRoulette",
      "module_type" : "SwiftTarget",
      "name" : "SimpleRoulette",
      "path" : "Sources/SimpleRoulette",
      "product_memberships" : [
        "SimpleRoulette"
      ],
      "sources" : [
        "Sources/Ex/Color+Ex.swift",
        "Sources/Pie/RouletteInternalView.swift",
        "Sources/Pie/RouletteModel.swift",
        "Sources/Pie/RoulettePart.swift",
        "Sources/Pie/RouletteView.swift",
        "Sources/Slot/SlotRouletteModel.swift",
        "Sources/Slot/SlotRouletteSpeed.swift",
        "Sources/Slot/SlotRouletteView.swift",
        "Sources/Slot/SlotRouletteWorker.swift",
        "Sources/Types/PartData.swift",
        "Sources/Types/RouletteSpeed.swift",
        "Sources/Types/RouletteState.swift",
        "Sources/Types/RouletteWorker.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.