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.40.1 (485880), with Swift 6.1 for macOS (SPM) on 5 Jun 2025 10:00:40 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: 0.40.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/tuist/noora
 * tag               0.40.1     -> FETCH_HEAD
HEAD is now at 4858805 [Release] Noora CLI 0.40.1
Cloned https://github.com/tuist/noora.git
Revision (git rev-parse @):
4858805eccada342572f7ccb0c5e4d78135c51f2
SUCCESS checkout https://github.com/tuist/noora.git at 0.40.1
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/348] Fetching path
[349/1544] Fetching path, rainbow
Fetched https://github.com/onevcat/Rainbow from cache (1.11s)
Fetched https://github.com/tuist/path from cache (1.11s)
Fetched https://github.com/apple/swift-log from cache (1.11s)
Fetched https://github.com/apple/swift-argument-parser from cache (1.12s)
Computing version for https://github.com/tuist/path
Computed https://github.com/tuist/path at 0.3.8 (4.52s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.6.3 (0.52s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.1 (0.54s)
Computing version for https://github.com/onevcat/Rainbow
Computed https://github.com/onevcat/Rainbow at 4.1.0 (2.51s)
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/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
========================================
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/11695] Fetching noora
Fetched https://github.com/tuist/noora.git from cache (12.47s)
Fetching https://github.com/onevcat/Rainbow from cache
Fetching https://github.com/apple/swift-argument-parser from cache
Fetching https://github.com/tuist/path from cache
Fetching https://github.com/apple/swift-log from cache
Fetched https://github.com/onevcat/Rainbow from cache (0.54s)
Fetched https://github.com/apple/swift-argument-parser from cache (0.55s)
Fetched https://github.com/tuist/path from cache (0.58s)
Fetched https://github.com/apple/swift-log from cache (0.59s)
Computing version for https://github.com/tuist/path
Computed https://github.com/tuist/path at 0.3.8 (0.64s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.6.3 (0.02s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.1 (0.04s)
Computing version for https://github.com/onevcat/Rainbow
Computed https://github.com/onevcat/Rainbow at 4.1.0 (0.02s)
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/tuist/noora.git
Working copy of https://github.com/tuist/noora.git resolved at 0.40.1 (4858805)
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-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
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
[4/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 Logging.swift
[16/74] Compiling Logging LogHandler.swift
[17/74] Emitting module Logging
[18/74] Compiling Logging MetadataProvider.swift
[19/74] Compiling Logging Locks.swift
[20/74] Compiling ArgumentParser InputOrigin.swift
[21/74] Compiling ArgumentParser Name.swift
[22/74] Compiling ArgumentParser Parsed.swift
[23/74] Compiling ArgumentParser ParsedValues.swift
[24/78] Compiling ArgumentParser NameSpecification.swift
[25/78] Compiling ArgumentParser Option.swift
[26/78] Compiling ArgumentParser OptionGroup.swift
[27/78] Compiling ArgumentParser AsyncParsableCommand.swift
[28/78] Compiling Rainbow StringGenerator.swift
[29/79] Compiling ArgumentParser CommandConfiguration.swift
[30/79] Compiling ArgumentParser CommandGroup.swift
[31/79] Compiling ArgumentParser EnumerableFlag.swift
[32/79] Compiling ArgumentParser ExpressibleByArgument.swift
[33/79] Compiling Rainbow Style.swift
[34/79] Emitting module ArgumentParser
[35/79] Compiling Rainbow String+Rainbow.swift
[36/79] Compiling ArgumentParser Platform.swift
[37/79] Compiling ArgumentParser SequenceExtensions.swift
[38/79] Compiling ArgumentParser StringExtensions.swift
[39/79] Compiling ArgumentParser Tree.swift
[40/79] Compiling ArgumentParser BashCompletionsGenerator.swift
[41/79] Compiling ArgumentParser CompletionsGenerator.swift
[42/79] Compiling ArgumentParser FishCompletionsGenerator.swift
[43/79] Compiling ArgumentParser ZshCompletionsGenerator.swift
[44/79] Compiling ArgumentParser Argument.swift
[45/79] Compiling ArgumentParser ParsableArguments.swift
[46/79] Compiling ArgumentParser ParsableArgumentsValidation.swift
[47/79] Compiling ArgumentParser ParsableCommand.swift
[48/79] Compiling ArgumentParser ArgumentDecoder.swift
[49/79] Emitting module Rainbow
[52/79] Compiling Rainbow Color.swift
[53/79] Compiling Rainbow ControlCode.swift
[54/79] Compiling Rainbow ColorApproximation.swift
[55/79] Compiling Rainbow ModesExtractor.swift
[56/79] Compiling Rainbow OutputTarget.swift
[57/79] Compiling Rainbow Rainbow.swift
[58/79] Compiling ArgumentParser ParserError.swift
[59/79] Compiling ArgumentParser SplitArguments.swift
[60/79] Compiling ArgumentParser DumpHelpGenerator.swift
[61/79] Compiling ArgumentParser HelpCommand.swift
[62/79] Compiling ArgumentParser ArgumentDefinition.swift
[63/79] Compiling ArgumentParser ArgumentSet.swift
[64/79] Compiling ArgumentParser CommandParser.swift
[65/79] Compiling ArgumentParser InputKey.swift
[66/79] Compiling ArgumentParser ArgumentHelp.swift
[67/79] Compiling ArgumentParser ArgumentVisibility.swift
[68/79] Compiling ArgumentParser CompletionKind.swift
[69/79] Compiling ArgumentParser Errors.swift
[70/79] Compiling ArgumentParser Flag.swift
[71/79] Compiling ArgumentParser HelpGenerator.swift
[72/79] Compiling ArgumentParser MessageInfo.swift
[73/79] Compiling ArgumentParser UsageGenerator.swift
[74/79] Compiling ArgumentParser CollectionExtensions.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 ValidatableRule.swift
[77/108] Compiling Noora ValidationError.swift
[78/108] Compiling Noora InputValidating.swift
[79/108] Compiling Noora YesOrNoChoicePrompt.swift
[80/108] Compiling Noora Stack.swift
[81/108] Compiling Noora Character+isPrintable.swift
[82/108] Compiling Noora LengthValidationRule.swift
[83/108] Compiling Noora NonEmptyValidationRule.swift
[84/108] Compiling Noora RegexValidationRule.swift
[85/108] Compiling Noora Validator.swift
[86/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
[87/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
[88/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
[89/108] Compiling Noora Alert.swift
[90/108] Compiling Noora CollapsibleStep.swift
[91/108] Compiling Noora ProgressBarStep.swift
[92/108] Compiling Noora ProgressStep.swift
[93/108] Compiling Noora SingleChoicePrompt.swift
[94/108] Compiling Noora TextPrompt.swift
[95/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",
[96/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",
[97/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",
[98/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()
[99/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()
[100/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()
[101/108] Compiling Noora String+Rainbow.swift
[102/108] Compiling Noora String+ValidatableError.swift
[103/108] Compiling Noora Noora.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 ProgressStepCommand.swift
[110/118] Compiling examples_cli FormatCommand.swift
[111/118] Compiling examples_cli ProgressBarStepCommand.swift
[112/118] Compiling examples_cli CollapsibleStepCommand.swift
[113/118] Compiling examples_cli AlertCommand.swift
[114/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",
[115/118] Emitting module examples_cli
[115/118] Write Objects.LinkFileList
[116/118] Linking examples-cli
[117/118] Applying examples-cli
Build complete! (11.51s)
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.