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, reference 2.3.0 (fe6181), with Swift 6.0 for Linux on 29 Nov 2024 19:52:56 UTC.

Swift 6 data race errors: 6

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/xing/jungle.git
Reference: 2.3.0
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/xing/jungle
 * tag               2.3.0      -> FETCH_HEAD
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 2.3.0
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/xing/jungle.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Fetching https://github.com/jpsim/Yams.git
Fetching https://github.com/apple/swift-argument-parser
[1/9936] Fetching yams
[796/22331] Fetching yams, swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser from cache (0.99s)
Fetched https://github.com/jpsim/Yams.git from cache (1.01s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.0 (0.39s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 5.1.3 (0.43s)
Creating working copy for https://github.com/jpsim/Yams.git
Working copy of https://github.com/jpsim/Yams.git resolved at 5.1.3
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.5.0
[1/1] Compiling plugin GenerateManual
Building for debugging...
[1/28] Write sources
[10/28] Compiling writer.c
[11/28] Compiling reader.c
[12/28] Compiling parser.c
[13/28] Compiling api.c
[14/28] Compiling emitter.c
[15/28] Compiling scanner.c
[15/28] Write swift-version-24593BA9C3E375BF.txt
[18/49] Emitting module ArgumentParserToolInfo
[19/49] Compiling ArgumentParserToolInfo ToolInfo.swift
[21/50] Compiling Yams Mark.swift
[22/50] Compiling Yams Node.Mapping.swift
[22/51] Wrapping AST for ArgumentParserToolInfo for debugging
[24/89] Compiling ArgumentParser BashCompletionsGenerator.swift
[25/89] Compiling ArgumentParser CompletionsGenerator.swift
[26/89] Compiling ArgumentParser FishCompletionsGenerator.swift
[27/89] Compiling ArgumentParser ZshCompletionsGenerator.swift
[28/89] Compiling ArgumentParser Argument.swift
[29/89] Compiling ArgumentParser ArgumentHelp.swift
[30/94] Compiling ArgumentParser OptionGroup.swift
[31/94] Compiling ArgumentParser AsyncParsableCommand.swift
[32/94] Compiling ArgumentParser CommandConfiguration.swift
[33/94] Compiling ArgumentParser CommandGroup.swift
[34/94] Compiling ArgumentParser EnumerableFlag.swift
[35/94] Emitting module ArgumentParser
[36/94] Compiling ArgumentParser ArgumentVisibility.swift
[37/94] Compiling ArgumentParser CompletionKind.swift
[38/94] Compiling ArgumentParser Errors.swift
[39/94] Compiling ArgumentParser Flag.swift
[40/94] Compiling ArgumentParser NameSpecification.swift
[41/94] Compiling ArgumentParser Option.swift
[42/94] Emitting module Shell
[43/94] Compiling Shell Shell.swift
/host/spi-builder-workspace/Sources/Shell/Shell.swift:16:10: warning: 'launchPath' is deprecated: renamed to 'executableURL'
14 |     task.standardOutput = pipe
15 |     task.arguments = ["-c", command]
16 |     task.launchPath = "/bin/zsh"
   |          |- warning: 'launchPath' is deprecated: renamed to 'executableURL'
   |          `- note: use 'executableURL' instead
17 |     task.standardInput = nil
18 |     if let directory = directory {
[44/95] Emitting module DependencyModule
[45/95] Compiling DependencyModule Module.swift
[51/96] Compiling ArgumentParser CollectionExtensions.swift
[52/96] Compiling ArgumentParser Platform.swift
[53/96] Compiling ArgumentParser SequenceExtensions.swift
[54/96] Compiling ArgumentParser StringExtensions.swift
[55/96] Compiling ArgumentParser Tree.swift
[57/96] Emitting module Yams
[65/96] Wrapping AST for Shell for debugging
[67/96] Compiling Yams YamlError.swift
[67/97] Wrapping AST for DependencyModule for debugging
[70/104] Compiling ArgumentParser DumpHelpGenerator.swift
[71/104] Compiling ArgumentParser HelpCommand.swift
[72/104] Compiling ArgumentParser HelpGenerator.swift
[73/104] Compiling ArgumentParser MessageInfo.swift
[74/104] Compiling ArgumentParser UsageGenerator.swift
[75/104] Compiling ArgumentParser Name.swift
[76/104] Compiling ArgumentParser Parsed.swift
[77/104] Compiling ArgumentParser ParsedValues.swift
[78/104] Compiling ArgumentParser ParserError.swift
[79/104] Compiling ArgumentParser SplitArguments.swift
[80/104] Compiling ArgumentParser ExpressibleByArgument.swift
[81/104] Compiling ArgumentParser ParsableArguments.swift
[82/104] Compiling ArgumentParser ParsableArgumentsValidation.swift
[83/104] Compiling ArgumentParser ParsableCommand.swift
[84/104] Compiling ArgumentParser ArgumentDecoder.swift
[85/104] Compiling ArgumentParser ArgumentDefinition.swift
[86/104] Compiling ArgumentParser ArgumentSet.swift
[87/104] Compiling ArgumentParser CommandParser.swift
[88/104] Compiling ArgumentParser InputKey.swift
[89/104] Compiling ArgumentParser InputOrigin.swift
[91/105] Compiling DependencyGraph Graph+Stats.swift
[92/105] Compiling DependencyGraph Graph.swift
[92/105] Wrapping AST for Yams for debugging
[94/107] Compiling DependencyGraph Graph+Dot.swift
[95/107] Compiling DependencyGraph Graph+Make.swift
[96/107] Emitting module DependencyGraph
[96/108] Wrapping AST for ArgumentParser for debugging
[98/108] Wrapping AST for DependencyGraph for debugging
[100/108] Emitting module SPMExtractor
[101/108] Compiling SPMExtractor Module+Package.swift
[102/109] Wrapping AST for SPMExtractor for debugging
[104/109] Emitting module PodExtractor
[105/109] Compiling PodExtractor Module+Podfile.swift
[106/110] Wrapping AST for PodExtractor for debugging
[108/119] Compiling jungle ModuleStats.swift
[109/120] Compiling jungle GitLogEntry.swift
[110/120] Compiling jungle ModulesCommand.swift
/host/spi-builder-workspace/Sources/jungle/Commands/ModulesCommand.swift:11:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
[111/120] Compiling jungle Outputs.swift
[112/120] Compiling jungle Main.swift
/host/spi-builder-workspace/Sources/jungle/Commands/Main.swift:5:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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.",
[113/120] Compiling jungle CompareCommand.swift
/host/spi-builder-workspace/Sources/jungle/Commands/CompareCommand.swift:23:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
/host/spi-builder-workspace/Sources/jungle/Commands/DependantCommand.swift:9:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
[114/120] Compiling jungle DependantCommand.swift
/host/spi-builder-workspace/Sources/jungle/Commands/CompareCommand.swift:23:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
/host/spi-builder-workspace/Sources/jungle/Commands/DependantCommand.swift:9:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
[115/120] Emitting module jungle
/host/spi-builder-workspace/Sources/jungle/Commands/CompareCommand.swift:23:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
/host/spi-builder-workspace/Sources/jungle/Commands/DependantCommand.swift:9:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
/host/spi-builder-workspace/Sources/jungle/Commands/GraphCommand.swift:10:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
/host/spi-builder-workspace/Sources/jungle/Commands/HistoryCommand.swift:16:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
/host/spi-builder-workspace/Sources/jungle/Commands/Main.swift:5:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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.",
/host/spi-builder-workspace/Sources/jungle/Commands/ModulesCommand.swift:11:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
[116/120] Compiling jungle GraphCommand.swift
/host/spi-builder-workspace/Sources/jungle/Commands/GraphCommand.swift:10:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
[117/120] Compiling jungle HistoryCommand.swift
/host/spi-builder-workspace/Sources/jungle/Commands/HistoryCommand.swift:16:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated 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 nonisolated 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"
[118/121] Wrapping AST for jungle for debugging
[119/121] Write Objects.LinkFileList
[120/121] Linking jungle
Build complete! (18.63s)
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" : "/host/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"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.