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 main (fe6181), with Swift 6.0 for Linux on 29 Nov 2024 19:53:24 UTC.

Swift 6 data race errors: 6

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/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: main
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
 * 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:         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-4606859-2":/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
[598/22331] Fetching yams, swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser from cache (1.31s)
[7552/9936] Fetching yams
Fetched https://github.com/jpsim/Yams.git from cache (2.17s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.0 (0.93s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 5.1.3 (0.96s)
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
Creating working copy for https://github.com/jpsim/Yams.git
Working copy of https://github.com/jpsim/Yams.git resolved at 5.1.3
[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] Write swift-version-24593BA9C3E375BF.txt
[16/28] Compiling scanner.c
[18/49] Emitting module ArgumentParserToolInfo
[19/49] Compiling ArgumentParserToolInfo ToolInfo.swift
[20/50] Wrapping AST for ArgumentParserToolInfo for debugging
[22/88] Compiling ArgumentParser Name.swift
[23/88] Compiling ArgumentParser Parsed.swift
[24/88] Compiling ArgumentParser ParsedValues.swift
[25/88] Compiling ArgumentParser ParserError.swift
[26/88] Compiling ArgumentParser SplitArguments.swift
[27/93] Emitting module ArgumentParser
[28/93] Compiling ArgumentParser OptionGroup.swift
[29/93] Compiling ArgumentParser AsyncParsableCommand.swift
[30/93] Compiling ArgumentParser CommandConfiguration.swift
[31/93] Compiling ArgumentParser CommandGroup.swift
[32/93] Compiling ArgumentParser EnumerableFlag.swift
[33/93] Compiling ArgumentParser ArgumentVisibility.swift
[34/93] Compiling ArgumentParser CompletionKind.swift
[35/93] Compiling ArgumentParser Errors.swift
[36/93] Compiling ArgumentParser Flag.swift
[37/93] Compiling ArgumentParser NameSpecification.swift
[38/93] Compiling ArgumentParser Option.swift
[39/93] Compiling ArgumentParser BashCompletionsGenerator.swift
[40/93] Compiling ArgumentParser CompletionsGenerator.swift
[41/93] Compiling ArgumentParser FishCompletionsGenerator.swift
[42/93] Compiling ArgumentParser ZshCompletionsGenerator.swift
[43/93] Compiling ArgumentParser Argument.swift
[44/93] Compiling ArgumentParser ArgumentHelp.swift
[45/93] Compiling ArgumentParser CollectionExtensions.swift
[46/93] Compiling ArgumentParser Platform.swift
[47/93] Compiling ArgumentParser SequenceExtensions.swift
[48/93] Compiling ArgumentParser StringExtensions.swift
[49/93] Compiling ArgumentParser Tree.swift
[50/93] Compiling DependencyModule Module.swift
[51/93] Emitting module DependencyModule
[52/94] Emitting module Shell
[53/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 {
[60/95] Emitting module Yams
[70/98] Wrapping AST for DependencyModule for debugging
[71/98] Wrapping AST for Shell for debugging
[73/103] Emitting module DependencyGraph
[74/103] Compiling ArgumentParser ExpressibleByArgument.swift
[75/103] Compiling ArgumentParser ParsableArguments.swift
[76/103] Compiling ArgumentParser ParsableArgumentsValidation.swift
[77/103] Compiling ArgumentParser ParsableCommand.swift
[78/103] Compiling ArgumentParser ArgumentDecoder.swift
[79/103] Compiling ArgumentParser DumpHelpGenerator.swift
[80/103] Compiling ArgumentParser HelpCommand.swift
[81/103] Compiling ArgumentParser HelpGenerator.swift
[82/103] Compiling ArgumentParser MessageInfo.swift
[83/103] Compiling ArgumentParser UsageGenerator.swift
[84/103] Compiling ArgumentParser ArgumentDefinition.swift
[85/103] Compiling ArgumentParser ArgumentSet.swift
[86/103] Compiling ArgumentParser CommandParser.swift
[87/103] Compiling ArgumentParser InputKey.swift
[88/103] Compiling ArgumentParser InputOrigin.swift
[89/104] Compiling DependencyGraph Graph+Make.swift
[90/104] Compiling DependencyGraph Graph+Stats.swift
[92/104] Compiling DependencyGraph Graph.swift
[93/104] Compiling DependencyGraph Graph+Dot.swift
[94/105] Compiling Yams YamlError.swift
[96/106] Wrapping AST for ArgumentParser for debugging
[98/106] Emitting module SPMExtractor
[99/106] Compiling SPMExtractor Module+Package.swift
[99/107] Wrapping AST for DependencyGraph for debugging
[100/107] Wrapping AST for Yams for debugging
[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 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.",
[112/120] Compiling jungle Outputs.swift
[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] 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"
[116/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"
[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! (45.25s)
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.