Build Information
Successful build of swift-chess, reference main (392250), with Swift 6.3 for macOS (SPM) on 12 Apr 2026 00:39:41 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dpedley/swift-chess.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dpedley/swift-chess
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 3922505 Create LICENSE (#47)
Cloned https://github.com/dpedley/swift-chess.git
Revision (git rev-parse @):
392250531b7a9b4f275e6b38ac0e26c06e2a9574
SUCCESS checkout https://github.com/dpedley/swift-chess.git at main
Fetching https://github.com/apple/swift-log.git
[1/6521] Fetching swift-log
Fetched https://github.com/apple/swift-log.git from cache (1.20s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.11.0 (1.81s)
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.11.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",
"traits": [
"default"
],
"dependencies": [
{
"identity": "swift-chess",
"name": "swift-chess",
"url": "https://github.com/dpedley/swift-chess.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-chess",
"traits": [
"default"
],
"dependencies": [
{
"identity": "swift-log",
"name": "swift-log",
"url": "https://github.com/apple/swift-log.git",
"version": "1.11.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-log",
"traits": [
],
"dependencies": [
]
}
]
}
]
}
Fetching https://github.com/dpedley/swift-chess.git
[1/2863] Fetching swift-chess
Fetched https://github.com/dpedley/swift-chess.git from cache (1.11s)
Fetching https://github.com/apple/swift-log.git from cache
Fetched https://github.com/apple/swift-log.git from cache (0.55s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.11.0 (0.62s)
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.11.0
Creating working copy for https://github.com/dpedley/swift-chess.git
Working copy of https://github.com/dpedley/swift-chess.git resolved at main (3922505)
warning: '.resolve-product-dependencies': dependency 'swift-chess' is not used by any target
Found 1 product dependencies
- swift-log
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.3
Building package at path: $PWD
https://github.com/dpedley/swift-chess.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version--6988338F2F200930.txt
[4/9] Compiling Logging LogHandler.swift
[5/9] Compiling Logging MetadataProvider.swift
[6/9] Compiling Logging Logging.swift
[7/9] Compiling Logging Locks.swift
[8/9] Emitting module Logging
[9/9] Compiling Logging LogEvent.swift
[10/78] Emitting module Chess
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape+Details.swift:14:13: warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
12 | struct Details: Shape {
13 | var inset: CGFloat = 0.1
14 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
15 | func path(in rect: CGRect) -> Path {
16 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape.swift:13:9: warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
11 | struct PieceShape: Shape {
12 | var inset: CGFloat = 0.1
13 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
14 | func path(in rect: CGRect) -> Path {
15 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Sound.swift:9:43: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
7 | /// The sound is handled outside of this library, but for timing the optional
8 | /// methods are included here.
9 | public protocol ChessSoundEffectDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
10 | func move()
11 | func capture()
[11/85] Compiling Chess GameStatus.swift
[12/85] Compiling Chess Move+Names.swift
[13/85] Compiling Chess Move.swift
[14/85] Compiling Chess Piece.swift
[15/85] Compiling Chess PieceType.swift
[16/85] Compiling Chess Side+Move.swift
[17/85] Compiling Chess Side.swift
[18/85] Compiling Chess SideEffect.swift
[19/85] Compiling Chess ResetBoardButton.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Sound.swift:9:43: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
7 | /// The sound is handled outside of this library, but for timing the optional
8 | /// methods are included here.
9 | public protocol ChessSoundEffectDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
10 | func move()
11 | func capture()
[20/85] Compiling Chess Sound.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Sound.swift:9:43: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
7 | /// The sound is handled outside of this library, but for timing the optional
8 | /// methods are included here.
9 | public protocol ChessSoundEffectDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
10 | func move()
11 | func capture()
[21/85] Compiling Chess SquareBackground.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Sound.swift:9:43: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
7 | /// The sound is handled outside of this library, but for timing the optional
8 | /// methods are included here.
9 | public protocol ChessSoundEffectDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
10 | func move()
11 | func capture()
[22/85] Compiling Chess SquareMoveHighlight.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Sound.swift:9:43: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
7 | /// The sound is handled outside of this library, but for timing the optional
8 | /// methods are included here.
9 | public protocol ChessSoundEffectDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
10 | func move()
11 | func capture()
[23/85] Compiling Chess SquareSelected.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Sound.swift:9:43: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
7 | /// The sound is handled outside of this library, but for timing the optional
8 | /// methods are included here.
9 | public protocol ChessSoundEffectDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
10 | func move()
11 | func capture()
[24/85] Compiling Chess SquareTargeted.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Sound.swift:9:43: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
7 | /// The sound is handled outside of this library, but for timing the optional
8 | /// methods are included here.
9 | public protocol ChessSoundEffectDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
10 | func move()
11 | func capture()
[25/85] Compiling Chess UI.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/Sound.swift:9:43: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
7 | /// The sound is handled outside of this library, but for timing the optional
8 | /// methods are included here.
9 | public protocol ChessSoundEffectDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
10 | func move()
11 | func capture()
[26/85] Compiling Chess Chess+URL.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:57:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
55 | }
56 | let localBoard = game.board
57 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
58 | weak var weakDelegate = delegate
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:58:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
56 | let localBoard = game.board
57 | weak var weakSelf = self
58 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
60 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/HumanPlayer.swift:31:26: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
29 | game.delegate?.gameAction(.makeMove(move: move))
30 | } else {
31 | weak var weakDelegate = game.delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
32 | chessBestMoveCallback = { move in
33 | guard let delegate = weakDelegate else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[27/85] Compiling Chess ChessRobot.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:57:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
55 | }
56 | let localBoard = game.board
57 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
58 | weak var weakDelegate = delegate
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:58:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
56 | let localBoard = game.board
57 | weak var weakSelf = self
58 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
60 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/HumanPlayer.swift:31:26: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
29 | game.delegate?.gameAction(.makeMove(move: move))
30 | } else {
31 | weak var weakDelegate = game.delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
32 | chessBestMoveCallback = { move in
33 | guard let delegate = weakDelegate else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[28/85] Compiling Chess HumanPlayer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:57:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
55 | }
56 | let localBoard = game.board
57 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
58 | weak var weakDelegate = delegate
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:58:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
56 | let localBoard = game.board
57 | weak var weakSelf = self
58 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
60 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/HumanPlayer.swift:31:26: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
29 | game.delegate?.gameAction(.makeMove(move: move))
30 | } else {
31 | weak var weakDelegate = game.delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
32 | chessBestMoveCallback = { move in
33 | guard let delegate = weakDelegate else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[29/85] Compiling Chess Player.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:57:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
55 | }
56 | let localBoard = game.board
57 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
58 | weak var weakDelegate = delegate
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:58:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
56 | let localBoard = game.board
57 | weak var weakSelf = self
58 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
60 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/HumanPlayer.swift:31:26: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
29 | game.delegate?.gameAction(.makeMove(move: move))
30 | } else {
31 | weak var weakDelegate = game.delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
32 | chessBestMoveCallback = { move in
33 | guard let delegate = weakDelegate else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[30/85] Compiling Chess PlayerFactory.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:57:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
55 | }
56 | let localBoard = game.board
57 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
58 | weak var weakDelegate = delegate
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:58:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
56 | let localBoard = game.board
57 | weak var weakSelf = self
58 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
60 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/HumanPlayer.swift:31:26: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
29 | game.delegate?.gameAction(.makeMove(move: move))
30 | } else {
31 | weak var weakDelegate = game.delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
32 | chessBestMoveCallback = { move in
33 | guard let delegate = weakDelegate else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[31/85] Compiling Chess CautiousBot.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:57:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
55 | }
56 | let localBoard = game.board
57 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
58 | weak var weakDelegate = delegate
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:58:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
56 | let localBoard = game.board
57 | weak var weakSelf = self
58 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
60 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/HumanPlayer.swift:31:26: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
29 | game.delegate?.gameAction(.makeMove(move: move))
30 | } else {
31 | weak var weakDelegate = game.delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
32 | chessBestMoveCallback = { move in
33 | guard let delegate = weakDelegate else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[32/85] Compiling Chess GreedyBot.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:57:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
55 | }
56 | let localBoard = game.board
57 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
58 | weak var weakDelegate = delegate
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:58:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
56 | let localBoard = game.board
57 | weak var weakSelf = self
58 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
60 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/HumanPlayer.swift:31:26: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
29 | game.delegate?.gameAction(.makeMove(move: move))
30 | } else {
31 | weak var weakDelegate = game.delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
32 | chessBestMoveCallback = { move in
33 | guard let delegate = weakDelegate else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[33/85] Compiling Chess MindyMaxBot.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:57:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
55 | }
56 | let localBoard = game.board
57 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
58 | weak var weakDelegate = delegate
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/ChessRobot.swift:58:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
56 | let localBoard = game.board
57 | weak var weakSelf = self
58 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
59 | let answerDate = Date(timeIntervalSinceNow: responseDelay)
60 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Player/HumanPlayer.swift:31:26: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
29 | game.delegate?.gameAction(.makeMove(move: move))
30 | } else {
31 | weak var weakDelegate = game.delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
32 | chessBestMoveCallback = { move in
33 | guard let delegate = weakDelegate else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MindyMaxBot.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[34/85] Compiling Chess Board+Analysis.swift
[35/85] Compiling Chess Board+FEN.swift
[36/85] Compiling Chess Board+Game.swift
[37/85] Compiling Chess Board+Moves.swift
[38/85] Compiling Chess Board.swift
[39/85] Compiling Chess BoardVariant+GameplayKit.swift
[40/85] Compiling Chess BoardVariant.swift
[41/85] Compiling Chess Position+Names.swift
[42/85] Compiling Chess PieceShape+Details.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape+Details.swift:14:13: warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
12 | struct Details: Shape {
13 | var inset: CGFloat = 0.1
14 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
15 | func path(in rect: CGRect) -> Path {
16 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape.swift:13:9: warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
11 | struct PieceShape: Shape {
12 | var inset: CGFloat = 0.1
13 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
14 | func path(in rect: CGRect) -> Path {
15 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
[43/85] Compiling Chess PieceShape.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape+Details.swift:14:13: warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
12 | struct Details: Shape {
13 | var inset: CGFloat = 0.1
14 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
15 | func path(in rect: CGRect) -> Path {
16 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape.swift:13:9: warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
11 | struct PieceShape: Shape {
12 | var inset: CGFloat = 0.1
13 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
14 | func path(in rect: CGRect) -> Path {
15 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
[44/85] Compiling Chess PieceStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape+Details.swift:14:13: warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
12 | struct Details: Shape {
13 | var inset: CGFloat = 0.1
14 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
15 | func path(in rect: CGRect) -> Path {
16 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape.swift:13:9: warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
11 | struct PieceShape: Shape {
12 | var inset: CGFloat = 0.1
13 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
14 | func path(in rect: CGRect) -> Path {
15 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
[45/85] Compiling Chess PieceView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape+Details.swift:14:13: warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
12 | struct Details: Shape {
13 | var inset: CGFloat = 0.1
14 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
15 | func path(in rect: CGRect) -> Path {
16 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape.swift:13:9: warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
11 | struct PieceShape: Shape {
12 | var inset: CGFloat = 0.1
13 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
14 | func path(in rect: CGRect) -> Path {
15 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
[46/85] Compiling Chess PlayAsButton.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape+Details.swift:14:13: warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
12 | struct Details: Shape {
13 | var inset: CGFloat = 0.1
14 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
15 | func path(in rect: CGRect) -> Path {
16 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape.swift:13:9: warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
11 | struct PieceShape: Shape {
12 | var inset: CGFloat = 0.1
13 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
14 | func path(in rect: CGRect) -> Path {
15 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
[47/85] Compiling Chess PlayPauseButton.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape+Details.swift:14:13: warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
12 | struct Details: Shape {
13 | var inset: CGFloat = 0.1
14 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
15 | func path(in rect: CGRect) -> Path {
16 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape.swift:13:9: warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
11 | struct PieceShape: Shape {
12 | var inset: CGFloat = 0.1
13 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
14 | func path(in rect: CGRect) -> Path {
15 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
[48/85] Compiling Chess PlayerTitleView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape+Details.swift:14:13: warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
12 | struct Details: Shape {
13 | var inset: CGFloat = 0.1
14 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'Details' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
15 | func path(in rect: CGRect) -> Path {
16 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceShape.swift:13:9: warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
11 | struct PieceShape: Shape {
12 | var inset: CGFloat = 0.1
13 | let artwork: PieceArtwork
| `- warning: stored property 'artwork' of 'Sendable'-conforming struct 'PieceShape' has non-Sendable type 'PieceArtwork'; this is an error in the Swift 6 language mode
14 | func path(in rect: CGRect) -> Path {
15 | return Path { path in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/PieceArtwork/PieceArtwork.swift:11:15: note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
9 | import SwiftUI
10 |
11 | public struct PieceArtwork {
| `- note: consider making struct 'PieceArtwork' conform to the 'Sendable' protocol
12 | let start: CGPoint
13 | let strokes: [Stroke]
[49/85] Compiling Chess Position.swift
[50/85] Compiling Chess SingleMoveVariant.swift
[51/85] Compiling Chess Square.swift
[52/85] Compiling Chess Chess.swift
[53/85] Compiling Chess Game+Notation.swift
[54/85] Compiling Chess Game+Piece.swift
[55/85] Compiling Chess Game+Rules.swift
[56/85] Compiling Chess Game.swift
[57/85] Compiling Chess Knight.swift
[58/85] Compiling Chess Pawn.swift
[59/85] Compiling Chess PieceArtwork+Drawing.swift
[60/85] Compiling Chess PieceArtwork.swift
[61/85] Compiling Chess Queen.swift
[62/85] Compiling Chess Rook.swift
[63/85] Compiling Chess PieceGlyph.swift
[64/85] Compiling Chess ChessStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:36:29: warning: non-constant range: argument must be an integer literal
34 | GeometryReader { geometry in
35 | VStack(alignment: .center, spacing: 0) {
36 | ForEach(0..<height) { yIdx in
| `- warning: non-constant range: argument must be an integer literal
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:38:37: warning: non-constant range: argument must be an integer literal
36 | ForEach(0..<height) { yIdx in
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
| `- warning: non-constant range: argument must be an integer literal
39 | Rectangle()
40 | .fill( (yIdx + xIdx) % 2 == 0 ? color.dark : color.light )
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:49:67: warning: non-constant range: argument must be an integer literal
47 | Picker(selection: $store.game.playerFactory.white,
48 | label: Text("White")) {
49 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
50 | PlayerTitleView(player: Chess.playerFactory.players[$0](.white))
51 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:58:67: warning: non-constant range: argument must be an integer literal
56 | Picker(selection: $store.game.playerFactory.black,
57 | label: Text("Black")) {
58 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
59 | PlayerTitleView(player: Chess.playerFactory.players[$0](.black))
60 | }
[65/85] Compiling Chess EnvironmentReducer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:36:29: warning: non-constant range: argument must be an integer literal
34 | GeometryReader { geometry in
35 | VStack(alignment: .center, spacing: 0) {
36 | ForEach(0..<height) { yIdx in
| `- warning: non-constant range: argument must be an integer literal
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:38:37: warning: non-constant range: argument must be an integer literal
36 | ForEach(0..<height) { yIdx in
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
| `- warning: non-constant range: argument must be an integer literal
39 | Rectangle()
40 | .fill( (yIdx + xIdx) % 2 == 0 ? color.dark : color.light )
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:49:67: warning: non-constant range: argument must be an integer literal
47 | Picker(selection: $store.game.playerFactory.white,
48 | label: Text("White")) {
49 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
50 | PlayerTitleView(player: Chess.playerFactory.players[$0](.white))
51 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:58:67: warning: non-constant range: argument must be an integer literal
56 | Picker(selection: $store.game.playerFactory.black,
57 | label: Text("Black")) {
58 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
59 | PlayerTitleView(player: Chess.playerFactory.players[$0](.black))
60 | }
[66/85] Compiling Chess GameActions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:36:29: warning: non-constant range: argument must be an integer literal
34 | GeometryReader { geometry in
35 | VStack(alignment: .center, spacing: 0) {
36 | ForEach(0..<height) { yIdx in
| `- warning: non-constant range: argument must be an integer literal
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:38:37: warning: non-constant range: argument must be an integer literal
36 | ForEach(0..<height) { yIdx in
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
| `- warning: non-constant range: argument must be an integer literal
39 | Rectangle()
40 | .fill( (yIdx + xIdx) % 2 == 0 ? color.dark : color.light )
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:49:67: warning: non-constant range: argument must be an integer literal
47 | Picker(selection: $store.game.playerFactory.white,
48 | label: Text("White")) {
49 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
50 | PlayerTitleView(player: Chess.playerFactory.players[$0](.white))
51 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:58:67: warning: non-constant range: argument must be an integer literal
56 | Picker(selection: $store.game.playerFactory.black,
57 | label: Text("Black")) {
58 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
59 | PlayerTitleView(player: Chess.playerFactory.players[$0](.black))
60 | }
[67/85] Compiling Chess GameReducer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:36:29: warning: non-constant range: argument must be an integer literal
34 | GeometryReader { geometry in
35 | VStack(alignment: .center, spacing: 0) {
36 | ForEach(0..<height) { yIdx in
| `- warning: non-constant range: argument must be an integer literal
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:38:37: warning: non-constant range: argument must be an integer literal
36 | ForEach(0..<height) { yIdx in
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
| `- warning: non-constant range: argument must be an integer literal
39 | Rectangle()
40 | .fill( (yIdx + xIdx) % 2 == 0 ? color.dark : color.light )
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:49:67: warning: non-constant range: argument must be an integer literal
47 | Picker(selection: $store.game.playerFactory.white,
48 | label: Text("White")) {
49 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
50 | PlayerTitleView(player: Chess.playerFactory.players[$0](.white))
51 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:58:67: warning: non-constant range: argument must be an integer literal
56 | Picker(selection: $store.game.playerFactory.black,
57 | label: Text("Black")) {
58 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
59 | PlayerTitleView(player: Chess.playerFactory.players[$0](.black))
60 | }
[68/85] Compiling Chess BoardIconView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:36:29: warning: non-constant range: argument must be an integer literal
34 | GeometryReader { geometry in
35 | VStack(alignment: .center, spacing: 0) {
36 | ForEach(0..<height) { yIdx in
| `- warning: non-constant range: argument must be an integer literal
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:38:37: warning: non-constant range: argument must be an integer literal
36 | ForEach(0..<height) { yIdx in
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
| `- warning: non-constant range: argument must be an integer literal
39 | Rectangle()
40 | .fill( (yIdx + xIdx) % 2 == 0 ? color.dark : color.light )
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:49:67: warning: non-constant range: argument must be an integer literal
47 | Picker(selection: $store.game.playerFactory.white,
48 | label: Text("White")) {
49 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
50 | PlayerTitleView(player: Chess.playerFactory.players[$0](.white))
51 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:58:67: warning: non-constant range: argument must be an integer literal
56 | Picker(selection: $store.game.playerFactory.black,
57 | label: Text("Black")) {
58 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
59 | PlayerTitleView(player: Chess.playerFactory.players[$0](.black))
60 | }
[69/85] Compiling Chess BoardView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:36:29: warning: non-constant range: argument must be an integer literal
34 | GeometryReader { geometry in
35 | VStack(alignment: .center, spacing: 0) {
36 | ForEach(0..<height) { yIdx in
| `- warning: non-constant range: argument must be an integer literal
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:38:37: warning: non-constant range: argument must be an integer literal
36 | ForEach(0..<height) { yIdx in
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
| `- warning: non-constant range: argument must be an integer literal
39 | Rectangle()
40 | .fill( (yIdx + xIdx) % 2 == 0 ? color.dark : color.light )
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:49:67: warning: non-constant range: argument must be an integer literal
47 | Picker(selection: $store.game.playerFactory.white,
48 | label: Text("White")) {
49 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
50 | PlayerTitleView(player: Chess.playerFactory.players[$0](.white))
51 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:58:67: warning: non-constant range: argument must be an integer literal
56 | Picker(selection: $store.game.playerFactory.black,
57 | label: Text("Black")) {
58 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
59 | PlayerTitleView(player: Chess.playerFactory.players[$0](.black))
60 | }
[70/85] Compiling Chess ChessSettingsView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:36:29: warning: non-constant range: argument must be an integer literal
34 | GeometryReader { geometry in
35 | VStack(alignment: .center, spacing: 0) {
36 | ForEach(0..<height) { yIdx in
| `- warning: non-constant range: argument must be an integer literal
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/BoardIconView.swift:38:37: warning: non-constant range: argument must be an integer literal
36 | ForEach(0..<height) { yIdx in
37 | HStack(alignment: .center, spacing: 0) {
38 | ForEach(0..<width) { xIdx in
| `- warning: non-constant range: argument must be an integer literal
39 | Rectangle()
40 | .fill( (yIdx + xIdx) % 2 == 0 ? color.dark : color.light )
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:49:67: warning: non-constant range: argument must be an integer literal
47 | Picker(selection: $store.game.playerFactory.white,
48 | label: Text("White")) {
49 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
50 | PlayerTitleView(player: Chess.playerFactory.players[$0](.white))
51 | }
/Users/admin/builder/spi-builder-workspace/Sources/Chess/UI/ChessSettingsView.swift:58:67: warning: non-constant range: argument must be an integer literal
56 | Picker(selection: $store.game.playerFactory.black,
57 | label: Text("Black")) {
58 | ForEach(0 ..< Chess.playerFactory.players.count) {
| `- warning: non-constant range: argument must be an integer literal
59 | PlayerTitleView(player: Chess.playerFactory.players[$0](.black))
60 | }
[71/85] Compiling Chess MontyCarlo.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[72/85] Compiling Chess PlaybackBot.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[73/85] Compiling Chess Robot+Choices.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[74/85] Compiling Chess Robot+Names.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[75/85] Compiling Chess Robot+Previews.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[76/85] Compiling Chess ChessPreferences.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[77/85] Compiling Chess ChessEnvironment.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[78/85] Compiling Chess ChessStore+Preview.swift
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:47:22: warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
45 | strategist.gameModel = board
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
| `- warning: weak variable 'weakSelf' was never mutated; consider changing to 'let' constant [#WeakMutability]
48 | weak var weakDelegate = delegate
49 | Thread.detachNewThread {
/Users/admin/builder/spi-builder-workspace/Sources/Chess/Robots/MontyCarlo.swift:48:22: warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
46 | strategist.randomSource = GKARC4RandomSource()
47 | weak var weakSelf = self
48 | weak var weakDelegate = delegate
| `- warning: weak variable 'weakDelegate' was never mutated; consider changing to 'let' constant [#WeakMutability]
49 | Thread.detachNewThread {
50 | guard let self = weakSelf, let delegate = weakDelegate else { return }
[#WeakMutability]: <https://docs.swift.org/compiler/documentation/diagnostics/weak-mutability>
[79/85] Compiling Chess ChessThemes.swift
[80/85] Compiling Chess Defaults.swift
[81/85] Compiling Chess CoreGraphics+RelativeShape.swift
[82/85] Compiling Chess GridItem+Chess.swift
[83/85] Compiling Chess PieceDrag.swift
[84/85] Compiling Chess Bishop.swift
[85/85] Compiling Chess King.swift
Build complete! (11.71s)
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Sources/Chess/PlayChess': File not found.
Build complete.
{
"dependencies" : [
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
}
],
"manifest_display_name" : "swift-chess",
"name" : "swift-chess",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "11.0"
},
{
"name" : "ios",
"version" : "14.0"
}
],
"products" : [
{
"name" : "Chess",
"targets" : [
"Chess"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ChessTests",
"module_type" : "SwiftTarget",
"name" : "ChessTests",
"path" : "Tests/ChessTests",
"sources" : [
"BoardAnalysisTests.swift",
"BoardFenTests.swift",
"ChessRobotTests.swift",
"ChessTests.swift",
"GameTests.swift",
"GameplayKitTests.swift",
"MoveTests.swift",
"NamedPositionTests.swift",
"PieceMoveTests.swift",
"PieceWeightTests.swift",
"PositionTests.swift",
"PromotionTests.swift",
"RankAndFileTests.swift",
"XCTestManifests.swift"
],
"target_dependencies" : [
"Chess"
],
"type" : "test"
},
{
"c99name" : "Chess",
"module_type" : "SwiftTarget",
"name" : "Chess",
"path" : "Sources/Chess",
"product_dependencies" : [
"Logging"
],
"product_memberships" : [
"Chess"
],
"sources" : [
"Board/Board+Analysis.swift",
"Board/Board+FEN.swift",
"Board/Board+Game.swift",
"Board/Board+Moves.swift",
"Board/Board.swift",
"Board/BoardVariant+GameplayKit.swift",
"Board/BoardVariant.swift",
"Board/Position+Names.swift",
"Board/Position.swift",
"Board/SingleMoveVariant.swift",
"Board/Square.swift",
"Chess.swift",
"Game/Game+Notation.swift",
"Game/Game+Piece.swift",
"Game/Game+Rules.swift",
"Game/Game.swift",
"Game/GameStatus.swift",
"Game/Move+Names.swift",
"Game/Move.swift",
"Game/Piece.swift",
"Game/PieceType.swift",
"Game/Side+Move.swift",
"Game/Side.swift",
"Game/SideEffect.swift",
"Online/Chess+URL.swift",
"Player/ChessRobot.swift",
"Player/HumanPlayer.swift",
"Player/Player.swift",
"Player/PlayerFactory.swift",
"Robots/CautiousBot.swift",
"Robots/GreedyBot.swift",
"Robots/MindyMaxBot.swift",
"Robots/MontyCarlo.swift",
"Robots/PlaybackBot.swift",
"Robots/Robot+Choices.swift",
"Robots/Robot+Names.swift",
"Robots/Robot+Previews.swift",
"Settings/ChessPreferences.swift",
"Store/ChessEnvironment.swift",
"Store/ChessStore+Preview.swift",
"Store/ChessStore.swift",
"Store/EnvironmentReducer.swift",
"Store/GameActions.swift",
"Store/GameReducer.swift",
"UI/BoardIconView.swift",
"UI/BoardView.swift",
"UI/ChessSettingsView.swift",
"UI/ChessThemes.swift",
"UI/Defaults.swift",
"UI/Extensions/CoreGraphics+RelativeShape.swift",
"UI/Extensions/GridItem+Chess.swift",
"UI/Interactions/PieceDrag.swift",
"UI/PieceArtwork/Bishop.swift",
"UI/PieceArtwork/King.swift",
"UI/PieceArtwork/Knight.swift",
"UI/PieceArtwork/Pawn.swift",
"UI/PieceArtwork/PieceArtwork+Drawing.swift",
"UI/PieceArtwork/PieceArtwork.swift",
"UI/PieceArtwork/Queen.swift",
"UI/PieceArtwork/Rook.swift",
"UI/PieceGlyph.swift",
"UI/PieceShape+Details.swift",
"UI/PieceShape.swift",
"UI/PieceStyle.swift",
"UI/PieceView.swift",
"UI/PlayAsButton.swift",
"UI/PlayPauseButton.swift",
"UI/PlayerTitleView.swift",
"UI/ResetBoardButton.swift",
"UI/Sound.swift",
"UI/SquareBackground.swift",
"UI/SquareMoveHighlight.swift",
"UI/SquareSelected.swift",
"UI/SquareTargeted.swift",
"UI/UI.swift"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Sources/Chess/PlayChess': File not found.
Done.