The Swift Package Index logo.Swift Package Index

Build Information

Successful build of tandha, reference 0.1.0 (0a51e1), with Swift 6.1 for macOS (SPM) on 4 Sep 2026 16:16:08 UTC.

Swift 6 data race errors: 4

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: 5.0.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/iQbalADR/tandha.git
Reference: 0.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/iQbalADR/tandha
 * tag               0.1.0      -> FETCH_HEAD
HEAD is now at 0a51e15 Mark 0.1.0 release in changelog
Cloned https://github.com/iQbalADR/tandha.git
Revision (git rev-parse @):
0a51e15c8c1d224e3f85e0e583116a78efcbc760
SUCCESS checkout https://github.com/iQbalADR/tandha.git at 0.1.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/iQbalADR/tandha.git
https://github.com/iQbalADR/tandha.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "tandha",
  "name" : "tandha",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    }
  ],
  "products" : [
    {
      "name" : "Tandha",
      "targets" : [
        "Tandha",
        "TandhaCore",
        "TandhaUIKit",
        "TandhaSwiftUI"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "TandhaXCUITest",
      "targets" : [
        "TandhaXCUITest"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "TandhaTooling",
      "targets" : [
        "TandhaCodegen",
        "TandhaExport",
        "TandhaLint"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "tandha",
      "targets" : [
        "TandhaCLI"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "TandhaCodegenPlugin",
      "targets" : [
        "TandhaCodegenPlugin"
      ],
      "type" : {
        "plugin" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TandhaXCUITest",
      "module_type" : "SwiftTarget",
      "name" : "TandhaXCUITest",
      "path" : "Sources/TandhaXCUITest",
      "product_memberships" : [
        "TandhaXCUITest"
      ],
      "sources" : [
        "XCUITest+AutomationID.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaUIKit",
      "module_type" : "SwiftTarget",
      "name" : "TandhaUIKit",
      "path" : "Sources/TandhaUIKit",
      "product_memberships" : [
        "Tandha"
      ],
      "sources" : [
        "UIView+AutomationID.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaSwiftUI",
      "module_type" : "SwiftTarget",
      "name" : "TandhaSwiftUI",
      "path" : "Sources/TandhaSwiftUI",
      "product_memberships" : [
        "Tandha"
      ],
      "sources" : [
        "View+AutomationID.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaLintTests",
      "module_type" : "SwiftTarget",
      "name" : "TandhaLintTests",
      "path" : "Tests/TandhaLintTests",
      "sources" : [
        "LintTests.swift"
      ],
      "target_dependencies" : [
        "TandhaLint",
        "TandhaCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TandhaLint",
      "module_type" : "SwiftTarget",
      "name" : "TandhaLint",
      "path" : "Sources/TandhaLint",
      "product_memberships" : [
        "TandhaTooling",
        "tandha",
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "LintFinding.swift",
        "LintRule.swift",
        "Linter.swift",
        "Rules/DuplicateIdentifierRule.swift",
        "Rules/MissingKeyRule.swift",
        "Rules/NamingConventionRule.swift",
        "Rules/UnusedKeyRule.swift",
        "SourceScanner.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaExportTests",
      "module_type" : "SwiftTarget",
      "name" : "TandhaExportTests",
      "path" : "Tests/TandhaExportTests",
      "sources" : [
        "ExporterTests.swift"
      ],
      "target_dependencies" : [
        "TandhaExport",
        "TandhaCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TandhaExport",
      "module_type" : "SwiftTarget",
      "name" : "TandhaExport",
      "path" : "Sources/TandhaExport",
      "product_memberships" : [
        "TandhaTooling",
        "tandha",
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "CSVExporter.swift",
        "Exporter.swift",
        "JSONExporter.swift",
        "JavaPageObjectExporter.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaCoreTests",
      "module_type" : "SwiftTarget",
      "name" : "TandhaCoreTests",
      "path" : "Tests/TandhaCoreTests",
      "sources" : [
        "AutomationModelTests.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TandhaCore",
      "module_type" : "SwiftTarget",
      "name" : "TandhaCore",
      "path" : "Sources/TandhaCore",
      "product_memberships" : [
        "Tandha",
        "TandhaXCUITest",
        "TandhaTooling",
        "tandha",
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "AutomationIDEntry.swift",
        "AutomationIDError.swift",
        "AutomationModel.swift",
        "AutomationRegistry.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaCodegenTests",
      "module_type" : "SwiftTarget",
      "name" : "TandhaCodegenTests",
      "path" : "Tests/TandhaCodegenTests",
      "sources" : [
        "SwiftEnumGeneratorTests.swift"
      ],
      "target_dependencies" : [
        "TandhaCodegen",
        "TandhaCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TandhaCodegenPlugin",
      "module_type" : "PluginTarget",
      "name" : "TandhaCodegenPlugin",
      "path" : "Plugins/TandhaCodegenPlugin",
      "plugin_capability" : {
        "type" : "buildTool"
      },
      "product_memberships" : [
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "plugin.swift"
      ],
      "target_dependencies" : [
        "TandhaCLI"
      ],
      "type" : "plugin"
    },
    {
      "c99name" : "TandhaCodegen",
      "module_type" : "SwiftTarget",
      "name" : "TandhaCodegen",
      "path" : "Sources/TandhaCodegen",
      "product_memberships" : [
        "TandhaTooling",
        "tandha",
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "SwiftEnumGenerator.swift",
        "SwiftIdentifier.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaCLI",
      "module_type" : "SwiftTarget",
      "name" : "TandhaCLI",
      "path" : "Sources/TandhaCLI",
      "product_memberships" : [
        "tandha",
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "Arguments.swift",
        "ExportCommand.swift",
        "GenerateCommand.swift",
        "IO.swift",
        "LintCommand.swift",
        "main.swift"
      ],
      "target_dependencies" : [
        "TandhaCore",
        "TandhaCodegen",
        "TandhaExport",
        "TandhaLint"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "Tandha",
      "module_type" : "SwiftTarget",
      "name" : "Tandha",
      "path" : "Sources/Tandha",
      "product_memberships" : [
        "Tandha"
      ],
      "sources" : [
        "Exports.swift"
      ],
      "target_dependencies" : [
        "TandhaCore",
        "TandhaUIKit",
        "TandhaSwiftUI"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
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 TandhaCodegenPlugin
Building for debugging...
[1/20] Write sources
[3/20] Write tandha-entitlement.plist
[3/20] Write sources
[16/20] Write swift-version-2F0A5646E1D333AE.txt
[18/30] Compiling TandhaCore AutomationIDError.swift
[19/30] Compiling TandhaCore AutomationRegistry.swift
/Users/admin/builder/spi-builder-workspace/Sources/TandhaCore/AutomationRegistry.swift:14:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'AutomationRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
11 | /// Until configured, `identifier(forKey:)` returns the key unchanged, which
12 | /// matches the auto-derive default (key == identifier).
13 | public final class AutomationRegistry {
   |                    `- note: class 'AutomationRegistry' does not conform to the 'Sendable' protocol
14 |     public static let shared = AutomationRegistry()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'AutomationRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 |     private let lock = NSLock()
[20/30] Compiling TandhaCore AutomationModel.swift
[21/30] Compiling TandhaCore AutomationIDEntry.swift
[22/30] Compiling TandhaCore AutomationModel.swift
[23/30] Emitting module TandhaCore
/Users/admin/builder/spi-builder-workspace/Sources/TandhaCore/AutomationRegistry.swift:14:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'AutomationRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
11 | /// Until configured, `identifier(forKey:)` returns the key unchanged, which
12 | /// matches the auto-derive default (key == identifier).
13 | public final class AutomationRegistry {
   |                    `- note: class 'AutomationRegistry' does not conform to the 'Sendable' protocol
14 |     public static let shared = AutomationRegistry()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'AutomationRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 |     private let lock = NSLock()
[24/30] Compiling TandhaCore AutomationIDError.swift
[25/30] Compiling TandhaCore AutomationRegistry.swift
/Users/admin/builder/spi-builder-workspace/Sources/TandhaCore/AutomationRegistry.swift:14:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'AutomationRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
11 | /// Until configured, `identifier(forKey:)` returns the key unchanged, which
12 | /// matches the auto-derive default (key == identifier).
13 | public final class AutomationRegistry {
   |                    `- note: class 'AutomationRegistry' does not conform to the 'Sendable' protocol
14 |     public static let shared = AutomationRegistry()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'AutomationRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 |     private let lock = NSLock()
[26/30] Emitting module TandhaCore
/Users/admin/builder/spi-builder-workspace/Sources/TandhaCore/AutomationRegistry.swift:14:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'AutomationRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
11 | /// Until configured, `identifier(forKey:)` returns the key unchanged, which
12 | /// matches the auto-derive default (key == identifier).
13 | public final class AutomationRegistry {
   |                    `- note: class 'AutomationRegistry' does not conform to the 'Sendable' protocol
14 |     public static let shared = AutomationRegistry()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'AutomationRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 |     private let lock = NSLock()
[27/30] Compiling TandhaCore AutomationIDEntry.swift
[28/70] Emitting module TandhaUIKit
[29/70] Compiling TandhaUIKit UIView+AutomationID.swift
[30/70] Compiling TandhaCodegen SwiftEnumGenerator.swift
[31/70] Emitting module TandhaCodegen
[32/70] Compiling TandhaCodegen SwiftIdentifier.swift
[33/70] Emitting module TandhaExport
/Users/admin/builder/spi-builder-workspace/Sources/TandhaExport/Exporter.swift:19:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any Exporter]' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | /// Each format is a single self-contained type — an ideal "good first issue".
 7 | /// Register new formats in `Exporters.all`.
 8 | public protocol Exporter {
   |                 `- note: protocol 'Exporter' does not conform to the 'Sendable' protocol
 9 |     /// CLI-facing format name, e.g. `json`, `csv`, `java`.
10 |     static var formatName: String { get }
   :
17 | /// Registry of the built-in exporters, keyed by `formatName`.
18 | public enum Exporters {
19 |     public static let all: [any Exporter] = [
   |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any Exporter]' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |         JSONExporter(),
21 |         CSVExporter(),
[34/70] Compiling TandhaLint LintRule.swift
[35/70] Compiling TandhaLint Linter.swift
[36/70] Compiling TandhaLint LintRule.swift
[37/70] Emitting module TandhaLint
[38/70] Compiling TandhaLint LintFinding.swift
[39/70] Compiling TandhaExport Exporter.swift
/Users/admin/builder/spi-builder-workspace/Sources/TandhaExport/Exporter.swift:19:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any Exporter]' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | /// Each format is a single self-contained type — an ideal "good first issue".
 7 | /// Register new formats in `Exporters.all`.
 8 | public protocol Exporter {
   |                 `- note: protocol 'Exporter' does not conform to the 'Sendable' protocol
 9 |     /// CLI-facing format name, e.g. `json`, `csv`, `java`.
10 |     static var formatName: String { get }
   :
17 | /// Registry of the built-in exporters, keyed by `formatName`.
18 | public enum Exporters {
19 |     public static let all: [any Exporter] = [
   |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any Exporter]' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |         JSONExporter(),
21 |         CSVExporter(),
[40/70] Compiling TandhaExport CSVExporter.swift
[41/70] Emitting module TandhaLint
[42/70] Compiling TandhaLint LintFinding.swift
[43/70] Compiling TandhaLint Linter.swift
[44/70] Compiling TandhaLint DuplicateIdentifierRule.swift
[45/70] Compiling TandhaExport Exporter.swift
/Users/admin/builder/spi-builder-workspace/Sources/TandhaExport/Exporter.swift:19:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any Exporter]' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | /// Each format is a single self-contained type — an ideal "good first issue".
 7 | /// Register new formats in `Exporters.all`.
 8 | public protocol Exporter {
   |                 `- note: protocol 'Exporter' does not conform to the 'Sendable' protocol
 9 |     /// CLI-facing format name, e.g. `json`, `csv`, `java`.
10 |     static var formatName: String { get }
   :
17 | /// Registry of the built-in exporters, keyed by `formatName`.
18 | public enum Exporters {
19 |     public static let all: [any Exporter] = [
   |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any Exporter]' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |         JSONExporter(),
21 |         CSVExporter(),
[46/70] Compiling TandhaLint DuplicateIdentifierRule.swift
[47/70] Compiling TandhaLint SourceScanner.swift
[48/70] Emitting module TandhaExport
/Users/admin/builder/spi-builder-workspace/Sources/TandhaExport/Exporter.swift:19:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any Exporter]' may have shared mutable state; this is an error in the Swift 6 language mode
 6 | /// Each format is a single self-contained type — an ideal "good first issue".
 7 | /// Register new formats in `Exporters.all`.
 8 | public protocol Exporter {
   |                 `- note: protocol 'Exporter' does not conform to the 'Sendable' protocol
 9 |     /// CLI-facing format name, e.g. `json`, `csv`, `java`.
10 |     static var formatName: String { get }
   :
17 | /// Registry of the built-in exporters, keyed by `formatName`.
18 | public enum Exporters {
19 |     public static let all: [any Exporter] = [
   |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type '[any Exporter]' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |         JSONExporter(),
21 |         CSVExporter(),
[49/70] Compiling TandhaExport CSVExporter.swift
[50/70] Compiling TandhaLint SourceScanner.swift
[51/70] Compiling TandhaExport JSONExporter.swift
[52/70] Compiling TandhaExport JavaPageObjectExporter.swift
[53/70] Compiling TandhaLint UnusedKeyRule.swift
[55/70] Compiling TandhaLint MissingKeyRule.swift
[56/70] Compiling TandhaLint NamingConventionRule.swift
[57/70] Compiling TandhaCodegen SwiftEnumGenerator.swift
[58/70] Compiling TandhaCodegen SwiftIdentifier.swift
[59/70] Emitting module TandhaCodegen
[60/70] Compiling TandhaLint MissingKeyRule.swift
[61/70] Compiling TandhaLint NamingConventionRule.swift
[62/70] Compiling TandhaExport JSONExporter.swift
[63/70] Compiling TandhaExport JavaPageObjectExporter.swift
[64/84] Compiling TandhaCLI IO.swift
[65/84] Emitting module TandhaCLI
[66/84] Compiling TandhaCLI LintCommand.swift
[67/84] Compiling TandhaCLI GenerateCommand.swift
[68/84] Compiling TandhaCLI Arguments.swift
[69/84] Compiling TandhaCLI ExportCommand.swift
[70/84] Compiling TandhaCLI main.swift
[72/84] Compiling TandhaCLI ExportCommand.swift
[73/84] Compiling TandhaCLI Arguments.swift
[74/84] Compiling TandhaCLI LintCommand.swift
[75/84] Emitting module TandhaCLI
[76/84] Compiling TandhaCLI GenerateCommand.swift
[77/84] Compiling TandhaCLI IO.swift
[77/84] Write Objects.LinkFileList
[78/84] Linking tandha
[79/84] Applying tandha
[81/84] Compiling TandhaXCUITest XCUITest+AutomationID.swift
[82/84] Emitting module TandhaXCUITest
[83/84] Emitting module TandhaSwiftUI
[84/84] Compiling TandhaSwiftUI View+AutomationID.swift
[85/86] Compiling Tandha Exports.swift
[86/86] Emitting module Tandha
Build complete! (17.04s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "tandha",
  "name" : "tandha",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    }
  ],
  "products" : [
    {
      "name" : "Tandha",
      "targets" : [
        "Tandha",
        "TandhaCore",
        "TandhaUIKit",
        "TandhaSwiftUI"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "TandhaXCUITest",
      "targets" : [
        "TandhaXCUITest"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "TandhaTooling",
      "targets" : [
        "TandhaCodegen",
        "TandhaExport",
        "TandhaLint"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "tandha",
      "targets" : [
        "TandhaCLI"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "TandhaCodegenPlugin",
      "targets" : [
        "TandhaCodegenPlugin"
      ],
      "type" : {
        "plugin" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TandhaXCUITest",
      "module_type" : "SwiftTarget",
      "name" : "TandhaXCUITest",
      "path" : "Sources/TandhaXCUITest",
      "product_memberships" : [
        "TandhaXCUITest"
      ],
      "sources" : [
        "XCUITest+AutomationID.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaUIKit",
      "module_type" : "SwiftTarget",
      "name" : "TandhaUIKit",
      "path" : "Sources/TandhaUIKit",
      "product_memberships" : [
        "Tandha"
      ],
      "sources" : [
        "UIView+AutomationID.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaSwiftUI",
      "module_type" : "SwiftTarget",
      "name" : "TandhaSwiftUI",
      "path" : "Sources/TandhaSwiftUI",
      "product_memberships" : [
        "Tandha"
      ],
      "sources" : [
        "View+AutomationID.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaLintTests",
      "module_type" : "SwiftTarget",
      "name" : "TandhaLintTests",
      "path" : "Tests/TandhaLintTests",
      "sources" : [
        "LintTests.swift"
      ],
      "target_dependencies" : [
        "TandhaLint",
        "TandhaCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TandhaLint",
      "module_type" : "SwiftTarget",
      "name" : "TandhaLint",
      "path" : "Sources/TandhaLint",
      "product_memberships" : [
        "TandhaTooling",
        "tandha",
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "LintFinding.swift",
        "LintRule.swift",
        "Linter.swift",
        "Rules/DuplicateIdentifierRule.swift",
        "Rules/MissingKeyRule.swift",
        "Rules/NamingConventionRule.swift",
        "Rules/UnusedKeyRule.swift",
        "SourceScanner.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaExportTests",
      "module_type" : "SwiftTarget",
      "name" : "TandhaExportTests",
      "path" : "Tests/TandhaExportTests",
      "sources" : [
        "ExporterTests.swift"
      ],
      "target_dependencies" : [
        "TandhaExport",
        "TandhaCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TandhaExport",
      "module_type" : "SwiftTarget",
      "name" : "TandhaExport",
      "path" : "Sources/TandhaExport",
      "product_memberships" : [
        "TandhaTooling",
        "tandha",
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "CSVExporter.swift",
        "Exporter.swift",
        "JSONExporter.swift",
        "JavaPageObjectExporter.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaCoreTests",
      "module_type" : "SwiftTarget",
      "name" : "TandhaCoreTests",
      "path" : "Tests/TandhaCoreTests",
      "sources" : [
        "AutomationModelTests.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TandhaCore",
      "module_type" : "SwiftTarget",
      "name" : "TandhaCore",
      "path" : "Sources/TandhaCore",
      "product_memberships" : [
        "Tandha",
        "TandhaXCUITest",
        "TandhaTooling",
        "tandha",
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "AutomationIDEntry.swift",
        "AutomationIDError.swift",
        "AutomationModel.swift",
        "AutomationRegistry.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaCodegenTests",
      "module_type" : "SwiftTarget",
      "name" : "TandhaCodegenTests",
      "path" : "Tests/TandhaCodegenTests",
      "sources" : [
        "SwiftEnumGeneratorTests.swift"
      ],
      "target_dependencies" : [
        "TandhaCodegen",
        "TandhaCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TandhaCodegenPlugin",
      "module_type" : "PluginTarget",
      "name" : "TandhaCodegenPlugin",
      "path" : "Plugins/TandhaCodegenPlugin",
      "plugin_capability" : {
        "type" : "buildTool"
      },
      "product_memberships" : [
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "plugin.swift"
      ],
      "target_dependencies" : [
        "TandhaCLI"
      ],
      "type" : "plugin"
    },
    {
      "c99name" : "TandhaCodegen",
      "module_type" : "SwiftTarget",
      "name" : "TandhaCodegen",
      "path" : "Sources/TandhaCodegen",
      "product_memberships" : [
        "TandhaTooling",
        "tandha",
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "SwiftEnumGenerator.swift",
        "SwiftIdentifier.swift"
      ],
      "target_dependencies" : [
        "TandhaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "TandhaCLI",
      "module_type" : "SwiftTarget",
      "name" : "TandhaCLI",
      "path" : "Sources/TandhaCLI",
      "product_memberships" : [
        "tandha",
        "TandhaCodegenPlugin"
      ],
      "sources" : [
        "Arguments.swift",
        "ExportCommand.swift",
        "GenerateCommand.swift",
        "IO.swift",
        "LintCommand.swift",
        "main.swift"
      ],
      "target_dependencies" : [
        "TandhaCore",
        "TandhaCodegen",
        "TandhaExport",
        "TandhaLint"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "Tandha",
      "module_type" : "SwiftTarget",
      "name" : "Tandha",
      "path" : "Sources/Tandha",
      "product_memberships" : [
        "Tandha"
      ],
      "sources" : [
        "Exports.swift"
      ],
      "target_dependencies" : [
        "TandhaCore",
        "TandhaUIKit",
        "TandhaSwiftUI"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.