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.