Build Information
Successful build of swift-tailscale-client, reference v1.0.0 (d0769f), with Swift 6.1 for macOS (SPM) on 28 Sep 2026 09:05:32 UTC.
Swift 6 data race errors: 0
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 .statsBuild 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.1
Building package at path: $PWD
https://github.com/dweekly/swift-tailscale-client.git
https://github.com/dweekly/swift-tailscale-client.git
{
"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"
}
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
[1/1] Compiling plugin GenerateManual
[2/2] Compiling plugin GenerateDoccReference
[3/3] Compiling plugin Swift-DocC Preview
[4/4] Compiling plugin Swift-DocC
Building for debugging...
[4/14] Write sources
[7/14] Write tailscale-swift-entitlement.plist
[8/14] Write sources
[10/14] Write swift-version-2F0A5646E1D333AE.txt
[12/59] Emitting module ArgumentParserToolInfo
[13/59] Compiling ArgumentParserToolInfo ToolInfo.swift
[14/107] Emitting module TailscaleClient
[15/111] Emitting module ArgumentParser
[16/116] Compiling TailscaleClient StreamingResponse.swift
[17/116] Compiling TailscaleClient TailscaleTransport.swift
[18/116] Compiling TailscaleClient TransportByteBoundedQueue.swift
[19/116] Compiling TailscaleClient UnixSocketTransport.swift
[20/116] Compiling ArgumentParser ParsableCommand.swift
[21/116] Compiling ArgumentParser InputOrigin.swift
[22/116] Compiling ArgumentParser Name.swift
[23/116] Compiling ArgumentParser Parsed.swift
[24/116] Compiling ArgumentParser ParsedValues.swift
[25/116] Compiling ArgumentParser ParserError.swift
[26/116] Compiling ArgumentParser ArgumentHelp.swift
[27/116] Compiling ArgumentParser ArgumentVisibility.swift
[28/116] Compiling ArgumentParser CompletionKind.swift
[29/116] Compiling ArgumentParser Errors.swift
[30/116] Compiling ArgumentParser Flag.swift
[31/116] Compiling ArgumentParser NameSpecification.swift
[32/116] Compiling ArgumentParser SequenceExtensions.swift
[33/116] Compiling ArgumentParser StringExtensions.swift
[34/116] Compiling ArgumentParser SwiftExtensions.swift
[35/116] Compiling ArgumentParser Tree.swift
[36/116] Compiling ArgumentParser AsyncCompletionsValidator.swift
[37/116] Compiling ArgumentParser CodingKeyValidator.swift
[38/116] Compiling ArgumentParser NonsenseFlagsValidator.swift
[39/116] Compiling ArgumentParser ParsableArgumentsValidation.swift
[40/116] Compiling ArgumentParser PositionalArgumentsValidator.swift
[41/116] Compiling ArgumentParser UniqueNamesValidator.swift
[42/116] Compiling ArgumentParser Option.swift
[43/116] Compiling ArgumentParser OptionGroup.swift
[44/116] Compiling ArgumentParser ParentCommand.swift
[45/116] Compiling ArgumentParser AsyncParsableCommand.swift
[46/116] Compiling ArgumentParser CommandConfiguration.swift
[47/116] Compiling ArgumentParser BashCompletionsGenerator.swift
[48/116] Compiling ArgumentParser CompletionsGenerator.swift
[49/116] Compiling ArgumentParser FishCompletionsGenerator.swift
[50/116] Compiling ArgumentParser ZshCompletionsGenerator.swift
[51/116] Compiling ArgumentParser Argument.swift
[52/116] Compiling ArgumentParser ArgumentDiscussion.swift
[53/116] Compiling ArgumentParser SplitArguments.swift
[54/116] Compiling ArgumentParser DumpHelpGenerator.swift
[55/116] Compiling ArgumentParser HelpCommand.swift
[56/116] Compiling ArgumentParser HelpGenerator.swift
[57/116] Compiling ArgumentParser MessageInfo.swift
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:78:10: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
76 | self.allowFunnel = allowFunnel
77 | self.foreground = foreground
78 | self.etag = etag
| `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
79 | self._unmodeledFields = unmodeledFields
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:116:5: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
114 | foreground =
115 | try container.decodeIfPresent([String: ServeConfig].self, forKey: .foreground) ?? [:]
116 | etag = nil
| `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
117 |
118 | let dynamicContainer = try decoder.container(keyedBy: AnyCodingKey.self)
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:78:10: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
76 | self.allowFunnel = allowFunnel
77 | self.foreground = foreground
78 | self.etag = etag
| `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
79 | self._unmodeledFields = unmodeledFields
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:116:5: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
114 | foreground =
115 | try container.decodeIfPresent([String: ServeConfig].self, forKey: .foreground) ?? [:]
116 | etag = nil
| `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
117 |
118 | let dynamicContainer = try decoder.container(keyedBy: AnyCodingKey.self)
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:78:10: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
76 | self.allowFunnel = allowFunnel
77 | self.foreground = foreground
78 | self.etag = etag
| `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
79 | self._unmodeledFields = unmodeledFields
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:116:5: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
114 | foreground =
115 | try container.decodeIfPresent([String: ServeConfig].self, forKey: .foreground) ?? [:]
116 | etag = nil
| `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
117 |
118 | let dynamicContainer = try decoder.container(keyedBy: AnyCodingKey.self)
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:78:10: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
76 | self.allowFunnel = allowFunnel
77 | self.foreground = foreground
78 | self.etag = etag
| `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
79 | self._unmodeledFields = unmodeledFields
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:116:5: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
114 | foreground =
115 | try container.decodeIfPresent([String: ServeConfig].self, forKey: .foreground) ?? [:]
116 | etag = nil
| `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
117 |
118 | let dynamicContainer = try decoder.container(keyedBy: AnyCodingKey.self)
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:78:10: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
76 | self.allowFunnel = allowFunnel
77 | self.foreground = foreground
78 | self.etag = etag
| `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
79 | self._unmodeledFields = unmodeledFields
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:116:5: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
114 | foreground =
115 | try container.decodeIfPresent([String: ServeConfig].self, forKey: .foreground) ?? [:]
116 | etag = nil
| `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead
117 |
118 | let dynamicContainer = try decoder.container(keyedBy: AnyCodingKey.self)
[89/116] Compiling ArgumentParser UsageGenerator.swift
[90/116] Compiling ArgumentParser CollectionExtensions.swift
[91/116] Compiling ArgumentParser ArgumentDefinition.swift
[92/116] Compiling ArgumentParser ArgumentSet.swift
[93/116] Compiling ArgumentParser CommandParser.swift
[94/116] Compiling ArgumentParser InputKey.swift
[100/116] Compiling ArgumentParser Foundation.swift
[101/116] Compiling ArgumentParser Mutex.swift
[102/116] Compiling ArgumentParser Platform.swift
[103/116] Compiling ArgumentParser ArgumentDecoder.swift
[114/119] Compiling TailscaleClientMocks RequestRecorder.swift
[115/138] Emitting module TailscaleClientMocks
[116/138] Compiling TailscaleClientMocks MockTransport.swift
[117/138] Emitting module tailscale_swift
[118/140] Compiling tailscale_swift JSONOutput.swift
[119/140] Compiling tailscale_swift Metrics.swift
[120/140] Compiling tailscale_swift Features.swift
[121/140] Compiling tailscale_swift Health.swift
[122/140] Compiling tailscale_swift DERPMapCommand.swift
[123/140] Compiling tailscale_swift DNSCommand.swift
[124/140] Compiling tailscale_swift AuthCommands.swift
[125/140] Compiling tailscale_swift CheckForwardingCommand.swift
[126/140] Compiling tailscale_swift Watch.swift
[127/140] Compiling tailscale_swift WhoIs.swift
[128/140] Compiling tailscale_swift TailscaleSwift.swift
[129/140] Compiling tailscale_swift UserMetricsCommand.swift
[130/140] Compiling tailscale_swift Status.swift
[131/140] Compiling tailscale_swift SuggestExitCommand.swift
[132/140] Compiling tailscale_swift Prefs.swift
[133/140] Compiling tailscale_swift ServeCommand.swift
[134/140] Compiling tailscale_swift ServicesCommand.swift
[135/140] Compiling tailscale_swift SetCommand.swift
[136/140] Compiling tailscale_swift NetcheckCommand.swift
[137/140] Compiling tailscale_swift Ping.swift
[137/140] Write Objects.LinkFileList
[138/140] Linking tailscale-swift
[139/140] Applying tailscale-swift
Build complete! (30.08s)
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Fetching https://github.com/apple/swift-argument-parser from cache
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.94s)
Fetched https://github.com/apple/swift-argument-parser from cache (1.97s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (5.06s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.04s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.70s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.8.2 (0.48s)
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/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-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
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.