Build Information
Successful build of swift-tailscale-client, reference v1.0.0 (d0769f), with Swift 6.4 for macOS (SPM) on 28 Sep 2026 08:57:46 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dweekly/swift-tailscale-client.git
Reference: v1.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dweekly/swift-tailscale-client
* tag v1.0.0 -> FETCH_HEAD
HEAD is now at d0769f8 Release v1.0.0: Apple-platform Tailscale LocalAPI client
Cloned https://github.com/dweekly/swift-tailscale-client.git
Revision (git rev-parse @):
d0769f8e196fb21a8e7c7fbff7458e24df7d891c
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/dweekly/swift-tailscale-client.git at v1.0.0
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/dweekly/swift-tailscale-client.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Constructing description]
[Planning deferred tasks]
[52 / 96] swift-tailscale-client_TailscaleClientTests
[55 / 96]
[57 / 98] ArgumentParserToolInfo
[61 / 102] ArgumentParserToolInfo
[68 / 103] TailscaleClient
[75 / 148]
[85 / 193]
[93 / 193]
[100 / 193]
[104 / 193]
[106 / 193]
[110 / 193]
[115 / 193]
[118 / 193]
[123 / 193]
[129 / 193]
[132 / 193]
[134 / 193]
[136 / 193]
[137 / 193]
[138 / 193]
[148 / 193] TailscaleClient
[149 / 193] ArgumentParser
[150 / 193] TailscaleClient
[153 / 193] TailscaleClient
[173 / 193] TailscaleClient
[177 / 195]
[179 / 195] TailscaleClient-product
[179 / 195] tailscale-swift-product
[187 / 209] TailscaleClientMocks
[188 / 209] tailscale-swift-product
[200 / 209] tailscale-swift-product
[202 / 209] tailscale-swift-product
[205 / 209] tailscale-swift-product
[207 / 209] tailscale-swift-product
Build complete! (10.62 sec)
Fetching https://github.com/swiftlang/swift-docc-plugin
Fetching https://github.com/apple/swift-argument-parser
[1/2345] Fetching swift-docc-plugin
[213/21293] Fetching swift-docc-plugin, swift-argument-parser
Fetched https://github.com/swiftlang/swift-docc-plugin (2.02s)
Fetched https://github.com/apple/swift-argument-parser (2.02s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (4.76s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3832] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit (1.28s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (2.05s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.8.2 (0.59s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.8.2
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
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:78:10: [1;33mwarning: [1;39m'etag' is deprecated: Use ServeConfigSnapshot.etag instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m76 |[0;0m self.allowFunnel = allowFunnel
[0;36m77 |[0;0m self.foreground = foreground
[0;36m78 |[0;0m self.etag = etag
[0;36m|[0;0m `- [1;33mwarning: [1;39m'etag' is deprecated: Use ServeConfigSnapshot.etag instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m79 |[0;0m self._unmodeledFields = unmodeledFields
[0;36m80 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:116:5: [1;33mwarning: [1;39m'etag' is deprecated: Use ServeConfigSnapshot.etag instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m114 |[0;0m foreground =
[0;36m115 |[0;0m try container.decodeIfPresent([String: ServeConfig].self, forKey: .foreground) ?? [:]
[0;36m116 |[0;0m etag = nil
[0;36m|[0;0m `- [1;33mwarning: [1;39m'etag' is deprecated: Use ServeConfigSnapshot.etag instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m117 |[0;0m
[0;36m118 |[0;0m let dynamicContainer = try decoder.container(keyedBy: AnyCodingKey.self)
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/TailscaleClient.swift:167:28: [1;33mwarning: [1;39m'withValue(_:operation:isolation:file:line:)' is deprecated: Prefer the 'nonisolated(nonsending)' overload with stricter execution on caller context semantics: withValue(_:operation:file:line:)[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m165 |[0;0m operation: () async throws -> T
[0;36m166 |[0;0m ) async rethrows -> T {
[0;36m167 |[0;0m try await $auditReason.withValue(reason, operation: operation)
[0;36m|[0;0m `- [1;33mwarning: [1;39m'withValue(_:operation:isolation:file:line:)' is deprecated: Prefer the 'nonisolated(nonsending)' overload with stricter execution on caller context semantics: withValue(_:operation:file:line:)[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m168 |[0;0m }
[0;36m169 |[0;0m
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
Build complete.
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.3.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-docc-plugin"
},
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.3.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
}
],
"manifest_display_name" : "swift-tailscale-client",
"name" : "swift-tailscale-client",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "tvos",
"version" : "16.0"
},
{
"name" : "watchos",
"version" : "9.0"
}
],
"products" : [
{
"name" : "TailscaleClient",
"targets" : [
"TailscaleClient"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "TailscaleClientMocks",
"targets" : [
"TailscaleClientMocks"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "tailscale-swift",
"targets" : [
"tailscale-swift"
],
"type" : {
"executable" : null
}
}
],
"swift_languages_versions" : [
"6"
],
"targets" : [
{
"c99name" : "tailscale_swift",
"module_type" : "SwiftTarget",
"name" : "tailscale-swift",
"path" : "Sources/tailscale-swift",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"tailscale-swift"
],
"sources" : [
"AuthCommands.swift",
"CheckForwardingCommand.swift",
"DERPMapCommand.swift",
"DNSCommand.swift",
"Features.swift",
"Health.swift",
"JSONOutput.swift",
"Metrics.swift",
"NetcheckCommand.swift",
"Ping.swift",
"Prefs.swift",
"ServeCommand.swift",
"ServicesCommand.swift",
"SetCommand.swift",
"Status.swift",
"SuggestExitCommand.swift",
"TailscaleSwift.swift",
"UserMetricsCommand.swift",
"Watch.swift",
"WhoIs.swift"
],
"target_dependencies" : [
"TailscaleClient"
],
"type" : "executable"
},
{
"c99name" : "TailscaleClientTests",
"module_type" : "SwiftTarget",
"name" : "TailscaleClientTests",
"path" : "Tests/TailscaleClientTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/TailscaleClientTests/Fixtures",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"APICompatibilityConcurrencyChallengerTests.swift",
"APICompatibilityTests.swift",
"AdversarialChallengerTests.swift",
"AdversarialConformanceChallenger2Tests.swift",
"AdversarialWireFramingChallengerTests.swift",
"AuthProfilesTests.swift",
"CLIBlackBoxTests.swift",
"ConsumerValidation/FleetAgentConfigurationTests.swift",
"ConsumerValidation/NWXConsumerMigrationTests.swift",
"ConsumerValidationChallenger2Tests.swift",
"DERPMapDecodingTests.swift",
"DNSDiagnosticsTests.swift",
"DaemonControlAPITests.swift",
"DaemonFeaturesTests.swift",
"DiscoveryChallengerTests.swift",
"DiscoveryRecoveryChallengerTests.swift",
"DiscoveryRecoveryStressChallengerTests.swift",
"DiscoveryRecoveryTests.swift",
"E2E/E2ETestSupport.swift",
"E2E/Tier1FeatureTests.swift",
"E2E/Tier2BoundaryTests.swift",
"E2E/Tier3CombinationTests.swift",
"E2E/Tier4ScenarioTests.swift",
"EdgeCoverageTests.swift",
"ErrorHandlingTests.swift",
"ExperimentalAPITests.swift",
"FaultUnixServer.swift",
"FixturePlaybackChallengerTests.swift",
"FixturePlaybackTests.swift",
"HTTPParsingTests.swift",
"HTTPWireFormatTests.swift",
"IPNBusStreamingChallengerTests.swift",
"IPNBusStreamingTests.swift",
"IPNNotifyDecodingTests.swift",
"LocalAPIDifferentialConformanceTests.swift",
"LocalAPIDiscoveryTests.swift",
"LoginLifecycleIntegrationTests.swift",
"MacDiscoveryTests.swift",
"ModelRoundTripTests.swift",
"NetcheckTests.swift",
"NetworkDiagnosticsAPITests.swift",
"NetworkInterfaceDiscoveryTests.swift",
"NewEndpointAPITests.swift",
"PeerLookupTests.swift",
"PingResultDecodingTests.swift",
"PrefsResponseDecodingTests.swift",
"PrefsWriteTests.swift",
"ReadinessRegressionTests.swift",
"RequestContractTests.swift",
"SecretRedactionTests.swift",
"ServeAPITests.swift",
"ServeConfigConcurrencyChallengerTests.swift",
"ServeConfigLosslessTests.swift",
"StableParityTests.swift",
"StatusAPITests.swift",
"StatusResponseDecodingTests.swift",
"StreamingFramingTests.swift",
"StreamingResponseChallengerTests.swift",
"StreamingTransportTests.swift",
"TailscaleClientConfigurationTests.swift",
"TailscaleClientIntegrationTests.swift",
"TailscaleClientTests.swift",
"TestSupport.swift",
"TransportCancellationChallengerTests.swift",
"URLSessionTransportTests.swift",
"UnixSocketFaultTests.swift",
"WhoIsResponseDecodingTests.swift"
],
"target_dependencies" : [
"TailscaleClient",
"TailscaleClientMocks"
],
"type" : "test"
},
{
"c99name" : "TailscaleClientMocks",
"module_type" : "SwiftTarget",
"name" : "TailscaleClientMocks",
"path" : "Sources/TailscaleClientMocks",
"product_memberships" : [
"TailscaleClientMocks"
],
"sources" : [
"MockTransport.swift",
"RequestRecorder.swift"
],
"target_dependencies" : [
"TailscaleClient"
],
"type" : "library"
},
{
"c99name" : "TailscaleClient",
"module_type" : "SwiftTarget",
"name" : "TailscaleClient",
"path" : "Sources/TailscaleClient",
"product_memberships" : [
"TailscaleClient",
"TailscaleClientMocks",
"tailscale-swift"
],
"sources" : [
"Configuration/EndpointSource.swift",
"Configuration/LocalAPIDiscovery.swift",
"Configuration/LocalAPIDiscoveryError.swift",
"Configuration/TailscaleClientConfiguration.swift",
"DaemonControlAPI.swift",
"Experimental.swift",
"Models/Certificates.swift",
"Models/DERPMap.swift",
"Models/DNSDiagnostics.swift",
"Models/DaemonControl.swift",
"Models/ExitNodeSuggestion.swift",
"Models/IPNBusEvent.swift",
"Models/IPNNotify.swift",
"Models/JSONValue.swift",
"Models/LoginProfile.swift",
"Models/MaskedPrefs.swift",
"Models/OptionalFeatures.swift",
"Models/PingResult.swift",
"Models/PrefsResponse.swift",
"Models/ServeConfig.swift",
"Models/ServeConfigSnapshot.swift",
"Models/Services.swift",
"Models/StatusQuery.swift",
"Models/StatusResponse.swift",
"Models/StreamBufferBounds.swift",
"Models/StreamRetryPolicy.swift",
"Models/WhoIsResponse.swift",
"Netcheck/Netcheck.swift",
"Netcheck/NetcheckProbe.swift",
"Netcheck/STUN.swift",
"Platform/MacClientInfo.swift",
"Platform/NetworkInterfaceDiscovery.swift",
"ProfilesAPI.swift",
"ServeAPI.swift",
"StableParityAPI.swift",
"Support/DecodingSupport.swift",
"Support/DiscoveryLog.swift",
"Support/IPNBusBoundedQueue.swift",
"Support/IPNBusStreamContext.swift",
"TailscaleClient.swift",
"Transport/ChunkedTransferDecoder.swift",
"Transport/HTTPWireFormat.swift",
"Transport/StreamingResponse.swift",
"Transport/TailscaleTransport.swift",
"Transport/TransportByteBoundedQueue.swift",
"Transport/UnixSocketTransport.swift"
],
"type" : "library"
}
],
"tools_version" : "6.1"
}
Done.