The Swift Package Index logo.Swift Package Index

Build Information

Successful build of swift-tailscale-client, reference main (6602dd), with Swift 6.1 for macOS (SPM) on 28 Sep 2026 08:57:59 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 .stats

Build Log

========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dweekly/swift-tailscale-client.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dweekly/swift-tailscale-client
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 6602ddc Re-pin upstream LocalAPI capability to 148 (#42)
Cloned https://github.com/dweekly/swift-tailscale-client.git
Revision (git rev-parse @):
6602ddc8454ec7b5221b7df0d0816fce52b0283d
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/dweekly/swift-tailscale-client.git at main
========================================
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
[6/14] Write tailscale-swift-entitlement.plist
[9/14] Write sources
[10/14] Write swift-version-2F0A5646E1D333AE.txt
[12/59] Compiling ArgumentParserToolInfo ToolInfo.swift
[13/59] Emitting module ArgumentParserToolInfo
[14/107] Emitting module TailscaleClient
[15/111] Compiling ArgumentParser InputOrigin.swift
[16/111] Compiling ArgumentParser Name.swift
[17/111] Compiling ArgumentParser Parsed.swift
[18/111] Compiling ArgumentParser ParsedValues.swift
[19/111] Compiling ArgumentParser ParserError.swift
[20/116] Emitting module ArgumentParser
[21/116] Compiling ArgumentParser ArgumentHelp.swift
[22/116] Compiling ArgumentParser ArgumentVisibility.swift
[23/116] Compiling ArgumentParser CompletionKind.swift
[24/116] Compiling ArgumentParser Errors.swift
[25/116] Compiling ArgumentParser Flag.swift
[26/116] Compiling ArgumentParser NameSpecification.swift
[27/116] Compiling ArgumentParser CommandGroup.swift
[28/116] Compiling ArgumentParser EnumerableFlag.swift
[29/116] Compiling ArgumentParser ExpressibleByArgument.swift
[30/116] Compiling ArgumentParser ParsableArguments.swift
[31/116] Compiling ArgumentParser ParsableCommand.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
[63/116] Compiling TailscaleClient StreamingResponse.swift
[64/116] Compiling TailscaleClient TailscaleTransport.swift
[65/116] Compiling TailscaleClient TransportByteBoundedQueue.swift
[66/116] Compiling TailscaleClient UnixSocketTransport.swift
[67/116] Compiling ArgumentParser InputKey.swift
[76/116] Compiling ArgumentParser UsageGenerator.swift
[77/116] Compiling ArgumentParser CollectionExtensions.swift
[78/116] Compiling ArgumentParser Foundation.swift
[79/116] Compiling ArgumentParser Mutex.swift
[80/116] Compiling ArgumentParser Platform.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)
[114/138] Compiling TailscaleClientMocks RequestRecorder.swift
[115/138] Emitting module TailscaleClientMocks
[116/138] Compiling TailscaleClientMocks MockTransport.swift
[117/138] Compiling tailscale_swift DERPMapCommand.swift
[118/138] Compiling tailscale_swift DNSCommand.swift
[119/140] Compiling tailscale_swift JSONOutput.swift
[120/140] Compiling tailscale_swift Metrics.swift
[121/140] Compiling tailscale_swift TailscaleSwift.swift
[122/140] Compiling tailscale_swift UserMetricsCommand.swift
[123/140] Compiling tailscale_swift ServicesCommand.swift
[124/140] Compiling tailscale_swift SetCommand.swift
[125/140] Compiling tailscale_swift AuthCommands.swift
[126/140] Compiling tailscale_swift CheckForwardingCommand.swift
[127/140] Emitting module tailscale_swift
[128/140] Compiling tailscale_swift Watch.swift
[129/140] Compiling tailscale_swift WhoIs.swift
[130/140] Compiling tailscale_swift Features.swift
[131/140] Compiling tailscale_swift Health.swift
[132/140] Compiling tailscale_swift Prefs.swift
[133/140] Compiling tailscale_swift ServeCommand.swift
[134/140] Compiling tailscale_swift Status.swift
[135/140] Compiling tailscale_swift SuggestExitCommand.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! (31.73s)
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.90s)
Fetched https://github.com/apple/swift-argument-parser from cache (1.90s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (5.12s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.11s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.81s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.8.2 (0.51s)
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
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.