The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of BetterXC, reference master (3a87c1), with Swift 6.1 for macOS (SPM) on 25 Apr 2025 18:11:49 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/monstar-lab/betterxc.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/monstar-lab/betterxc
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 3a87c18 Merge branch 'release/0.9.3'
Cloned https://github.com/monstar-lab/betterxc.git
Revision (git rev-parse @):
3a87c187cdc9a6e5b16ade2d71518bc6175b2720
SUCCESS checkout https://github.com/monstar-lab/betterxc.git at master
Fetching https://github.com/xcodeswift/xcproj.git
Fetching https://github.com/tadija/AEXML.git
Fetching https://github.com/kylef/PathKit.git
Fetching https://github.com/kareman/Moderator.git
Fetching https://github.com/onevcat/Rainbow.git
Fetching https://github.com/kareman/SwiftShell.git
Fetching https://github.com/JohnSundell/ShellOut.git
[1/658] Fetching moderator
[21/2785] Fetching moderator, aexml
[129/7648] Fetching moderator, aexml, swiftshell
[143/8844] Fetching moderator, aexml, swiftshell, rainbow
[308/9804] Fetching moderator, aexml, swiftshell, rainbow, shellout
[1028/11215] Fetching moderator, aexml, swiftshell, rainbow, shellout, pathkit
[7457/34363] Fetching moderator, aexml, swiftshell, rainbow, shellout, pathkit, xcproj
Fetched https://github.com/kareman/SwiftShell.git from cache (1.15s)
Fetched https://github.com/tadija/AEXML.git from cache (1.15s)
[5180/27373] Fetching moderator, rainbow, shellout, pathkit, xcproj
Fetching https://github.com/kylef/Spectre.git
Fetched https://github.com/JohnSundell/ShellOut.git from cache (1.42s)
Fetched https://github.com/onevcat/Rainbow.git from cache (1.42s)
Fetched https://github.com/kylef/PathKit.git from cache (1.42s)
Fetched https://github.com/kareman/Moderator.git from cache (1.42s)
[7176/23148] Fetching xcproj
[23149/24169] Fetching xcproj, spectre
Fetched https://github.com/xcodeswift/xcproj.git from cache (1.94s)
Computing version for https://github.com/onevcat/Rainbow.git
[174/1021] Fetching spectre
Fetched https://github.com/kylef/Spectre.git from cache (0.87s)
Computed https://github.com/onevcat/Rainbow.git at 3.1.4 (2.56s)
Computing version for https://github.com/kareman/Moderator.git
error: package 'package.swift' is using Swift tools version 3.1.0 which is no longer supported; consider using '// swift-tools-version: 6.1' to specify the current tools version
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/monstar-lab/betterxc.git
https://github.com/monstar-lab/betterxc.git
{
  "dependencies" : [
    {
      "identity" : "xcproj",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.3.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/xcodeswift/xcproj.git"
    },
    {
      "identity" : "swiftshell",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.1.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/kareman/SwiftShell.git"
    },
    {
      "identity" : "moderator",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.4.3",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/kareman/Moderator.git"
    },
    {
      "identity" : "rainbow",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.1.4",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/onevcat/Rainbow.git"
    }
  ],
  "manifest_display_name" : "BetterXC",
  "name" : "BetterXC",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "xc",
      "targets" : [
        "BetterXC"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "BetterXC",
      "module_type" : "SwiftTarget",
      "name" : "BetterXC",
      "path" : "Sources/BetterXC",
      "product_dependencies" : [
        "xcproj",
        "SwiftShell",
        "Moderator",
        "Rainbow"
      ],
      "product_memberships" : [
        "xc"
      ],
      "sources" : [
        "main.swift"
      ],
      "type" : "executable"
    }
  ],
  "tools_version" : "4.0"
}
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
Building for debugging...
[0/12] Write sources
[6/12] Write xc-entitlement.plist
[6/12] Write sources
[8/12] Write swift-version-2F0A5646E1D333AE.txt
[10/46] Compiling SwiftShell Array.swift
[11/47] Compiling Rainbow Style.swift
[12/48] Compiling Moderator SwiftCompat.swift
[13/48] Compiling Rainbow Color.swift
[14/48] Compiling Rainbow BackgroundColor.swift
[15/48] Compiling Rainbow CodesParser.swift
[16/48] Emitting module Rainbow
[17/48] Compiling Rainbow StringGenerator.swift
[18/48] Compiling Rainbow String+Rainbow.swift
[19/48] Compiling Rainbow ControlCode.swift
[20/48] Compiling Rainbow XcodeColorsSupport.swift
[21/48] Compiling SwiftShell String.swift
[22/48] Compiling Rainbow ModesExtractor.swift
[23/48] Compiling AEXML Options.swift
[24/48] Compiling AEXML Document.swift
[25/48] Compiling AEXML Parser.swift
[26/48] Compiling Moderator Parsers.swift
[27/48] Emitting module Moderator
[28/48] Compiling Moderator Moderator.swift
[29/48] Emitting module PathKit
[30/48] Compiling PathKit PathKit.swift
[31/48] Compiling Rainbow OutputTarget.swift
[32/48] Compiling Rainbow Rainbow.swift
[33/48] Emitting module AEXML
[34/48] Compiling AEXML Element.swift
[35/48] Compiling AEXML Error.swift
[36/48] Compiling AEXML Builders.swift
[37/48] Compiling SwiftShell Process.swift
[38/48] Compiling SwiftShell Stream.swift
[39/48] Compiling SwiftShell Lazy-split.swift
[40/48] Compiling SwiftShell Files.swift
[41/48] Compiling SwiftShell FileHandle.swift
[42/48] Compiling SwiftShell Context.swift
[43/48] Emitting module SwiftShell
[44/48] Compiling SwiftShell Bash.swift
[45/48] Compiling SwiftShell Command.swift
[46/104] Emitting module xcproj
[47/110] Compiling xcproj JSONDecoding.swift
[48/110] Compiling xcproj KeyedDecodingContainer+Additions.swift
[49/110] Compiling xcproj ObjectReference.swift
[50/110] Compiling xcproj PBXAggregateTarget.swift
[51/110] Compiling xcproj PBXBuildFile.swift
[52/110] Compiling xcproj PBXBuildPhase.swift
[53/110] Compiling xcproj XCConfig.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/xcproj/Sources/xcproj/XCConfig.swift:56:16: error: unable to infer closure type without a type annotation
 54 |     /// - Returns: function that parses the line.
 55 |     static func configFrom(path: Path, projectPath: Path?) -> (String) -> (include: Path, config: XCConfig)? {
 56 |         return { line in
    |                `- error: unable to infer closure type without a type annotation
 57 |             return includeRegex.matches(in: line,
 58 |                                                  options: NSRegularExpression.MatchingOptions(rawValue: 0),
[54/110] Compiling xcproj XCConfigurationList.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/xcproj/Sources/xcproj/XCConfig.swift:56:16: error: unable to infer closure type without a type annotation
 54 |     /// - Returns: function that parses the line.
 55 |     static func configFrom(path: Path, projectPath: Path?) -> (String) -> (include: Path, config: XCConfig)? {
 56 |         return { line in
    |                `- error: unable to infer closure type without a type annotation
 57 |             return includeRegex.matches(in: line,
 58 |                                                  options: NSRegularExpression.MatchingOptions(rawValue: 0),
[55/110] Compiling xcproj XCScheme.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/xcproj/Sources/xcproj/XCConfig.swift:56:16: error: unable to infer closure type without a type annotation
 54 |     /// - Returns: function that parses the line.
 55 |     static func configFrom(path: Path, projectPath: Path?) -> (String) -> (include: Path, config: XCConfig)? {
 56 |         return { line in
    |                `- error: unable to infer closure type without a type annotation
 57 |             return includeRegex.matches(in: line,
 58 |                                                  options: NSRegularExpression.MatchingOptions(rawValue: 0),
[56/110] Compiling xcproj XCSharedData.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/xcproj/Sources/xcproj/XCConfig.swift:56:16: error: unable to infer closure type without a type annotation
 54 |     /// - Returns: function that parses the line.
 55 |     static func configFrom(path: Path, projectPath: Path?) -> (String) -> (include: Path, config: XCConfig)? {
 56 |         return { line in
    |                `- error: unable to infer closure type without a type annotation
 57 |             return includeRegex.matches(in: line,
 58 |                                                  options: NSRegularExpression.MatchingOptions(rawValue: 0),
[57/110] Compiling xcproj XCVersionGroup.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/xcproj/Sources/xcproj/XCConfig.swift:56:16: error: unable to infer closure type without a type annotation
 54 |     /// - Returns: function that parses the line.
 55 |     static func configFrom(path: Path, projectPath: Path?) -> (String) -> (include: Path, config: XCConfig)? {
 56 |         return { line in
    |                `- error: unable to infer closure type without a type annotation
 57 |             return includeRegex.matches(in: line,
 58 |                                                  options: NSRegularExpression.MatchingOptions(rawValue: 0),
[58/110] Compiling xcproj XCWorkspace.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/xcproj/Sources/xcproj/XCConfig.swift:56:16: error: unable to infer closure type without a type annotation
 54 |     /// - Returns: function that parses the line.
 55 |     static func configFrom(path: Path, projectPath: Path?) -> (String) -> (include: Path, config: XCConfig)? {
 56 |         return { line in
    |                `- error: unable to infer closure type without a type annotation
 57 |             return includeRegex.matches(in: line,
 58 |                                                  options: NSRegularExpression.MatchingOptions(rawValue: 0),
[59/110] Compiling xcproj PBXSourceTree.swift
[60/110] Compiling xcproj PBXSourcesBuildPhase.swift
[61/110] Compiling xcproj PBXTarget.swift
[62/110] Compiling xcproj PBXTargetDependency.swift
[63/110] Compiling xcproj PBXVariantGroup+Deprecations.swift
[64/110] Compiling xcproj PBXVariantGroup.swift
[65/110] Compiling xcproj PBXFrameworksBuildPhase.swift
[66/110] Compiling xcproj PBXGroup.swift
[67/110] Compiling xcproj PBXHeadersBuildPhase.swift
[68/110] Compiling xcproj PBXLegacyTarget.swift
[69/110] Compiling xcproj PBXNativeTarget.swift
[70/110] Compiling xcproj PBXObject.swift
[71/110] Compiling xcproj PlistValue.swift
[72/110] Compiling xcproj Referenceable.swift
[73/110] Compiling xcproj String+Extras.swift
[74/110] Compiling xcproj Writable.swift
[75/110] Compiling xcproj XCBreakpointList.swift
[76/110] Compiling xcproj XCBuildConfiguration.swift
[77/110] Compiling xcproj PBXProject+Deprecations.swift
[78/110] Compiling xcproj PBXProject.swift
[79/110] Compiling xcproj PBXReferenceProxy.swift
[80/110] Compiling xcproj PBXResourcesBuildPhase.swift
[81/110] Compiling xcproj PBXRezBuildPhase.swift
[82/110] Compiling xcproj PBXShellScriptBuildPhase.swift
[83/110] Compiling xcproj PBXBuildRule.swift
[84/110] Compiling xcproj PBXContainerItem.swift
[85/110] Compiling xcproj PBXContainerItemProxy.swift
[86/110] Compiling xcproj PBXCopyFilesBuildPhase.swift
[87/110] Compiling xcproj PBXFileElement.swift
[88/110] Compiling xcproj PBXFileReference.swift
[89/110] Compiling xcproj XCWorkspaceData.swift
[90/110] Compiling xcproj XCWorkspaceDataElement.swift
[91/110] Compiling xcproj XCWorkspaceDataElementLocationType.swift
[92/110] Compiling xcproj XCWorkspaceDataFileRef.swift
[93/110] Compiling xcproj XCWorkspaceDataGroup.swift
[94/110] Compiling xcproj XcodeProj.swift
[95/110] Compiling xcproj AEXML+XcodeFormat.swift
[96/110] Compiling xcproj Bool+Extras.swift
[97/110] Compiling xcproj BuildPhase.swift
[98/110] Compiling xcproj BuildSettings.swift
[99/110] Compiling xcproj CommentedString.swift
[100/110] Compiling xcproj Decodable+Dictionary.swift
[101/110] Compiling xcproj Dictionary+Extras.swift
[102/110] Compiling xcproj PBXProductType.swift
[103/110] Compiling xcproj PBXProj+Helpers.swift
[104/110] Compiling xcproj PBXProj.swift
[105/110] Compiling xcproj PBXProjEncoder.swift
[106/110] Compiling xcproj PBXProjError.swift
[107/110] Compiling xcproj PBXProjObjects+Helpers.swift
Updating https://github.com/xcodeswift/xcproj.git
Updating https://github.com/kareman/Moderator.git
Updating https://github.com/kareman/SwiftShell.git
Updating https://github.com/onevcat/Rainbow.git
Updated https://github.com/kareman/SwiftShell.git (0.48s)
Updated https://github.com/kareman/Moderator.git (0.64s)
Updated https://github.com/onevcat/Rainbow.git (0.64s)
Updated https://github.com/xcodeswift/xcproj.git (0.64s)
Computing version for https://github.com/xcodeswift/xcproj.git
Computed https://github.com/xcodeswift/xcproj.git at 4.3.1 (1.27s)
Updating https://github.com/tadija/AEXML.git
Updating https://github.com/kylef/PathKit.git
Updating https://github.com/JohnSundell/ShellOut.git
Updated https://github.com/kylef/PathKit.git (0.40s)
Updated https://github.com/tadija/AEXML.git (0.43s)
Updated https://github.com/JohnSundell/ShellOut.git (0.43s)
Computing version for https://github.com/kylef/PathKit.git
Computed https://github.com/kylef/PathKit.git at 0.9.2 (3.43s)
Updating https://github.com/kylef/Spectre.git
Updated https://github.com/kylef/Spectre.git (0.43s)
Computing version for https://github.com/onevcat/Rainbow.git
Computed https://github.com/onevcat/Rainbow.git at 3.2.0 (1.02s)
Computing version for https://github.com/kareman/Moderator.git
Computed https://github.com/kareman/Moderator.git at 0.5.1 (0.60s)
Computing version for https://github.com/kareman/SwiftShell.git
Computed https://github.com/kareman/SwiftShell.git at 4.1.2 (0.59s)
Computing version for https://github.com/kylef/Spectre.git
Computed https://github.com/kylef/Spectre.git at 0.9.2 (0.70s)
Computing version for https://github.com/JohnSundell/ShellOut.git
Computed https://github.com/JohnSundell/ShellOut.git at 2.3.0 (0.58s)
Computing version for https://github.com/tadija/AEXML.git
Computed https://github.com/tadija/AEXML.git at 4.7.0 (0.47s)
Creating working copy for https://github.com/onevcat/Rainbow.git
Working copy of https://github.com/onevcat/Rainbow.git resolved at 3.2.0
Creating working copy for https://github.com/kylef/PathKit.git
Working copy of https://github.com/kylef/PathKit.git resolved at 0.9.2
Creating working copy for https://github.com/kareman/Moderator.git
Working copy of https://github.com/kareman/Moderator.git resolved at 0.5.1
Creating working copy for https://github.com/kylef/Spectre.git
Working copy of https://github.com/kylef/Spectre.git resolved at 0.9.2
Creating working copy for https://github.com/tadija/AEXML.git
Working copy of https://github.com/tadija/AEXML.git resolved at 4.7.0
Creating working copy for https://github.com/xcodeswift/xcproj.git
Working copy of https://github.com/xcodeswift/xcproj.git resolved at 4.3.1
Creating working copy for https://github.com/JohnSundell/ShellOut.git
Working copy of https://github.com/JohnSundell/ShellOut.git resolved at 2.3.0
Creating working copy for https://github.com/kareman/SwiftShell.git
Working copy of https://github.com/kareman/SwiftShell.git resolved at 4.1.2
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/4] Write swift-version-2F0A5646E1D333AE.txt
[2/38] Compiling Moderator SwiftCompat.swift
[3/38] Compiling Moderator Parsers.swift
[4/38] Compiling Moderator Moderator.swift
[5/38] Emitting module Moderator
[6/38] Compiling AEXML Options.swift
[7/38] Compiling AEXML Error.swift
[8/38] Compiling AEXML Parser.swift
[9/38] Compiling AEXML Document.swift
[10/38] Compiling AEXML Builders.swift
[11/38] Emitting module AEXML
[12/38] Compiling AEXML Element.swift
[13/38] Emitting module PathKit
[14/38] Compiling PathKit PathKit.swift
[15/38] Compiling Rainbow Style.swift
[16/39] Emitting module Rainbow
[17/39] Compiling Rainbow BackgroundColor.swift
[18/39] Compiling Rainbow CodesParser.swift
[19/39] Compiling Rainbow StringGenerator.swift
[20/39] Compiling Rainbow OutputTarget.swift
[21/39] Compiling SwiftShell FileHandle.swift
[22/39] Compiling SwiftShell Files.swift
[23/40] Compiling SwiftShell Array.swift
[24/40] Compiling Rainbow ControlCode.swift
[25/40] Compiling Rainbow Color.swift
[26/40] Compiling Rainbow ModesExtractor.swift
[27/40] Compiling Rainbow Rainbow.swift
[28/40] Compiling Rainbow String+Rainbow.swift
[29/40] Compiling SwiftShell Process.swift
[30/40] Compiling SwiftShell Context.swift
[31/40] Compiling SwiftShell Stream.swift
[32/40] Compiling SwiftShell Lazy-split.swift
[33/41] Compiling Rainbow XcodeColorsSupport.swift
[34/96] Compiling SwiftShell String.swift
[35/96] Compiling SwiftShell Bash.swift
[36/96] Emitting module SwiftShell
[37/96] Compiling SwiftShell Command.swift
[38/96] Emitting module xcproj
[39/102] Compiling xcproj JSONDecoding.swift
[40/102] Compiling xcproj KeyedDecodingContainer+Additions.swift
[41/102] Compiling xcproj ObjectReference.swift
[42/102] Compiling xcproj PBXAggregateTarget.swift
[43/102] Compiling xcproj PBXBuildFile.swift
[44/102] Compiling xcproj PBXBuildPhase.swift
[45/102] Compiling xcproj PBXProject+Deprecations.swift
[46/102] Compiling xcproj PBXProject.swift
[47/102] Compiling xcproj PBXReferenceProxy.swift
[48/102] Compiling xcproj PBXResourcesBuildPhase.swift
[49/102] Compiling xcproj PBXRezBuildPhase.swift
[50/102] Compiling xcproj PBXShellScriptBuildPhase.swift
[51/102] Compiling xcproj XCWorkspaceData.swift
[52/102] Compiling xcproj XCWorkspaceDataElement.swift
[53/102] Compiling xcproj XCWorkspaceDataElementLocationType.swift
[54/102] Compiling xcproj XCWorkspaceDataFileRef.swift
[55/102] Compiling xcproj XCWorkspaceDataGroup.swift
[56/102] Compiling xcproj XcodeProj.swift
[57/102] Compiling xcproj PBXBuildRule.swift
[58/102] Compiling xcproj PBXContainerItem.swift
[59/102] Compiling xcproj PBXContainerItemProxy.swift
[60/102] Compiling xcproj PBXCopyFilesBuildPhase.swift
[61/102] Compiling xcproj PBXFileElement.swift
[62/102] Compiling xcproj PBXFileReference.swift
[63/102] Compiling xcproj PBXFrameworksBuildPhase.swift
[64/102] Compiling xcproj PBXGroup.swift
[65/102] Compiling xcproj PBXHeadersBuildPhase.swift
[66/102] Compiling xcproj PBXLegacyTarget.swift
[67/102] Compiling xcproj PBXNativeTarget.swift
[68/102] Compiling xcproj PBXObject.swift
[69/102] Compiling xcproj PlistValue.swift
[70/102] Compiling xcproj Referenceable.swift
[71/102] Compiling xcproj String+Extras.swift
[72/102] Compiling xcproj Writable.swift
[73/102] Compiling xcproj XCBreakpointList.swift
[74/102] Compiling xcproj XCBuildConfiguration.swift
[75/102] Compiling xcproj XCConfig.swift
[76/102] Compiling xcproj XCConfigurationList.swift
[77/102] Compiling xcproj XCScheme.swift
[78/102] Compiling xcproj XCSharedData.swift
[79/102] Compiling xcproj XCVersionGroup.swift
[80/102] Compiling xcproj XCWorkspace.swift
[81/102] Compiling xcproj AEXML+XcodeFormat.swift
[82/102] Compiling xcproj Bool+Extras.swift
[83/102] Compiling xcproj BuildPhase.swift
[84/102] Compiling xcproj BuildSettings.swift
[85/102] Compiling xcproj CommentedString.swift
[86/102] Compiling xcproj Decodable+Dictionary.swift
[87/102] Compiling xcproj Dictionary+Extras.swift
[88/102] Compiling xcproj PBXSourceTree.swift
[89/102] Compiling xcproj PBXSourcesBuildPhase.swift
[90/102] Compiling xcproj PBXTarget.swift
[91/102] Compiling xcproj PBXTargetDependency.swift
[92/102] Compiling xcproj PBXVariantGroup+Deprecations.swift
[93/102] Compiling xcproj PBXVariantGroup.swift
[94/102] Compiling xcproj PBXProductType.swift
[95/102] Compiling xcproj PBXProj+Helpers.swift
[96/102] Compiling xcproj PBXProj.swift
[97/102] Compiling xcproj PBXProjEncoder.swift
[98/102] Compiling xcproj PBXProjError.swift
[99/102] Compiling xcproj PBXProjObjects+Helpers.swift
[100/104] Emitting module BetterXC
[101/104] Compiling BetterXC main.swift
[101/104] Write Objects.LinkFileList
[102/104] Linking xc
[103/104] Applying xc
Build complete! (5.92s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "xcproj",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.3.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/xcodeswift/xcproj.git"
    },
    {
      "identity" : "swiftshell",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.1.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/kareman/SwiftShell.git"
    },
    {
      "identity" : "moderator",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.4.3",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/kareman/Moderator.git"
    },
    {
      "identity" : "rainbow",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.1.4",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/onevcat/Rainbow.git"
    }
  ],
  "manifest_display_name" : "BetterXC",
  "name" : "BetterXC",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "xc",
      "targets" : [
        "BetterXC"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "BetterXC",
      "module_type" : "SwiftTarget",
      "name" : "BetterXC",
      "path" : "Sources/BetterXC",
      "product_dependencies" : [
        "xcproj",
        "SwiftShell",
        "Moderator",
        "Rainbow"
      ],
      "product_memberships" : [
        "xc"
      ],
      "sources" : [
        "main.swift"
      ],
      "type" : "executable"
    }
  ],
  "tools_version" : "4.0"
}
Done.