This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

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 jungle with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 6

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/xing/jungle.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/xing/jungle
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at fe61816 Merge pull request #23 from xing/support_products
Cloned https://github.com/xing/jungle.git
Revision (git rev-parse @):
fe61816d4f4fac973cd70c272f1bfb863223d3e1
SUCCESS checkout https://github.com/xing/jungle.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/xing/jungle.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
[1/1] Compiling plugin Generate Manual
Building for debugging...
[1/21] Write sources
[5/21] Write jungle-entitlement.plist
[5/21] Write sources
[11/21] Write swift-version-6F35C1178C84523A.txt
[12/27] Compiling reader.c
[13/27] Compiling api.c
[14/27] Compiling writer.c
[15/27] Compiling scanner.c
[16/27] Compiling parser.c
[17/27] Compiling emitter.c
[19/42] Compiling ArgumentParserToolInfo ToolInfo.swift
[20/42] Emitting module ArgumentParserToolInfo
[21/80] Compiling ArgumentParser BashCompletionsGenerator.swift
[22/80] Compiling ArgumentParser CompletionsGenerator.swift
[23/80] Compiling ArgumentParser FishCompletionsGenerator.swift
[24/80] Compiling ArgumentParser ZshCompletionsGenerator.swift
[25/80] Compiling ArgumentParser Argument.swift
[26/84] Compiling ArgumentParser ArgumentHelp.swift
[27/84] Compiling ArgumentParser ArgumentVisibility.swift
[28/84] Compiling ArgumentParser CompletionKind.swift
[29/84] Compiling ArgumentParser Errors.swift
[30/84] Compiling ArgumentParser InputOrigin.swift
[31/84] Compiling ArgumentParser Name.swift
[32/84] Compiling ArgumentParser Parsed.swift
[33/84] Compiling ArgumentParser ParsedValues.swift
[34/84] Compiling ArgumentParser Flag.swift
[35/84] Compiling ArgumentParser NameSpecification.swift
[36/84] Compiling ArgumentParser Option.swift
[37/84] Compiling ArgumentParser OptionGroup.swift
[38/84] Compiling ArgumentParser ParsableArguments.swift
[39/84] Compiling ArgumentParser ParsableArgumentsValidation.swift
[40/84] Compiling ArgumentParser ParsableCommand.swift
[41/84] Compiling ArgumentParser ArgumentDecoder.swift
[42/84] Emitting module ArgumentParser
[43/84] Compiling ArgumentParser ArgumentDefinition.swift
[44/84] Compiling ArgumentParser ArgumentSet.swift
[45/84] Compiling ArgumentParser CommandParser.swift
[46/84] Compiling ArgumentParser InputKey.swift
[47/84] Compiling ArgumentParser Platform.swift
[48/84] Compiling ArgumentParser SequenceExtensions.swift
[49/84] Compiling ArgumentParser StringExtensions.swift
[50/84] Compiling ArgumentParser Tree.swift
[51/84] Emitting module DependencyModule
[52/84] Compiling DependencyModule Module.swift
[55/84] Compiling Yams Representer.swift
[56/84] Compiling ArgumentParser SplitArguments.swift
[57/84] Compiling ArgumentParser DumpHelpGenerator.swift
[58/84] Compiling Yams Resolver.swift
[59/85] Compiling ArgumentParser HelpCommand.swift
[61/85] Compiling Yams Tag.swift
[62/85] Compiling Yams String+Yams.swift
[63/85] Compiling Shell Shell.swift
[64/85] Emitting module Shell
[65/92] Compiling ArgumentParser ParserError.swift
[71/92] Emitting module Yams
[74/92] Compiling DependencyGraph Graph+Stats.swift
[75/92] Compiling DependencyGraph Graph.swift
[76/92] Compiling ArgumentParser AsyncParsableCommand.swift
[77/92] Compiling ArgumentParser CommandConfiguration.swift
[78/92] Compiling ArgumentParser EnumerableFlag.swift
[79/92] Compiling ArgumentParser ExpressibleByArgument.swift
[80/92] Compiling ArgumentParser HelpGenerator.swift
[81/92] Compiling ArgumentParser MessageInfo.swift
[82/92] Compiling ArgumentParser UsageGenerator.swift
[83/92] Compiling ArgumentParser CollectionExtensions.swift
[84/92] Compiling Yams YamlError.swift
[85/92] Compiling DependencyGraph Graph+Make.swift
[86/92] Compiling DependencyGraph Graph+Dot.swift
[87/92] Emitting module DependencyGraph
[88/94] Emitting module SPMExtractor
[89/94] Compiling SPMExtractor Module+Package.swift
[90/94] Compiling PodExtractor Module+Podfile.swift
[91/94] Emitting module PodExtractor
[92/104] Compiling jungle ModuleStats.swift
[93/104] Compiling jungle GitLogEntry.swift
[94/104] Compiling jungle Outputs.swift
[95/104] Compiling jungle DependantCommand.swift
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/DependantCommand.swift:9:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 7 |
 8 | struct DependantCommand: ParsableCommand {
 9 |     static var configuration = CommandConfiguration(
   |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |         commandName: "dependant",
11 |         abstract: "Outputs a sorted list of targets that depends on the specified one in target"
[96/104] Compiling jungle ModulesCommand.swift
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/ModulesCommand.swift:11:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 9 | struct ModulesCommand: ParsableCommand {
10 |
11 |     static var configuration = CommandConfiguration(
   |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |         commandName: "modules",
13 |         abstract: "Outputs a sorted list of modules dependencies count of your project"
[97/104] Compiling jungle GraphCommand.swift
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/GraphCommand.swift:10:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
  8 |
  9 | struct GraphCommand: ParsableCommand {
 10 |     static var configuration = CommandConfiguration(
    |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 11 |         commandName: "graph",
 12 |         abstract: "Outputs the dependency graph in DOT format"
[98/104] Emitting module jungle
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/CompareCommand.swift:23:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 21 |
 22 | struct CompareCommand: ParsableCommand {
 23 |     static var configuration = CommandConfiguration(
    |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |         commandName: "compare",
 25 |         abstract: "Compares the current complexity of the dependency graph to others versions in git"
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/DependantCommand.swift:9:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 7 |
 8 | struct DependantCommand: ParsableCommand {
 9 |     static var configuration = CommandConfiguration(
   |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |         commandName: "dependant",
11 |         abstract: "Outputs a sorted list of targets that depends on the specified one in target"
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/GraphCommand.swift:10:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
  8 |
  9 | struct GraphCommand: ParsableCommand {
 10 |     static var configuration = CommandConfiguration(
    |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 11 |         commandName: "graph",
 12 |         abstract: "Outputs the dependency graph in DOT format"
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/HistoryCommand.swift:16:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 14 |     }
 15 |
 16 |     static var configuration = CommandConfiguration(
    |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |         commandName: "history",
 18 |         abstract: "Displays historic complexity of the dependency graph"
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/Main.swift:5:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | @main
 4 | struct Jungle: AsyncParsableCommand {
 5 |     static var configuration = CommandConfiguration(
   |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |         commandName: "jungle",
 7 |         abstract: "SwiftPM and Cocoapods based projects complexity analyzer.",
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/ModulesCommand.swift:11:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 9 | struct ModulesCommand: ParsableCommand {
10 |
11 |     static var configuration = CommandConfiguration(
   |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |         commandName: "modules",
13 |         abstract: "Outputs a sorted list of modules dependencies count of your project"
[99/104] Compiling jungle Main.swift
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/Main.swift:5:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 3 | @main
 4 | struct Jungle: AsyncParsableCommand {
 5 |     static var configuration = CommandConfiguration(
   |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |         commandName: "jungle",
 7 |         abstract: "SwiftPM and Cocoapods based projects complexity analyzer.",
[100/104] Compiling jungle CompareCommand.swift
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/CompareCommand.swift:23:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 21 |
 22 | struct CompareCommand: ParsableCommand {
 23 |     static var configuration = CommandConfiguration(
    |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |         commandName: "compare",
 25 |         abstract: "Compares the current complexity of the dependency graph to others versions in git"
[101/104] Compiling jungle HistoryCommand.swift
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/HistoryCommand.swift:16:16: warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
 14 |     }
 15 |
 16 |     static var configuration = CommandConfiguration(
    |                |- warning: static property 'configuration' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'configuration' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |         commandName: "history",
 18 |         abstract: "Displays historic complexity of the dependency graph"
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/HistoryCommand.swift:136:91: warning: capture of 'self' with non-sendable type 'HistoryCommand' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  7 | import Shell
  8 |
  9 | struct HistoryCommand: AsyncParsableCommand {
    |        `- note: consider making struct 'HistoryCommand' conform to the 'Sendable' protocol
 10 |
 11 |     enum OutputFormat: String, ExpressibleByArgument {
    :
134 |                     guard
135 |                         let podfile = try? shell("git show \(entry.revision):./Podfile", at: directoryURL),
136 |                         let entryTargetDependencies = try? moduleFromPodfile(podfile, on: target) ?? .init(name: target, dependencies: [])
    |                                                                                           `- warning: capture of 'self' with non-sendable type 'HistoryCommand' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 |                     else {
138 |                         return nil
/Users/admin/builder/spi-builder-workspace/Sources/jungle/Commands/HistoryCommand.swift:136:114: warning: implicit capture of 'self' requires that 'HistoryCommand' conforms to `Sendable`; this is an error in the Swift 6 language mode
  7 | import Shell
  8 |
  9 | struct HistoryCommand: AsyncParsableCommand {
    |        `- note: consider making struct 'HistoryCommand' conform to the 'Sendable' protocol
 10 |
 11 |     enum OutputFormat: String, ExpressibleByArgument {
    :
134 |                     guard
135 |                         let podfile = try? shell("git show \(entry.revision):./Podfile", at: directoryURL),
136 |                         let entryTargetDependencies = try? moduleFromPodfile(podfile, on: target) ?? .init(name: target, dependencies: [])
    |                                                                                                                  `- warning: implicit capture of 'self' requires that 'HistoryCommand' conforms to `Sendable`; this is an error in the Swift 6 language mode
137 |                     else {
138 |                         return nil
[101/104] Write Objects.LinkFileList
[102/104] Linking jungle
[103/104] Applying jungle
Build complete! (29.90s)
Fetching https://github.com/apple/swift-argument-parser
Fetching https://github.com/jpsim/Yams.git
[1/9337] Fetching yams
[2/21016] Fetching yams, swift-argument-parser
Fetched https://github.com/jpsim/Yams.git from cache (1.90s)
Fetched https://github.com/apple/swift-argument-parser from cache (1.90s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 5.0.1 (0.68s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.2.0 (0.71s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.2.0
Creating working copy for https://github.com/jpsim/Yams.git
Working copy of https://github.com/jpsim/Yams.git resolved at 5.0.1
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser"
    },
    {
      "identity" : "yams",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "5.0.1",
            "upper_bound" : "6.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/jpsim/Yams.git"
    }
  ],
  "manifest_display_name" : "jungle",
  "name" : "jungle",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "jungle",
      "targets" : [
        "jungle"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "PodExtractor",
      "targets" : [
        "PodExtractor"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "SPMExtractor",
      "targets" : [
        "SPMExtractor"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "DependencyGraph",
      "targets" : [
        "DependencyGraph"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Shell",
      "targets" : [
        "Shell"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "jungleTests",
      "module_type" : "SwiftTarget",
      "name" : "jungleTests",
      "path" : "Tests/jungleTests",
      "sources" : [
        "GitLogEntryTests.swift"
      ],
      "target_dependencies" : [
        "jungle"
      ],
      "type" : "test"
    },
    {
      "c99name" : "jungle",
      "module_type" : "SwiftTarget",
      "name" : "jungle",
      "path" : "Sources/jungle",
      "product_dependencies" : [
        "ArgumentParser"
      ],
      "product_memberships" : [
        "jungle"
      ],
      "sources" : [
        "Commands/CompareCommand.swift",
        "Commands/DependantCommand.swift",
        "Commands/GraphCommand.swift",
        "Commands/HistoryCommand.swift",
        "Commands/Main.swift",
        "Commands/ModulesCommand.swift",
        "Models/GitLogEntry.swift",
        "Models/ModuleStats.swift",
        "Models/Outputs.swift"
      ],
      "target_dependencies" : [
        "PodExtractor",
        "SPMExtractor",
        "DependencyGraph",
        "Shell"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "Shell",
      "module_type" : "SwiftTarget",
      "name" : "Shell",
      "path" : "Sources/Shell",
      "product_memberships" : [
        "jungle",
        "PodExtractor",
        "SPMExtractor",
        "Shell"
      ],
      "sources" : [
        "Shell.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "SPMExtractorTests",
      "module_type" : "SwiftTarget",
      "name" : "SPMExtractorTests",
      "path" : "Tests/SPMExtractorTests",
      "sources" : [
        "SPMExtractorTests.swift"
      ],
      "target_dependencies" : [
        "SPMExtractor"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SPMExtractor",
      "module_type" : "SwiftTarget",
      "name" : "SPMExtractor",
      "path" : "Sources/SPMExtractor",
      "product_memberships" : [
        "jungle",
        "SPMExtractor"
      ],
      "sources" : [
        "Module+Package.swift"
      ],
      "target_dependencies" : [
        "DependencyModule",
        "Shell"
      ],
      "type" : "library"
    },
    {
      "c99name" : "PodExtractorTests",
      "module_type" : "SwiftTarget",
      "name" : "PodExtractorTests",
      "path" : "Tests/PodExtractorTests",
      "sources" : [
        "PodExtractorTests.swift"
      ],
      "target_dependencies" : [
        "PodExtractor"
      ],
      "type" : "test"
    },
    {
      "c99name" : "PodExtractor",
      "module_type" : "SwiftTarget",
      "name" : "PodExtractor",
      "path" : "Sources/PodExtractor",
      "product_dependencies" : [
        "Yams"
      ],
      "product_memberships" : [
        "jungle",
        "PodExtractor"
      ],
      "sources" : [
        "Module+Podfile.swift"
      ],
      "target_dependencies" : [
        "DependencyModule",
        "Shell"
      ],
      "type" : "library"
    },
    {
      "c99name" : "DependencyModule",
      "module_type" : "SwiftTarget",
      "name" : "DependencyModule",
      "path" : "Sources/DependencyModule",
      "product_memberships" : [
        "jungle",
        "PodExtractor",
        "SPMExtractor",
        "DependencyGraph"
      ],
      "sources" : [
        "Module.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "DependencyGraphTests",
      "module_type" : "SwiftTarget",
      "name" : "DependencyGraphTests",
      "path" : "Tests/DependencyGraphTests",
      "sources" : [
        "DependencyGraphTests.swift"
      ],
      "target_dependencies" : [
        "DependencyGraph"
      ],
      "type" : "test"
    },
    {
      "c99name" : "DependencyGraph",
      "module_type" : "SwiftTarget",
      "name" : "DependencyGraph",
      "path" : "Sources/DependencyGraph",
      "product_memberships" : [
        "jungle",
        "DependencyGraph"
      ],
      "sources" : [
        "Graph+Dot.swift",
        "Graph+Make.swift",
        "Graph+Stats.swift",
        "Graph.swift"
      ],
      "target_dependencies" : [
        "DependencyModule"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.