The Swift Package Index logo.Swift Package Index

Build Information

Successful build of swift-mail-automation, reference main (69bd05), with Swift 6.3 for macOS (SPM) on 12 Oct 2026 20:33:28 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/chrischall/swift-mail-automation.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/chrischall/swift-mail-automation
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 69bd052 chore(main): release 1.2.2 (#67)
Cloned https://github.com/chrischall/swift-mail-automation.git
Revision (git rev-parse @):
69bd052b9e0903c59ac528ccf52a28ff172b195b
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/chrischall/swift-mail-automation.git at main
Fetching https://github.com/apple/swift-log.git
[1/8280] Fetching swift-log
Fetched https://github.com/apple/swift-log.git from cache (1.28s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.16.1 (1.88s)
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.16.1
========================================
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": "swift-mail-automation",
      "name": "swift-mail-automation",
      "url": "https://github.com/chrischall/swift-mail-automation.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-mail-automation",
      "traits": [
        "default"
      ],
      "dependencies": [
        {
          "identity": "swift-log",
          "name": "swift-log",
          "url": "https://github.com/apple/swift-log.git",
          "version": "1.16.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-log",
          "traits": [
          ],
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/chrischall/swift-mail-automation.git
[1/658] Fetching swift-mail-automation
Fetched https://github.com/chrischall/swift-mail-automation.git from cache (0.94s)
Fetching https://github.com/apple/swift-log.git from cache
Fetched https://github.com/apple/swift-log.git from cache (0.57s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.16.1 (0.63s)
Creating working copy for https://github.com/chrischall/swift-mail-automation.git
Working copy of https://github.com/chrischall/swift-mail-automation.git resolved at main (69bd052)
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.16.1
warning: '.resolve-product-dependencies': dependency 'swift-mail-automation' is not used by any target
Found 1 product dependencies
  - swift-log
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.3
Building package at path:  $PWD
https://github.com/chrischall/swift-mail-automation.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.5.0.app xcrun swift build --arch arm64
Building for debugging...
[0/4] Write sources
[2/4] Write swift-version-69A768CDF2A0BEE1.txt
[3/15] Compiling CMailSQLite CMailSQLite.c
[5/15] Compiling Logging Logger.swift
[6/15] Compiling Logging LoggingSystem.swift
[7/15] Compiling Logging Logger+With.swift
[8/16] Compiling Logging LogHandler.swift
[9/16] Compiling Logging LogEvent.swift
[10/16] Compiling Logging Logger+Attributes.swift
[11/16] Compiling Logging MetadataProvider.swift
[12/16] Compiling Logging MultiplexLogHandler.swift
[13/16] Compiling Logging StreamLogHandler.swift
[14/16] Compiling Logging SwiftLogNoOpLogHandler.swift
[15/16] Emitting module Logging
[16/16] Compiling Logging Locks.swift
[17/26] Compiling MailAutomation MailService.swift
[18/26] Compiling MailAutomation ISODate.swift
[19/26] Compiling MailAutomation MailIndexReader.swift
[20/26] Emitting module MailAutomation
[21/26] Compiling MailAutomation AppleScriptRunner.swift
[22/26] Compiling MailAutomation EmailMessage.swift
[23/26] Compiling MailAutomation NSAppleScriptRunner.swift
[24/26] Compiling MailAutomation MailQuery.swift
[25/26] Compiling MailAutomation SpotlightMailSearch.swift
[26/26] Compiling MailAutomation MailTimeout.swift
[27/27] Compiling MailAutomation StringHelpers.swift
Build complete! (10.62s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    }
  ],
  "manifest_display_name" : "swift-mail-automation",
  "name" : "swift-mail-automation",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "14.0"
    }
  ],
  "products" : [
    {
      "name" : "MailAutomation",
      "targets" : [
        "MailAutomation"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MailAutomationTests",
      "module_type" : "SwiftTarget",
      "name" : "MailAutomationTests",
      "path" : "Tests/MailAutomationTests",
      "sources" : [
        "FakeAppleScriptRunner.swift",
        "ISODateTests.swift",
        "MailBoundsTests.swift",
        "MailFullMessageTests.swift",
        "MailIndexFixture.swift",
        "MailIndexIntegrationTests.swift",
        "MailIndexReaderTests.swift",
        "MailIndexStoreSafetyTests.swift",
        "MailPagingTests.swift",
        "MailQueryTests.swift",
        "MailSendOutcomeTests.swift",
        "MailServiceIntegrationTests.swift",
        "MailServiceTests.swift",
        "NSAppleScriptRunnerTests.swift",
        "SpotlightMailSearchTests.swift",
        "StringHelpersTests.swift"
      ],
      "target_dependencies" : [
        "MailAutomation"
      ],
      "type" : "test"
    },
    {
      "c99name" : "MailAutomation",
      "module_type" : "SwiftTarget",
      "name" : "MailAutomation",
      "path" : "Sources/MailAutomation",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "MailAutomation"
      ],
      "sources" : [
        "AppleScriptRunner.swift",
        "EmailMessage.swift",
        "ISODate.swift",
        "MailIndexReader.swift",
        "MailQuery.swift",
        "MailService.swift",
        "MailTimeout.swift",
        "NSAppleScriptRunner.swift",
        "SpotlightMailSearch.swift",
        "StringHelpers.swift"
      ],
      "target_dependencies" : [
        "CMailSQLite"
      ],
      "type" : "library"
    },
    {
      "c99name" : "CMailSQLite",
      "module_type" : "ClangTarget",
      "name" : "CMailSQLite",
      "path" : "Sources/CMailSQLite",
      "product_memberships" : [
        "MailAutomation"
      ],
      "sources" : [
        "CMailSQLite.c"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/chrischall/swift-mail-automation/main
Repository:               chrischall/swift-mail-automation
Swift version used:       6.3
Target:                   MailAutomation
Extracting symbol information for 'MailAutomation'...
Finished extracting symbol information for 'MailAutomation'. (41.29s)
Building documentation for 'MailAutomation'...
warning: External name 'query' used to document parameter
   --> Sources/MailAutomation/MailIndexReader.swift:297:13-297:18
295 |     ///
296 |     /// - Parameters:
297 +     ///   - query: Parsed query. See ``MailQuery``.
    |             ╰─suggestion: Replace 'query' with 'mailQuery'
298 |     ///   - account: Optional account display name to scope to.
299 |     ///   - mailbox: Optional mailbox name to scope to. Matched against the
warning: 'search' doesn't exist at '/MailAutomation/MailIndexReader/unread(account:mailbox:limit:offset:)'
   --> Sources/MailAutomation/MailIndexReader.swift:324:58-324:64
322 |     }
323 |
324 +     /// Unread messages, newest-first. Same scoping as ``search``, with no
325 |     /// text predicate.
326 |     public func unread(
warning: 'sqlPredicate()' doesn't exist at '/MailAutomation/MailQuery'
  --> Sources/MailAutomation/MailQuery.swift:40:35-40:49
38 | ///
39 | /// The parsed form is disjunctive normal form: ``groups`` is an OR of
40 + /// AND-groups. Compile it with ``sqlPredicate()`` for the index backend or
41 | /// ``appleScriptPredicate()`` for the Mail.app backend.
42 | public struct MailQuery: Equatable, Sendable {
warning: 'appleScriptPredicate()' doesn't exist at '/MailAutomation/MailQuery'
  --> Sources/MailAutomation/MailQuery.swift:41:7-41:29
39 | /// The parsed form is disjunctive normal form: ``groups`` is an OR of
40 | /// AND-groups. Compile it with ``sqlPredicate()`` for the index backend or
41 + /// ``appleScriptPredicate()`` for the Mail.app backend.
42 | public struct MailQuery: Equatable, Sendable {
43 |     /// Which part of a message a term is matched against.
warning: 'getUnread(limit:account:)' doesn't exist at '/MailAutomation/MailService'
  --> Sources/MailAutomation/MailService.swift:56:9-56:34
54 | ///
55 | /// Operations:
56 + /// - ``getUnread(limit:account:)`` — read unread, optionally scoped to one
   |         ╰─suggestion: Replace 'getUnread(limit:account:)' with 'getUnread(limit:account:offset:)'
57 | ///   account (iterating all accounts is slow on Gmail-heavy setups).
58 | /// - ``search(query:limit:account:mailbox:sinceDaysAgo:forceBackend:)`` —
warning: 'search(query:limit:account:mailbox:sinceDaysAgo:forceBackend:)' doesn't exist at '/MailAutomation/MailService'
  --> Sources/MailAutomation/MailService.swift:58:9-58:71
56 | /// - ``getUnread(limit:account:)`` — read unread, optionally scoped to one
57 | ///   account (iterating all accounts is slow on Gmail-heavy setups).
58 + /// - ``search(query:limit:account:mailbox:sinceDaysAgo:forceBackend:)`` —
   |         ╰─suggestion: Replace 'search(query:limit:account:mailbox:sinceDaysAgo:forceBackend:)' with 'search(query:limit:account:mailbox:sinceDaysAgo:offset:forceBackend:)'
59 | ///   substring search, date-bounded, with a Spotlight fast path.
60 | /// - ``send(to:subject:body:cc:bcc:)`` — compose + send.
warning: Parameter 'timeouts' is missing documentation
  --> Sources/MailAutomation/MailService.swift:80:42-80:42
78 |     ///     for unscoped `search` calls. Pass `nil` to disable the fast
79 |     ///     path entirely (e.g. in sandboxed environments where `mdfind`
80 +     ///     can't read `~/Library/Mail`).
   |                                          ╰─suggestion: Document 'timeouts' parameter
81 |     public init(
82 |         runner: any AppleScriptRunner,
warning: Parameter 'index' is missing documentation
  --> Sources/MailAutomation/MailService.swift:80:42-80:42
78 |     ///     for unscoped `search` calls. Pass `nil` to disable the fast
79 |     ///     path entirely (e.g. in sandboxed environments where `mdfind`
80 +     ///     can't read `~/Library/Mail`).
   |                                          ╰─suggestion: Document 'index' parameter
81 |     public init(
82 |         runner: any AppleScriptRunner,
warning: 'NoteStoreReader' doesn't exist at '/MailAutomation/MailService/withIndexIfAvailable(runner:spotlight:timeouts:)'
   --> Sources/MailAutomation/MailService.swift:98:20-98:35
96  |     /// Opening the index requires Full Disk Access. Failure is expected and
97  |     /// non-fatal — the service falls back to Spotlight and AppleScript, the
98  +     /// same way ``NoteStoreReader`` degrades in the sibling Notes kit. The
99  |     /// error is returned rather than thrown so callers can log *why* the
100 |     /// fast path is off; a server that silently ran 2000× slower than it
warning: 'getMessageScript(id:)' doesn't exist at '/MailAutomation/MailService/detailFieldSeparator'
   --> Sources/MailAutomation/MailService.swift:698:31-698:52
696 |     // MARK: - Get full message
697 |
698 +     /// Field delimiter for ``getMessageScript(id:)`` output. ASCII record
699 |     /// separator (`U+001E`) — a full message body contains arbitrary
700 |     /// newlines and tabs, so the tab/newline scheme used by list/search
warning: 'withTimeout(seconds:operation:_:)' doesn't exist at '/MailAutomation/MailTimeouts'
  --> Sources/MailAutomation/MailTimeout.swift:11:12-11:45
9  | ///    default applies — and 60 s per event, across 28 Gmail mailboxes, is
10 | ///    a 28-minute script that no caller asked for.
11 + /// 2. **``withTimeout(seconds:operation:_:)``** around the whole call, so
   |            ╰─suggestion: Replace 'withTimeout(seconds:operation:_:)' with 'init(perEventSeconds:operationSeconds:sendSeconds:)'
12 | ///    the *caller* is freed even when the script ignores its own bound.
13 | ///    `NSAppleScript.executeAndReturnError` is a synchronous C call that
warning: 'onMainThread(_:)' doesn't exist at '/MailAutomation/NSAppleScriptRunner'
  --> Sources/MailAutomation/NSAppleScriptRunner.swift:11:31-11:47
9  |
10 | /// Production `AppleScriptRunner` backed by `NSAppleScript`, executed on
11 + /// the **main thread** via ``onMainThread(_:)``.
12 | ///
13 | /// ## Why the main thread is mandatory
warning: 'withTimeout(seconds:operation:_:)' doesn't exist at '/MailAutomation/NSAppleScriptRunner/run(source:beforeExecute:)'
  --> Sources/MailAutomation/NSAppleScriptRunner.swift:77:11-77:44
75 |     /// `MainActor.run` does not abandon a queued hop when its task is
76 |     /// cancelled, and a slow script holds the main actor for minutes. When
77 +     /// ``withTimeout(seconds:operation:_:)`` gave up on a caller, its
78 |     /// script used to run anyway once it reached the front — keeping the
79 |     /// main actor busy for no one, and timing out every call queued behind
warning: Parameter 'maxOutputBytes' is missing documentation
  --> Sources/MailAutomation/SpotlightMailSearch.swift:32:48-32:48
30 |     ///     spawn the real `/usr/bin/mdfind`. Inject a fake in tests.
31 |     ///   - log: Logger for debug tracing of generated predicates. When
32 +     ///     `nil`, a per-module logger is used.
   |                                                ╰─suggestion: Document 'maxOutputBytes' parameter
33 |     public init(
34 |         runner: Runner? = nil,
Finished building documentation for 'MailAutomation' (0.82s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/chrischall/swift-mail-automation/main
Fetching https://github.com/swiftlang/swift-docc-plugin
Updating https://github.com/apple/swift-log.git
[1/2345] Fetching swift-docc-plugin
Updated https://github.com/apple/swift-log.git (0.65s)
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.32s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.16.1 (1.90s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (2.19s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3837] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.29s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.99s)
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
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
Building for debugging...
[0/8] Write sources
[2/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version-69A768CDF2A0BEE1.txt
[6/54] Emitting module SymbolKit
[7/58] Compiling SymbolKit GenericConstraint.swift
[8/58] Compiling SymbolKit GenericParameter.swift
[9/58] Compiling SymbolKit Generics.swift
[10/58] Compiling SymbolKit Namespace.swift
[11/58] Compiling SymbolKit SourceRange.swift
[12/58] Compiling SymbolKit Metadata.swift
[13/58] Compiling SymbolKit Module.swift
[14/58] Compiling SymbolKit OperatingSystem.swift
[15/58] Compiling SymbolKit Platform.swift
[16/58] Compiling SymbolKit Names.swift
[17/58] Compiling SymbolKit SPI.swift
[18/58] Compiling SymbolKit Snippet.swift
[19/58] Compiling SymbolKit Extension.swift
[20/58] Compiling SymbolKit Symbol.swift
[21/58] Compiling SymbolKit SymbolKind.swift
[22/58] Compiling SymbolKit SymbolGraph.swift
[23/58] Compiling SymbolKit GraphCollector.swift
[24/58] Compiling SymbolKit DeclarationFragments.swift
[25/58] Compiling SymbolKit Fragment.swift
[26/58] Compiling SymbolKit FragmentKind.swift
[27/58] Compiling SymbolKit FunctionParameter.swift
[28/58] Compiling SymbolKit FunctionSignature.swift
[29/58] Compiling SymbolKit Mixin+Equals.swift
[30/58] Compiling SymbolKit Mixin+Hash.swift
[31/58] Compiling SymbolKit Mixin.swift
[32/58] Compiling SymbolKit LineList.swift
[33/58] Compiling SymbolKit Position.swift
[34/58] Compiling Snippets SnippetParser.swift
[35/58] Compiling Snippets Snippet.swift
[36/58] Compiling Snippets SnippetLanguage.swift
[37/58] Emitting module Snippets
[38/58] Compiling SymbolKit Identifier.swift
[39/58] Compiling SymbolKit KindIdentifier.swift
[40/58] Compiling SymbolKit Location.swift
[41/58] Compiling SymbolKit Mutability.swift
[42/58] Compiling SymbolKit SemanticVersion.swift
[43/58] Compiling SymbolKit AccessControl.swift
[44/58] Compiling SymbolKit Availability.swift
[45/58] Compiling SymbolKit AvailabilityItem.swift
[46/58] Compiling SymbolKit Domain.swift
[47/58] Compiling SymbolKit Relationship.swift
[48/58] Compiling SymbolKit RelationshipKind.swift
[49/58] Compiling SymbolKit SourceOrigin.swift
[50/58] Compiling SymbolKit GenericConstraints.swift
[51/58] Compiling SymbolKit Swift.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] Emitting module snippet_extract
[58/62] Compiling snippet_extract SymbolGraph+Snippet.swift
[59/62] Compiling snippet_extract SnippetBuildCommand.swift
[59/62] Write Objects.LinkFileList
[60/62] Linking snippet-extract-tool
[61/62] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.53s)
Building for debugging...
[0/1] Write swift-version-69A768CDF2A0BEE1.txt
Build of target: 'MailAutomation' complete! (0.24s)
     334
3	/Users/admin/builder/spi-builder-workspace/.docs/chrischall/swift-mail-automation/main
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/chrischall/swift-mail-automation/main
File count: 334
Doc size:   3.0MB
Preparing doc bundle ...
Using presigned URL upload - AWS credentials not required
Uploading -chrischall-swift-mail-automation-main-2d9cbd8b.zip to presigned URL
Starting upload of 710329 bytes...
Upload completed successfully
Done.