The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of grpc-swift-2, reference 2.2.1 (531924), with Swift 6.2 for Android on 2 Dec 2025 12:30:04 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-3":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:android-6.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/grpc/grpc-swift-2.git
Reference: 2.2.1
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/grpc/grpc-swift-2
 * tag               2.2.1      -> FETCH_HEAD
HEAD is now at 531924b Ensures namespace enums are marked as Sendable (#33)
Cloned https://github.com/grpc/grpc-swift-2.git
Revision (git rev-parse @):
531924b28fde0cf7585123c781c6f55cc35ef7fc
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/grpc/grpc-swift-2.git at 2.2.1
========================================
Build
========================================
Selected platform:         android
Swift version:             6.2
Building package at path:  $PWD
https://github.com/grpc/grpc-swift-2.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-3":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:android-6.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:c3fe93b3f7c9edfd66b4287786a9b8caf7805f96d7219e301e257b4e0de911bb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.2-latest
Fetching https://github.com/apple/swift-collections.git
Fetching https://github.com/apple/swift-protobuf.git
[1/18314] Fetching swift-collections
Fetched https://github.com/apple/swift-collections.git from cache (1.34s)
[1/41480] Fetching swift-protobuf
Fetched https://github.com/apple/swift-protobuf.git from cache (7.89s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.3.0 (8.43s)
Computing version for https://github.com/apple/swift-protobuf.git
Computed https://github.com/apple/swift-protobuf.git at 1.33.3 (0.43s)
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.3.0
Creating working copy for https://github.com/apple/swift-protobuf.git
Working copy of https://github.com/apple/swift-protobuf.git resolved at 1.33.3
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:9:14: warning: associated value 'invalidTarget' of 'Sendable'-conforming enum 'PluginError' has non-Sendable type 'any Target'
  7 |     enum PluginError: Error, CustomStringConvertible {
  8 |         /// Indicates that the target where the plugin was applied to was not `SourceModuleTarget`.
  9 |         case invalidTarget(Target)
    |              `- warning: associated value 'invalidTarget' of 'Sendable'-conforming enum 'PluginError' has non-Sendable type 'any Target'
 10 |         /// Indicates that the file extension of an input file was not `.proto`.
 11 |         case invalidInputFileExtension(String)
PackagePlugin.Target:1:17: note: protocol 'Target' does not conform to the 'Sendable' protocol
 1 | public protocol Target {
   |                 `- note: protocol 'Target' does not conform to the 'Sendable' protocol
 2 |     var id: Self.ID { get }
 3 |     typealias ID = String
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'PackagePlugin' as warnings
  1 | import Foundation
  2 | import PackagePlugin
    | `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'PackagePlugin' as warnings
  3 |
  4 | @main
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:9:14: warning: associated value 'invalidTarget' of 'Sendable'-conforming enum 'PluginError' has non-Sendable type 'any Target'
  7 |     enum PluginError: Error, CustomStringConvertible {
  8 |         /// Indicates that the target where the plugin was applied to was not `SourceModuleTarget`.
  9 |         case invalidTarget(Target)
    |              `- warning: associated value 'invalidTarget' of 'Sendable'-conforming enum 'PluginError' has non-Sendable type 'any Target'
 10 |         /// Indicates that the file extension of an input file was not `.proto`.
 11 |         case invalidInputFileExtension(String)
PackagePlugin.Target:1:17: note: protocol 'Target' does not conform to the 'Sendable' protocol
 1 | public protocol Target {
   |                 `- note: protocol 'Target' does not conform to the 'Sendable' protocol
 2 |     var id: Self.ID { get }
 3 |     typealias ID = String
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'PackagePlugin' as warnings
  1 | import Foundation
  2 | import PackagePlugin
    | `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'PackagePlugin' as warnings
  3 |
  4 | @main
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:117:24: warning: 'path' is deprecated: renamed to 'url' [#DeprecatedDeclaration]
115 |             let configurationFilePath = sourceFiles.first(
116 |                 where: {
117 |                     $0.path.lastComponent == Self.configurationFileName
    |                        |- warning: 'path' is deprecated: renamed to 'url' [#DeprecatedDeclaration]
    |                        `- note: use 'url' instead
118 |                 }
119 |             )?.path
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:117:29: warning: 'lastComponent' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
115 |             let configurationFilePath = sourceFiles.first(
116 |                 where: {
117 |                     $0.path.lastComponent == Self.configurationFileName
    |                             `- warning: 'lastComponent' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
118 |                 }
119 |             )?.path
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:119:16: warning: 'path' is deprecated: renamed to 'url' [#DeprecatedDeclaration]
117 |                     $0.path.lastComponent == Self.configurationFileName
118 |                 }
119 |             )?.path
    |                |- warning: 'path' is deprecated: renamed to 'url' [#DeprecatedDeclaration]
    |                `- note: use 'url' instead
120 |         else {
121 |             throw PluginError.noConfigFound(Self.configurationFileName)
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:123:64: warning: 'appendInterpolation' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
121 |             throw PluginError.noConfigFound(Self.configurationFileName)
122 |         }
123 |         let data = try Data(contentsOf: URL(fileURLWithPath: "\(configurationFilePath)"))
    |                                                                `- warning: 'appendInterpolation' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
124 |         let configuration = try JSONDecoder().decode(Configuration.self, from: data)
125 |         try validateConfiguration(configuration)
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:131:26: warning: 'init(_:)' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
129 |         if let configuredProtocPath = configuration.protocPath {
130 |             // The user set the config path in the file. So let's take that
131 |             protocPath = Path(configuredProtocPath)
    |                          `- warning: 'init(_:)' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
132 |         } else if let environmentPath = ProcessInfo.processInfo.environment["PROTOC_PATH"] {
133 |             // The user set the env variable. So let's take that
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:134:26: warning: 'init(_:)' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
132 |         } else if let environmentPath = ProcessInfo.processInfo.environment["PROTOC_PATH"] {
133 |             // The user set the env variable. So let's take that
134 |             protocPath = Path(environmentPath)
    |                          `- warning: 'init(_:)' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
135 |         } else {
136 |             // The user didn't set anything so let's try see if SPM can find a binary for us
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:137:45: warning: 'path' is deprecated: renamed to 'url' [#DeprecatedDeclaration]
135 |         } else {
136 |             // The user didn't set anything so let's try see if SPM can find a binary for us
137 |             protocPath = try tool("protoc").path
    |                                             |- warning: 'path' is deprecated: renamed to 'url' [#DeprecatedDeclaration]
    |                                             `- note: use 'url' instead
138 |         }
139 |         let protocGenSwiftPath = try tool("protoc-gen-swift").path
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:139:63: warning: 'path' is deprecated: renamed to 'url' [#DeprecatedDeclaration]
137 |             protocPath = try tool("protoc").path
138 |         }
139 |         let protocGenSwiftPath = try tool("protoc-gen-swift").path
    |                                                               |- warning: 'path' is deprecated: renamed to 'url' [#DeprecatedDeclaration]
    |                                                               `- note: use 'url' instead
140 |
141 |         return configuration.invocations.map { invocation in
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:143:50: warning: 'removingLastComponent()' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
141 |         return configuration.invocations.map { invocation in
142 |             self.invokeProtoc(
143 |                 directory: configurationFilePath.removingLastComponent(),
    |                                                  `- warning: 'removingLastComponent()' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
144 |                 invocation: invocation,
145 |                 protocPath: protocPath,
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:170:41: warning: 'appendInterpolation' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
168 |         // Construct the `protoc` arguments.
169 |         var protocArgs = [
170 |             "--plugin=protoc-gen-swift=\(protocGenSwiftPath)",
    |                                         `- warning: 'appendInterpolation' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
171 |             "--swift_out=\(outputDirectory)",
172 |         ]
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:171:27: warning: 'appendInterpolation' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
169 |         var protocArgs = [
170 |             "--plugin=protoc-gen-swift=\(protocGenSwiftPath)",
171 |             "--swift_out=\(outputDirectory)",
    |                           `- warning: 'appendInterpolation' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
172 |         ]
173 |
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:177:29: warning: 'appendInterpolation' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
175 |         // the proto files relative to it.
176 |         protocArgs.append("-I")
177 |         protocArgs.append("\(directory)")
    |                             `- warning: 'appendInterpolation' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
178 |
179 |         // Add the visibility if it was set
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:205:41: warning: 'appending' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
203 |             // Append the file to the protoc args so that it is used for generating
204 |             protocArgs.append("\(file)")
205 |             inputFiles.append(directory.appending(file))
    |                                         `- warning: 'appending' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
206 |
207 |             // The name of the output file is based on the name of the input file.
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:212:54: warning: 'appending' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
210 |             file.removeLast(5)
211 |             file.append("pb.swift")
212 |             let protobufOutputPath = outputDirectory.appending(file)
    |                                                      `- warning: 'appending' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
213 |
214 |             // Add the outputPath as an output file
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:221:24: warning: 'buildCommand(displayName:executable:arguments:environment:inputFiles:outputFiles:)' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
219 |         // system know when to invoke the command. The output paths are passed on to
220 |         // the rule engine in the build system.
221 |         return Command.buildCommand(
    |                        `- warning: 'buildCommand(displayName:executable:arguments:environment:inputFiles:outputFiles:)' is deprecated: Use `URL` type instead of `Path`. [#DeprecatedDeclaration]
222 |             displayName: "Generating swift files from proto files",
223 |             executable: protocPath,
/host/spi-builder-workspace/.build/checkouts/swift-protobuf/Plugins/SwiftProtobufPlugin/plugin.swift:251:42: warning: 'pluginWorkDirectory' is deprecated: renamed to 'pluginWorkDirectoryURL' [#DeprecatedDeclaration]
249 |         }
250 |         return try createBuildCommands(
251 |             pluginWorkDirectory: context.pluginWorkDirectory,
    |                                          |- warning: 'pluginWorkDirectory' is deprecated: renamed to 'pluginWorkDirectoryURL' [#DeprecatedDeclaration]
    |                                          `- note: use 'pluginWorkDirectoryURL' instead
252 |             sourceFiles: swiftTarget.sourceFiles,
253 |             tool: context.tool
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[1/1] Compiling plugin SwiftProtobufPlugin
Building for debugging...
[1/7] Write sources
[6/7] Write swift-version--6B0C4D200E742BB1.txt
[8/40] Emitting module InternalCollectionsUtilities
[9/42] Emitting module GRPCCodeGen
[10/44] Compiling InternalCollectionsUtilities LifetimeOverride.swift
[11/44] Compiling InternalCollectionsUtilities RandomAccessCollection+Offsets.swift
[12/44] Compiling InternalCollectionsUtilities UInt+reversed.swift
[13/44] Compiling InternalCollectionsUtilities _UnsafeBitSet+Index.swift
[14/44] Compiling InternalCollectionsUtilities FixedWidthInteger+roundUpToPowerOfTwo.swift
[15/44] Compiling InternalCollectionsUtilities Integer rank.swift
[16/44] Compiling InternalCollectionsUtilities UInt+first and last set bit.swift
[17/44] Compiling InternalCollectionsUtilities UnsafeBufferPointer+Extras.swift
[18/44] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[23/44] Compiling InternalCollectionsUtilities _SortedCollection.swift
[24/44] Compiling InternalCollectionsUtilities _UniqueCollection.swift
[25/44] Compiling InternalCollectionsUtilities _UnsafeBitSet+_Word.swift
[26/44] Compiling InternalCollectionsUtilities _UnsafeBitSet.swift
[27/44] Compiling InternalCollectionsUtilities Debugging.swift
[28/44] Compiling InternalCollectionsUtilities Descriptions.swift
[29/44] Compiling GRPCCodeGen TypeUsage.swift
[30/44] Compiling GRPCCodeGen SourceFile.swift
[35/44] Compiling InternalCollectionsUtilities UnsafeMutableRawBufferPointer+Extras.swift
[44/60] Compiling DequeModule Deque+Equatable.swift
[45/60] Compiling DequeModule Deque+ExpressibleByArrayLiteral.swift
[46/62] Compiling DequeModule _DequeBuffer.swift
[47/62] Compiling DequeModule _DequeBufferHeader.swift
[48/62] Compiling DequeModule Deque+CustomReflectable.swift
[49/62] Compiling DequeModule Deque+Descriptions.swift
[50/62] Compiling DequeModule Deque+Extras.swift
[51/62] Compiling DequeModule Deque+Hashable.swift
[52/62] Compiling DequeModule _DequeSlot.swift
[53/62] Compiling DequeModule _UnsafeWrappedBuffer.swift
[54/62] Compiling DequeModule Deque+Testing.swift
[55/62] Compiling DequeModule Deque._Storage.swift
[56/62] Compiling DequeModule Deque._UnsafeHandle.swift
[57/62] Compiling DequeModule Deque.swift
[58/62] Emitting module DequeModule
[59/62] Compiling DequeModule Deque+Codable.swift
[60/62] Compiling DequeModule Deque+Collection.swift
[62/118] Compiling GRPCCore ClientInterceptor.swift
[63/118] Compiling GRPCCore ClientRequest.swift
[65/119] Compiling GRPCCore Metadata+GRPC.swift
[66/119] Compiling GRPCCore MethodConfigs.swift
[67/119] Compiling GRPCCore Result+Catching.swift
[68/119] Compiling GRPCCore String+Extensions.swift
[69/119] Compiling GRPCCore TaskGroup+CancellableTask.swift
[70/119] Compiling GRPCCore Metadata.swift
[71/119] Compiling GRPCCore MethodDescriptor.swift
[72/119] Compiling GRPCCore RPCError.swift
[73/119] Compiling GRPCCore RPCWriter+Map.swift
[74/119] Compiling GRPCCore RPCWriter+MessageToRPCResponsePart.swift
[75/119] Compiling GRPCCore RPCWriter+Serialize.swift
[76/119] Compiling GRPCCore UncheckedAsyncIteratorSequence.swift
[77/119] Compiling GRPCCore RPCAsyncSequence.swift
[78/119] Compiling GRPCCore RPCWriter+Closable.swift
[79/119] Compiling GRPCCore RPCWriter.swift
[80/126] Compiling GRPCCore RuntimeError.swift
[81/126] Compiling GRPCCore ServiceDescriptor.swift
[82/126] Compiling GRPCCore Status.swift
[83/126] Compiling GRPCCore AsyncSequenceOfOne.swift
[84/126] Compiling GRPCCore BroadcastAsyncSequence+RPCWriter.swift
[85/126] Compiling GRPCCore BroadcastAsyncSequence.swift
[86/126] Compiling GRPCCore GRPCAsyncThrowingStream.swift
[87/126] Compiling GRPCCore CompressionAlgorithm.swift
[88/126] Compiling GRPCCore GRPCContiguousBytes.swift
[89/126] Compiling GRPCCore MethodConfig.swift
[90/126] Compiling GRPCCore ServiceConfig.swift
[91/126] Compiling GRPCCore GRPCClient.swift
[92/126] Compiling GRPCCore GRPCServer.swift
[93/126] Compiling GRPCCore Base64.swift
[94/126] Compiling GRPCCore UnsafeTransfer.swift
[95/126] Compiling GRPCCore ClientRPCExecutor.swift
[96/126] Compiling GRPCCore ClientRequest+Convenience.swift
[97/126] Compiling GRPCCore ClientResponse+Convenience.swift
[98/126] Compiling GRPCCore ClientStreamExecutor.swift
[99/126] Compiling GRPCCore RetryDelaySequence.swift
[100/126] Compiling GRPCCore ConditionalInterceptor.swift
[101/126] Compiling GRPCCore ServerCancellationManager.swift
[102/126] Compiling GRPCCore ServerRPCExecutor.swift
[103/126] Compiling GRPCCore RPCRouter.swift
[104/126] Compiling GRPCCore RegistrableRPCService.swift
[105/126] Compiling GRPCCore ServerContext+RPCCancellationHandle.swift
[106/126] Compiling GRPCCore ServerContext.swift
[107/126] Compiling GRPCCore ServerInterceptor.swift
[108/126] Compiling GRPCCore ServerRequest.swift
[109/126] Compiling GRPCCore ServerResponse.swift
[110/126] Compiling GRPCCore Coding.swift
[111/126] Emitting module GRPCCore
[112/126] Compiling GRPCCore CallOptions.swift
[113/126] Compiling GRPCCore ClientContext.swift
[116/126] Compiling GRPCCore ClientResponse.swift
[117/126] Compiling GRPCCore ClientRPCExecutor+HedgingExecutor.swift
[118/126] Compiling GRPCCore ClientRPCExecutor+OneShotExecutor.swift
[119/126] Compiling GRPCCore ClientRPCExecutor+RetryExecutor.swift
[120/126] Compiling GRPCCore RPCWriterProtocol.swift
[121/126] Compiling GRPCCore Timeout.swift
[122/126] Compiling GRPCCore ClientTransport.swift
[123/126] Compiling GRPCCore RPCParts.swift
[124/126] Compiling GRPCCore RPCStream.swift
[125/126] Compiling GRPCCore RetryThrottle.swift
[126/126] Compiling GRPCCore ServerTransport.swift
[128/132] Compiling GRPCInProcessTransport Syscalls.swift
[129/132] Compiling GRPCInProcessTransport InProcessTransport.swift
[130/132] Compiling GRPCInProcessTransport InProcessTransport+Server.swift
[131/132] Emitting module GRPCInProcessTransport
[132/132] Compiling GRPCInProcessTransport InProcessTransport+Client.swift
Build complete! (127.07s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-collections",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.1.3",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-collections.git"
    },
    {
      "identity" : "swift-protobuf",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.31.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-protobuf.git"
    }
  ],
  "manifest_display_name" : "grpc-swift-2",
  "name" : "grpc-swift-2",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "GRPCCore",
      "targets" : [
        "GRPCCore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "GRPCCodeGen",
      "targets" : [
        "GRPCCodeGen"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "GRPCInProcessTransport",
      "targets" : [
        "GRPCInProcessTransport"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "GRPCInProcessTransportTests",
      "module_type" : "SwiftTarget",
      "name" : "GRPCInProcessTransportTests",
      "path" : "Tests/GRPCInProcessTransportTests",
      "sources" : [
        "ClientServerWithMethods.swift",
        "InProcessClientTransportTests.swift",
        "InProcessServerTransportTests.swift",
        "InProcessTransportTests.swift",
        "Test Utilities/JSONSerializing.swift",
        "Test Utilities/XCTest+Utilities.swift"
      ],
      "target_dependencies" : [
        "GRPCInProcessTransport"
      ],
      "type" : "test"
    },
    {
      "c99name" : "GRPCInProcessTransport",
      "module_type" : "SwiftTarget",
      "name" : "GRPCInProcessTransport",
      "path" : "Sources/GRPCInProcessTransport",
      "product_memberships" : [
        "GRPCInProcessTransport"
      ],
      "sources" : [
        "InProcessTransport+Client.swift",
        "InProcessTransport+Server.swift",
        "InProcessTransport.swift",
        "Syscalls.swift"
      ],
      "target_dependencies" : [
        "GRPCCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "GRPCCoreTests",
      "module_type" : "SwiftTarget",
      "name" : "GRPCCoreTests",
      "path" : "Tests/GRPCCoreTests",
      "product_dependencies" : [
        "SwiftProtobuf"
      ],
      "resources" : [
        {
          "path" : "/host/spi-builder-workspace/Tests/GRPCCoreTests/Configuration/Inputs",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Call/Client/ClientRequestTests.swift",
        "Call/Client/ClientResponseTests.swift",
        "Call/Client/Internal/ClientRPCExecutorTestSupport/ClientRPCExecutorTestHarness+ServerBehavior.swift",
        "Call/Client/Internal/ClientRPCExecutorTestSupport/ClientRPCExecutorTestHarness+Transport.swift",
        "Call/Client/Internal/ClientRPCExecutorTestSupport/ClientRPCExecutorTestHarness.swift",
        "Call/Client/Internal/ClientRPCExecutorTests+Hedging.swift",
        "Call/Client/Internal/ClientRPCExecutorTests+Retries.swift",
        "Call/Client/Internal/ClientRPCExecutorTests.swift",
        "Call/Client/RetryDelaySequenceTests.swift",
        "Call/ConditionalInterceptorTests.swift",
        "Call/Server/Internal/ServerCancellationManagerTests.swift",
        "Call/Server/Internal/ServerRPCExecutorTestSupport/ServerRPCExecutorTestHarness.swift",
        "Call/Server/Internal/ServerRPCExecutorTests.swift",
        "Call/Server/RPCRouterTests.swift",
        "Call/Server/ServerContextTests.swift",
        "Call/Server/ServerRequestTests.swift",
        "Call/Server/ServerResponseTests.swift",
        "Coding/CodingTests.swift",
        "Coding/CompressionAlgorithmTests.swift",
        "Configuration/Generated/code.pb.swift",
        "Configuration/Generated/rls.pb.swift",
        "Configuration/Generated/rls_config.pb.swift",
        "Configuration/Generated/service_config.pb.swift",
        "Configuration/MethodConfigCodingTests.swift",
        "Configuration/MethodConfigTests.swift",
        "Configuration/ServiceConfigCodingTests.swift",
        "GRPCClientTests.swift",
        "GRPCServerTests.swift",
        "Internal/Metadata+GRPCTests.swift",
        "Internal/MethodConfigsTests.swift",
        "Internal/Result+CatchingTests.swift",
        "MetadataTests.swift",
        "MethodDescriptorTests.swift",
        "RPCErrorTests.swift",
        "RPCPartsTests.swift",
        "RuntimeErrorTests.swift",
        "ServiceDescriptorTests.swift",
        "StatusTests.swift",
        "Streaming/Internal/AsyncSequenceOfOne.swift",
        "Streaming/Internal/BroadcastAsyncSequenceTests.swift",
        "Test Utilities/AsyncSequence+Utilities.swift",
        "Test Utilities/AtomicCounter.swift",
        "Test Utilities/Call/Client/ClientInterceptors.swift",
        "Test Utilities/Call/Server/ServerInterceptors.swift",
        "Test Utilities/Coding+Identity.swift",
        "Test Utilities/Coding+JSON.swift",
        "Test Utilities/RPCAsyncSequence+Utilities.swift",
        "Test Utilities/RPCWriter+Utilities.swift",
        "Test Utilities/Services/BinaryEcho.swift",
        "Test Utilities/Services/HelloWorld.swift",
        "Test Utilities/Transport/AnyTransport.swift",
        "Test Utilities/Transport/StreamCountingTransport.swift",
        "Test Utilities/Transport/ThrowingTransport.swift",
        "Test Utilities/XCTest+Utilities.swift",
        "TimeoutTests.swift",
        "Transport/RetryThrottleTests.swift"
      ],
      "target_dependencies" : [
        "GRPCCore",
        "GRPCInProcessTransport"
      ],
      "type" : "test"
    },
    {
      "c99name" : "GRPCCore",
      "module_type" : "SwiftTarget",
      "name" : "GRPCCore",
      "path" : "Sources/GRPCCore",
      "product_dependencies" : [
        "DequeModule"
      ],
      "product_memberships" : [
        "GRPCCore",
        "GRPCInProcessTransport"
      ],
      "sources" : [
        "Call/Client/CallOptions.swift",
        "Call/Client/ClientContext.swift",
        "Call/Client/ClientInterceptor.swift",
        "Call/Client/ClientRequest.swift",
        "Call/Client/ClientResponse.swift",
        "Call/Client/Internal/ClientRPCExecutor+HedgingExecutor.swift",
        "Call/Client/Internal/ClientRPCExecutor+OneShotExecutor.swift",
        "Call/Client/Internal/ClientRPCExecutor+RetryExecutor.swift",
        "Call/Client/Internal/ClientRPCExecutor.swift",
        "Call/Client/Internal/ClientRequest+Convenience.swift",
        "Call/Client/Internal/ClientResponse+Convenience.swift",
        "Call/Client/Internal/ClientStreamExecutor.swift",
        "Call/Client/Internal/RetryDelaySequence.swift",
        "Call/ConditionalInterceptor.swift",
        "Call/Server/Internal/ServerCancellationManager.swift",
        "Call/Server/Internal/ServerRPCExecutor.swift",
        "Call/Server/RPCRouter.swift",
        "Call/Server/RegistrableRPCService.swift",
        "Call/Server/ServerContext+RPCCancellationHandle.swift",
        "Call/Server/ServerContext.swift",
        "Call/Server/ServerInterceptor.swift",
        "Call/Server/ServerRequest.swift",
        "Call/Server/ServerResponse.swift",
        "Coding/Coding.swift",
        "Coding/CompressionAlgorithm.swift",
        "Coding/GRPCContiguousBytes.swift",
        "Configuration/MethodConfig.swift",
        "Configuration/ServiceConfig.swift",
        "GRPCClient.swift",
        "GRPCServer.swift",
        "Internal/Base64.swift",
        "Internal/Concurrency Primitives/UnsafeTransfer.swift",
        "Internal/Metadata+GRPC.swift",
        "Internal/MethodConfigs.swift",
        "Internal/Result+Catching.swift",
        "Internal/String+Extensions.swift",
        "Internal/TaskGroup+CancellableTask.swift",
        "Metadata.swift",
        "MethodDescriptor.swift",
        "RPCError.swift",
        "RuntimeError.swift",
        "ServiceDescriptor.swift",
        "Status.swift",
        "Streaming/Internal/AsyncSequenceOfOne.swift",
        "Streaming/Internal/BroadcastAsyncSequence+RPCWriter.swift",
        "Streaming/Internal/BroadcastAsyncSequence.swift",
        "Streaming/Internal/GRPCAsyncThrowingStream.swift",
        "Streaming/Internal/RPCWriter+Map.swift",
        "Streaming/Internal/RPCWriter+MessageToRPCResponsePart.swift",
        "Streaming/Internal/RPCWriter+Serialize.swift",
        "Streaming/Internal/UncheckedAsyncIteratorSequence.swift",
        "Streaming/RPCAsyncSequence.swift",
        "Streaming/RPCWriter+Closable.swift",
        "Streaming/RPCWriter.swift",
        "Streaming/RPCWriterProtocol.swift",
        "Timeout.swift",
        "Transport/ClientTransport.swift",
        "Transport/RPCParts.swift",
        "Transport/RPCStream.swift",
        "Transport/RetryThrottle.swift",
        "Transport/ServerTransport.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "GRPCCodeGenTests",
      "module_type" : "SwiftTarget",
      "name" : "GRPCCodeGenTests",
      "path" : "Tests/GRPCCodeGenTests",
      "sources" : [
        "Internal/Renderer/TextBasedRendererTests.swift",
        "Internal/StructuredSwift+ClientTests.swift",
        "Internal/StructuredSwift+ImportTests.swift",
        "Internal/StructuredSwift+MetadataTests.swift",
        "Internal/StructuredSwift+ServerTests.swift",
        "Internal/StructuredSwiftTestHelpers.swift",
        "Internal/Translator/ClientCodeTranslatorSnippetBasedTests.swift",
        "Internal/Translator/DocsTests.swift",
        "Internal/Translator/IDLToStructuredSwiftTranslatorSnippetBasedTests.swift",
        "Internal/Translator/ServerCodeTranslatorSnippetBasedTests.swift",
        "Internal/Translator/TestFunctions.swift",
        "Internal/Translator/TypealiasTranslatorSnippetBasedTests.swift"
      ],
      "target_dependencies" : [
        "GRPCCodeGen"
      ],
      "type" : "test"
    },
    {
      "c99name" : "GRPCCodeGen",
      "module_type" : "SwiftTarget",
      "name" : "GRPCCodeGen",
      "path" : "Sources/GRPCCodeGen",
      "product_memberships" : [
        "GRPCCodeGen"
      ],
      "sources" : [
        "CodeGenError.swift",
        "CodeGenerationRequest.swift",
        "CodeGenerator.swift",
        "Internal/Namer.swift",
        "Internal/Renderer/RendererProtocol.swift",
        "Internal/Renderer/TextBasedRenderer.swift",
        "Internal/StructuredSwift+Client.swift",
        "Internal/StructuredSwift+Server.swift",
        "Internal/StructuredSwift+ServiceMetadata.swift",
        "Internal/StructuredSwiftRepresentation.swift",
        "Internal/Translator/ClientCodeTranslator.swift",
        "Internal/Translator/Docs.swift",
        "Internal/Translator/IDLToStructuredSwiftTranslator.swift",
        "Internal/Translator/MetadataTranslator.swift",
        "Internal/Translator/ServerCodeTranslator.swift",
        "Internal/TypeName.swift",
        "Internal/TypeUsage.swift",
        "SourceFile.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
android-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:c3fe93b3f7c9edfd66b4287786a9b8caf7805f96d7219e301e257b4e0de911bb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.2-latest
Done.