Build Information
Successful build of SwiftChessTools, reference main (7dae02), with Swift 6.2 for macOS (SPM) on 12 Oct 2026 06:10:45 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Trickfest/SwiftChessTools.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Trickfest/SwiftChessTools
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 7dae023 Prepare SwiftChessTools 1.4.0 release metadata
Cloned https://github.com/Trickfest/SwiftChessTools.git
Revision (git rev-parse @):
7dae023a7a171209134832e28d300b164aac47d9
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/Trickfest/SwiftChessTools.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.2
Building package at path: $PWD
https://github.com/Trickfest/SwiftChessTools.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64
Building for debugging...
[0/5] Write sources
[3/5] Copying Pieces.xcassets
[4/5] Write swift-version--3CB7CFEC50E0D141.txt
[6/34] Emitting module ChessCore
[7/37] Compiling ChessCore PieceKind.swift
[8/37] Compiling ChessCore Position.swift
[9/37] Compiling ChessCore PositionValidator.swift
[10/37] Compiling ChessCore Rules.swift
[11/37] Compiling ChessCore StandardRules.swift
[12/37] Compiling ChessCore SANSerializer.swift
[13/37] Compiling ChessCore KnightMoveGenerator.swift
[14/37] Compiling ChessCore MoveOffsets.swift
[15/37] Compiling ChessCore PawnMoveGenerator.swift
[16/37] Compiling ChessCore Bitboards.swift
[17/37] Compiling ChessCore Board.swift
[18/37] Compiling ChessCore Square.swift
[19/37] Compiling ChessCore ChessMoveRecord.swift
[20/37] Compiling ChessCore RookMoveGenerator.swift
[21/37] Compiling ChessCore SlidingMoveGenerator.swift
[22/37] Compiling ChessCore StepMoveGenerator.swift
[23/37] Compiling ChessCore PieceMoveGenerator.swift
[24/37] Compiling ChessCore QueenMoveGenerator.swift
[25/37] Compiling ChessCore RangeMoveGenerator.swift
[26/37] Compiling ChessCore Rays.swift
[27/37] Compiling ChessCore BishopMoveGenerator.swift
[28/37] Compiling ChessCore KingMoveGenerator.swift
[29/37] Compiling ChessCore PGNSerializer.swift
[30/37] Compiling ChessCore Piece.swift
[31/37] Compiling ChessCore PieceColor.swift
[32/37] Compiling ChessCore DeadPositionAnalyzer.swift
[33/37] Compiling ChessCore FENSerializer.swift
[34/37] Compiling ChessCore Game.swift
[35/37] Compiling ChessCore GameStatus.swift
[36/37] Compiling ChessCore GameTimeline.swift
[37/37] Compiling ChessCore Move.swift
[38/51] Compiling ChessUCI UCICommand.swift
[39/51] Compiling ChessUCI UCIParser.swift
[40/51] Emitting module ChessUCI
[41/51] Compiling ChessUI ChessPieceSet.swift
[42/51] Compiling ChessUI Theme.swift
[43/52] Compiling ChessUI ChessMoveNavigationView.swift
[44/52] Compiling ChessUI ChessGameStatusView.swift
[45/52] Compiling ChessUI ChessEvaluationBar.swift
[46/52] Compiling ChessUI ChessMoveListView.swift
[47/52] Compiling ChessUI resource_bundle_accessor.swift
[48/52] Compiling ChessUI ChessEvaluation.swift
[49/52] Emitting module ChessUI
[50/52] Compiling ChessUI ChessBoardView.swift
[51/52] Compiling ChessUI ChessBoardAccessibility.swift
[52/52] Compiling ChessUI ChessBoardArrow.swift
Build complete! (12.90s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SwiftChessTools",
"name" : "SwiftChessTools",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "26.0"
},
{
"name" : "macos",
"version" : "26.0"
}
],
"products" : [
{
"name" : "ChessCore",
"targets" : [
"ChessCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "ChessUI",
"targets" : [
"ChessUI"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "ChessUCI",
"targets" : [
"ChessUCI"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5",
"6"
],
"targets" : [
{
"c99name" : "ChessUITests",
"module_type" : "SwiftTarget",
"name" : "ChessUITests",
"path" : "Tests/ChessUITests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/arrows-black-perspective.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/board-theme-artDecoMonochrome.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/board-theme-blueStudy.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/board-theme-blueprint.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/board-theme-circuitBoard.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/board-theme-classicGreen.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/board-theme-marble.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/board-theme-sportsCourt.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/board-theme-warmWalnut.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/coordinate-labels-hidden.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/coordinate-labels-outside-black.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/coordinate-labels-outside-minimum-size.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/coordinate-labels-outside-white.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/coordinate-labels-outside-workbench-size.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/evaluation-bar-horizontal.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/evaluation-bar-mate-vertical.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/evaluation-bar-minimum-size.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/evaluation-bar-unavailable.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/evaluation-bar-vertical-centipawn.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/initial-black.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/initial-white.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/last-move-highlight.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/move-list-empty.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/move-list-hidden-scroll-indicators.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/move-list-horizontal-hidden-scroll-indicators.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/move-list-horizontal-long-history.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/move-list-horizontal-narrow-rows.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/move-list-horizontal-rows.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/move-list-long-history.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/move-list-narrow-selected-rows.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/move-list-rows.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/piece-scale-220.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/piece-scale-420.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/piece-scale-promotion.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/piece-set-artDecoMonochrome.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/piece-set-blueprintMonochrome.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/piece-set-brutalistMonochrome.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/piece-set-circuitBoardMonochrome.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/piece-set-origamiMonochrome.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/piece-set-sashiteMerida.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/piece-set-sportsMonochrome.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/primary-arrow.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/promotion-picker-black-minimum-size.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/promotion-picker.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/selected-piece.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ChessUITests/SnapshotReferences/top-three-arrows.png",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"ChessBoardAccessibilityTests.swift",
"ChessEvaluationBarTests.swift",
"ChessGameStatusViewTests.swift",
"ChessHistoryPresentationTests.swift",
"ChessMoveNavigationMacTests.swift",
"ChessMoveNavigationViewTests.swift",
"ChessUISmokeTests.swift",
"ChessUISnapshotTests.swift",
"PublicAPITests.swift"
],
"target_dependencies" : [
"ChessCore",
"ChessUI"
],
"type" : "test"
},
{
"c99name" : "ChessUI",
"module_type" : "SwiftTarget",
"name" : "ChessUI",
"path" : "Sources/ChessUI",
"product_memberships" : [
"ChessUI"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/ChessUI/Assets/Pieces.xcassets",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"ChessBoardAccessibility.swift",
"ChessBoardArrow.swift",
"ChessBoardView.swift",
"ChessEvaluation.swift",
"ChessEvaluationBar.swift",
"ChessGameStatusView.swift",
"ChessMoveListView.swift",
"ChessMoveNavigationView.swift",
"ChessPieceSet.swift",
"Theme.swift"
],
"target_dependencies" : [
"ChessCore"
],
"type" : "library"
},
{
"c99name" : "ChessUCITests",
"module_type" : "SwiftTarget",
"name" : "ChessUCITests",
"path" : "Tests/ChessUCITests",
"sources" : [
"UCICommandTests.swift",
"UCIParserTests.swift"
],
"target_dependencies" : [
"ChessCore",
"ChessUCI"
],
"type" : "test"
},
{
"c99name" : "ChessUCI",
"module_type" : "SwiftTarget",
"name" : "ChessUCI",
"path" : "Sources/ChessUCI",
"product_memberships" : [
"ChessUCI"
],
"sources" : [
"UCICommand.swift",
"UCIParser.swift"
],
"target_dependencies" : [
"ChessCore"
],
"type" : "library"
},
{
"c99name" : "ChessCoreTests",
"module_type" : "SwiftTarget",
"name" : "ChessCoreTests",
"path" : "Tests/ChessCoreTests",
"sources" : [
"BoardTest.swift",
"ChessMoveRecordBuilderTests.swift",
"DeadPositionAnalyzerTests.swift",
"FENSerializerTests.swift",
"GameStateInvariantTests.swift",
"GameStatusTests.swift",
"GameTests.swift",
"GameTimelineTests.swift",
"GeneratedGameMutationInvariantTests.swift",
"MoveTests.swift",
"NotationRoundTripTests.swift",
"PGNSerializerTests.swift",
"PieceColorTests.swift",
"PieceTests.swift",
"PositionTests.swift",
"PositionValidatorTests.swift",
"PublicAPITests.swift",
"PythonChessOracleTests.swift",
"RaysTests.swift",
"RealGamesTests.swift",
"Rules/Standard/CheckmateTests.swift",
"Rules/Standard/PawnMovesTests.swift",
"Rules/Standard/PerftTests.swift",
"Rules/Standard/RuleEngineEdgeCaseTests.swift",
"Rules/Standard/StandardRulesTests.swift",
"SANSerializerTests.swift",
"SquareTest.swift"
],
"target_dependencies" : [
"ChessCore"
],
"type" : "test"
},
{
"c99name" : "ChessCore",
"module_type" : "SwiftTarget",
"name" : "ChessCore",
"path" : "Sources/ChessCore",
"product_memberships" : [
"ChessCore",
"ChessUI",
"ChessUCI"
],
"sources" : [
"Board/Bitboards.swift",
"Board/Board.swift",
"Board/Square.swift",
"ChessMoveRecord.swift",
"DeadPositionAnalyzer.swift",
"FENSerializer.swift",
"Game.swift",
"GameStatus.swift",
"GameTimeline.swift",
"Move.swift",
"PGNSerializer.swift",
"Piece/Piece.swift",
"Piece/PieceColor.swift",
"Piece/PieceKind.swift",
"Position.swift",
"PositionValidator.swift",
"Rays.swift",
"Rules/MoveGeneration/BishopMoveGenerator.swift",
"Rules/MoveGeneration/KingMoveGenerator.swift",
"Rules/MoveGeneration/KnightMoveGenerator.swift",
"Rules/MoveGeneration/MoveOffsets.swift",
"Rules/MoveGeneration/PawnMoveGenerator.swift",
"Rules/MoveGeneration/PieceMoveGenerator.swift",
"Rules/MoveGeneration/QueenMoveGenerator.swift",
"Rules/MoveGeneration/RangeMoveGenerator.swift",
"Rules/MoveGeneration/RookMoveGenerator.swift",
"Rules/MoveGeneration/SlidingMoveGenerator.swift",
"Rules/MoveGeneration/StepMoveGenerator.swift",
"Rules/Rules.swift",
"Rules/StandardRules.swift",
"SANSerializer.swift"
],
"type" : "library"
}
],
"tools_version" : "6.2"
}
Done.