The Swift Package Index logo.Swift Package Index

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 arm64

Build 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.