The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Splint, reference 0.8.0 (42a850), with Swift 6.3 for macOS (SPM) on 4 May 2026 01:26:51 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/searlsco/splint.git
Reference: 0.8.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/searlsco/splint
 * tag               0.8.0      -> FETCH_HEAD
HEAD is now at 42a8509 Release 0.8.0
Cloned https://github.com/searlsco/splint.git
Revision (git rev-parse @):
42a850982b6741f4de5b326e1be617db2330ca67
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/searlsco/splint.git at 0.8.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": "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/711] Fetching splint
Fetched https://github.com/searlsco/splint.git from cache (0.81s)
Creating working copy for https://github.com/searlsco/splint.git
Working copy of https://github.com/searlsco/splint.git resolved at 0.8.0 (42a8509)
warning: '.resolve-product-dependencies': dependency 'splint' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.3
Building package at path:  $PWD
https://github.com/searlsco/splint.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--6988338F2F200930.txt
[3/12] Compiling Splint Lens.swift
[4/12] Compiling Splint Setting.swift
[5/12] Compiling Splint Phase.swift
[6/12] Compiling Splint Resource.swift
[7/12] Compiling Splint GroupedLens.swift
[8/12] Compiling Splint Selection.swift
[9/12] Compiling Splint Job.swift
[10/13] Compiling Splint Credential.swift
[11/13] Compiling Splint Catalog.swift
[12/13] Emitting module Splint
[13/13] Compiling Splint SettingValue.swift
Build complete! (4.17s)
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",
        "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",
        "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/0.8.0
Repository:               searlsco/splint
Swift version used:       6.3
Target:                   Splint
Extracting symbol information for 'Splint'...
Finished extracting symbol information for 'Splint'. (28.17s)
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:117:36-117:61
115 |   /// state rather than wrong data from the previous criteria. The first
116 |   /// load after init (criteria was `nil`) preserves any existing items —
117 +   /// 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])'
118 |   /// seed stays visible until the fetch completes.
119 |   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]) -> Category)'
   |                                        ╰─suggestion: Insert '-((Item,[Item],[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (Item, [Item], [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:165:9-165:29
163 |   /// lens automatically refreshes when the source changes or when you
164 |   /// call ``updateFilter(_:)`` / ``updateSort(_:)`` /
165 +   /// ``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]) -> Category)'
    |                             ╰─suggestion: Insert '-((Item,[Item],[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (Item, [Item], [Item]) -> Category)'
166 |   /// those closures reads from state the lens cannot (or deliberately
167 |   /// 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]) -> Category)'
   |                                                 ╰─suggestion: Insert '-((Item,[Item],[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (Item, [Item], [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]) -> Category)'
    |                                   ╰─suggestion: Insert '-((Item,[Item],[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (Item, [Item], [Item]) -> Category)'
100 | state the lens cannot (or deliberately does not) observe — clocks,
101 | locale changes, reachability, feature flags, newly-granted
warning: '9y3ib' isn't a disambiguation for 'updateCategories(_:)' at '/Splint/GroupedLens'
   --> GroupedLensGuide.md:167:59-167:65
165 | "top half of what's on screen", source for "ranked within the whole
166 | library". The one- and two-argument forms both remain available; all
167 + three variants exist on ``GroupedLens/updateCategories(_:)-9y3ib`` too.
    |                                                           ├─suggestion: Replace '9y3ib' with '(((Item)->Category)?)' for '@MainActor func updateCategories(_ categorize: (@Sendable (Item) -> Category)?)'
    |                                                           ├─suggestion: Replace '9y3ib' with '((Item,[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (Item, [Item]) -> Category)'
    |                                                           ╰─suggestion: Replace '9y3ib' with '((Item,[Item],[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (Item, [Item], [Item]) -> Category)'
168 |
169 | ## Closures capture once
warning: 'updateCategories(_:)' is ambiguous at '/Splint/GroupedLens'
   --> GroupedLensGuide.md:173:47-173:67
171 | ``GroupedLens`` captures `filter`, `sort`, and `categorize` at init.
172 | They re-run only on ``GroupedLens/updateFilter(_:)``,
173 + ``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]) -> Category)'
    |                                                                   ╰─suggestion: Insert '-((Item,[Item],[Item])->Category)' for '@MainActor func updateCategories(_ categorize: @escaping @Sendable (Item, [Item], [Item]) -> Category)'
