Build Information
Successful build of skip, reference main (9a24b7), with Swift 6.1 for macOS (SPM) on 28 Oct 2026 07:43:28 UTC.
Swift 6 data race errors: 1
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 InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: 5.1.3
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 9a24b76 Release 1.9.20
Cloned https://github.com/skiptools/skip.git
Revision (git rev-parse @):
9a24b76b0681d8175d86911307494599e2ec47df
SUCCESS checkout https://github.com/skiptools/skip.git at main
========================================
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" : "skiptranspile",
"targets" : [
"Skip Transpile"
],
"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",
"SkipTranspile.swift"
],
"target_dependencies" : [
"skip"
],
"type" : "plugin"
},
{
"c99name" : "skip",
"module_type" : "BinaryTarget",
"name" : "skip",
"path" : "remote/archive/skip-macos.zip",
"product_memberships" : [
"skipstone",
"skiplink",
"skiptranspile",
"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" : "Skip_Transpile",
"module_type" : "PluginTarget",
"name" : "Skip Transpile",
"path" : "Plugins/SkipTranspile",
"plugin_capability" : {
"intent" : {
"description" : "Transpile the Skip modules without building them",
"type" : "custom",
"verb" : "skip-transpile"
},
"permissions" : [
{
"network_scope" : {
"none" : {
}
},
"reason" : "This command writes the transpiled output to the package's .build/plugins/outputs folder",
"type" : "writeToPackageDirectory"
}
],
"type" : "command"
},
"product_memberships" : [
"skiptranspile"
],
"sources" : [
"SkipTranspile.swift",
"SkipTranspilePlugin.swift"
],
"target_dependencies" : [
"skip"
],
"type" : "plugin"
},
{
"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.10"
}
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 Skip Transpile
[2/2] Compiling plugin Create SkipLink
[3/3] Compiling plugin skipstone
Building for debugging...
[3/6] Write sources
[5/6] Write swift-version-2F0A5646E1D333AE.txt
[7/12] Compiling SkipDrive Version.swift
[8/12] Compiling SkipDrive SourceMap.swift
[9/12] Compiling SkipDrive GradleHarness.swift
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/GradleHarness.swift:513:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[AppBuildGradleAGPIssue]' may have shared mutable state; this is an error in the Swift 6 language mode
502 | /// automatic fix performed by `skip verify --fix`, so the two never drift apart. Detection and fixes only
503 | /// consider *active* (non-commented) lines, so a commented-out reference in the project template is ignored.
504 | public struct AppBuildGradleAGPIssue {
| `- note: consider making struct 'AppBuildGradleAGPIssue' conform to the 'Sendable' protocol
505 | /// The substring whose presence on an active line of `build.gradle.kts` indicates the issue.
506 | public let trigger: String
:
511 |
512 | /// All AGP-compatibility issues that are checked for an app's `build.gradle.kts`.
513 | public static let all: [AppBuildGradleAGPIssue] = [
| |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[AppBuildGradleAGPIssue]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
514 | // AGP 9 no longer ships the default proguard-android.txt that earlier SkipProject defaults referenced
515 | // in the line: proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
[10/12] Emitting module SkipDrive
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/GradleHarness.swift:513:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[AppBuildGradleAGPIssue]' may have shared mutable state; this is an error in the Swift 6 language mode
502 | /// automatic fix performed by `skip verify --fix`, so the two never drift apart. Detection and fixes only
503 | /// consider *active* (non-commented) lines, so a commented-out reference in the project template is ignored.
504 | public struct AppBuildGradleAGPIssue {
| `- note: consider making struct 'AppBuildGradleAGPIssue' conform to the 'Sendable' protocol
505 | /// The substring whose presence on an active line of `build.gradle.kts` indicates the issue.
506 | public let trigger: String
:
511 |
512 | /// All AGP-compatibility issues that are checked for an app's `build.gradle.kts`.
513 | public static let all: [AppBuildGradleAGPIssue] = [
| |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[AppBuildGradleAGPIssue]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
514 | // AGP 9 no longer ships the default proguard-android.txt that earlier SkipProject defaults referenced
515 | // in the line: proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
[11/12] Compiling SkipDrive GradleDriver.swift
[12/12] Compiling SkipDrive ToolSupport.swift
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1072: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
1070 | group.enter()
1071 | let stdoutThread = Thread { [weak self] in
1072 | 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'
1073 | pendingLock.withLock {
1074 | if let stderrResult = pending.value {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1072: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
1070 | group.enter()
1071 | let stdoutThread = Thread { [weak self] in
1072 | 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'
1073 | pendingLock.withLock {
1074 | if let stderrResult = pending.value {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1101: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
1099 | group.enter()
1100 | stderrThread = Thread { [weak self] in
1101 | 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'
1102 | pendingLock.withLock {
1103 | if let stdoutResult = pending.value {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1101: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
1099 | group.enter()
1100 | stderrThread = Thread { [weak self] in
1101 | 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'
1102 | pendingLock.withLock {
1103 | if let stdoutResult = pending.value {
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1227:36: warning: capture of 'completion' with non-sendable type '(Result<ProcessResult, any Error>) -> Void' in a '@Sendable' closure
1225 | self.state = .complete(executionResult)
1226 | self.completionQueue.async {
1227 | 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'
1228 | }
1229 | }
/Users/admin/builder/spi-builder-workspace/Sources/SkipDrive/ToolSupport.swift:1410:17: warning: capture of 'completion' with non-sendable type '(Result<ProcessResult, any Error>) -> Void' in a '@Sendable' closure
1408 | } catch {
1409 | completionQueue.async {
1410 | 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'
1411 | }
1412 | }
[13/14] Emitting module SkipTest
[14/14] Compiling SkipTest XCGradleHarness.swift
Build complete! (19.62s)
Downloading binary artifact https://github.com/skiptools/skip/releases/download/1.9.20/skip-macos.zip
[16375/17611391] Downloading https://github.com/skiptools/skip/releases/download/1.9.20/skip-macos.zip
Downloaded https://github.com/skiptools/skip/releases/download/1.9.20/skip-macos.zip (1.54s)
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" : "skiptranspile",
"targets" : [
"Skip Transpile"
],
"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",
"SkipTranspile.swift"
],
"target_dependencies" : [
"skip"
],
"type" : "plugin"
},
{
"c99name" : "skip",
"module_type" : "BinaryTarget",
"name" : "skip",
"path" : "remote/archive/skip-macos.zip",
"product_memberships" : [
"skipstone",
"skiplink",
"skiptranspile",
"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" : "Skip_Transpile",
"module_type" : "PluginTarget",
"name" : "Skip Transpile",
"path" : "Plugins/SkipTranspile",
"plugin_capability" : {
"intent" : {
"description" : "Transpile the Skip modules without building them",
"type" : "custom",
"verb" : "skip-transpile"
},
"permissions" : [
{
"network_scope" : {
"none" : {
}
},
"reason" : "This command writes the transpiled output to the package's .build/plugins/outputs folder",
"type" : "writeToPackageDirectory"
}
],
"type" : "command"
},
"product_memberships" : [
"skiptranspile"
],
"sources" : [
"SkipTranspile.swift",
"SkipTranspilePlugin.swift"
],
"target_dependencies" : [
"skip"
],
"type" : "plugin"
},
{
"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.10"
}
Done.