Build Information
Successful build of SwiftChessTools, reference v1.4.0 (7dae02), with Swift 6.4 for macOS (SPM) on 12 Oct 2026 06:12:51 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.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: v1.4.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Trickfest/SwiftChessTools
* tag v1.4.0 -> FETCH_HEAD
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 v1.4.0
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/Trickfest/SwiftChessTools.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Pre-planning 1 / 240]
[Planning deferred tasks]
[53 / 136] SwiftChessTools_ChessUITests
[102 / 136] SwiftChessTools_ChessUI
[107 / 136]
[108 / 137] ChessCore
[118 / 182]
[123 / 182]
[126 / 182]
[127 / 182]
[131 / 182]
[133 / 182]
[136 / 182]
[139 / 182]
[141 / 182]
[142 / 182]
[153 / 182] ChessCore
[154 / 182] ChessCore
[162 / 184] ChessUCI
[165 / 187] ChessUCI
[165 / 187] ChessUI
[174 / 230]
[176 / 230]
[178 / 230]
[179 / 230]
[180 / 230]
[181 / 230]
[182 / 230]
[183 / 230]
[184 / 230]
[191 / 230] ChessCore
[199 / 230]
[201 / 230]
[202 / 230]
[206 / 230]
[208 / 230]
[220 / 230] ChessUI
[226 / 230] ChessUI
Build complete! (15.01 sec)
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.