174 | or ``GroupedLens/refresh()`` — not when observable variables they
175 | 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:210:3-210:18
208 | - ``Lens``
209 | - ``Resource``
210 + - <doc:LensGuide>
    | ╰─suggestion: Remove '- <doc:LensGuide>'
211 | - <doc:ObservationBoundaries>
Finished building documentation for 'Splint' (0.41s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/searlsco/splint/0.8.0
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2287] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.19s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (3.60s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3710] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.22s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (2.12s)
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...
[0/8] Write sources
[3/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version--6988338F2F200930.txt
[6/54] Emitting module SymbolKit
[7/58] Compiling SymbolKit Relationship.swift
[8/58] Compiling SymbolKit RelationshipKind.swift
[9/58] Compiling SymbolKit SourceOrigin.swift
[10/58] Compiling SymbolKit GenericConstraints.swift
[11/58] Compiling SymbolKit Swift.swift
[12/58] Compiling SymbolKit Identifier.swift
[13/58] Compiling SymbolKit KindIdentifier.swift
[14/58] Compiling SymbolKit Location.swift
[15/58] Compiling SymbolKit Mutability.swift
[16/58] Compiling SymbolKit SemanticVersion.swift
[17/58] Compiling SymbolKit AccessControl.swift
[18/58] Compiling SymbolKit Availability.swift
[19/58] Compiling SymbolKit AvailabilityItem.swift
[20/58] Compiling SymbolKit Domain.swift
[21/58] Emitting module Snippets
[22/58] Compiling Snippets Snippet.swift
[23/58] Compiling Snippets SnippetParser.swift
[24/58] Compiling Snippets SnippetLanguage.swift
[25/58] Compiling SymbolKit Symbol.swift
[26/58] Compiling SymbolKit SymbolKind.swift
[27/58] Compiling SymbolKit SymbolGraph.swift
[28/58] Compiling SymbolKit GraphCollector.swift
[29/58] Compiling SymbolKit GenericConstraint.swift
[30/58] Compiling SymbolKit GenericParameter.swift
[31/58] Compiling SymbolKit Generics.swift
[32/58] Compiling SymbolKit Namespace.swift
[33/58] Compiling SymbolKit SourceRange.swift
[34/58] Compiling SymbolKit Metadata.swift
[35/58] Compiling SymbolKit Module.swift
[36/58] Compiling SymbolKit OperatingSystem.swift
[37/58] Compiling SymbolKit Platform.swift
[38/58] Compiling SymbolKit Mixin+Equals.swift
[39/58] Compiling SymbolKit Mixin+Hash.swift
[40/58] Compiling SymbolKit Mixin.swift
[41/58] Compiling SymbolKit LineList.swift
[42/58] Compiling SymbolKit Position.swift
[43/58] Compiling SymbolKit Names.swift
[44/58] Compiling SymbolKit SPI.swift
[45/58] Compiling SymbolKit Snippet.swift
[46/58] Compiling SymbolKit Extension.swift
[47/58] Compiling SymbolKit DeclarationFragments.swift
[48/58] Compiling SymbolKit Fragment.swift
[49/58] Compiling SymbolKit FragmentKind.swift
[50/58] Compiling SymbolKit FunctionParameter.swift
[51/58] Compiling SymbolKit FunctionSignature.swift
[52/58] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[53/58] Compiling SymbolKit UnifiedSymbol.swift
[54/58] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[55/58] Compiling SymbolKit UnifiedSymbolGraph.swift
[56/62] Compiling snippet_extract URL+Status.swift
[57/62] Compiling snippet_extract SymbolGraph+Snippet.swift
[58/62] Compiling snippet_extract SnippetBuildCommand.swift
[59/62] Emitting module snippet_extract
[59/62] Write Objects.LinkFileList
[60/62] Linking snippet-extract-tool
[61/62] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.73s)
Building for debugging...
[0/1] Write swift-version--6988338F2F200930.txt
Build of target: 'Splint' complete! (0.25s)
     244
3	/Users/admin/builder/spi-builder-workspace/.docs/searlsco/splint/0.8.0
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/searlsco/splint/0.8.0
File count: 244
Doc size:   3.0MB
Preparing doc bundle ...
Uploading prod-searlsco-splint-0.8.0-7b070437.zip to s3://spi-docs-inbox/prod-searlsco-splint-0.8.0-7b070437.zip
Copying... [10%]
Copying... [21%]
Copying... [31%]
Copying... [41%]
Copying... [51%]
Copying... [62%]
Copying... [72%]
Copying... [82%]
Copying... [93%]
Copying... [100%]
Done.