Build Information
Successful build of Splint, reference main (40edfc), with Swift 6.4 for macOS (SPM) on 23 Oct 2026 02:22:41 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/searlsco/splint.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/searlsco/splint
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 40edfce Release 0.12.4
Cloned https://github.com/searlsco/splint.git
Revision (git rev-parse @):
40edfcebf79ff7f53b355a91081bc2e8a73c9d9f
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/searlsco/splint.git at main
========================================
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": "splint",
"name": "Splint",
"url": "https://github.com/searlsco/splint.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/splint",
"traits": [
"default"
],
"dependencies": [
]
}
]
}
Fetching https://github.com/searlsco/splint.git
[1/1294] Fetching splint
Fetched https://github.com/searlsco/splint.git (1.08s)
Creating working copy for https://github.com/searlsco/splint.git
Working copy of https://github.com/searlsco/splint.git resolved at main (40edfce)
warning: '.resolve-product-dependencies': dependency 'splint' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/searlsco/splint.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0.app xcrun swift build --arch arm64
Building for debugging...
[Planning deferred tasks]
[19 / 28]
[20 / 29] Splint
[30 / 74]
[35 / 74]
[38 / 74]
[39 / 74]
[43 / 74]
[45 / 74]
[48 / 74]
[51 / 74]
[53 / 74]
[54 / 74]
[65 / 74] Splint
[71 / 74] Splint
Build complete! (7.45 sec)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Splint",
"name" : "Splint",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "26.2"
},
{
"name" : "macos",
"version" : "26.2"
},
{
"name" : "tvos",
"version" : "26.2"
},
{
"name" : "watchos",
"version" : "26.2"
},
{
"name" : "visionos",
"version" : "26.2"
}
],
"products" : [
{
"name" : "Splint",
"targets" : [
"Splint"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SplintTests",
"module_type" : "SwiftTarget",
"name" : "SplintTests",
"path" : "Tests/SplintTests",
"sources" : [
"CatalogTests.swift",
"CloudSyncTests.swift",
"CredentialTests.swift",
"GroupedLensLargeNTests.swift",
"GroupedLensTests.swift",
"JobTests.swift",
"LensLargeNTests.swift",
"LensTests.swift",
"NonisolatedConstructionTests.swift",
"PhaseTests.swift",
"SelectionTests.swift",
"SettingTests.swift",
"WaitUntil.swift"
],
"target_dependencies" : [
"Splint"
],
"type" : "test"
},
{
"c99name" : "Splint",
"module_type" : "SwiftTarget",
"name" : "Splint",
"path" : "Sources/Splint",
"product_memberships" : [
"Splint"
],
"sources" : [
"Catalog.swift",
"CloudSync.swift",
"Credential.swift",
"GroupedLens.swift",
"Job.swift",
"Lens.swift",
"Phase.swift",
"Resource.swift",
"Selection.swift",
"Setting.swift",
"SettingValue.swift"
],
"type" : "library"
}
],
"tools_version" : "6.2"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/searlsco/splint/main
Repository: searlsco/splint
Swift version used: 6.4
Target: Splint
Extracting symbol information for 'Splint'...
Finished extracting symbol information for 'Splint'. (1.19s)
Building documentation for 'Splint'...
warning: 'init(initialItems:fetch:)' is ambiguous at '/Splint/Catalog'
--> ../Catalog.swift:26:9-26:34
24 | public final class Catalog<Item: Resource, Criteria: Equatable & Sendable> {
25 | /// Items returned by the most recent fetch, or the seed passed to
26 + /// ``init(initialItems:fetch:)`` before any fetch has completed.
| ├─suggestion: Insert '-(_,()->[Item])' for '@MainActor convenience init(initialItems: [Item], fetch: @escaping @Sendable () async throws -> [Item])'
| ╰─suggestion: Insert '-(_,(Criteria)->[Item])' for '@MainActor init(initialItems: [Item] = [], fetch: @escaping @Sendable (Criteria) async throws -> [Item])'
27 | /// Cleared when ``load(_:)`` is called with criteria that differ from
28 | /// the current non-nil criteria; preserved across a first load (so
warning: 'init(initialItems:fetch:)' is ambiguous at '/Splint/Catalog'
--> ../Catalog.swift:115:36-115:61
113 | /// state rather than wrong data from the previous criteria. The first
114 | /// load after init (criteria was `nil`) preserves any existing items —
115 + /// including seed values from ``init(initialItems:fetch:)`` — so the
| ├─suggestion: Insert '-(_,()->[Item])' for '@MainActor convenience init(initialItems: [Item], fetch: @escaping @Sendable () async throws -> [Item])'
| ╰─suggestion: Insert '-(_,(Criteria)->[Item])' for '@MainActor init(initialItems: [Item] = [], fetch: @escaping @Sendable (Criteria) async throws -> [Item])'
116 | /// seed stays visible until the fetch completes.
117 | public func load(_ criteria: Criteria) {
warning: 'updateCategories(_:)' is ambiguous at '/Splint/GroupedLens'
--> ../GroupedLens.swift:37:20-37:40
35 |
36 | /// The grouped projection, ordered by `Category`'s `Comparable`.
37 + /// Empty when ``updateCategories(_:)`` has not been called or was
| ├─suggestion: Insert '-(((Item)->Category)?)' for '@MainActor func updateCategories(_ categorize: (@Sendable (Item) -> Category)?)'
| ╰─suggestion: Insert '-((Item,[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (_ item: Item, _ visible: [Item]) -> Category)'
38 | /// last called with `nil`.
39 | public private(set) var groups: [(category: Category, items: [Item])] = []
warning: 'updateCategories(_:)' is ambiguous at '/Splint/GroupedLens'
--> ../GroupedLens.swift:134:9-134:29
132 | /// lens automatically refreshes when the source changes or when you
133 | /// call ``updateFilter(_:)`` / ``updateSort(_:)`` /
134 + /// ``updateCategories(_:)`` — reach for `refresh()` only when any of
| ├─suggestion: Insert '-(((Item)->Category)?)' for '@MainActor func updateCategories(_ categorize: (@Sendable (Item) -> Category)?)'
| ╰─suggestion: Insert '-((Item,[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (_ item: Item, _ visible: [Item]) -> Category)'
135 | /// those closures reads from state the lens cannot (or deliberately
136 | /// does not) observe: clocks (`Date.now`, "due within the next
warning: 'Identifiable' doesn't exist at '/Splint/Resource'
--> ../Resource.swift:2:14-2:26
1 | /// A marker protocol bundling the conformances every decoded remote value
2 + /// needs: ``Identifiable`` for `ForEach`, ``Sendable`` for async boundaries,
3 | /// ``Equatable`` and ``Hashable`` for collections, diffing, and
4 | /// `NavigationLink` values.
warning: 'Sendable' doesn't exist at '/Splint/Resource'
--> ../Resource.swift:2:46-2:54
1 | /// A marker protocol bundling the conformances every decoded remote value
2 + /// needs: ``Identifiable`` for `ForEach`, ``Sendable`` for async boundaries,
3 | /// ``Equatable`` and ``Hashable`` for collections, diffing, and
4 | /// `NavigationLink` values.
warning: 'Equatable' doesn't exist at '/Splint/Resource'
--> ../Resource.swift:3:7-3:16
1 | /// A marker protocol bundling the conformances every decoded remote value
2 | /// needs: ``Identifiable`` for `ForEach`, ``Sendable`` for async boundaries,
3 + /// ``Equatable`` and ``Hashable`` for collections, diffing, and
4 | /// `NavigationLink` values.
5 | ///
warning: 'Hashable' doesn't exist at '/Splint/Resource'
--> ../Resource.swift:3:25-3:33
1 | /// A marker protocol bundling the conformances every decoded remote value
2 | /// needs: ``Identifiable`` for `ForEach`, ``Sendable`` for async boundaries,
3 + /// ``Equatable`` and ``Hashable`` for collections, diffing, and
4 | /// `NavigationLink` values.
5 | ///
warning: 'updateCategories(_:)' is ambiguous at '/Splint/GroupedLens'
--> GroupedLensGuide.md:57:29-57:49
55 | ## Toggling grouping on and off
56 |
57 + Pass `nil` to ``GroupedLens/updateCategories(_:)`` to clear the
| ├─suggestion: Insert '-(((Item)->Category)?)' for '@MainActor func updateCategories(_ categorize: (@Sendable (Item) -> Category)?)'
| ╰─suggestion: Insert '-((Item,[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (_ item: Item, _ visible: [Item]) -> Category)'
58 | categorizer. `items` stays populated (same filter + sort as before);
59 | `groups` becomes empty. Views can read `items` in their flat-list path
warning: 'updateCategories(_:)' is ambiguous at '/Splint/GroupedLens'
--> GroupedLensGuide.md:99:15-99:35
97 | when you call ``GroupedLens/updateFilter(_:)``,
98 | ``GroupedLens/updateSort(_:)``, or
99 + ``GroupedLens/updateCategories(_:)``. For closures that read from
| ├─suggestion: Insert '-(((Item)->Category)?)' for '@MainActor func updateCategories(_ categorize: (@Sendable (Item) -> Category)?)'
| ╰─suggestion: Insert '-((Item,[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (_ item: Item, _ visible: [Item]) -> Category)'
100 | state the lens cannot (or deliberately does not) observe — clocks,
101 | locale changes, reachability, feature flags, newly-granted
warning: 'updateCategories(_:)' is ambiguous at '/Splint/GroupedLens'
--> GroupedLensGuide.md:144:47-144:67
142 | ``GroupedLens`` captures `filter`, `sort`, and `categorize` at init.
143 | They re-run only on ``GroupedLens/updateFilter(_:)``,
144 + ``GroupedLens/updateSort(_:)``, ``GroupedLens/updateCategories(_:)``,
| ├─suggestion: Insert '-(((Item)->Category)?)' for '@MainActor func updateCategories(_ categorize: (@Sendable (Item) -> Category)?)'
| ╰─suggestion: Insert '-((Item,[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (_ item: Item, _ visible: [Item]) -> Category)'
145 | or ``GroupedLens/refresh()`` — not when observable variables they
146 | reference change. Capturing mutable *observable* view state at init
warning: Organizing 'Splint/LensGuide' under 'Splint/GroupedLensGuide' forms a cycle
Links in a "Topics section" are used to organize documentation into a hierarchy. The documentation hierarchy shouldn't contain cycles.
If this link contributed to the documentation hierarchy it would introduce this cycle:
╭─▶︎ GroupedLensGuide ─▶︎ LensGuide ─╮
╰──────────────────────────────────╯
--> GroupedLensGuide.md:181:3-181:18
179 | - ``Lens``
180 | - ``Resource``
181 + - <doc:LensGuide>
| ╰─suggestion: Remove '- <doc:LensGuide>'
182 | - <doc:ObservationBoundaries>
Finished building documentation for 'Splint' (0.17s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/searlsco/splint/main
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2345] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin (1.68s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (4.00s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3846] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit (1.24s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.98s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Building for debugging...
[Planning deferred tasks]
[20 / 43] Snippets
[30 / 92]
[35 / 92]
[38 / 92]
[39 / 92]
[43 / 92]
[45 / 92]
[48 / 92]
[51 / 92]
[52 / 92]
[53 / 92]
[54 / 92]
[65 / 92] SymbolKit
[66 / 92] Snippets
[84 / 93] SymbolKit
[92 / 97] Snippets
[93 / 97] snippet-extract-product
[95 / 97] snippet-extract-product
Build complete! (4.30 sec)
Building for debugging...
[Planning deferred tasks]
[3 / 11] Splint
[14 / 22] Splint
Build complete! (0.98 sec)
252
3 /Users/admin/builder/spi-builder-workspace/.docs/searlsco/splint/main
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/searlsco/splint/main
File count: 252
Doc size: 3.0MB
Preparing doc bundle ...
Using presigned URL upload - AWS credentials not required
Uploading -searlsco-splint-main-279a69be.zip to presigned URL
Starting upload of 672785 bytes...
Upload completed successfully
Done.