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 RestBird, reference 0.5.4 (db51dc), with Swift 6.2 (beta) for Android on 18 Jun 2025 20:24:58 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" 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.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/halcyonmobile/RestBird.git
Reference: 0.5.4
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/halcyonmobile/RestBird
 * tag               0.5.4      -> FETCH_HEAD
HEAD is now at db51dc7 Update podspec
Cloned https://github.com/halcyonmobile/RestBird.git
Revision (git rev-parse @):
db51dc723cf29fbae3d237205e911fdc4debbd9d
SUCCESS checkout https://github.com/halcyonmobile/RestBird.git at 0.5.4
========================================
Build
========================================
Selected platform:         android
Swift version:             6.2
Building package at path:  $PWD
https://github.com/halcyonmobile/RestBird.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" 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:b7c4a6b4153ff40ef9277e2157e708f835b8eb011095d53bd8db4594eb2b7798
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.2-latest
Fetching https://github.com/Alamofire/Alamofire.git
[1/30141] Fetching alamofire
Fetched https://github.com/Alamofire/Alamofire.git from cache (4.67s)
Computing version for https://github.com/Alamofire/Alamofire.git
Computed https://github.com/Alamofire/Alamofire.git at 5.10.2 (5.46s)
Creating working copy for https://github.com/Alamofire/Alamofire.git
Working copy of https://github.com/Alamofire/Alamofire.git resolved at 5.10.2
Building for debugging...
[0/4] Write sources
[0/4] Copying PrivacyInfo.xcprivacy
[0/4] Write sources
[3/4] Write swift-version-8C5A4AE7A8CE2BA.txt
[5/43] Compiling Alamofire URLRequest+Alamofire.swift
[6/43] Compiling Alamofire URLSessionConfiguration+Alamofire.swift
[7/43] Compiling Alamofire AlamofireExtended.swift
[8/43] Compiling Alamofire AuthenticationInterceptor.swift
[9/43] Compiling Alamofire CachedResponseHandler.swift
[10/48] Compiling Alamofire WebSocketRequest.swift
[11/48] Compiling Alamofire DispatchQueue+Alamofire.swift
[12/48] Compiling Alamofire OperationQueue+Alamofire.swift
[13/48] Compiling Alamofire Result+Alamofire.swift
[14/48] Compiling Alamofire StringEncoding+Alamofire.swift
[15/48] Compiling Alamofire NetworkReachabilityManager.swift
[16/48] Compiling Alamofire RedirectHandler.swift
[17/48] Compiling Alamofire RequestCompression.swift
[18/48] Compiling Alamofire RequestInterceptor.swift
[19/48] Compiling Alamofire ResponseSerialization.swift
[20/48] Compiling Alamofire Combine.swift
[21/48] Compiling Alamofire Concurrency.swift
[22/48] Compiling Alamofire EventMonitor.swift
[23/48] Compiling Alamofire MultipartFormData.swift
[24/48] Compiling Alamofire MultipartUpload.swift
[25/48] Compiling Alamofire HTTPMethod.swift
[26/48] Compiling Alamofire Notifications.swift
[27/48] Compiling Alamofire ParameterEncoder.swift
[28/48] Compiling Alamofire ParameterEncoding.swift
[29/48] Compiling Alamofire Protected.swift
[30/48] Compiling Alamofire Request.swift
[31/48] Compiling Alamofire RequestTaskMap.swift
[32/48] Compiling Alamofire Response.swift
[33/48] Compiling Alamofire Session.swift
[34/48] Compiling Alamofire SessionDelegate.swift
[35/48] Compiling Alamofire URLConvertible+URLRequestConvertible.swift
[36/48] Compiling Alamofire UploadRequest.swift
[37/48] Emitting module Alamofire
[38/48] Compiling Alamofire Alamofire.swift
[39/48] Compiling Alamofire AFError.swift
[40/48] Compiling Alamofire DataRequest.swift
[41/48] Compiling Alamofire DataStreamRequest.swift
[42/48] Compiling Alamofire DownloadRequest.swift
[43/48] Compiling Alamofire HTTPHeaders.swift
[44/48] Compiling Alamofire RetryPolicy.swift
[45/48] Compiling Alamofire ServerTrustEvaluation.swift
[46/48] Compiling Alamofire URLEncodedFormEncoder.swift
[47/48] Compiling Alamofire Validation.swift
[48/48] Compiling Alamofire resource_bundle_accessor.swift
[50/62] Compiling RestBird RestBird.swift
[51/63] Compiling RestBird SessionManager.swift
/host/spi-builder-workspace/Sources/RestBird/Session/SessionManager.swift:11:41: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 9 | import Foundation
10 |
11 | public protocol SessionManagerDelegate: class {
   |                                         `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
12 |
13 |     /// Informs delegate that a URLRequest is about to be executed.
/host/spi-builder-workspace/Sources/RestBird/Session/SessionManager.swift:33:33: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
31 |
32 | /// URL session interface
33 | public protocol SessionManager: class {
   |                                 `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
34 |
35 |     var config: NetworkClientConfiguration { get }
[52/63] Compiling RestBird ParameterEncoding.swift
[53/63] Compiling RestBird Request.swift
[54/63] Compiling RestBird Data+Codable.swift
[55/63] Compiling RestBird EmptyResponse.swift
[56/63] Compiling RestBird MultipartRequest.swift
[57/63] Compiling RestBird Middleware.swift
[58/63] Compiling RestBird DataRequest.swift
[59/63] Compiling RestBird NetworkClient.swift
[60/63] Compiling RestBird HTTPMethod.swift
[61/63] Emitting module RestBird
/host/spi-builder-workspace/Sources/RestBird/Session/SessionManager.swift:11:41: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
 9 | import Foundation
10 |
11 | public protocol SessionManagerDelegate: class {
   |                                         `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
12 |
13 |     /// Informs delegate that a URLRequest is about to be executed.
/host/spi-builder-workspace/Sources/RestBird/Session/SessionManager.swift:33:33: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
31 |
32 | /// URL session interface
33 | public protocol SessionManager: class {
   |                                 `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead [#deprecation]
34 |
35 |     var config: NetworkClientConfiguration { get }
[62/63] Compiling RestBird AlamofireSessionManager.swift
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:125:22: warning: We should do this using Alamofire.
123 |             }
124 |
125 |             #warning("We should do this using Alamofire.")
    |                      `- warning: We should do this using Alamofire.
126 |             try? request.afParameters(using: self.config.jsonEncoder)?.forEach { (param) in
127 |                 if let value = param.value as? String {
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:49:33: warning: capture of non-sendable type 'T.Type' in an isolated closure
 47 |
 48 |         dataRequest.validate().responseDecodable(of: T.self, decoder: config.jsonDecoder, emptyResponseCodes: Set(200..<300)) { response in
 49 |             if let urlRequest = response.request, let urlResponse = response.response {
    |                                 `- warning: capture of non-sendable type 'T.Type' in an isolated closure
 50 |                 do {
 51 |                     try self.delegate?.sessionManager(self, didPerform: urlRequest, response: urlResponse, data: response.data)
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:29:9: warning: capture of non-sendable type 'T.Type' in an isolated closure
 27 |     public func performDataTask<Request, T>(
 28 |         request: Request,
 29 |         completion: @escaping (Result<T, Error>) -> Void
    |         `- warning: capture of non-sendable type 'T.Type' in an isolated closure
 30 |     ) where Request : DataRequest, T : Decodable {
 31 |         let url = config.baseUrl + (request.suffix ?? "")
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:81:13: warning: variable 'uploadRequest' was never mutated; consider changing to 'let' constant
 79 |     ) where Request : MultipartRequest, T : Decodable {
 80 |         // We need to observe when `uploadRequest` gets set as in case of `.multipart` this will be set later, in `encodingCompletion` and we can't call these methods right after `sessionManager.upload` as `uploadRequest` will be nil at that point.
 81 |         var uploadRequest: Alamofire.UploadRequest? {
    |             `- warning: variable 'uploadRequest' was never mutated; consider changing to 'let' constant
 82 |             didSet {
 83 |                 // We don't need to treat the case where `uploadRequest` is nil as that would be a failure and `completion(.failure(error))` would be called in `encodingCompletion`.
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:144:17: warning: capture of non-sendable type 'T.Type' in an isolated closure
142 |             .validate()
143 |             .responseDecodable(of: T.self, decoder: config.jsonDecoder, emptyResponseCodes: Set(200..<300)) { response in
144 |                 completion(response.result.mapError{ $0 })
    |                 `- warning: capture of non-sendable type 'T.Type' in an isolated closure
145 |         }
146 |     }
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:78:9: warning: capture of non-sendable type 'T.Type' in an isolated closure
 76 |         request: Request,
 77 |         uploadProgress: ((Progress) -> Void)?,
 78 |         completion: @escaping (Swift.Result<T, Error>) -> Void
    |         `- warning: capture of non-sendable type 'T.Type' in an isolated closure
 79 |     ) where Request : MultipartRequest, T : Decodable {
 80 |         // We need to observe when `uploadRequest` gets set as in case of `.multipart` this will be set later, in `encodingCompletion` and we can't call these methods right after `sessionManager.upload` as `uploadRequest` will be nil at that point.
[63/63] Compiling RestBird Request+Alamofire.swift
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:125:22: warning: We should do this using Alamofire.
123 |             }
124 |
125 |             #warning("We should do this using Alamofire.")
    |                      `- warning: We should do this using Alamofire.
126 |             try? request.afParameters(using: self.config.jsonEncoder)?.forEach { (param) in
127 |                 if let value = param.value as? String {
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:49:33: warning: capture of non-sendable type 'T.Type' in an isolated closure
 47 |
 48 |         dataRequest.validate().responseDecodable(of: T.self, decoder: config.jsonDecoder, emptyResponseCodes: Set(200..<300)) { response in
 49 |             if let urlRequest = response.request, let urlResponse = response.response {
    |                                 `- warning: capture of non-sendable type 'T.Type' in an isolated closure
 50 |                 do {
 51 |                     try self.delegate?.sessionManager(self, didPerform: urlRequest, response: urlResponse, data: response.data)
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:29:9: warning: capture of non-sendable type 'T.Type' in an isolated closure
 27 |     public func performDataTask<Request, T>(
 28 |         request: Request,
 29 |         completion: @escaping (Result<T, Error>) -> Void
    |         `- warning: capture of non-sendable type 'T.Type' in an isolated closure
 30 |     ) where Request : DataRequest, T : Decodable {
 31 |         let url = config.baseUrl + (request.suffix ?? "")
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:81:13: warning: variable 'uploadRequest' was never mutated; consider changing to 'let' constant
 79 |     ) where Request : MultipartRequest, T : Decodable {
 80 |         // We need to observe when `uploadRequest` gets set as in case of `.multipart` this will be set later, in `encodingCompletion` and we can't call these methods right after `sessionManager.upload` as `uploadRequest` will be nil at that point.
 81 |         var uploadRequest: Alamofire.UploadRequest? {
    |             `- warning: variable 'uploadRequest' was never mutated; consider changing to 'let' constant
 82 |             didSet {
 83 |                 // We don't need to treat the case where `uploadRequest` is nil as that would be a failure and `completion(.failure(error))` would be called in `encodingCompletion`.
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:144:17: warning: capture of non-sendable type 'T.Type' in an isolated closure
142 |             .validate()
143 |             .responseDecodable(of: T.self, decoder: config.jsonDecoder, emptyResponseCodes: Set(200..<300)) { response in
144 |                 completion(response.result.mapError{ $0 })
    |                 `- warning: capture of non-sendable type 'T.Type' in an isolated closure
145 |         }
146 |     }
/host/spi-builder-workspace/Sources/RestBird/Alamofire/AlamofireSessionManager.swift:78:9: warning: capture of non-sendable type 'T.Type' in an isolated closure
 76 |         request: Request,
 77 |         uploadProgress: ((Progress) -> Void)?,
 78 |         completion: @escaping (Swift.Result<T, Error>) -> Void
    |         `- warning: capture of non-sendable type 'T.Type' in an isolated closure
 79 |     ) where Request : MultipartRequest, T : Decodable {
 80 |         // We need to observe when `uploadRequest` gets set as in case of `.multipart` this will be set later, in `encodingCompletion` and we can't call these methods right after `sessionManager.upload` as `uploadRequest` will be nil at that point.
Build complete! (32.62s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "alamofire",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "5.4.0",
            "upper_bound" : "6.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Alamofire/Alamofire.git"
    }
  ],
  "manifest_display_name" : "RestBird",
  "name" : "RestBird",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.12"
    },
    {
      "name" : "ios",
      "version" : "10.0"
    }
  ],
  "products" : [
    {
      "name" : "RestBird",
      "targets" : [
        "RestBird"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RestBirdTests",
      "module_type" : "SwiftTarget",
      "name" : "RestBirdTests",
      "path" : "Tests/RestBirdTests",
      "sources" : [
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "RestBird"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RestBird",
      "module_type" : "SwiftTarget",
      "name" : "RestBird",
      "path" : "Sources/RestBird",
      "product_dependencies" : [
        "Alamofire"
      ],
      "product_memberships" : [
        "RestBird"
      ],
      "sources" : [
        "Alamofire/AlamofireSessionManager.swift",
        "Alamofire/Request+Alamofire.swift",
        "Client/NetworkClient.swift",
        "HTTPMethod.swift",
        "Middleware.swift",
        "Request/DataRequest.swift",
        "Request/EmptyResponse.swift",
        "Request/MultipartRequest.swift",
        "Request/ParameterEncoding.swift",
        "Request/Request.swift",
        "RestBird.swift",
        "Session/SessionManager.swift",
        "Utility/Data+Codable.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
android-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:b7c4a6b4153ff40ef9277e2157e708f835b8eb011095d53bd8db4594eb2b7798
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.2-latest
Done.