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 Noora, reference 0.51.3 (99d3be), with Swift 6.2 for Linux on 5 Dec 2025 18:08:37 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/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:basic-6.2-latest swift build --triple x86_64-unknown-linux-gnu 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tuist/noora.git
Reference: 0.51.3
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/tuist/noora
 * tag               0.51.3     -> FETCH_HEAD
HEAD is now at 99d3bef [Release] Noora CLI 0.51.3
Cloned https://github.com/tuist/noora.git
Revision (git rev-parse @):
99d3bef655819d530ad467c017ae4ff7db27b0a3
SUCCESS checkout https://github.com/tuist/noora.git at 0.51.3
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.2
Building package at path:  $PWD
https://github.com/tuist/noora.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/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:basic-6.2-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:36dcf51aceebb7518dd97346bbe30fd556b23ffe7a4d72d70473700580e8e541
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.2-latest
Fetching https://github.com/onevcat/Rainbow
Fetching https://github.com/apple/swift-log
Fetching https://github.com/apple/swift-argument-parser
Fetching https://github.com/tuist/path
[1/1339] Fetching rainbow
[42/1720] Fetching rainbow, path
[1721/7429] Fetching rainbow, path, swift-log
[1836/24306] Fetching rainbow, path, swift-log, swift-argument-parser
Fetched https://github.com/tuist/path from cache (0.46s)
[2363/23925] Fetching rainbow, swift-log, swift-argument-parser
Fetched https://github.com/apple/swift-log from cache (0.85s)
[10284/18216] Fetching rainbow, swift-argument-parser
Fetched https://github.com/onevcat/Rainbow from cache (1.88s)
Fetched https://github.com/apple/swift-argument-parser from cache (1.90s)
Computing version for https://github.com/tuist/path
Computed https://github.com/tuist/path at 0.3.8 (5.08s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.7.1 (0.42s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.6.2 (0.38s)
Computing version for https://github.com/onevcat/Rainbow
Computed https://github.com/onevcat/Rainbow at 4.2.0 (3.12s)
Creating working copy for https://github.com/onevcat/Rainbow
Working copy of https://github.com/onevcat/Rainbow resolved at 4.2.0
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.6.2
Creating working copy for https://github.com/tuist/path
Working copy of https://github.com/tuist/path resolved at 0.3.8
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.7.1
[1/1] Compiling plugin GenerateManual
[2/2] Compiling plugin GenerateDoccReference
Building for debugging...
[2/21] Write sources
[9/21] Write swift-version-24593BA9C3E375BF.txt
[11/45] Emitting module Logging
[12/45] Compiling Rainbow StringGenerator.swift
[13/45] Compiling Rainbow Style.swift
[14/46] Compiling Logging LogHandler.swift
[15/46] Compiling Rainbow String+ConditionalStyling.swift
[16/46] Compiling Rainbow String+Rainbow.swift
[17/46] Emitting module ArgumentParserToolInfo
[18/46] Compiling ArgumentParserToolInfo ToolInfo.swift
[20/47] Compiling Path Path.swift
[21/47] Emitting module Path
[22/48] Wrapping AST for Path for debugging
[23/56] Wrapping AST for ArgumentParserToolInfo for debugging
[25/92] Compiling Logging MetadataProvider.swift
[26/92] Compiling Logging Locks.swift
[27/92] Compiling ArgumentParser Argument.swift
[28/92] Compiling ArgumentParser ArgumentDiscussion.swift
[29/92] Compiling ArgumentParser ArgumentHelp.swift
[30/92] Compiling ArgumentParser ArgumentVisibility.swift
[31/92] Compiling ArgumentParser CompletionKind.swift
[32/92] Compiling ArgumentParser Errors.swift
[33/92] Compiling ArgumentParser BashCompletionsGenerator.swift
[34/92] Compiling ArgumentParser CompletionsGenerator.swift
[35/92] Emitting module Rainbow
[36/92] Compiling ArgumentParser FishCompletionsGenerator.swift
[37/92] Compiling ArgumentParser ZshCompletionsGenerator.swift
[38/92] Compiling Rainbow StyledStringBuilder.swift
[40/93] Compiling Logging Logging.swift
[41/94] Wrapping AST for Rainbow for debugging
[42/94] Wrapping AST for Logging for debugging
[44/130] Compiling Noora TerminalText.swift
[45/130] Compiling Noora ValidatableError.swift
[46/130] Compiling Noora ValidatableRule.swift
[47/130] Compiling Noora ValidationError.swift
[48/130] Compiling Noora InputValidating.swift
[49/134] Emitting module Noora
[50/134] Compiling Noora Theme.swift
[51/134] Compiling Noora KeyStrokeListener.swift
[52/134] Compiling Noora Content.swift
[53/134] Compiling Noora Stack.swift
[54/134] Compiling Noora Character+isPrintable.swift
[55/134] Compiling Noora String+Rainbow.swift
[56/140] Compiling Noora Renderer.swift
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                                          `- warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                     `- warning: mutation of captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
36 |                 } else {
37 |                     self.timer?.invalidate()
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                              `- warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
36 |                 } else {
37 |                     self.timer?.invalidate()
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[57/140] Compiling Noora Spinner.swift
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                                          `- warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                     `- warning: mutation of captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
36 |                 } else {
37 |                     self.timer?.invalidate()
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                              `- warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
36 |                 } else {
37 |                     self.timer?.invalidate()
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[58/140] Compiling Noora StandardPipelines.swift
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                                          `- warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                     `- warning: mutation of captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
36 |                 } else {
37 |                     self.timer?.invalidate()
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                              `- warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
36 |                 } else {
37 |                     self.timer?.invalidate()
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[59/140] Compiling Noora Terminal.swift
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                                          `- warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                     `- warning: mutation of captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
36 |                 } else {
37 |                     self.timer?.invalidate()
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                              `- warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
36 |                 } else {
37 |                     self.timer?.invalidate()
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[60/140] Compiling Noora TerminalText+DisplayWidth.swift
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                                          `- warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                     `- warning: mutation of captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
36 |                 } else {
37 |                     self.timer?.invalidate()
/host/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                              `- warning: reference to captured var 'index' in concurrently-executing code; this is an error in the Swift 6 language mode [#SendableClosureCaptures]
36 |                 } else {
37 |                     self.timer?.invalidate()
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[61/140] Compiling Noora LengthValidationRule.swift
[62/140] Compiling Noora NonEmptyValidationRule.swift
[63/140] Compiling Noora RegexValidationRule.swift
[64/140] Compiling Noora Validator.swift
[67/140] Compiling ArgumentParser Name.swift
[68/140] Compiling ArgumentParser Parsed.swift
[69/140] Compiling ArgumentParser ParsedValues.swift
[70/140] Compiling ArgumentParser ParserError.swift
[71/140] Compiling Noora TableData.swift
[72/140] Compiling Noora TableRenderer.swift
[73/140] Compiling Noora TableStyle.swift
[74/140] Compiling Noora TextPrompt.swift
[75/140] Compiling Noora YesOrNoChoicePrompt.swift
[76/140] Compiling Noora CollapsibleStep.swift
[77/140] Compiling Noora MultipleChoicePrompt.swift
[78/140] Compiling Noora ProgressBarStep.swift
[79/140] Compiling Noora ProgressStep.swift
[82/140] Compiling Noora SingleChoicePrompt.swift
[83/140] Compiling Noora PaginatedTable.swift
[84/140] Compiling Noora SelectableTable.swift
[85/140] Compiling Noora Table.swift
[86/140] Compiling Noora TableColumn.swift
[91/140] Compiling Noora String+ValidatableError.swift
[92/140] Compiling Noora Noora.swift
[93/140] Compiling Noora NooraMock.swift
[94/140] Compiling Noora StandardPipelineType.swift
[97/140] Compiling ArgumentParser Tree.swift
[98/140] Compiling ArgumentParser CodingKeyValidator.swift
[99/140] Compiling ArgumentParser NonsenseFlagsValidator.swift
[100/140] Compiling ArgumentParser ParsableArgumentsValidation.swift
[101/140] Compiling ArgumentParser PositionalArgumentsValidator.swift
[102/140] Compiling ArgumentParser UniqueNamesValidator.swift
[103/140] Compiling Noora Alert.swift
[116/141] Emitting module ArgumentParser
[122/141] Wrapping AST for Noora for debugging
[123/141] Write Objects.LinkFileList
[124/141] Archiving libNoora.a
[138/142] Wrapping AST for ArgumentParser for debugging
[140/154] Compiling examples_cli YesOrNoChoicePromptCommand.swift
[141/155] Compiling examples_cli TextPromptCommand.swift
[142/155] Compiling examples_cli ExamplesCLI.swift
[143/155] Compiling examples_cli TableCommand.swift
[144/155] Compiling examples_cli FormatCommand.swift
[145/155] Compiling examples_cli InfoCommand.swift
[146/155] Compiling examples_cli ProgressStepCommand.swift
[147/155] Compiling examples_cli SingleChoicePromptCommand.swift
[148/155] Compiling examples_cli AlertCommand.swift
[149/155] Compiling examples_cli CollapsibleStepCommand.swift
[150/155] Compiling examples_cli MultipleChoicePromptCommand.swift
[151/155] Compiling examples_cli ProgressBarStepCommand.swift
[152/155] Emitting module examples_cli
[153/156] Wrapping AST for examples-cli for debugging
[154/156] Write Objects.LinkFileList
[155/156] Linking examples-cli
Build complete! (36.66s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "rainbow",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.2.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/onevcat/Rainbow"
    },
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.6.2",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.7.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log"
    },
    {
      "identity" : "path",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.3.8",
            "upper_bound" : "0.4.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/tuist/path"
    }
  ],
  "manifest_display_name" : "Noora",
  "name" : "Noora",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "Noora",
      "targets" : [
        "Noora"
      ],
      "type" : {
        "library" : [
          "static"
        ]
      }
    },
    {
      "name" : "examples-cli",
      "targets" : [
        "examples-cli"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "examples_cli",
      "module_type" : "SwiftTarget",
      "name" : "examples-cli",
      "path" : "cli/Sources/examples-cli",
      "product_dependencies" : [
        "ArgumentParser"
      ],
      "product_memberships" : [
        "examples-cli"
      ],
      "sources" : [
        "Commands/AlertCommand.swift",
        "Commands/CollapsibleStepCommand.swift",
        "Commands/FormatCommand.swift",
        "Commands/InfoCommand.swift",
        "Commands/MultipleChoicePromptCommand.swift",
        "Commands/ProgressBarStepCommand.swift",
        "Commands/ProgressStepCommand.swift",
        "Commands/SingleChoicePromptCommand.swift",
        "Commands/TableCommand.swift",
        "Commands/TextPromptCommand.swift",
        "Commands/YesOrNoChoicePromptCommand.swift",
        "ExamplesCLI.swift"
      ],
      "target_dependencies" : [
        "Noora"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "NooraTests",
      "module_type" : "SwiftTarget",
      "name" : "NooraTests",
      "path" : "cli/Tests/NooraTests",
      "sources" : [
        "Components/CollapsibleStepTests.swift",
        "Components/CompletionTests.swift",
        "Components/MultipleChoicePromptTests.swift",
        "Components/NooraTests.swift",
        "Components/ProgressBarStepTests.swift",
        "Components/ProgressStepTests.swift",
        "Components/SingleChoicePromptTests.swift",
        "Components/TableTests.swift",
        "Components/TextPromptTests.swift",
        "Components/YesOrNoChoicePromptTests.swift",
        "Mocks/MockKeyStrokeListener.swift",
        "Mocks/MockRenderer.swift",
        "Mocks/MockSpinner.swift",
        "Mocks/MockStandardPipeline.swift",
        "Mocks/MockTerminal.swift",
        "Mocks/MockValidator.swift",
        "NooraTheme+Test.swift",
        "Utilities/DisplayWidthTests.swift",
        "Utilities/NooraMockTests.swift",
        "Utilities/TerminalTextTests.swift",
        "Validator/LengthValidationRuleTests.swift",
        "Validator/NonEmptyValidationRuleTests.swift",
        "Validator/RegexValidationRuleTests.swift",
        "Validator/ValidatorTests.swift"
      ],
      "target_dependencies" : [
        "Noora"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Noora",
      "module_type" : "SwiftTarget",
      "name" : "Noora",
      "path" : "cli/Sources/Noora",
      "product_dependencies" : [
        "Rainbow",
        "Logging",
        "Path"
      ],
      "product_memberships" : [
        "Noora",
        "examples-cli"
      ],
      "sources" : [
        "Components/Alert.swift",
        "Components/CollapsibleStep.swift",
        "Components/MultipleChoicePrompt.swift",
        "Components/ProgressBarStep.swift",
        "Components/ProgressStep.swift",
        "Components/SingleChoicePrompt.swift",
        "Components/Table/PaginatedTable.swift",
        "Components/Table/SelectableTable.swift",
        "Components/Table/Table.swift",
        "Components/Table/TableColumn.swift",
        "Components/Table/TableData.swift",
        "Components/Table/TableRenderer.swift",
        "Components/Table/TableStyle.swift",
        "Components/TextPrompt.swift",
        "Components/YesOrNoChoicePrompt.swift",
        "Content.swift",
        "DataStructures/Stack.swift",
        "Extensions/Character+isPrintable.swift",
        "Extensions/String+Rainbow.swift",
        "Extensions/String+ValidatableError.swift",
        "Noora.swift",
        "NooraMock.swift",
        "StandardPipelineType.swift",
        "Theme.swift",
        "Utilities/KeyStrokeListener.swift",
        "Utilities/Renderer.swift",
        "Utilities/Spinner.swift",
        "Utilities/StandardPipelines.swift",
        "Utilities/Terminal.swift",
        "Utilities/TerminalText+DisplayWidth.swift",
        "Utilities/TerminalText.swift",
        "Validator/Core/ValidatableError.swift",
        "Validator/Core/ValidatableRule.swift",
        "Validator/Core/ValidationError.swift",
        "Validator/InputValidating.swift",
        "Validator/Rules/LengthValidationRule.swift",
        "Validator/Rules/NonEmptyValidationRule.swift",
        "Validator/Rules/RegexValidationRule.swift",
        "Validator/Validator.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8.1"
}
basic-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:36dcf51aceebb7518dd97346bbe30fd556b23ffe7a4d72d70473700580e8e541
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.2-latest
Done.