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 Then, reference 7.0.2 (709112), with Swift 6.2 (beta) for Android on 21 Jun 2025 05:32:28 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/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/freshOS/then.git
Reference: 7.0.2
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/freshOS/then
 * tag               7.0.2      -> FETCH_HEAD
HEAD is now at 709112d Bumps to swift 5.9
Cloned https://github.com/freshOS/then.git
Revision (git rev-parse @):
709112d17ac9f61060b28c86d61d3f0f9b66c08a
SUCCESS checkout https://github.com/freshOS/then.git at 7.0.2
========================================
Build
========================================
Selected platform:         android
Swift version:             6.2
Building package at path:  $PWD
https://github.com/freshOS/then.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/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
Building for debugging...
[0/3] Write sources
[0/3] Copying PrivacyInfo.xcprivacy
[2/3] Write swift-version-8C5A4AE7A8CE2BA.txt
[4/30] Emitting module Then
[5/33] Compiling Then VoidPromise.swift
[6/33] Compiling Then WhenAll.swift
[7/33] Compiling Then resource_bundle_accessor.swift
[8/33] Compiling Then Async.swift
[9/33] Compiling Then Await+Operators.swift
[10/33] Compiling Then Await.swift
[11/33] Compiling Then Promise+Aliases.swift
[12/33] Compiling Then Promise+Zip.swift
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:34:21: warning: mutation of captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 32 |             p1.then { aT in
 33 |                 localQueue.async(flags: .barrier) {
 34 |                     t = aT
    |                     `- warning: mutation of captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 35 |                 }
 36 |                 }.onError { e in
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:38:25: warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 36 |                 }.onError { e in
 37 |                     localQueue.async(flags: .barrier) {
 38 |                         error = e
    |                         `- warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 39 |                     }
 40 |                 }.finally {
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:51:21: warning: mutation of captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 49 |             p2.then { aU in
 50 |                 localQueue.async(flags: .barrier) {
 51 |                     u = aU
    |                     `- warning: mutation of captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 52 |                 }
 53 |                 }.onError { e in
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:55:25: warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 53 |                 }.onError { e in
 54 |                     localQueue.async(flags: .barrier) {
 55 |                         error = e
    |                         `- warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 56 |                     }
 57 |                 }.finally {
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:68:28: warning: reference to captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 66 |         group.notify(queue: queue) {
 67 |             localQueue.async {
 68 |                 if let e = error {
    |                            `- warning: reference to captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 69 |                     p.reject(e)
 70 |                 } else {
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:71:32: warning: reference to captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 69 |                     p.reject(e)
 70 |                 } else {
 71 |                     p.fulfill((t, u))
    |                                `- warning: reference to captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 72 |                 }
 73 |             }
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:71:35: warning: reference to captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 69 |                     p.reject(e)
 70 |                 } else {
 71 |                     p.fulfill((t, u))
    |                                   `- warning: reference to captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 72 |                 }
 73 |             }
/host/spi-builder-workspace/Sources/Then/Promise.swift:60:34: warning: passing non-sendable parameter 'action' to function expecting a '@Sendable' closure
 57 |     }
 58 |
 59 |     private func _asynchronize(_ action: @escaping () -> Void) {
    |                                  `- note: parameter 'action' is implicitly non-sendable
 60 |         lockQueue.async(execute: action)
    |                                  `- warning: passing non-sendable parameter 'action' to function expecting a '@Sendable' closure
 61 |     }
 62 |
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[13/33] Compiling Then Promise+nil.swift
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:34:21: warning: mutation of captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 32 |             p1.then { aT in
 33 |                 localQueue.async(flags: .barrier) {
 34 |                     t = aT
    |                     `- warning: mutation of captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 35 |                 }
 36 |                 }.onError { e in
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:38:25: warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 36 |                 }.onError { e in
 37 |                     localQueue.async(flags: .barrier) {
 38 |                         error = e
    |                         `- warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 39 |                     }
 40 |                 }.finally {
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:51:21: warning: mutation of captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 49 |             p2.then { aU in
 50 |                 localQueue.async(flags: .barrier) {
 51 |                     u = aU
    |                     `- warning: mutation of captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 52 |                 }
 53 |                 }.onError { e in
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:55:25: warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 53 |                 }.onError { e in
 54 |                     localQueue.async(flags: .barrier) {
 55 |                         error = e
    |                         `- warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 56 |                     }
 57 |                 }.finally {
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:68:28: warning: reference to captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 66 |         group.notify(queue: queue) {
 67 |             localQueue.async {
 68 |                 if let e = error {
    |                            `- warning: reference to captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 69 |                     p.reject(e)
 70 |                 } else {
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:71:32: warning: reference to captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 69 |                     p.reject(e)
 70 |                 } else {
 71 |                     p.fulfill((t, u))
    |                                `- warning: reference to captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 72 |                 }
 73 |             }
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:71:35: warning: reference to captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 69 |                     p.reject(e)
 70 |                 } else {
 71 |                     p.fulfill((t, u))
    |                                   `- warning: reference to captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 72 |                 }
 73 |             }
/host/spi-builder-workspace/Sources/Then/Promise.swift:60:34: warning: passing non-sendable parameter 'action' to function expecting a '@Sendable' closure
 57 |     }
 58 |
 59 |     private func _asynchronize(_ action: @escaping () -> Void) {
    |                                  `- note: parameter 'action' is implicitly non-sendable
 60 |         lockQueue.async(execute: action)
    |                                  `- warning: passing non-sendable parameter 'action' to function expecting a '@Sendable' closure
 61 |     }
 62 |
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[14/33] Compiling Then Promise.swift
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:34:21: warning: mutation of captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 32 |             p1.then { aT in
 33 |                 localQueue.async(flags: .barrier) {
 34 |                     t = aT
    |                     `- warning: mutation of captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 35 |                 }
 36 |                 }.onError { e in
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:38:25: warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 36 |                 }.onError { e in
 37 |                     localQueue.async(flags: .barrier) {
 38 |                         error = e
    |                         `- warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 39 |                     }
 40 |                 }.finally {
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:51:21: warning: mutation of captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 49 |             p2.then { aU in
 50 |                 localQueue.async(flags: .barrier) {
 51 |                     u = aU
    |                     `- warning: mutation of captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 52 |                 }
 53 |                 }.onError { e in
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:55:25: warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 53 |                 }.onError { e in
 54 |                     localQueue.async(flags: .barrier) {
 55 |                         error = e
    |                         `- warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 56 |                     }
 57 |                 }.finally {
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:68:28: warning: reference to captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 66 |         group.notify(queue: queue) {
 67 |             localQueue.async {
 68 |                 if let e = error {
    |                            `- warning: reference to captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 69 |                     p.reject(e)
 70 |                 } else {
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:71:32: warning: reference to captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 69 |                     p.reject(e)
 70 |                 } else {
 71 |                     p.fulfill((t, u))
    |                                `- warning: reference to captured var 't' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 72 |                 }
 73 |             }
/host/spi-builder-workspace/Sources/Then/Promise+Zip.swift:71:35: warning: reference to captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 69 |                     p.reject(e)
 70 |                 } else {
 71 |                     p.fulfill((t, u))
    |                                   `- warning: reference to captured var 'u' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
 72 |                 }
 73 |             }
/host/spi-builder-workspace/Sources/Then/Promise.swift:60:34: warning: passing non-sendable parameter 'action' to function expecting a '@Sendable' closure
 57 |     }
 58 |
 59 |     private func _asynchronize(_ action: @escaping () -> Void) {
    |                                  `- note: parameter 'action' is implicitly non-sendable
 60 |         lockQueue.async(execute: action)
    |                                  `- warning: passing non-sendable parameter 'action' to function expecting a '@Sendable' closure
 61 |     }
 62 |
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[15/33] Compiling Then PromiseBlocks.swift
[16/33] Compiling Then PromiseError.swift
[17/33] Compiling Then PromiseState.swift
[18/33] Compiling Then Promise+Then.swift
[19/33] Compiling Then Promise+Timeout.swift
[20/33] Compiling Then Promise+Unwrap.swift
[21/33] Compiling Then Promise+Validate.swift
[22/33] Compiling Then Promise+Finally.swift
[23/33] Compiling Then Promise+First.swift
[24/33] Compiling Then Promise+Helpers.swift
[25/33] Compiling Then Promise+NoMatterWhat.swift
[26/33] Compiling Then Promise+BridgeError.swift
[27/33] Compiling Then Promise+Chain.swift
[28/33] Compiling Then Promise+Delay.swift
[29/33] Compiling Then Promise+Error.swift
[30/33] Compiling Then Promise+Progress.swift
[31/33] Compiling Then Promise+Race.swift
[32/33] Compiling Then Promise+Recover.swift
[33/33] Compiling Then Promise+Retry.swift
Build complete! (14.35s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Then",
  "name" : "Then",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "Then",
      "targets" : [
        "Then"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ThenTests",
      "module_type" : "SwiftTarget",
      "name" : "ThenTests",
      "path" : "Tests/ThenTests",
      "sources" : [
        "AsyncAwaitTests.swift",
        "BridgeErrorTests.swift",
        "ChainTests.swift",
        "DelayTests.swift",
        "FinallyTests.swift",
        "Helpers.swift",
        "MemoryTests.swift",
        "NoMatterWhatTests.swift",
        "OnErrorTests.swift",
        "ProgressTests.swift",
        "RaceTests.swift",
        "RecoverTests.swift",
        "RegisterThenTests.swift",
        "RetryTests.swift",
        "ThenTests.swift",
        "TimeoutTests.swift",
        "UnwrapTests.swift",
        "ValidateTests.swift",
        "WhenAllTests.swift",
        "ZipTests.swift"
      ],
      "target_dependencies" : [
        "Then"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Then",
      "module_type" : "SwiftTarget",
      "name" : "Then",
      "path" : "Sources",
      "product_memberships" : [
        "Then"
      ],
      "resources" : [
        {
          "path" : "/host/spi-builder-workspace/Sources/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Then/Async.swift",
        "Then/Await+Operators.swift",
        "Then/Await.swift",
        "Then/Promise+Aliases.swift",
        "Then/Promise+BridgeError.swift",
        "Then/Promise+Chain.swift",
        "Then/Promise+Delay.swift",
        "Then/Promise+Error.swift",
        "Then/Promise+Finally.swift",
        "Then/Promise+First.swift",
        "Then/Promise+Helpers.swift",
        "Then/Promise+NoMatterWhat.swift",
        "Then/Promise+Progress.swift",
        "Then/Promise+Race.swift",
        "Then/Promise+Recover.swift",
        "Then/Promise+Retry.swift",
        "Then/Promise+Then.swift",
        "Then/Promise+Timeout.swift",
        "Then/Promise+Unwrap.swift",
        "Then/Promise+Validate.swift",
        "Then/Promise+Zip.swift",
        "Then/Promise+nil.swift",
        "Then/Promise.swift",
        "Then/PromiseBlocks.swift",
        "Then/PromiseError.swift",
        "Then/PromiseState.swift",
        "Then/VoidPromise.swift",
        "Then/WhenAll.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
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.