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.49.1 (b49330), with Swift 6.1 for macOS (SPM) on 27 Aug 2025 21:53:26 UTC.

Swift 6 data race errors: 3

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.67.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tuist/noora.git
Reference: 0.49.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/tuist/noora
 * tag               0.49.1     -> FETCH_HEAD
HEAD is now at b493303 [Release] Noora CLI 0.49.1
Cloned https://github.com/tuist/noora.git
Revision (git rev-parse @):
b493303b36fb52611958f735e80f464e73699ba0
SUCCESS checkout https://github.com/tuist/noora.git at 0.49.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/1335] Fetching rainbow
[215/1704] Fetching rainbow, path
Fetched https://github.com/tuist/path from cache (0.74s)
[748/1335] Fetching rainbow
Fetched https://github.com/onevcat/Rainbow from cache (1.17s)
Fetched https://github.com/apple/swift-argument-parser from cache (1.20s)
Fetched https://github.com/apple/swift-log from cache (1.21s)
Computing version for https://github.com/tuist/path
Computed https://github.com/tuist/path at 0.3.8 (4.48s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.6.4 (0.51s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.6.1 (0.54s)
Computing version for https://github.com/onevcat/Rainbow
Computed https://github.com/onevcat/Rainbow at 4.2.0 (2.58s)
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.6.4
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.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.2.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.6.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.4",
          "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/13433] Fetching noora
