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 Peppermint, reference main (a2ade2), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 06:32:34 UTC.

Swift 6 data race errors: 0

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.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/nsagora/peppermint.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/nsagora/peppermint
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at a2ade2c Add concurency support for the build-linux and build-macos workflows
Cloned https://github.com/nsagora/peppermint.git
Revision (git rev-parse @):
a2ade2c78156fe7e29bbe6978f9dd7f2865d58f3
SUCCESS checkout https://github.com/nsagora/peppermint.git at main
Fetching https://github.com/apple/swift-docc-symbolkit
Fetching https://github.com/apple/swift-docc-plugin
[1/2049] Fetching swift-docc-plugin
[227/5424] Fetching swift-docc-plugin, swift-docc-symbolkit
Fetched https://github.com/apple/swift-docc-plugin from cache (1.17s)
Fetched https://github.com/apple/swift-docc-symbolkit from cache (1.17s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.3.0 (1.74s)
Computing version for https://github.com/apple/swift-docc-symbolkit
Computed https://github.com/apple/swift-docc-symbolkit at 1.0.0 (0.63s)
Creating working copy for https://github.com/apple/swift-docc-symbolkit
Working copy of https://github.com/apple/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.3.0
========================================
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": "peppermint",
      "name": "Peppermint",
      "url": "https://github.com/nsagora/peppermint.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/peppermint",
      "dependencies": [
        {
          "identity": "swift-docc-plugin",
          "name": "SwiftDocCPlugin",
          "url": "https://github.com/apple/swift-docc-plugin",
          "version": "1.4.3",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-docc-plugin",
          "dependencies": [
            {
              "identity": "swift-docc-symbolkit",
              "name": "SymbolKit",
              "url": "https://github.com/swiftlang/swift-docc-symbolkit",
              "version": "1.0.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-docc-symbolkit",
              "dependencies": [
              ]
            }
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/nsagora/peppermint.git
[1/4266] Fetching peppermint
Fetched https://github.com/nsagora/peppermint.git from cache (1.12s)
Fetching https://github.com/apple/swift-docc-plugin from cache
Fetched https://github.com/apple/swift-docc-plugin from cache (0.48s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.3 (1.09s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.72s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.35s)
Creating working copy for https://github.com/nsagora/peppermint.git
Working copy of https://github.com/nsagora/peppermint.git resolved at main (a2ade2c)
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.4.3
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
warning: '.resolve-product-dependencies': dependency 'peppermint' is not used by any target
Found 1 product dependencies
  - SwiftDocCPlugin
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/nsagora/peppermint.git
https://github.com/nsagora/peppermint.git
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.1.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "Peppermint",
  "name" : "Peppermint",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Peppermint",
      "targets" : [
        "Peppermint"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "PeppermintTests",
      "module_type" : "SwiftTarget",
      "name" : "PeppermintTests",
      "path" : "Tests",
      "sources" : [
        "Constraints/AsyncConstraintWrapperTests.swift",
        "Constraints/ConstraintBuilderTests.swift",
        "Constraints/ContratintTests.swift",
        "Constraints/QueuedConstraintWrapperTests.swift",
        "Constraints/Standard/BlockConstraintTests.swift",
        "Constraints/Standard/GroupConstraintTests.swift",
        "Constraints/Standard/OptionalConstraintTests.swift",
        "Constraints/Standard/PredicateConstraintTests.swift",
        "Constraints/Standard/RequiredConstraintTests.swift",
        "Constraints/Standard/TypeConstraintTests.swift",
        "Constraints/SummaryTests.swift",
        "Predicates/AnyPredicateTests.swift",
        "Predicates/Standard/BlockPredicateTests.swift",
        "Predicates/Standard/CharacterSetPredicateTests.swift",
        "Predicates/Standard/DatePredicateTests.swift",
        "Predicates/Standard/EmailPredicateTests.swift",
        "Predicates/Standard/LengthPredicateTests.swift",
        "Predicates/Standard/RangePredicateTests.swift",
        "Predicates/Standard/RegexPredicateTests.swift",
        "Predicates/Standard/RequiredPredicateTests.swift",
        "Predicates/Standard/URLPredicateTests.swift",
        "Shared/FakeError.swift",
        "Shared/FakePredicate.swift"
      ],
      "target_dependencies" : [
        "Peppermint"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Peppermint",
      "module_type" : "SwiftTarget",
      "name" : "Peppermint",
      "path" : "Sources",
      "product_memberships" : [
        "Peppermint"
      ],
      "sources" : [
        "Constraints/AnyConstraint.swift",
        "Constraints/AsyncConstraint.swift",
        "Constraints/AsyncConstraintWrapper.swift",
        "Constraints/Constraint.swift",
        "Constraints/ConstraintBuilder.swift",
        "Constraints/QueuedConstraint.swift",
        "Constraints/QueuedConstraintWrapper.swift",
        "Constraints/Standard/BlockConstraint.swift",
        "Constraints/Standard/GroupConstraint+AllStrategy.swift",
        "Constraints/Standard/GroupConstraint+AnyStrategy.swift",
        "Constraints/Standard/GroupConstraint.swift",
        "Constraints/Standard/KeyPathConstraint.swift",
        "Constraints/Standard/OptionalConstraint.swift",
        "Constraints/Standard/PredicateConstraint.swift",
        "Constraints/Standard/RequiredConstraint.swift",
        "Constraints/Standard/TypeConstraint.swift",
        "Constraints/Summary+Result.swift",
        "Constraints/Summary.swift",
        "Predicates/AnyPredicate.swift",
        "Predicates/Predicate.swift",
        "Predicates/Standard/BlockPredicate.swift",
        "Predicates/Standard/CharacterSetPredicate.swift",
        "Predicates/Standard/DatePredicate.swift",
        "Predicates/Standard/EmailPredicate.swift",
        "Predicates/Standard/LengthPredicate.swift",
        "Predicates/Standard/RangePredicate.swift",
        "Predicates/Standard/RegexPredicate.swift",
        "Predicates/Standard/RequiredPredicate.swift",
        "Predicates/Standard/URLPredicate.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
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
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version-2F0A5646E1D333AE.txt
[5/32] Emitting module Peppermint
[6/34] Compiling Peppermint Constraint.swift
[7/34] Compiling Peppermint ConstraintBuilder.swift
[8/34] Compiling Peppermint QueuedConstraint.swift
[9/34] Compiling Peppermint QueuedConstraintWrapper.swift
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:19:26: warning: capture of 'self' with non-sendable type 'QueuedConstraintWrapper<T, E>' in a '@Sendable' closure
 1 | import Foundation
 2 |
 3 | public struct QueuedConstraintWrapper<T, E: Error>: QueuedConstraint {
   |               `- note: consider making generic struct 'QueuedConstraintWrapper' conform to the 'Sendable' protocol
 4 |
 5 |     public typealias InputType = T
   :
17 |     public func evaluate(with input: T, on queue: DispatchQueue, completionHandler: @escaping (Result<Void, Summary<E>>) -> Void) {
18 |         workQueue.async {
19 |             let result = constraint.evaluate(with: input)
   |                          `- warning: capture of 'self' with non-sendable type 'QueuedConstraintWrapper<T, E>' in a '@Sendable' closure
20 |             queue.async {
21 |                 completionHandler(result)
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:19:52: warning: capture of 'input' with non-sendable type 'T' in a '@Sendable' closure
 1 | import Foundation
 2 |
 3 | public struct QueuedConstraintWrapper<T, E: Error>: QueuedConstraint {
   |                                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public typealias InputType = T
   :
17 |     public func evaluate(with input: T, on queue: DispatchQueue, completionHandler: @escaping (Result<Void, Summary<E>>) -> Void) {
18 |         workQueue.async {
19 |             let result = constraint.evaluate(with: input)
   |                                                    `- warning: capture of 'input' with non-sendable type 'T' in a '@Sendable' closure
20 |             queue.async {
21 |                 completionHandler(result)
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:21:17: warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
19 |             let result = constraint.evaluate(with: input)
20 |             queue.async {
21 |                 completionHandler(result)
   |                 |- warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
   |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
22 |             }
23 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:21:17: warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
19 |             let result = constraint.evaluate(with: input)
20 |             queue.async {
21 |                 completionHandler(result)
   |                 |- warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
   |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
22 |             }
23 |         }
[10/34] Compiling Peppermint BlockConstraint.swift
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:19:26: warning: capture of 'self' with non-sendable type 'QueuedConstraintWrapper<T, E>' in a '@Sendable' closure
 1 | import Foundation
 2 |
 3 | public struct QueuedConstraintWrapper<T, E: Error>: QueuedConstraint {
   |               `- note: consider making generic struct 'QueuedConstraintWrapper' conform to the 'Sendable' protocol
 4 |
 5 |     public typealias InputType = T
   :
17 |     public func evaluate(with input: T, on queue: DispatchQueue, completionHandler: @escaping (Result<Void, Summary<E>>) -> Void) {
18 |         workQueue.async {
19 |             let result = constraint.evaluate(with: input)
   |                          `- warning: capture of 'self' with non-sendable type 'QueuedConstraintWrapper<T, E>' in a '@Sendable' closure
20 |             queue.async {
21 |                 completionHandler(result)
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:19:52: warning: capture of 'input' with non-sendable type 'T' in a '@Sendable' closure
 1 | import Foundation
 2 |
 3 | public struct QueuedConstraintWrapper<T, E: Error>: QueuedConstraint {
   |                                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public typealias InputType = T
   :
17 |     public func evaluate(with input: T, on queue: DispatchQueue, completionHandler: @escaping (Result<Void, Summary<E>>) -> Void) {
18 |         workQueue.async {
19 |             let result = constraint.evaluate(with: input)
   |                                                    `- warning: capture of 'input' with non-sendable type 'T' in a '@Sendable' closure
20 |             queue.async {
21 |                 completionHandler(result)
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:21:17: warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
19 |             let result = constraint.evaluate(with: input)
20 |             queue.async {
21 |                 completionHandler(result)
   |                 |- warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
   |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
22 |             }
23 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:21:17: warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
19 |             let result = constraint.evaluate(with: input)
20 |             queue.async {
21 |                 completionHandler(result)
   |                 |- warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
   |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
22 |             }
23 |         }
[11/34] Compiling Peppermint GroupConstraint+AllStrategy.swift
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:19:26: warning: capture of 'self' with non-sendable type 'QueuedConstraintWrapper<T, E>' in a '@Sendable' closure
 1 | import Foundation
 2 |
 3 | public struct QueuedConstraintWrapper<T, E: Error>: QueuedConstraint {
   |               `- note: consider making generic struct 'QueuedConstraintWrapper' conform to the 'Sendable' protocol
 4 |
 5 |     public typealias InputType = T
   :
17 |     public func evaluate(with input: T, on queue: DispatchQueue, completionHandler: @escaping (Result<Void, Summary<E>>) -> Void) {
18 |         workQueue.async {
19 |             let result = constraint.evaluate(with: input)
   |                          `- warning: capture of 'self' with non-sendable type 'QueuedConstraintWrapper<T, E>' in a '@Sendable' closure
20 |             queue.async {
21 |                 completionHandler(result)
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:19:52: warning: capture of 'input' with non-sendable type 'T' in a '@Sendable' closure
 1 | import Foundation
 2 |
 3 | public struct QueuedConstraintWrapper<T, E: Error>: QueuedConstraint {
   |                                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public typealias InputType = T
   :
17 |     public func evaluate(with input: T, on queue: DispatchQueue, completionHandler: @escaping (Result<Void, Summary<E>>) -> Void) {
18 |         workQueue.async {
19 |             let result = constraint.evaluate(with: input)
   |                                                    `- warning: capture of 'input' with non-sendable type 'T' in a '@Sendable' closure
20 |             queue.async {
21 |                 completionHandler(result)
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:21:17: warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
19 |             let result = constraint.evaluate(with: input)
20 |             queue.async {
21 |                 completionHandler(result)
   |                 |- warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
   |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
22 |             }
23 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/QueuedConstraintWrapper.swift:21:17: warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
19 |             let result = constraint.evaluate(with: input)
20 |             queue.async {
21 |                 completionHandler(result)
   |                 |- warning: capture of 'completionHandler' with non-sendable type '(Result<Void, Summary<E>>) -> Void' in a '@Sendable' closure
   |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
22 |             }
23 |         }
[12/34] Compiling Peppermint RequiredPredicate.swift
[13/34] Compiling Peppermint URLPredicate.swift
[14/34] Compiling Peppermint AnyPredicate.swift
[15/34] Compiling Peppermint Predicate.swift
[16/34] Compiling Peppermint BlockPredicate.swift
[17/34] Compiling Peppermint OptionalConstraint.swift
[18/34] Compiling Peppermint PredicateConstraint.swift
[19/34] Compiling Peppermint RequiredConstraint.swift
[20/34] Compiling Peppermint AnyConstraint.swift
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/AsyncConstraintWrapper.swift:16:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
14 |
15 |     public func evaluate(with input: T) async -> Result<Void, Summary<E>> {
16 |         await Task {
   |                    `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
17 |             constraint.evaluate(with: input)
   |             |                         `- note: closure captures non-Sendable 'input'
   |             `- note: closure captures non-Sendable 'self'
18 |         }.value
19 |     }
[21/34] Compiling Peppermint AsyncConstraint.swift
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/AsyncConstraintWrapper.swift:16:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
14 |
15 |     public func evaluate(with input: T) async -> Result<Void, Summary<E>> {
16 |         await Task {
   |                    `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
17 |             constraint.evaluate(with: input)
   |             |                         `- note: closure captures non-Sendable 'input'
   |             `- note: closure captures non-Sendable 'self'
18 |         }.value
19 |     }
[22/34] Compiling Peppermint AsyncConstraintWrapper.swift
/Users/admin/builder/spi-builder-workspace/Sources/Constraints/AsyncConstraintWrapper.swift:16:20: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
14 |
15 |     public func evaluate(with input: T) async -> Result<Void, Summary<E>> {
16 |         await Task {
   |                    `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
17 |             constraint.evaluate(with: input)
   |             |                         `- note: closure captures non-Sendable 'input'
   |             `- note: closure captures non-Sendable 'self'
18 |         }.value
19 |     }
[23/34] Compiling Peppermint LengthPredicate.swift
[24/34] Compiling Peppermint RangePredicate.swift
[25/34] Compiling Peppermint RegexPredicate.swift
[26/34] Compiling Peppermint TypeConstraint.swift
[27/34] Compiling Peppermint Summary+Result.swift
[28/34] Compiling Peppermint Summary.swift
[29/34] Compiling Peppermint GroupConstraint+AnyStrategy.swift
[30/34] Compiling Peppermint GroupConstraint.swift
[31/34] Compiling Peppermint KeyPathConstraint.swift
[32/34] Compiling Peppermint CharacterSetPredicate.swift
[33/34] Compiling Peppermint DatePredicate.swift
[34/34] Compiling Peppermint EmailPredicate.swift
Build complete! (15.11s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.1.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "Peppermint",
  "name" : "Peppermint",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Peppermint",
      "targets" : [
        "Peppermint"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "PeppermintTests",
      "module_type" : "SwiftTarget",
      "name" : "PeppermintTests",
      "path" : "Tests",
      "sources" : [
        "Constraints/AsyncConstraintWrapperTests.swift",
        "Constraints/ConstraintBuilderTests.swift",
        "Constraints/ContratintTests.swift",
        "Constraints/QueuedConstraintWrapperTests.swift",
        "Constraints/Standard/BlockConstraintTests.swift",
        "Constraints/Standard/GroupConstraintTests.swift",
        "Constraints/Standard/OptionalConstraintTests.swift",
        "Constraints/Standard/PredicateConstraintTests.swift",
        "Constraints/Standard/RequiredConstraintTests.swift",
        "Constraints/Standard/TypeConstraintTests.swift",
        "Constraints/SummaryTests.swift",
        "Predicates/AnyPredicateTests.swift",
        "Predicates/Standard/BlockPredicateTests.swift",
        "Predicates/Standard/CharacterSetPredicateTests.swift",
        "Predicates/Standard/DatePredicateTests.swift",
        "Predicates/Standard/EmailPredicateTests.swift",
        "Predicates/Standard/LengthPredicateTests.swift",
        "Predicates/Standard/RangePredicateTests.swift",
        "Predicates/Standard/RegexPredicateTests.swift",
        "Predicates/Standard/RequiredPredicateTests.swift",
        "Predicates/Standard/URLPredicateTests.swift",
        "Shared/FakeError.swift",
        "Shared/FakePredicate.swift"
      ],
      "target_dependencies" : [
        "Peppermint"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Peppermint",
      "module_type" : "SwiftTarget",
      "name" : "Peppermint",
      "path" : "Sources",
      "product_memberships" : [
        "Peppermint"
      ],
      "sources" : [
        "Constraints/AnyConstraint.swift",
        "Constraints/AsyncConstraint.swift",
        "Constraints/AsyncConstraintWrapper.swift",
        "Constraints/Constraint.swift",
        "Constraints/ConstraintBuilder.swift",
        "Constraints/QueuedConstraint.swift",
        "Constraints/QueuedConstraintWrapper.swift",
        "Constraints/Standard/BlockConstraint.swift",
        "Constraints/Standard/GroupConstraint+AllStrategy.swift",
        "Constraints/Standard/GroupConstraint+AnyStrategy.swift",
        "Constraints/Standard/GroupConstraint.swift",
        "Constraints/Standard/KeyPathConstraint.swift",
        "Constraints/Standard/OptionalConstraint.swift",
        "Constraints/Standard/PredicateConstraint.swift",
        "Constraints/Standard/RequiredConstraint.swift",
        "Constraints/Standard/TypeConstraint.swift",
        "Constraints/Summary+Result.swift",
        "Constraints/Summary.swift",
        "Predicates/AnyPredicate.swift",
        "Predicates/Predicate.swift",
        "Predicates/Standard/BlockPredicate.swift",
        "Predicates/Standard/CharacterSetPredicate.swift",
        "Predicates/Standard/DatePredicate.swift",
        "Predicates/Standard/EmailPredicate.swift",
        "Predicates/Standard/LengthPredicate.swift",
        "Predicates/Standard/RangePredicate.swift",
        "Predicates/Standard/RegexPredicate.swift",
        "Predicates/Standard/RequiredPredicate.swift",
        "Predicates/Standard/URLPredicate.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Done.