The Swift Package Index logo.Swift Package Index

Build Information

Successful build of swift-tailscale-client, reference v1.0.0 (d0769f), with Swift 6.2 for macOS (SPM) on 28 Sep 2026 08:57:59 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64

Build 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.2
Building package at path:  $PWD
https://github.com/dweekly/swift-tailscale-client.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64
[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
[8/14] Write sources
[10/14] Write swift-version--3CB7CFEC50E0D141.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] Compiling ArgumentParser ArgumentHelp.swift
[21/116] Compiling ArgumentParser ArgumentVisibility.swift
[22/116] Compiling ArgumentParser CompletionKind.swift
[23/116] Compiling ArgumentParser Errors.swift
[24/116] Compiling ArgumentParser Flag.swift
[25/116] Compiling ArgumentParser NameSpecification.swift
[26/116] Compiling ArgumentParser SequenceExtensions.swift
[27/116] Compiling ArgumentParser StringExtensions.swift
[28/116] Compiling ArgumentParser SwiftExtensions.swift
[29/116] Compiling ArgumentParser Tree.swift
[30/116] Compiling ArgumentParser AsyncCompletionsValidator.swift
[31/116] Emitting module ArgumentParser
[32/116] Compiling TailscaleClient StreamingResponse.swift
[33/116] Compiling TailscaleClient TailscaleTransport.swift
[34/116] Compiling TailscaleClient TransportByteBoundedQueue.swift
[35/116] Compiling TailscaleClient UnixSocketTransport.swift
[36/116] Compiling ArgumentParser ParsableCommand.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 SplitArguments.swift
[43/116] Compiling ArgumentParser DumpHelpGenerator.swift
[44/116] Compiling ArgumentParser HelpCommand.swift
[45/116] Compiling ArgumentParser HelpGenerator.swift
[46/116] Compiling ArgumentParser MessageInfo.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
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:78:10: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
 76 |     self.allowFunnel = allowFunnel
 77 |     self.foreground = foreground
 78 |     self.etag = etag
    |          `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
 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 [#DeprecatedDeclaration]
114 |     foreground =
115 |       try container.decodeIfPresent([String: ServeConfig].self, forKey: .foreground) ?? [:]
116 |     etag = nil
    |     `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
117 |
118 |     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/Models/ServeConfig.swift:78:10: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
 76 |     self.allowFunnel = allowFunnel
 77 |     self.foreground = foreground
 78 |     self.etag = etag
    |          `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
 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 [#DeprecatedDeclaration]
114 |     foreground =
115 |       try container.decodeIfPresent([String: ServeConfig].self, forKey: .foreground) ?? [:]
116 |     etag = nil
    |     `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
117 |
118 |     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/Models/ServeConfig.swift:78:10: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
 76 |     self.allowFunnel = allowFunnel
 77 |     self.foreground = foreground
 78 |     self.etag = etag
    |          `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
 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 [#DeprecatedDeclaration]
114 |     foreground =
115 |       try container.decodeIfPresent([String: ServeConfig].self, forKey: .foreground) ?? [:]
116 |     etag = nil
    |     `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
117 |
118 |     let dynamicContainer = try decoder.container(keyedBy: AnyCodingKey.self)
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[71/116] Compiling ArgumentParser Option.swift
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:78:10: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
 76 |     self.allowFunnel = allowFunnel
 77 |     self.foreground = foreground
 78 |     self.etag = etag
    |          `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
 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 [#DeprecatedDeclaration]
114 |     foreground =
115 |       try container.decodeIfPresent([String: ServeConfig].self, forKey: .foreground) ?? [:]
116 |     etag = nil
    |     `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
117 |
118 |     let dynamicContainer = try decoder.container(keyedBy: AnyCodingKey.self)
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[72/116] Compiling ArgumentParser OptionGroup.swift
/Users/admin/builder/spi-builder-workspace/Sources/TailscaleClient/Models/ServeConfig.swift:78:10: warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
 76 |     self.allowFunnel = allowFunnel
 77 |     self.foreground = foreground
 78 |     self.etag = etag
    |          `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
 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 [#DeprecatedDeclaration]
114 |     foreground =
115 |       try container.decodeIfPresent([String: ServeConfig].self, forKey: .foreground) ?? [:]
116 |     etag = nil
    |     `- warning: 'etag' is deprecated: Use ServeConfigSnapshot.etag instead [#DeprecatedDeclaration]
117 |
118 |     let dynamicContainer = try decoder.container(keyedBy: AnyCodingKey.self)
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[73/116] Compiling ArgumentParser ParentCommand.swift
[74/116] Compiling ArgumentParser AsyncParsableCommand.swift
[75/116] Compiling ArgumentParser CommandConfiguration.swift
[76/116] Compiling ArgumentParser ArgumentDecoder.swift
[77/116] Compiling ArgumentParser ArgumentDefinition.swift
[80/116] Compiling ArgumentParser ArgumentSet.swift
[81/116] Compiling ArgumentParser CommandParser.swift
[82/116] Compiling ArgumentParser InputKey.swift
[88/116] Compiling ArgumentParser UsageGenerator.swift
[89/116] Compiling ArgumentParser CollectionExtensions.swift
[90/116] Compiling ArgumentParser Foundation.swift
[91/116] Compiling ArgumentParser Mutex.swift
[92/116] Compiling ArgumentParser Platform.swift
[114/138] Compiling TailscaleClientMocks MockTransport.swift
[115/138] Compiling TailscaleClientMocks RequestRecorder.swift
[116/138] Emitting module TailscaleClientMocks
[117/138] Compiling tailscale_swift TailscaleSwift.swift
[118/138] Compiling tailscale_swift UserMetricsCommand.swift
[119/140] Compiling tailscale_swift JSONOutput.swift
[120/140] Compiling tailscale_swift Metrics.swift
[121/140] Compiling tailscale_swift Features.swift
[122/140] Compiling tailscale_swift Health.swift
[123/140] Compiling tailscale_swift Status.swift
[124/140] Compiling tailscale_swift SuggestExitCommand.swift
[125/140] Compiling tailscale_swift ServicesCommand.swift
[126/140] Compiling tailscale_swift SetCommand.swift
[127/140] Compiling tailscale_swift Watch.swift
[128/140] Compiling tailscale_swift WhoIs.swift
[129/140] Compiling tailscale_swift DERPMapCommand.swift
[130/140] Compiling tailscale_swift DNSCommand.swift
[131/140] Compiling tailscale_swift AuthCommands.swift
[132/140] Compiling tailscale_swift CheckForwardingCommand.swift
[133/140] Compiling tailscale_swift Prefs.swift
[134/140] Compiling tailscale_swift ServeCommand.swift
[135/140] Emitting module tailscale_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/apple/swift-argument-parser
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2345] Fetching swift-docc-plugin
[236/21293] Fetching swift-docc-plugin, swift-argument-parser
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (2.08s)
Fetched https://github.com/apple/swift-argument-parser from cache (2.08s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (4.92s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3832] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.26s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.96s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.8.2 (0.55s)
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
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
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.