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 Fortify, reference main (999f26), with Swift 6.1 for macOS (SPM) on 1 May 2025 02:37:11 UTC.

Swift 6 data race errors: 5

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.61.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/johnno1962/Fortify.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/johnno1962/Fortify
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 999f264 Remove #filePath
Cloned https://github.com/johnno1962/Fortify.git
Revision (git rev-parse @):
999f2644ed80ecd67db3344c79bfe9f329f03ad5
SUCCESS checkout https://github.com/johnno1962/Fortify.git at main
Fetching https://github.com/johnno1962/DLKit
Fetching https://github.com/johnno1962/StringIndex
Fetching https://github.com/johnno1962/Popen.git
Fetching https://github.com/johnno1962/SwiftRegex5.git
[4/387] Fetching dlkit
[234/541] Fetching dlkit, stringindex
[388/668] Fetching dlkit, stringindex, popen
[553/877] Fetching dlkit, stringindex, popen, swiftregex5
Fetched https://github.com/johnno1962/StringIndex from cache (0.86s)
Fetched https://github.com/johnno1962/Popen.git from cache (0.86s)
Fetched https://github.com/johnno1962/DLKit from cache (0.86s)
Fetched https://github.com/johnno1962/SwiftRegex5.git from cache (0.86s)
Computing version for https://github.com/johnno1962/SwiftRegex5.git
Computed https://github.com/johnno1962/SwiftRegex5.git at 6.1.3 (1.43s)
Computing version for https://github.com/johnno1962/StringIndex
Computed https://github.com/johnno1962/StringIndex at 2.2.4 (0.53s)
Computing version for https://github.com/johnno1962/Popen.git
Computed https://github.com/johnno1962/Popen.git at 2.1.7 (0.52s)
Computing version for https://github.com/johnno1962/DLKit
Computed https://github.com/johnno1962/DLKit at 3.4.7 (0.53s)
Fetching https://github.com/johnno1962/fishhook
[1/169] Fetching fishhook
Fetched https://github.com/johnno1962/fishhook from cache (0.60s)
Computing version for https://github.com/johnno1962/fishhook
Computed https://github.com/johnno1962/fishhook at 1.2.1 (1.16s)
Creating working copy for https://github.com/johnno1962/SwiftRegex5.git
Working copy of https://github.com/johnno1962/SwiftRegex5.git resolved at 6.1.3
Creating working copy for https://github.com/johnno1962/DLKit
Working copy of https://github.com/johnno1962/DLKit resolved at 3.4.7
Creating working copy for https://github.com/johnno1962/fishhook
Working copy of https://github.com/johnno1962/fishhook resolved at 1.2.1
Creating working copy for https://github.com/johnno1962/Popen.git
Working copy of https://github.com/johnno1962/Popen.git resolved at 2.1.7
Creating working copy for https://github.com/johnno1962/StringIndex
Working copy of https://github.com/johnno1962/StringIndex resolved at 2.2.4
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "fortify",
      "name": "Fortify",
      "url": "https://github.com/johnno1962/Fortify.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Fortify",
      "dependencies": [
        {
          "identity": "stringindex",
          "name": "StringIndex",
          "url": "https://github.com/johnno1962/StringIndex",
          "version": "2.2.4",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/StringIndex",
          "dependencies": [
          ]
        },
        {
          "identity": "swiftregex5",
          "name": "SwiftRegex",
          "url": "https://github.com/johnno1962/SwiftRegex5.git",
          "version": "6.1.3",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftRegex5",
          "dependencies": [
          ]
        },
        {
          "identity": "popen",
          "name": "Popen",
          "url": "https://github.com/johnno1962/Popen.git",
          "version": "2.1.7",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Popen",
          "dependencies": [
          ]
        },
        {
          "identity": "dlkit",
          "name": "DLKit",
          "url": "https://github.com/johnno1962/DLKit",
          "version": "3.4.7",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/DLKit",
          "dependencies": [
            {
              "identity": "fishhook",
              "name": "fishhook",
              "url": "https://github.com/johnno1962/fishhook",
              "version": "1.2.1",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/fishhook",
              "dependencies": [
              ]
            }
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/johnno1962/Fortify.git
[1/148] Fetching fortify
Fetched https://github.com/johnno1962/Fortify.git from cache (0.69s)
Fetching https://github.com/johnno1962/SwiftRegex5.git from cache
Fetching https://github.com/johnno1962/Popen.git from cache
Fetching https://github.com/johnno1962/StringIndex from cache
Fetching https://github.com/johnno1962/DLKit from cache
Fetched https://github.com/johnno1962/Popen.git from cache (0.48s)
Fetched https://github.com/johnno1962/DLKit from cache (0.48s)
Fetched https://github.com/johnno1962/SwiftRegex5.git from cache (0.48s)
Fetched https://github.com/johnno1962/StringIndex from cache (0.48s)
Computing version for https://github.com/johnno1962/SwiftRegex5.git
Computed https://github.com/johnno1962/SwiftRegex5.git at 6.1.3 (0.54s)
Computing version for https://github.com/johnno1962/StringIndex
Computed https://github.com/johnno1962/StringIndex at 2.2.4 (0.02s)
Computing version for https://github.com/johnno1962/Popen.git
Computed https://github.com/johnno1962/Popen.git at 2.1.7 (0.02s)
Computing version for https://github.com/johnno1962/DLKit
Computed https://github.com/johnno1962/DLKit at 3.4.7 (0.02s)
Fetching https://github.com/johnno1962/fishhook from cache
Fetched https://github.com/johnno1962/fishhook from cache (0.45s)
Computing version for https://github.com/johnno1962/fishhook
Computed https://github.com/johnno1962/fishhook at 1.2.1 (0.50s)
Creating working copy for https://github.com/johnno1962/fishhook
Working copy of https://github.com/johnno1962/fishhook resolved at 1.2.1
Creating working copy for https://github.com/johnno1962/DLKit
Working copy of https://github.com/johnno1962/DLKit resolved at 3.4.7
Creating working copy for https://github.com/johnno1962/Fortify.git
Working copy of https://github.com/johnno1962/Fortify.git resolved at main (999f264)
Creating working copy for https://github.com/johnno1962/SwiftRegex5.git
Working copy of https://github.com/johnno1962/SwiftRegex5.git resolved at 6.1.3
Creating working copy for https://github.com/johnno1962/StringIndex
Working copy of https://github.com/johnno1962/StringIndex resolved at 2.2.4
Creating working copy for https://github.com/johnno1962/Popen.git
Working copy of https://github.com/johnno1962/Popen.git resolved at 2.1.7
warning: '.resolve-product-dependencies': dependency 'fortify' is not used by any target
Found 4 product dependencies
  - StringIndex
  - SwiftRegex
  - Popen
  - DLKit
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/johnno1962/Fortify.git
https://github.com/johnno1962/Fortify.git
{
  "dependencies" : [
    {
      "identity" : "stringindex",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.0.1",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/johnno1962/StringIndex"
    },
    {
      "identity" : "swiftregex5",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "6.0.1",
            "upper_bound" : "7.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/johnno1962/SwiftRegex5.git"
    },
    {
      "identity" : "popen",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.1.1",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/johnno1962/Popen.git"
    },
    {
      "identity" : "dlkit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.2.3",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/johnno1962/DLKit"
    }
  ],
  "manifest_display_name" : "Fortify",
  "name" : "Fortify",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Fortify",
      "targets" : [
        "Fortify"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "FortifyTests",
      "module_type" : "SwiftTarget",
      "name" : "FortifyTests",
      "path" : "Tests/FortifyTests",
      "sources" : [
        "FortifyTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "Fortify"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Fortify",
      "module_type" : "SwiftTarget",
      "name" : "Fortify",
      "path" : "Sources",
      "product_dependencies" : [
        "StringIndex",
        "DLKit",
        "Popen",
        "DLKitC",
        "SwiftRegex"
      ],
      "product_memberships" : [
        "Fortify"
      ],
      "sources" : [
        "Fortify.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/10] Write sources
[5/10] Write swift-version-2F0A5646E1D333AE.txt
[6/23] Compiling DLKitC DLKitC.c
[7/23] Compiling fishhook fishhook.c
[8/23] Compiling DLKitC trie_dlops.mm
[9/23] Compiling DLKitC trie_dladdr.mm
[11/30] Compiling DLKit Interposing.swift
[12/30] Compiling DLKit Iterators.swift
[13/30] Compiling Popen Topen.swift
[14/30] Emitting module SwiftRegex
[15/30] Compiling SwiftRegex TupleRegex.swift
[16/30] Compiling DLKit DLKit.swift
[17/30] Emitting module DLKit
[18/30] Compiling DLKit FileSymbols.swift
[19/30] Compiling DLKit ImageSymbols.swift
[20/30] Compiling DLKit Demangling.swift
[21/30] Compiling Popen Stream.swift
[22/30] Compiling StringIndex Subscripts.swift
[23/30] Compiling Popen Glob.swift
[24/30] Compiling Popen Popen.swift
[25/30] Emitting module Popen
[26/30] Compiling Popen Fopen.swift
[27/30] Compiling StringIndex StringIndex.swift
[28/30] Emitting module StringIndex
[29/30] Compiling Popen Fstat.swift
[30/30] Compiling StringIndex OffsetIndex.swift
[31/32] Compiling Fortify Fortify.swift
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:81:14: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 79 | }
 80 |
 81 | @_silgen_name ("setjmp")
    |              `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 82 | public func setjump(_: UnsafeMutablePointer<jmp_buf>) -> Int32
 83 |
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:84:14: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 82 | public func setjump(_: UnsafeMutablePointer<jmp_buf>) -> Int32
 83 |
 84 | @_silgen_name ("longjmp")
    |              `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 85 | public func longjump(_: UnsafeMutablePointer<jmp_buf>, _: Int32) -> Never
 86 |
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:38:16: warning: static property 'keyLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 36 | open class ThreadLocal {
 37 |     #if !os(Linux)
 38 |     static var keyLock = OS_SPINLOCK_INIT
    |                |- warning: static property 'keyLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'keyLock' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'keyLock' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |     #endif
 40 |
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:91:24: warning: static property 'pthreadKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 89 | open class Fortify: ThreadLocal {
 90 |
 91 |     static private var pthreadKey: pthread_key_t = 0
    |                        |- warning: static property 'pthreadKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'pthreadKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'pthreadKey' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 92 |
 93 |     override open class var threadKeyPointer: UnsafeMutablePointer<pthread_key_t> {
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:116:23: warning: static property 'signalsTrapped' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
114 |     }()
115 |
116 |     public static var signalsTrapped = [
    |                       |- warning: static property 'signalsTrapped' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'signalsTrapped' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'signalsTrapped' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
117 |         SIGILL: "SIGILL", // Force unwrap of nil etc.
118 |         SIGABRT: "SIGABRT", // Bad cast 5.2
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:156:25: warning: capture of 'runLoop' with non-sendable type 'RunLoop' in a '@Sendable' closure
154 |                 do {
155 |                     try protect {
156 |                         runLoop.run()
    |                         `- warning: capture of 'runLoop' with non-sendable type 'RunLoop' in a '@Sendable' closure
157 |                     }
158 |                 }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSRunLoop.h:16:12: note: class 'RunLoop' does not conform to the 'Sendable' protocol
14 | FOUNDATION_EXPORT NSRunLoopMode const NSRunLoopCommonModes API_AVAILABLE(macos(10.5), ios(2.0), watchos(2.0), tvos(9.0));
15 |
16 | @interface NSRunLoop : NSObject
   |            `- note: class 'RunLoop' does not conform to the 'Sendable' protocol
17 |
18 | @property (class, readonly, strong) NSRunLoop *currentRunLoop NS_SWIFT_UNAVAILABLE_FROM_ASYNC("currentRunLoop cannot be used from async contexts.");
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:160:21: warning: capture of 'onError' with non-sendable type '(any Error) -> Void' in a '@Sendable' closure
158 |                 }
159 |                 catch {
160 |                     onError(error)
    |                     |- warning: capture of 'onError' with non-sendable type '(any Error) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
161 |                 }
162 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:156:25: warning: capture of 'runLoop' with non-sendable type 'RunLoop' in an isolated closure; this is an error in the Swift 6 language mode
154 |                 do {
155 |                     try protect {
156 |                         runLoop.run()
    |                         `- warning: capture of 'runLoop' with non-sendable type 'RunLoop' in an isolated closure; this is an error in the Swift 6 language mode
157 |                     }
158 |                 }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSRunLoop.h:16:12: note: class 'RunLoop' does not conform to the 'Sendable' protocol
14 | FOUNDATION_EXPORT NSRunLoopMode const NSRunLoopCommonModes API_AVAILABLE(macos(10.5), ios(2.0), watchos(2.0), tvos(9.0));
15 |
16 | @interface NSRunLoop : NSObject
   |            `- note: class 'RunLoop' does not conform to the 'Sendable' protocol
17 |
18 | @property (class, readonly, strong) NSRunLoop *currentRunLoop NS_SWIFT_UNAVAILABLE_FROM_ASYNC("currentRunLoop cannot be used from async contexts.");
[32/32] Emitting module Fortify
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:81:14: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 79 | }
 80 |
 81 | @_silgen_name ("setjmp")
    |              `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 82 | public func setjump(_: UnsafeMutablePointer<jmp_buf>) -> Int32
 83 |
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:84:14: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 82 | public func setjump(_: UnsafeMutablePointer<jmp_buf>) -> Int32
 83 |
 84 | @_silgen_name ("longjmp")
    |              `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 85 | public func longjump(_: UnsafeMutablePointer<jmp_buf>, _: Int32) -> Never
 86 |
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:38:16: warning: static property 'keyLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 36 | open class ThreadLocal {
 37 |     #if !os(Linux)
 38 |     static var keyLock = OS_SPINLOCK_INIT
    |                |- warning: static property 'keyLock' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'keyLock' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'keyLock' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |     #endif
 40 |
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:91:24: warning: static property 'pthreadKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 89 | open class Fortify: ThreadLocal {
 90 |
 91 |     static private var pthreadKey: pthread_key_t = 0
    |                        |- warning: static property 'pthreadKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'pthreadKey' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'pthreadKey' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 92 |
 93 |     override open class var threadKeyPointer: UnsafeMutablePointer<pthread_key_t> {
/Users/admin/builder/spi-builder-workspace/Sources/Fortify.swift:116:23: warning: static property 'signalsTrapped' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
114 |     }()
115 |
116 |     public static var signalsTrapped = [
    |                       |- warning: static property 'signalsTrapped' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'signalsTrapped' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'signalsTrapped' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
117 |         SIGILL: "SIGILL", // Force unwrap of nil etc.
118 |         SIGABRT: "SIGABRT", // Bad cast 5.2
Build complete! (8.23s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "stringindex",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.0.1",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/johnno1962/StringIndex"
    },
    {
      "identity" : "swiftregex5",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "6.0.1",
            "upper_bound" : "7.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/johnno1962/SwiftRegex5.git"
    },
    {
      "identity" : "popen",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.1.1",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/johnno1962/Popen.git"
    },
    {
      "identity" : "dlkit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.2.3",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/johnno1962/DLKit"
    }
  ],
  "manifest_display_name" : "Fortify",
  "name" : "Fortify",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Fortify",
      "targets" : [
        "Fortify"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "FortifyTests",
      "module_type" : "SwiftTarget",
      "name" : "FortifyTests",
      "path" : "Tests/FortifyTests",
      "sources" : [
        "FortifyTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "Fortify"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Fortify",
      "module_type" : "SwiftTarget",
      "name" : "Fortify",
      "path" : "Sources",
      "product_dependencies" : [
        "StringIndex",
        "DLKit",
        "Popen",
        "DLKitC",
        "SwiftRegex"
      ],
      "product_memberships" : [
        "Fortify"
      ],
      "sources" : [
        "Fortify.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
Done.