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 main (8207b4), with Swift 6.1 for macOS (SPM) on 15 Jun 2025 22:41:39 UTC.

Swift 6 data race errors: 1

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tuist/noora.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/tuist/noora
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 8207b42 chore(deps): update dependency timex to v3.7.13 (#325)
Cloned https://github.com/tuist/noora.git
Revision (git rev-parse @):
8207b42065fb13ec658370ac545e1c35d0563824
SUCCESS checkout https://github.com/tuist/noora.git at main
Fetching https://github.com/onevcat/Rainbow
Fetching https://github.com/tuist/path
Fetching https://github.com/apple/swift-log from cache
Fetching https://github.com/apple/swift-argument-parser from cache
[1/354] Fetching path
[111/1550] Fetching path, rainbow
Fetched https://github.com/onevcat/Rainbow from cache (0.93s)
Fetched https://github.com/tuist/path from cache (0.93s)
Fetched https://github.com/apple/swift-log from cache (0.93s)
Fetched https://github.com/apple/swift-argument-parser from cache (1.06s)
Computing version for https://github.com/tuist/path
Computed https://github.com/tuist/path at 0.3.8 (4.27s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.6.3 (0.50s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.1 (0.53s)
Computing version for https://github.com/onevcat/Rainbow
Computed https://github.com/onevcat/Rainbow at 4.1.0 (2.59s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.5.1
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.6.3
Creating working copy for https://github.com/onevcat/Rainbow
Working copy of https://github.com/onevcat/Rainbow resolved at 4.1.0
Creating working copy for https://github.com/tuist/path
Working copy of https://github.com/tuist/path resolved at 0.3.8
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "noora",
      "name": "Noora",
      "url": "https://github.com/tuist/noora.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/noora",
      "dependencies": [
        {
          "identity": "rainbow",
          "name": "Rainbow",
          "url": "https://github.com/onevcat/Rainbow",
          "version": "4.1.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Rainbow",
          "dependencies": [
          ]
        },
        {
          "identity": "swift-argument-parser",
          "name": "swift-argument-parser",
          "url": "https://github.com/apple/swift-argument-parser",
          "version": "1.5.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-argument-parser",
          "dependencies": [
          ]
        },
        {
          "identity": "swift-log",
          "name": "swift-log",
          "url": "https://github.com/apple/swift-log",
          "version": "1.6.3",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-log",
          "dependencies": [
          ]
        },
        {
          "identity": "path",
          "name": "Path",
          "url": "https://github.com/tuist/path",
          "version": "0.3.8",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/path",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/tuist/noora.git
[1/11801] Fetching noora
Fetched https://github.com/tuist/noora.git from cache (2.74s)
Fetching https://github.com/apple/swift-log from cache
Fetching https://github.com/apple/swift-argument-parser from cache
Fetching https://github.com/tuist/path from cache
Fetching https://github.com/onevcat/Rainbow from cache
Fetched https://github.com/apple/swift-log from cache (0.50s)
Fetched https://github.com/onevcat/Rainbow from cache (0.52s)
Fetched https://github.com/tuist/path from cache (0.52s)
Fetched https://github.com/apple/swift-argument-parser from cache (0.53s)
Computing version for https://github.com/tuist/path
Computed https://github.com/tuist/path at 0.3.8 (0.59s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.6.3 (0.03s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.1 (0.05s)
Computing version for https://github.com/onevcat/Rainbow
Computed https://github.com/onevcat/Rainbow at 4.1.0 (0.03s)
Creating working copy for https://github.com/tuist/noora.git
Working copy of https://github.com/tuist/noora.git resolved at main (8207b42)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.5.1
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/onevcat/Rainbow
Working copy of https://github.com/onevcat/Rainbow resolved at 4.1.0
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.6.3
Found 4 product dependencies
  - Rainbow
  - swift-argument-parser
  - swift-log
  - Path
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/tuist/noora.git
https://github.com/tuist/noora.git
{
  "dependencies" : [
    {
      "identity" : "rainbow",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.1.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/onevcat/Rainbow"
    },
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.6.3",
            "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" : "/Users/admin/builder/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/ProgressBarStepCommand.swift",
        "Commands/ProgressStepCommand.swift",
        "Commands/SingleChoicePromptCommand.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/ProgressBarStepTests.swift",
        "Components/ProgressStepTests.swift",
        "Components/SingleChoicePromptTests.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/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/ProgressBarStep.swift",
        "Components/ProgressStep.swift",
        "Components/SingleChoicePrompt.swift",
        "Components/TextPrompt.swift",
        "Components/YesOrNoChoicePrompt.swift",
        "DataStructures/Stack.swift",
        "Extensions/Character+isPrintable.swift",
        "Extensions/String+Rainbow.swift",
        "Extensions/String+ValidatableError.swift",
        "Noora.swift",
        "NooraMock.swift",
        "Theme.swift",
        "Utilities/KeyStrokeListener.swift",
        "Utilities/Renderer.swift",
        "Utilities/Spinner.swift",
        "Utilities/StandardPipelines.swift",
        "Utilities/Terminal.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"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
[1/1] Compiling plugin GenerateManual
Building for debugging...
[1/15] Write sources
[3/15] Write examples-cli-entitlement.plist
[6/15] Write sources
[9/15] Write swift-version-2F0A5646E1D333AE.txt
[11/35] Emitting module ArgumentParserToolInfo
[12/35] Compiling ArgumentParserToolInfo ToolInfo.swift
[13/35] Emitting module Path
[14/35] Compiling Path Path.swift
[15/74] Compiling Logging Locks.swift
[16/74] Compiling Logging MetadataProvider.swift
[17/74] Emitting module Logging
[18/74] Compiling Logging LogHandler.swift
[19/74] Compiling Logging Logging.swift
[20/74] Compiling Rainbow StringGenerator.swift
[21/75] Compiling Rainbow String+Rainbow.swift
[22/75] Compiling Rainbow Style.swift
[23/75] Compiling ArgumentParser InputOrigin.swift
[24/75] Compiling ArgumentParser Name.swift
[25/75] Compiling ArgumentParser Parsed.swift
[26/75] Compiling ArgumentParser ParsedValues.swift
[27/79] Compiling ArgumentParser BashCompletionsGenerator.swift
[28/79] Compiling ArgumentParser CompletionsGenerator.swift
[29/79] Compiling ArgumentParser FishCompletionsGenerator.swift
[30/79] Compiling ArgumentParser ZshCompletionsGenerator.swift
[31/79] Compiling ArgumentParser Argument.swift
[32/79] Compiling ArgumentParser ArgumentHelp.swift
[33/79] Compiling ArgumentParser ArgumentVisibility.swift
[34/79] Compiling ArgumentParser CompletionKind.swift
[35/79] Compiling ArgumentParser Errors.swift
[36/79] Compiling ArgumentParser Flag.swift
[37/79] Compiling ArgumentParser Platform.swift
[38/79] Compiling ArgumentParser SequenceExtensions.swift
[39/79] Compiling ArgumentParser StringExtensions.swift
[40/79] Compiling ArgumentParser Tree.swift
[41/79] Compiling ArgumentParser CommandConfiguration.swift
[42/79] Compiling ArgumentParser CommandGroup.swift
[43/79] Compiling ArgumentParser EnumerableFlag.swift
[44/79] Compiling ArgumentParser ExpressibleByArgument.swift
[45/79] Compiling ArgumentParser ArgumentDefinition.swift
[46/79] Compiling ArgumentParser ArgumentSet.swift
[47/79] Compiling ArgumentParser CommandParser.swift
[48/79] Compiling ArgumentParser InputKey.swift
[49/79] Compiling Rainbow ModesExtractor.swift
[50/79] Compiling Rainbow ControlCode.swift
[51/79] Compiling Rainbow ColorApproximation.swift
[52/79] Compiling Rainbow Color.swift
[55/79] Compiling Rainbow OutputTarget.swift
[56/79] Compiling Rainbow Rainbow.swift
[57/79] Emitting module Rainbow
[58/79] Compiling ArgumentParser NameSpecification.swift
[59/79] Compiling ArgumentParser Option.swift
[60/79] Compiling ArgumentParser OptionGroup.swift
[61/79] Compiling ArgumentParser AsyncParsableCommand.swift
[62/79] Compiling ArgumentParser ParserError.swift
[63/79] Compiling ArgumentParser SplitArguments.swift
[64/79] Compiling ArgumentParser DumpHelpGenerator.swift
[65/79] Compiling ArgumentParser HelpCommand.swift
[66/79] Emitting module ArgumentParser
[67/79] Compiling ArgumentParser HelpGenerator.swift
[68/79] Compiling ArgumentParser MessageInfo.swift
[69/79] Compiling ArgumentParser UsageGenerator.swift
[70/79] Compiling ArgumentParser CollectionExtensions.swift
[71/79] Compiling ArgumentParser ParsableArguments.swift
[72/79] Compiling ArgumentParser ParsableArgumentsValidation.swift
[73/79] Compiling ArgumentParser ParsableCommand.swift
[74/79] Compiling ArgumentParser ArgumentDecoder.swift
[75/106] Emitting module Noora
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Theme.swift:7:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 5 | public struct Theme {
 6 |     /// Noora's default theme.
 7 |     public static var `default` = Theme(
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |         primary: "A378F2",
 9 |         secondary: "FF4081",
[76/108] Compiling Noora RegexValidationRule.swift
[77/108] Compiling Noora Validator.swift
[78/108] Compiling Noora Terminal.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/TerminalText.swift:43:17: warning: immutable value 'href' was never used; consider replacing with '_' or removing it
 41 |             case let .link(
 42 |                 title,
 43 |                 href
    |                 `- warning: immutable value 'href' was never used; consider replacing with '_' or removing it
 44 |             ): "(\(title))"
 45 |             case let .primary(primary): primary
[79/108] Compiling Noora TerminalText.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/TerminalText.swift:43:17: warning: immutable value 'href' was never used; consider replacing with '_' or removing it
 41 |             case let .link(
 42 |                 title,
 43 |                 href
    |                 `- warning: immutable value 'href' was never used; consider replacing with '_' or removing it
 44 |             ): "(\(title))"
 45 |             case let .primary(primary): primary
[80/108] Compiling Noora ValidatableError.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/TerminalText.swift:43:17: warning: immutable value 'href' was never used; consider replacing with '_' or removing it
 41 |             case let .link(
 42 |                 title,
 43 |                 href
    |                 `- warning: immutable value 'href' was never used; consider replacing with '_' or removing it
 44 |             ): "(\(title))"
 45 |             case let .primary(primary): primary
[81/108] Compiling Noora ValidatableRule.swift
[82/108] Compiling Noora ValidationError.swift
[83/108] Compiling Noora InputValidating.swift
[84/108] Compiling Noora LengthValidationRule.swift
[85/108] Compiling Noora NonEmptyValidationRule.swift
[86/108] Compiling Noora Renderer.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:32:13: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
30 |
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
   |             `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:33:20: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
   |                    `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code
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
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code
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
36 |                 } else {
37 |                     self.timer?.invalidate()
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code
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
36 |                 } else {
37 |                     self.timer?.invalidate()
[87/108] Compiling Noora Spinner.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:32:13: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
30 |
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
   |             `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:33:20: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
   |                    `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code
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
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code
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
36 |                 } else {
37 |                     self.timer?.invalidate()
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code
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
36 |                 } else {
37 |                     self.timer?.invalidate()
[88/108] Compiling Noora StandardPipelines.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:32:13: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
30 |
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
   |             `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:33:20: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
   |                    `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code
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
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code
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
36 |                 } else {
37 |                     self.timer?.invalidate()
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code
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
36 |                 } else {
37 |                     self.timer?.invalidate()
[89/108] Compiling Noora String+Rainbow.swift
[90/108] Compiling Noora String+ValidatableError.swift
[91/108] Compiling Noora Noora.swift
[92/108] Compiling Noora NooraMock.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Theme.swift:7:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 5 | public struct Theme {
 6 |     /// Noora's default theme.
 7 |     public static var `default` = Theme(
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |         primary: "A378F2",
 9 |         secondary: "FF4081",
[93/108] Compiling Noora Theme.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Theme.swift:7:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 5 | public struct Theme {
 6 |     /// Noora's default theme.
 7 |     public static var `default` = Theme(
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |         primary: "A378F2",
 9 |         secondary: "FF4081",
[94/108] Compiling Noora KeyStrokeListener.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Theme.swift:7:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 5 | public struct Theme {
 6 |     /// Noora's default theme.
 7 |     public static var `default` = Theme(
   |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |         primary: "A378F2",
 9 |         secondary: "FF4081",
[95/108] Compiling Noora YesOrNoChoicePrompt.swift
[96/108] Compiling Noora Stack.swift
[97/108] Compiling Noora Character+isPrintable.swift
[98/108] Compiling Noora ProgressStep.swift
[99/108] Compiling Noora SingleChoicePrompt.swift
[100/108] Compiling Noora TextPrompt.swift
[101/108] Compiling Noora Alert.swift
[102/108] Compiling Noora CollapsibleStep.swift
[103/108] Compiling Noora ProgressBarStep.swift
[103/108] Write Objects.LinkFileList
/Applications/Xcode-16.3.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: warning duplicate member name 'String+Rainbow.swift.o' from '/Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/Noora.build/String+Rainbow.swift.o(String+Rainbow.swift.o)' and '/Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/Rainbow.build/String+Rainbow.swift.o(String+Rainbow.swift.o)'
[104/108] Archiving libNoora.a
[106/118] Compiling examples_cli ExamplesCLI.swift
[107/118] Compiling examples_cli TextPromptCommand.swift
[108/118] Compiling examples_cli YesOrNoChoicePromptCommand.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/examples-cli/Commands/YesOrNoChoicePromptCommand.swift:12:41: warning: reference to static property 'default' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
10 |
11 |     func run() async throws {
12 |         let answer = Noora(theme: Theme.default).yesOrNoChoicePrompt(
   |                                         `- warning: reference to static property 'default' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
13 |             title: "Authentication",
14 |             question: "Would you like to authenticate with Tuist?",
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Theme.swift:7:23: note: static property declared here
 5 | public struct Theme {
 6 |     /// Noora's default theme.
 7 |     public static var `default` = Theme(
   |                       `- note: static property declared here
 8 |         primary: "A378F2",
 9 |         secondary: "FF4081",
[109/118] Compiling examples_cli CollapsibleStepCommand.swift
[110/118] Compiling examples_cli AlertCommand.swift
[111/118] Emitting module examples_cli
[112/118] Compiling examples_cli FormatCommand.swift
[113/118] Compiling examples_cli SingleChoicePromptCommand.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/examples-cli/Commands/SingleChoicePromptCommand.swift:31:59: warning: reference to static property 'default' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 |
30 |     func run() async throws {
31 |         let selection: ProjectOption = Noora(theme: Theme.default).singleChoicePrompt(
   |                                                           `- warning: reference to static property 'default' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 |             title: "Project",
33 |             question: "Would you like to create a new Tuist project or use an existing Xcode project?",
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Theme.swift:7:23: note: static property declared here
 5 | public struct Theme {
 6 |     /// Noora's default theme.
 7 |     public static var `default` = Theme(
   |                       `- note: static property declared here
 8 |         primary: "A378F2",
 9 |         secondary: "FF4081",
[114/118] Compiling examples_cli ProgressBarStepCommand.swift
[115/118] Compiling examples_cli ProgressStepCommand.swift
[115/118] Write Objects.LinkFileList
[116/118] Linking examples-cli
[117/118] Applying examples-cli
Build complete! (10.33s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "rainbow",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.1.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/onevcat/Rainbow"
    },
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.6.3",
            "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" : "/Users/admin/builder/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/ProgressBarStepCommand.swift",
        "Commands/ProgressStepCommand.swift",
        "Commands/SingleChoicePromptCommand.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/ProgressBarStepTests.swift",
        "Components/ProgressStepTests.swift",
        "Components/SingleChoicePromptTests.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/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/ProgressBarStep.swift",
        "Components/ProgressStep.swift",
        "Components/SingleChoicePrompt.swift",
        "Components/TextPrompt.swift",
        "Components/YesOrNoChoicePrompt.swift",
        "DataStructures/Stack.swift",
        "Extensions/Character+isPrintable.swift",
        "Extensions/String+Rainbow.swift",
        "Extensions/String+ValidatableError.swift",
        "Noora.swift",
        "NooraMock.swift",
        "Theme.swift",
        "Utilities/KeyStrokeListener.swift",
        "Utilities/Renderer.swift",
        "Utilities/Spinner.swift",
        "Utilities/StandardPipelines.swift",
        "Utilities/Terminal.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"
}
Done.