Fetched https://github.com/tuist/noora.git from cache (3.32s)
Fetching https://github.com/apple/swift-argument-parser from cache
Fetching https://github.com/onevcat/Rainbow from cache
Fetching https://github.com/apple/swift-log from cache
Fetching https://github.com/tuist/path from cache
Fetched https://github.com/onevcat/Rainbow from cache (0.52s)
Fetched https://github.com/apple/swift-argument-parser from cache (0.53s)
Fetched https://github.com/tuist/path from cache (0.56s)
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.65s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.6.4 (0.03s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.6.1 (0.05s)
Computing version for https://github.com/onevcat/Rainbow
Computed https://github.com/onevcat/Rainbow at 4.2.0 (0.03s)
Creating working copy for https://github.com/tuist/noora.git
Working copy of https://github.com/tuist/noora.git resolved at 0.49.1 (b493303)
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/tuist/path
Working copy of https://github.com/tuist/path resolved at 0.3.8
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.1
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.6.4
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.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.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.4",
            "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/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/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.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
[2/2] Compiling plugin GenerateDoccReference
Building for debugging...
[2/16] Write sources
[7/16] Write examples-cli-entitlement.plist
[8/16] Write sources
[10/16] Write swift-version-2F0A5646E1D333AE.txt
[12/40] Compiling Path Path.swift
[13/40] Emitting module Path
[14/40] Emitting module ArgumentParserToolInfo
[15/40] Compiling ArgumentParserToolInfo ToolInfo.swift
[16/86] Compiling Logging MetadataProvider.swift
[17/86] Compiling Logging LogHandler.swift
[18/86] Compiling Logging Locks.swift
[19/86] Compiling Logging Logging.swift
[20/86] Emitting module Logging
[21/86] Compiling Rainbow Style.swift
[22/87] Emitting module ArgumentParser
[23/91] Compiling Rainbow StringGenerator.swift
[24/91] Compiling ArgumentParser InputKey.swift
[25/91] Compiling ArgumentParser InputOrigin.swift
[26/91] Compiling ArgumentParser Name.swift
[27/91] Compiling ArgumentParser Parsed.swift
[28/91] Compiling ArgumentParser ParsedValues.swift
[29/91] Compiling Rainbow String+ConditionalStyling.swift
[30/91] Compiling Rainbow String+Rainbow.swift
[31/91] Compiling ArgumentParser CommandConfiguration.swift
[32/91] Compiling ArgumentParser CommandGroup.swift
[33/91] Compiling ArgumentParser EnumerableFlag.swift
[34/91] Compiling ArgumentParser ExpressibleByArgument.swift
[35/91] Compiling ArgumentParser ParsableArguments.swift
[36/91] Compiling ArgumentParser ArgumentDiscussion.swift
[37/91] Compiling ArgumentParser ArgumentHelp.swift
[38/91] Compiling ArgumentParser ArgumentVisibility.swift
[39/91] Compiling ArgumentParser CompletionKind.swift
[40/91] Compiling ArgumentParser Errors.swift
[41/91] Compiling ArgumentParser NonsenseFlagsValidator.swift
[42/91] Compiling ArgumentParser ParsableArgumentsValidation.swift
[43/91] Compiling ArgumentParser PositionalArgumentsValidator.swift
[44/91] Compiling ArgumentParser UniqueNamesValidator.swift
[45/91] Compiling ArgumentParser Flag.swift
[46/91] Compiling ArgumentParser NameSpecification.swift
[47/91] Compiling ArgumentParser Option.swift
[48/91] Compiling ArgumentParser OptionGroup.swift
[49/91] Compiling ArgumentParser AsyncParsableCommand.swift
[50/91] Compiling ArgumentParser BashCompletionsGenerator.swift
[51/91] Compiling ArgumentParser CompletionsGenerator.swift
[52/91] Compiling ArgumentParser FishCompletionsGenerator.swift
[53/91] Compiling ArgumentParser ZshCompletionsGenerator.swift
[54/91] Compiling ArgumentParser Argument.swift
[55/91] Compiling Rainbow StyledStringBuilder.swift
[56/91] Compiling ArgumentParser ArgumentDecoder.swift
[57/91] Compiling ArgumentParser ArgumentDefinition.swift
[59/91] Compiling ArgumentParser ParsableCommand.swift
[60/91] Compiling ArgumentParser ArgumentSet.swift
[61/91] Compiling ArgumentParser CommandParser.swift
[66/91] Emitting module Rainbow
[67/91] Compiling ArgumentParser MessageInfo.swift
[68/91] Compiling ArgumentParser UsageGenerator.swift
[69/91] Compiling ArgumentParser CollectionExtensions.swift
[70/91] Compiling ArgumentParser Mutex.swift
[71/91] Compiling ArgumentParser Platform.swift
[72/91] Compiling ArgumentParser SequenceExtensions.swift
[73/91] Compiling ArgumentParser StringExtensions.swift
[74/91] Compiling ArgumentParser SwiftExtensions.swift
[75/91] Compiling ArgumentParser Tree.swift
[76/91] Compiling ArgumentParser CodingKeyValidator.swift
[82/91] Compiling ArgumentParser ParserError.swift
[83/91] Compiling ArgumentParser SplitArguments.swift
[84/91] Compiling ArgumentParser DumpHelpGenerator.swift
[85/91] Compiling ArgumentParser HelpCommand.swift
[86/91] Compiling ArgumentParser HelpGenerator.swift
[87/127] Emitting module Noora
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/TableStyle.swift:47:23: warning: static property 'rounded' is not concurrency-safe because non-'Sendable' type 'BorderCharacters' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Characters used for drawing table borders
33 | public struct BorderCharacters {
   |               `- note: consider making struct 'BorderCharacters' conform to the 'Sendable' protocol
34 |     public let horizontal: String
35 |     public let vertical: String
   :
45 |
46 |     /// Rounded Unicode borders
47 |     public static let rounded = BorderCharacters(
   |                       |- warning: static property 'rounded' is not concurrency-safe because non-'Sendable' type 'BorderCharacters' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'rounded' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
48 |         horizontal: "─",
49 |         vertical: "│",
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Content.swift:6: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
  4 | public struct Content {
  5 |     /// The default content instance with standard alert titles and recommendations.
  6 |     public static var `default` = Content(
    |                       |- 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
  7 |         errorAlertTitle: "✖ Error",
  8 |         errorAlertRecommendedTitle: "Sorry this didn’t work. Here’s what to try next",
/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",
[88/130] Compiling Noora KeyStrokeListener.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/130] 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()
[90/130] 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()
[91/130] 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()
[92/130] Compiling Noora Table.swift
[93/130] Compiling Noora TableColumn.swift
[94/130] Compiling Noora TableData.swift
[95/130] Compiling Noora TableRenderer.swift
[96/130] Compiling Noora NonEmptyValidationRule.swift
[97/130] Compiling Noora RegexValidationRule.swift
[98/130] Compiling Noora Validator.swift
[99/130] Compiling Noora ValidationError.swift
[100/130] Compiling Noora InputValidating.swift
[101/130] Compiling Noora LengthValidationRule.swift
[102/130] Compiling Noora Terminal.swift
[103/130] Compiling Noora TerminalText.swift
[104/130] Compiling Noora ValidatableError.swift
[105/130] Compiling Noora ValidatableRule.swift
[106/130] Compiling Noora Stack.swift
[107/130] Compiling Noora Character+isPrintable.swift
[108/130] Compiling Noora String+Rainbow.swift
[109/130] Compiling Noora String+ValidatableError.swift
[110/130] Compiling Noora ProgressStep.swift
[111/130] Compiling Noora SingleChoicePrompt.swift
[112/130] Compiling Noora PaginatedTable.swift
[113/130] Compiling Noora SelectableTable.swift
[114/130] Compiling Noora Alert.swift
[115/130] Compiling Noora CollapsibleStep.swift
[116/130] Compiling Noora MultipleChoicePrompt.swift
[117/130] Compiling Noora ProgressBarStep.swift
[118/130] Compiling Noora Noora.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",
[119/130] 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",
[120/130] Compiling Noora StandardPipelineType.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",
[121/130] 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",
[122/130] Compiling Noora TableStyle.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/TableStyle.swift:47:23: warning: static property 'rounded' is not concurrency-safe because non-'Sendable' type 'BorderCharacters' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Characters used for drawing table borders
33 | public struct BorderCharacters {
   |               `- note: consider making struct 'BorderCharacters' conform to the 'Sendable' protocol
34 |     public let horizontal: String
35 |     public let vertical: String
   :
45 |
46 |     /// Rounded Unicode borders
47 |     public static let rounded = BorderCharacters(
   |                       |- warning: static property 'rounded' is not concurrency-safe because non-'Sendable' type 'BorderCharacters' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'rounded' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
48 |         horizontal: "─",
49 |         vertical: "│",
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Content.swift:6: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
  4 | public struct Content {
  5 |     /// The default content instance with standard alert titles and recommendations.
  6 |     public static var `default` = Content(
    |                       |- 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
  7 |         errorAlertTitle: "✖ Error",
  8 |         errorAlertRecommendedTitle: "Sorry this didn’t work. Here’s what to try next",
[123/130] Compiling Noora TextPrompt.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/TableStyle.swift:47:23: warning: static property 'rounded' is not concurrency-safe because non-'Sendable' type 'BorderCharacters' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Characters used for drawing table borders
33 | public struct BorderCharacters {
   |               `- note: consider making struct 'BorderCharacters' conform to the 'Sendable' protocol
34 |     public let horizontal: String
35 |     public let vertical: String
   :
45 |
46 |     /// Rounded Unicode borders
47 |     public static let rounded = BorderCharacters(
   |                       |- warning: static property 'rounded' is not concurrency-safe because non-'Sendable' type 'BorderCharacters' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'rounded' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
48 |         horizontal: "─",
49 |         vertical: "│",
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Content.swift:6: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
  4 | public struct Content {
  5 |     /// The default content instance with standard alert titles and recommendations.
  6 |     public static var `default` = Content(
    |                       |- 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
  7 |         errorAlertTitle: "✖ Error",
  8 |         errorAlertRecommendedTitle: "Sorry this didn’t work. Here’s what to try next",
[124/130] Compiling Noora YesOrNoChoicePrompt.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/TableStyle.swift:47:23: warning: static property 'rounded' is not concurrency-safe because non-'Sendable' type 'BorderCharacters' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Characters used for drawing table borders
33 | public struct BorderCharacters {
   |               `- note: consider making struct 'BorderCharacters' conform to the 'Sendable' protocol
34 |     public let horizontal: String
35 |     public let vertical: String
   :
45 |
46 |     /// Rounded Unicode borders
47 |     public static let rounded = BorderCharacters(
   |                       |- warning: static property 'rounded' is not concurrency-safe because non-'Sendable' type 'BorderCharacters' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'rounded' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
48 |         horizontal: "─",
49 |         vertical: "│",
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Content.swift:6: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
  4 | public struct Content {
  5 |     /// The default content instance with standard alert titles and recommendations.
  6 |     public static var `default` = Content(
    |                       |- 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
  7 |         errorAlertTitle: "✖ Error",
  8 |         errorAlertRecommendedTitle: "Sorry this didn’t work. Here’s what to try next",
[125/130] Compiling Noora Content.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/TableStyle.swift:47:23: warning: static property 'rounded' is not concurrency-safe because non-'Sendable' type 'BorderCharacters' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Characters used for drawing table borders
33 | public struct BorderCharacters {
   |               `- note: consider making struct 'BorderCharacters' conform to the 'Sendable' protocol
34 |     public let horizontal: String
35 |     public let vertical: String
   :
45 |
46 |     /// Rounded Unicode borders
47 |     public static let rounded = BorderCharacters(
   |                       |- warning: static property 'rounded' is not concurrency-safe because non-'Sendable' type 'BorderCharacters' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'rounded' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
48 |         horizontal: "─",
49 |         vertical: "│",
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Content.swift:6: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
  4 | public struct Content {
  5 |     /// The default content instance with standard alert titles and recommendations.
  6 |     public static var `default` = Content(
    |                       |- 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
  7 |         errorAlertTitle: "✖ Error",
  8 |         errorAlertRecommendedTitle: "Sorry this didn’t work. Here’s what to try next",
[125/130] 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)'
[126/130] Archiving libNoora.a
[128/142] Compiling examples_cli TextPromptCommand.swift
[129/142] Compiling examples_cli ProgressBarStepCommand.swift
[130/142] Compiling examples_cli FormatCommand.swift
[131/142] Compiling examples_cli InfoCommand.swift
[132/142] 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",
[133/142] Compiling examples_cli ProgressStepCommand.swift
[134/142] Compiling examples_cli MultipleChoicePromptCommand.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/examples-cli/Commands/MultipleChoicePromptCommand.swift:34:62: 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 |
33 |     func run() async throws {
34 |         let selection: [ProjectTargets] = Noora(theme: Theme.default).multipleChoicePrompt(
   |                                                              `- 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
35 |             title: "Migration",
36 |             question: "Select targets for migration to 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",
[135/142] Emitting module examples_cli
[136/142] 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",
[137/142] Compiling examples_cli TableCommand.swift
[138/142] Compiling examples_cli AlertCommand.swift
[139/142] Compiling examples_cli CollapsibleStepCommand.swift
[140/143] Compiling examples_cli ExamplesCLI.swift
[140/143] Write Objects.LinkFileList
[141/143] Linking examples-cli
[142/143] Applying examples-cli
Build complete! (12.06s)
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.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.4",
            "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/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/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.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.