The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of skip, reference main (0032ff), with Swift 6.1 for macOS (SPM) on 9 Sep 2025 21:36:48 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.67.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/skiptools/skip.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/skiptools/skip
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 0032fff Update test cases to acknowledge new app_privacy_details.json metadata
Cloned https://github.com/skiptools/skip.git
Revision (git rev-parse @):
0032fff8d58889143fadd0ecbc4c543fe292524f
SUCCESS checkout https://github.com/skiptools/skip.git at main
Downloading binary artifact https://source.skip.tools/skip/releases/download/1.6.17/skip.zip
[16375/16182169] Downloading https://source.skip.tools/skip/releases/download/1.6.17/skip.zip
Downloaded https://source.skip.tools/skip/releases/download/1.6.17/skip.zip (2.09s)
========================================
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",
  "dependencies": [
    {
      "identity": "skip",
      "name": "skip",
      "url": "https://github.com/skiptools/skip.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/skip",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/skiptools/skip.git
[1/8322] Fetching skip
Fetched https://github.com/skiptools/skip.git from cache (1.52s)
Creating working copy for https://github.com/skiptools/skip.git
Working copy of https://github.com/skiptools/skip.git resolved at main (0032fff)
Fetching binary artifact https://source.skip.tools/skip/releases/download/1.6.17/skip.zip from cache
Fetched https://source.skip.tools/skip/releases/download/1.6.17/skip.zip from cache (0.77s)
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/skiptools/skip.git
https://github.com/skiptools/skip.git
{
  "default_localization" : "en",
  "dependencies" : [
  ],
  "manifest_display_name" : "skip",
  "name" : "skip",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "16.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0"
    },
    {
      "name" : "watchos",
      "version" : "9.0"
    },
    {
      "name" : "maccatalyst",
      "version" : "16.0"
    }
  ],
  "products" : [
    {
      "name" : "skipstone",
      "targets" : [
        "skipstone"
      ],
      "type" : {
        "plugin" : null
      }
    },
    {
      "name" : "skiplink",
      "targets" : [
        "Create SkipLink"
      ],
      "type" : {
        "plugin" : null
      }
    },
    {
      "name" : "SkipDrive",
      "targets" : [
        "SkipDrive"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "SkipTest",
      "targets" : [
        "SkipTest"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "skipstone",
      "module_type" : "PluginTarget",
      "name" : "skipstone",
      "path" : "Plugins/SkipPlugin",
      "plugin_capability" : {
        "type" : "buildTool"
      },
      "product_memberships" : [
        "skipstone",
        "SkipDrive",
        "SkipTest"
      ],
      "sources" : [
        "SkipPlugin.swift"
      ],
      "target_dependencies" : [
        "skip"
      ],
      "type" : "plugin"
    },
    {
      "c99name" : "skip",
      "module_type" : "BinaryTarget",
      "name" : "skip",
      "path" : "remote/archive/skip.zip",
      "product_memberships" : [
        "skipstone",
        "skiplink",
        "SkipDrive",
        "SkipTest"
      ],
      "sources" : [
      ],
      "type" : "binary"
    },
    {
      "c99name" : "SkipTestTests",
      "module_type" : "SwiftTarget",
      "name" : "SkipTestTests",
      "path" : "Tests/SkipTestTests",
      "sources" : [
        "GradleDriverTests.swift"
      ],
      "target_dependencies" : [
        "SkipTest"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SkipTest",
      "module_type" : "SwiftTarget",
      "name" : "SkipTest",
      "path" : "Sources/SkipTest",
      "product_memberships" : [
        "SkipTest"
      ],
      "sources" : [
        "XCGradleHarness.swift"
      ],
      "target_dependencies" : [
        "SkipDrive"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SkipDriveTests",
      "module_type" : "SwiftTarget",
      "name" : "SkipDriveTests",
      "path" : "Tests/SkipDriveTests",
      "sources" : [
        "SkipDriveTests.swift"
      ],
      "target_dependencies" : [
        "SkipDrive"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SkipDrive",
      "module_type" : "SwiftTarget",
      "name" : "SkipDrive",
      "path" : "Sources/SkipDrive",
      "product_memberships" : [
        "SkipDrive",
        "SkipTest"
      ],
      "sources" : [
        "GradleDriver.swift",
        "GradleHarness.swift",
        "SourceMap.swift",
        "ToolSupport.swift",
        "Version.swift"
      ],
      "target_dependencies" : [
        "skipstone",
        "skip"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Create_SkipLink",
      "module_type" : "PluginTarget",
      "name" : "Create SkipLink",
      "path" : "Plugins/SkipLink",
      "plugin_capability" : {
        "intent" : {
          "description" : "Create local links to transpiled output",
          "type" : "custom",
          "verb" : "SkipLink"
        },
        "permissions" : [
          {
            "network_scope" : {
              "none" : {
              }
            },
            "reason" : "This command will create local links to the skipstone output for the specified package(s), enabling access to the transpiled Kotlin",
            "type" : "writeToPackageDirectory"
          }
        ],
        "type" : "command"
      },
      "product_memberships" : [
        "skiplink"
      ],
      "sources" : [
        "SkipLinkPlugin.swift"
      ],
      "target_dependencies" : [
        "skip"
      ],
      "type" : "plugin"
    }
  ],
  "tools_version" : "5.9"
}
error: 'spi-builder-workspace': executable product 'skip' expects target 'skip' to be executable; an executable target requires a 'main.swift' file
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
[1/1] Compiling plugin Create SkipLink
[2/2] Compiling plugin skipstone
Building for debugging...
[2/5] Write sources
[4/5] Write swift-version-2F0A5646E1D333AE.txt
[6/11] Compiling SkipDrive SourceMap.swift
[7/11] Compiling SkipDrive GradleHarness.swift
[8/11] Compiling SkipDrive GradleDriver.swift
[9/11] Compiling SkipDrive Version.swift
[10/11] Emitting module SkipDrive
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:536:27: warning: static property 'collect' is not concurrency-safe because non-'Sendable' type 'Process.OutputRedirection' may have shared mutable state; this is an error in the Swift 6 language mode
 523 |     }
 524 |
 525 |     public enum OutputRedirection {
     |                 `- note: consider making enum 'OutputRedirection' conform to the 'Sendable' protocol
 526 |         /// Do not redirect the output
 527 |         case none
     :
 534 |
 535 |         /// Default collect OutputRedirection that defaults to not redirect stderr. Provided for API compatibility.
 536 |         public static let collect: OutputRedirection = .collect(redirectStderr: false)
     |                           |- warning: static property 'collect' is not concurrency-safe because non-'Sendable' type 'Process.OutputRedirection' may have shared mutable state; this is an error in the Swift 6 language mode
     |                           |- note: add '@MainActor' to make static property 'collect' part of global actor 'MainActor'
     |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 537 |
 538 |         /// Default stream OutputRedirection that defaults to not redirect stderr. Provided for API compatibility.
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:595:24: warning: static property '_loggingHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 593 |     public typealias LoggingHandler = (String) -> Void
 594 |
 595 |     private static var _loggingHandler: LoggingHandler?
     |                        |- warning: static property '_loggingHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert '_loggingHandler' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: add '@MainActor' to make static property '_loggingHandler' part of global actor 'MainActor'
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 596 |     private static let loggingHandlerLock = NSLock()
 597 |
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:711:24: warning: static property 'validatedExecutablesMap' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 709 |     /// Key: Executable name or path.
 710 |     /// Value: Path to the executable, if found.
 711 |     private static var validatedExecutablesMap = [String: URL?]()
     |                        |- warning: static property 'validatedExecutablesMap' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'validatedExecutablesMap' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: add '@MainActor' to make static property 'validatedExecutablesMap' part of global actor 'MainActor'
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 712 |     private static let validatedExecutablesMapLock = NSLock()
 713 |
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:2772:12: warning: var 'stdoutStream' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
2770 |
2771 | /// Public stdout stream instance.
2772 | public var stdoutStream: ThreadSafeOutputByteStream = try! ThreadSafeOutputByteStream(LocalFileOutputByteStream(
     |            |- warning: var 'stdoutStream' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |            |- note: convert 'stdoutStream' to a 'let' constant to make 'Sendable' shared state immutable
     |            |- note: add '@MainActor' to make var 'stdoutStream' part of global actor 'MainActor'
     |            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
2773 |     filePointer: stdout,
2774 |     closeOnDeinit: false))
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:2777:12: warning: var 'stderrStream' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
2775 |
2776 | /// Public stderr stream instance.
2777 | public var stderrStream: ThreadSafeOutputByteStream = try! ThreadSafeOutputByteStream(LocalFileOutputByteStream(
     |            |- warning: var 'stderrStream' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |            |- note: convert 'stderrStream' to a 'let' constant to make 'Sendable' shared state immutable
     |            |- note: add '@MainActor' to make var 'stderrStream' part of global actor 'MainActor'
     |            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
2778 |     filePointer: stderr,
2779 |     closeOnDeinit: false))
[11/11] Compiling SkipDrive ToolSupport.swift
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:536:27: warning: static property 'collect' is not concurrency-safe because non-'Sendable' type 'Process.OutputRedirection' may have shared mutable state; this is an error in the Swift 6 language mode
 523 |     }
 524 |
 525 |     public enum OutputRedirection {
     |                 `- note: consider making enum 'OutputRedirection' conform to the 'Sendable' protocol
 526 |         /// Do not redirect the output
 527 |         case none
     :
 534 |
 535 |         /// Default collect OutputRedirection that defaults to not redirect stderr. Provided for API compatibility.
 536 |         public static let collect: OutputRedirection = .collect(redirectStderr: false)
     |                           |- warning: static property 'collect' is not concurrency-safe because non-'Sendable' type 'Process.OutputRedirection' may have shared mutable state; this is an error in the Swift 6 language mode
     |                           |- note: add '@MainActor' to make static property 'collect' part of global actor 'MainActor'
     |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 537 |
 538 |         /// Default stream OutputRedirection that defaults to not redirect stderr. Provided for API compatibility.
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:595:24: warning: static property '_loggingHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 593 |     public typealias LoggingHandler = (String) -> Void
 594 |
 595 |     private static var _loggingHandler: LoggingHandler?
     |                        |- warning: static property '_loggingHandler' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert '_loggingHandler' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: add '@MainActor' to make static property '_loggingHandler' part of global actor 'MainActor'
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 596 |     private static let loggingHandlerLock = NSLock()
 597 |
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:711:24: warning: static property 'validatedExecutablesMap' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 709 |     /// Key: Executable name or path.
 710 |     /// Value: Path to the executable, if found.
 711 |     private static var validatedExecutablesMap = [String: URL?]()
     |                        |- warning: static property 'validatedExecutablesMap' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                        |- note: convert 'validatedExecutablesMap' to a 'let' constant to make 'Sendable' shared state immutable
     |                        |- note: add '@MainActor' to make static property 'validatedExecutablesMap' part of global actor 'MainActor'
     |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 712 |     private static let validatedExecutablesMapLock = NSLock()
 713 |
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:2772:12: warning: var 'stdoutStream' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
2770 |
2771 | /// Public stdout stream instance.
2772 | public var stdoutStream: ThreadSafeOutputByteStream = try! ThreadSafeOutputByteStream(LocalFileOutputByteStream(
     |            |- warning: var 'stdoutStream' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |            |- note: convert 'stdoutStream' to a 'let' constant to make 'Sendable' shared state immutable
     |            |- note: add '@MainActor' to make var 'stdoutStream' part of global actor 'MainActor'
     |            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
2773 |     filePointer: stdout,
2774 |     closeOnDeinit: false))
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:2777:12: warning: var 'stderrStream' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
2775 |
2776 | /// Public stderr stream instance.
2777 | public var stderrStream: ThreadSafeOutputByteStream = try! ThreadSafeOutputByteStream(LocalFileOutputByteStream(
     |            |- warning: var 'stderrStream' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |            |- note: convert 'stderrStream' to a 'let' constant to make 'Sendable' shared state immutable
     |            |- note: add '@MainActor' to make var 'stderrStream' part of global actor 'MainActor'
     |            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
2778 |     filePointer: stderr,
2779 |     closeOnDeinit: false))
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1071:90: warning: capture of 'outputClosures' with non-sendable type '(stdoutClosure: Process.OutputClosure, stderrClosure: Process.OutputClosure)?' (aka 'Optional<(stdoutClosure: (Array<UInt8>) -> (), stderrClosure: (Array<UInt8>) -> ())>') in a '@Sendable' closure
1069 |             group.enter()
1070 |             let stdoutThread = Thread { [weak self] in
1071 |                 if let readResult = self?.readOutput(onFD: outputPipe[0], outputClosure: outputClosures?.stdoutClosure) {
     |                                                                                          |- warning: capture of 'outputClosures' with non-sendable type '(stdoutClosure: Process.OutputClosure, stderrClosure: Process.OutputClosure)?' (aka 'Optional<(stdoutClosure: (Array<UInt8>) -> (), stderrClosure: (Array<UInt8>) -> ())>') in a '@Sendable' closure
     |                                                                                          `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1072 |                     pendingLock.withLock {
1073 |                         if let stderrResult = pending {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1071:90: warning: capture of 'outputClosures' with non-sendable type '(stdoutClosure: Process.OutputClosure, stderrClosure: Process.OutputClosure)?' (aka 'Optional<(stdoutClosure: (Array<UInt8>) -> (), stderrClosure: (Array<UInt8>) -> ())>') in a '@Sendable' closure
1069 |             group.enter()
1070 |             let stdoutThread = Thread { [weak self] in
1071 |                 if let readResult = self?.readOutput(onFD: outputPipe[0], outputClosure: outputClosures?.stdoutClosure) {
     |                                                                                          |- warning: capture of 'outputClosures' with non-sendable type '(stdoutClosure: Process.OutputClosure, stderrClosure: Process.OutputClosure)?' (aka 'Optional<(stdoutClosure: (Array<UInt8>) -> (), stderrClosure: (Array<UInt8>) -> ())>') in a '@Sendable' closure
     |                                                                                          `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1072 |                     pendingLock.withLock {
1073 |                         if let stderrResult = pending {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1071:60: warning: reference to captured var 'outputPipe' in concurrently-executing code
1069 |             group.enter()
1070 |             let stdoutThread = Thread { [weak self] in
1071 |                 if let readResult = self?.readOutput(onFD: outputPipe[0], outputClosure: outputClosures?.stdoutClosure) {
     |                                                            `- warning: reference to captured var 'outputPipe' in concurrently-executing code
1072 |                     pendingLock.withLock {
1073 |                         if let stderrResult = pending {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1073:47: warning: reference to captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1071 |                 if let readResult = self?.readOutput(onFD: outputPipe[0], outputClosure: outputClosures?.stdoutClosure) {
1072 |                     pendingLock.withLock {
1073 |                         if let stderrResult = pending {
     |                                               `- warning: reference to captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1074 |                             self?.stateLock.withLock {
1075 |                                 self?.state = .outputReady(stdout: readResult, stderr: stderrResult)
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1078:29: warning: mutation of captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1076 |                             }
1077 |                         } else  {
1078 |                             pending = readResult
     |                             `- warning: mutation of captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1079 |                         }
1080 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1082:70: warning: reference to captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1080 |                     }
1081 |                     group.leave()
1082 |                 } else if let stderrResult = (pendingLock.withLock { pending }) {
     |                                                                      `- warning: reference to captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1083 |                     // TODO: this is more of an error
1084 |                     self?.stateLock.withLock {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1100:94: warning: capture of 'outputClosures' with non-sendable type '(stdoutClosure: Process.OutputClosure, stderrClosure: Process.OutputClosure)?' (aka 'Optional<(stdoutClosure: (Array<UInt8>) -> (), stderrClosure: (Array<UInt8>) -> ())>') in a '@Sendable' closure
1098 |                 group.enter()
1099 |                 stderrThread = Thread { [weak self] in
1100 |                     if let readResult = self?.readOutput(onFD: stderrPipe[0], outputClosure: outputClosures?.stderrClosure) {
     |                                                                                              |- warning: capture of 'outputClosures' with non-sendable type '(stdoutClosure: Process.OutputClosure, stderrClosure: Process.OutputClosure)?' (aka 'Optional<(stdoutClosure: (Array<UInt8>) -> (), stderrClosure: (Array<UInt8>) -> ())>') in a '@Sendable' closure
     |                                                                                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 |                         pendingLock.withLock {
1102 |                             if let stdoutResult = pending {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1100:94: warning: capture of 'outputClosures' with non-sendable type '(stdoutClosure: Process.OutputClosure, stderrClosure: Process.OutputClosure)?' (aka 'Optional<(stdoutClosure: (Array<UInt8>) -> (), stderrClosure: (Array<UInt8>) -> ())>') in a '@Sendable' closure
1098 |                 group.enter()
1099 |                 stderrThread = Thread { [weak self] in
1100 |                     if let readResult = self?.readOutput(onFD: stderrPipe[0], outputClosure: outputClosures?.stderrClosure) {
     |                                                                                              |- warning: capture of 'outputClosures' with non-sendable type '(stdoutClosure: Process.OutputClosure, stderrClosure: Process.OutputClosure)?' (aka 'Optional<(stdoutClosure: (Array<UInt8>) -> (), stderrClosure: (Array<UInt8>) -> ())>') in a '@Sendable' closure
     |                                                                                              `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 |                         pendingLock.withLock {
1102 |                             if let stdoutResult = pending {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1100:64: warning: reference to captured var 'stderrPipe' in concurrently-executing code
1098 |                 group.enter()
1099 |                 stderrThread = Thread { [weak self] in
1100 |                     if let readResult = self?.readOutput(onFD: stderrPipe[0], outputClosure: outputClosures?.stderrClosure) {
     |                                                                `- warning: reference to captured var 'stderrPipe' in concurrently-executing code
1101 |                         pendingLock.withLock {
1102 |                             if let stdoutResult = pending {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1102:51: warning: reference to captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1100 |                     if let readResult = self?.readOutput(onFD: stderrPipe[0], outputClosure: outputClosures?.stderrClosure) {
1101 |                         pendingLock.withLock {
1102 |                             if let stdoutResult = pending {
     |                                                   `- warning: reference to captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1103 |                                 self?.stateLock.withLock {
1104 |                                     self?.state = .outputReady(stdout: stdoutResult, stderr: readResult)
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1107:33: warning: mutation of captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1105 |                                 }
1106 |                             } else {
1107 |                                 pending = readResult
     |                                 `- warning: mutation of captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1108 |                             }
1109 |                         }
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1111:74: warning: reference to captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1109 |                         }
1110 |                         group.leave()
1111 |                     } else if let stdoutResult = (pendingLock.withLock { pending }) {
     |                                                                          `- warning: reference to captured var 'pending' in concurrently-executing code; this is an error in the Swift 6 language mode
1112 |                         // TODO: this is more of an error
1113 |                         self?.stateLock.withLock {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1226:36: warning: capture of 'completion' with non-sendable type '(Result<ProcessResult, any Error>) -> Void' in a '@Sendable' closure
1224 |             self.state = .complete(executionResult)
1225 |             self.completionQueue.async {
1226 |                 self.waitUntilExit(completion)
     |                                    |- warning: capture of 'completion' with non-sendable type '(Result<ProcessResult, any Error>) -> Void' in a '@Sendable' closure
     |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1227 |             }
1228 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1409:17: warning: capture of 'completion' with non-sendable type '(Result<ProcessResult, any Error>) -> Void' in a '@Sendable' closure
1407 |         } catch {
1408 |             completionQueue.async {
1409 |                 completion(.failure(error))
     |                 |- warning: capture of 'completion' with non-sendable type '(Result<ProcessResult, any Error>) -> Void' in a '@Sendable' closure
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1410 |             }
1411 |         }
[12/13] Emitting module SkipTest
[13/13] Compiling SkipTest XCGradleHarness.swift
Build complete! (15.31s)
Build complete.
{
  "default_localization" : "en",
  "dependencies" : [
  ],
  "manifest_display_name" : "skip",
  "name" : "skip",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "16.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0"
    },
    {
      "name" : "watchos",
      "version" : "9.0"
    },
    {
      "name" : "maccatalyst",
      "version" : "16.0"
    }
  ],
  "products" : [
    {
      "name" : "skipstone",
      "targets" : [
        "skipstone"
      ],
      "type" : {
        "plugin" : null
      }
    },
    {
      "name" : "skiplink",
      "targets" : [
        "Create SkipLink"
      ],
      "type" : {
        "plugin" : null
      }
    },
    {
      "name" : "SkipDrive",
      "targets" : [
        "SkipDrive"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "SkipTest",
      "targets" : [
        "SkipTest"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "skipstone",
      "module_type" : "PluginTarget",
      "name" : "skipstone",
      "path" : "Plugins/SkipPlugin",
      "plugin_capability" : {
        "type" : "buildTool"
      },
      "product_memberships" : [
        "skipstone",
        "SkipDrive",
        "SkipTest"
      ],
      "sources" : [
        "SkipPlugin.swift"
      ],
      "target_dependencies" : [
        "skip"
      ],
      "type" : "plugin"
    },
    {
      "c99name" : "skip",
      "module_type" : "BinaryTarget",
      "name" : "skip",
      "path" : "remote/archive/skip.zip",
      "product_memberships" : [
        "skipstone",
        "skiplink",
        "SkipDrive",
        "SkipTest"
      ],
      "sources" : [
      ],
      "type" : "binary"
    },
    {
      "c99name" : "SkipTestTests",
      "module_type" : "SwiftTarget",
      "name" : "SkipTestTests",
      "path" : "Tests/SkipTestTests",
      "sources" : [
        "GradleDriverTests.swift"
      ],
      "target_dependencies" : [
        "SkipTest"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SkipTest",
      "module_type" : "SwiftTarget",
      "name" : "SkipTest",
      "path" : "Sources/SkipTest",
      "product_memberships" : [
        "SkipTest"
      ],
      "sources" : [
        "XCGradleHarness.swift"
      ],
      "target_dependencies" : [
        "SkipDrive"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SkipDriveTests",
      "module_type" : "SwiftTarget",
      "name" : "SkipDriveTests",
      "path" : "Tests/SkipDriveTests",
      "sources" : [
        "SkipDriveTests.swift"
      ],
      "target_dependencies" : [
        "SkipDrive"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SkipDrive",
      "module_type" : "SwiftTarget",
      "name" : "SkipDrive",
      "path" : "Sources/SkipDrive",
      "product_memberships" : [
        "SkipDrive",
        "SkipTest"
      ],
      "sources" : [
        "GradleDriver.swift",
        "GradleHarness.swift",
        "SourceMap.swift",
        "ToolSupport.swift",
        "Version.swift"
      ],
      "target_dependencies" : [
        "skipstone",
        "skip"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Create_SkipLink",
      "module_type" : "PluginTarget",
      "name" : "Create SkipLink",
      "path" : "Plugins/SkipLink",
      "plugin_capability" : {
        "intent" : {
          "description" : "Create local links to transpiled output",
          "type" : "custom",
          "verb" : "SkipLink"
        },
        "permissions" : [
          {
            "network_scope" : {
              "none" : {
              }
            },
            "reason" : "This command will create local links to the skipstone output for the specified package(s), enabling access to the transpiled Kotlin",
            "type" : "writeToPackageDirectory"
          }
        ],
        "type" : "command"
      },
      "product_memberships" : [
        "skiplink"
      ],
      "sources" : [
        "SkipLinkPlugin.swift"
      ],
      "target_dependencies" : [
        "skip"
      ],
      "type" : "plugin"
    }
  ],
  "tools_version" : "5.9"
}
error: 'spi-builder-workspace': executable product 'skip' expects target 'skip' to be executable; an executable target requires a 'main.swift' file
Done.