This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

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 Invalidating with Swift 6.0 (beta) for macOS (SPM).

Swift 6 data race errors: 5

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/theblixguy/Invalidating.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/theblixguy/Invalidating
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 2e4c4d2 Create LICENSE
Cloned https://github.com/theblixguy/Invalidating.git
Revision (git rev-parse @):
2e4c4d234e9dd7a0aeb3770fd0f441e78bac25bc
SUCCESS checkout https://github.com/theblixguy/Invalidating.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/theblixguy/Invalidating.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
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-6F35C1178C84523A.txt
[3/11] Compiling Invalidating ViewInvalidating.swift
[4/11] Compiling Invalidating ViewInvalidating+Extensions.swift
[5/11] Compiling Invalidating Invalidations.swift
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:18:23: warning: static property 'layout' is not concurrency-safe because non-'Sendable' type 'Invalidations.Layout' may have shared mutable state; this is an error in the Swift 6 language mode
15 | @available(macOS, introduced: 10.11, obsoleted: 12, renamed: "NSView.Invalidations")
16 | public enum Invalidations {
17 |   public struct Layout: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'Layout' conform to the 'Sendable' protocol
18 |     public static let layout: Self = .init()
   |                       |- warning: static property 'layout' is not concurrency-safe because non-'Sendable' type 'Invalidations.Layout' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'layout' 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
19 |
20 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:30:23: warning: static property 'display' is not concurrency-safe because non-'Sendable' type 'Invalidations.Display' may have shared mutable state; this is an error in the Swift 6 language mode
27 |   }
28 |
29 |   public struct Display: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'Display' conform to the 'Sendable' protocol
30 |     public static let display: Self = .init()
   |                       |- warning: static property 'display' is not concurrency-safe because non-'Sendable' type 'Invalidations.Display' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'display' 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
31 |
32 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:42:23: warning: static property 'constraints' is not concurrency-safe because non-'Sendable' type 'Invalidations.Constraints' may have shared mutable state; this is an error in the Swift 6 language mode
39 |   }
40 |
41 |   public struct Constraints: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'Constraints' conform to the 'Sendable' protocol
42 |     public static let constraints: Self = .init()
   |                       |- warning: static property 'constraints' is not concurrency-safe because non-'Sendable' type 'Invalidations.Constraints' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'constraints' 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
43 |
44 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:54:23: warning: static property 'intrinsicContentSize' is not concurrency-safe because non-'Sendable' type 'Invalidations.IntrinsicContentSize' may have shared mutable state; this is an error in the Swift 6 language mode
51 |   }
52 |
53 |   public struct IntrinsicContentSize: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'IntrinsicContentSize' conform to the 'Sendable' protocol
54 |     public static let intrinsicContentSize: Self = .init()
   |                       |- warning: static property 'intrinsicContentSize' is not concurrency-safe because non-'Sendable' type 'Invalidations.IntrinsicContentSize' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'intrinsicContentSize' 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
55 |
56 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:63:23: warning: static property 'restorableState' is not concurrency-safe because non-'Sendable' type 'Invalidations.RestorableState' may have shared mutable state; this is an error in the Swift 6 language mode
60 |
61 | #if os(macOS)
62 |   public struct RestorableState: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'RestorableState' conform to the 'Sendable' protocol
63 |     public static let restorableState: Self = .init()
   |                       |- warning: static property 'restorableState' is not concurrency-safe because non-'Sendable' type 'Invalidations.RestorableState' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'restorableState' 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
64 |
65 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:24:12: warning: main actor-isolated property 'needsLayout' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
18 |     public static let layout: Self = .init()
19 |
20 |     public func invalidate(view: InvalidatingViewType) {
   |                 `- note: add '@MainActor' to make instance method 'invalidate(view:)' part of global actor 'MainActor'
21 | #if os(iOS) || os(tvOS)
22 |       view.setNeedsLayout()
23 | #elseif os(macOS)
24 |       view.needsLayout = true
   |            `- warning: main actor-isolated property 'needsLayout' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
25 | #endif
26 |     }
AppKit.NSView:284:25: note: mutation of this property is only permitted within the actor
282 |     open func layout()
283 |     @available(macOS 10.7, *)
284 |     @MainActor open var needsLayout: Bool { get set }
    |                         `- note: mutation of this property is only permitted within the actor
285 |     @available(macOS 10.5, *)
286 |     open var alphaValue: CGFloat { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:36:12: warning: call to main actor-isolated instance method 'setNeedsDisplay' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
30 |     public static let display: Self = .init()
31 |
32 |     public func invalidate(view: InvalidatingViewType) {
   |                 `- note: add '@MainActor' to make instance method 'invalidate(view:)' part of global actor 'MainActor'
33 | #if os(iOS) || os(tvOS)
34 |       view.setNeedsDisplay()
35 | #elseif os(macOS)
36 |       view.setNeedsDisplay(view.bounds)
   |            `- warning: call to main actor-isolated instance method 'setNeedsDisplay' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
37 | #endif
38 |     }
AppKit.NSView:174:15: note: calls to instance method 'setNeedsDisplay' from outside of its actor context are implicitly asynchronous
172 |     @available(macOS, introduced: 10.0, deprecated: 10.14, message: "If a view needs display, -drawRect: or -updateLayer will be called automatically when the view is able to draw.  To check whether a view is in a window, call -window.  To check whether a view is hidden, call -isHiddenOrHasHiddenAncestor.")
173 |     open var canDraw: Bool { get }
174 |     open func setNeedsDisplay(_ invalidRect: NSRect)
    |               `- note: calls to instance method 'setNeedsDisplay' from outside of its actor context are implicitly asynchronous
175 |     @available(swift, obsoleted: 3, renamed: "setNeedsDisplay(_:)")
176 |     open func setNeedsDisplayInRect(_ invalidRect: NSRect)
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:36:33: warning: main actor-isolated property 'bounds' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
30 |     public static let display: Self = .init()
31 |
32 |     public func invalidate(view: InvalidatingViewType) {
   |                 `- note: add '@MainActor' to make instance method 'invalidate(view:)' part of global actor 'MainActor'
33 | #if os(iOS) || os(tvOS)
34 |       view.setNeedsDisplay()
35 | #elseif os(macOS)
36 |       view.setNeedsDisplay(view.bounds)
   |                                 `- warning: main actor-isolated property 'bounds' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
37 | #endif
38 |     }
AppKit.NSView:76:14: note: property declared here
 74 |     @available(swift, obsoleted: 3, renamed: "rotate(byDegrees:)")
 75 |     open func rotateByAngle(_ angle: CGFloat)
 76 |     open var bounds: NSRect { get set }
    |              `- note: property declared here
 77 |     open var isFlipped: Bool { get }
 78 |     @available(swift, obsoleted: 3, renamed: "isFlipped")
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:48:12: warning: main actor-isolated property 'needsUpdateConstraints' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
42 |     public static let constraints: Self = .init()
43 |
44 |     public func invalidate(view: InvalidatingViewType) {
   |                 `- note: add '@MainActor' to make instance method 'invalidate(view:)' part of global actor 'MainActor'
45 | #if os(iOS) || os(tvOS)
46 |       view.setNeedsUpdateConstraints()
47 | #elseif os(macOS)
48 |       view.needsUpdateConstraints = true
   |            `- warning: main actor-isolated property 'needsUpdateConstraints' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
49 | #endif
50 |     }
AppKit.NSView:7:25: note: mutation of this property is only permitted within the actor
5 |     open func updateConstraints()
6 |     @available(macOS 10.7, *)
7 |     @MainActor open var needsUpdateConstraints: Bool { get set }
  |                         `- note: mutation of this property is only permitted within the actor
8 | }
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:57:12: warning: call to main actor-isolated instance method 'invalidateIntrinsicContentSize()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
54 |     public static let intrinsicContentSize: Self = .init()
55 |
56 |     public func invalidate(view: InvalidatingViewType) {
   |                 `- note: add '@MainActor' to make instance method 'invalidate(view:)' part of global actor 'MainActor'
57 |       view.invalidateIntrinsicContentSize()
   |            `- warning: call to main actor-isolated instance method 'invalidateIntrinsicContentSize()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
58 |     }
59 |   }
AppKit.NSView:23:26: note: calls to instance method 'invalidateIntrinsicContentSize()' from outside of its actor context are implicitly asynchronous
21 |     open var intrinsicContentSize: NSSize { get }
22 |     @available(macOS 10.7, *)
23 |     @MainActor open func invalidateIntrinsicContentSize()
   |                          `- note: calls to instance method 'invalidateIntrinsicContentSize()' from outside of its actor context are implicitly asynchronous
24 |     @available(macOS 10.7, *)
25 |     open func contentHuggingPriority(for orientation: NSLayoutConstraint.Orientation) -> NSLayoutConstraint.Priority
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:66:12: warning: call to main actor-isolated instance method 'invalidateRestorableState()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
63 |     public static let restorableState: Self = .init()
64 |
65 |     public func invalidate(view: InvalidatingViewType) {
   |                 `- note: add '@MainActor' to make instance method 'invalidate(view:)' part of global actor 'MainActor'
66 |       view.invalidateRestorableState()
   |            `- warning: call to main actor-isolated instance method 'invalidateRestorableState()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
67 |     }
68 |   }
AppKit.NSResponder:18:26: note: calls to instance method 'invalidateRestorableState()' from outside of its actor context are implicitly asynchronous
16 |     open func restoreStateWithCoder(_ coder: NSCoder)
17 |     @available(macOS 10.7, *)
18 |     @MainActor open func invalidateRestorableState()
   |                          `- note: calls to instance method 'invalidateRestorableState()' from outside of its actor context are implicitly asynchronous
19 |     @available(macOS 10.7, *)
20 |     open class var restorableStateKeyPaths: [String] { get }
[6/11] Compiling Invalidating Tuple.swift
[7/11] Compiling Invalidating InvalidatingStaticMember.swift
[8/11] Compiling Invalidating AnyViewInvalidating.swift
[9/11] Compiling Invalidating InvalidatingStaticMember+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:18:23: warning: static property 'layout' is not concurrency-safe because non-'Sendable' type 'Invalidations.Layout' may have shared mutable state; this is an error in the Swift 6 language mode
15 | @available(macOS, introduced: 10.11, obsoleted: 12, renamed: "NSView.Invalidations")
16 | public enum Invalidations {
17 |   public struct Layout: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'Layout' conform to the 'Sendable' protocol
18 |     public static let layout: Self = .init()
   |                       |- warning: static property 'layout' is not concurrency-safe because non-'Sendable' type 'Invalidations.Layout' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'layout' 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
19 |
20 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:30:23: warning: static property 'display' is not concurrency-safe because non-'Sendable' type 'Invalidations.Display' may have shared mutable state; this is an error in the Swift 6 language mode
27 |   }
28 |
29 |   public struct Display: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'Display' conform to the 'Sendable' protocol
30 |     public static let display: Self = .init()
   |                       |- warning: static property 'display' is not concurrency-safe because non-'Sendable' type 'Invalidations.Display' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'display' 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
31 |
32 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:42:23: warning: static property 'constraints' is not concurrency-safe because non-'Sendable' type 'Invalidations.Constraints' may have shared mutable state; this is an error in the Swift 6 language mode
39 |   }
40 |
41 |   public struct Constraints: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'Constraints' conform to the 'Sendable' protocol
42 |     public static let constraints: Self = .init()
   |                       |- warning: static property 'constraints' is not concurrency-safe because non-'Sendable' type 'Invalidations.Constraints' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'constraints' 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
43 |
44 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:54:23: warning: static property 'intrinsicContentSize' is not concurrency-safe because non-'Sendable' type 'Invalidations.IntrinsicContentSize' may have shared mutable state; this is an error in the Swift 6 language mode
51 |   }
52 |
53 |   public struct IntrinsicContentSize: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'IntrinsicContentSize' conform to the 'Sendable' protocol
54 |     public static let intrinsicContentSize: Self = .init()
   |                       |- warning: static property 'intrinsicContentSize' is not concurrency-safe because non-'Sendable' type 'Invalidations.IntrinsicContentSize' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'intrinsicContentSize' 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
55 |
56 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:63:23: warning: static property 'restorableState' is not concurrency-safe because non-'Sendable' type 'Invalidations.RestorableState' may have shared mutable state; this is an error in the Swift 6 language mode
60 |
61 | #if os(macOS)
62 |   public struct RestorableState: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'RestorableState' conform to the 'Sendable' protocol
63 |     public static let restorableState: Self = .init()
   |                       |- warning: static property 'restorableState' is not concurrency-safe because non-'Sendable' type 'Invalidations.RestorableState' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'restorableState' 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
64 |
65 |     public func invalidate(view: InvalidatingViewType) {
[10/11] Compiling Invalidating Imports.swift
[11/11] Emitting module Invalidating
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:18:23: warning: static property 'layout' is not concurrency-safe because non-'Sendable' type 'Invalidations.Layout' may have shared mutable state; this is an error in the Swift 6 language mode
15 | @available(macOS, introduced: 10.11, obsoleted: 12, renamed: "NSView.Invalidations")
16 | public enum Invalidations {
17 |   public struct Layout: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'Layout' conform to the 'Sendable' protocol
18 |     public static let layout: Self = .init()
   |                       |- warning: static property 'layout' is not concurrency-safe because non-'Sendable' type 'Invalidations.Layout' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'layout' 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
19 |
20 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:30:23: warning: static property 'display' is not concurrency-safe because non-'Sendable' type 'Invalidations.Display' may have shared mutable state; this is an error in the Swift 6 language mode
27 |   }
28 |
29 |   public struct Display: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'Display' conform to the 'Sendable' protocol
30 |     public static let display: Self = .init()
   |                       |- warning: static property 'display' is not concurrency-safe because non-'Sendable' type 'Invalidations.Display' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'display' 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
31 |
32 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:42:23: warning: static property 'constraints' is not concurrency-safe because non-'Sendable' type 'Invalidations.Constraints' may have shared mutable state; this is an error in the Swift 6 language mode
39 |   }
40 |
41 |   public struct Constraints: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'Constraints' conform to the 'Sendable' protocol
42 |     public static let constraints: Self = .init()
   |                       |- warning: static property 'constraints' is not concurrency-safe because non-'Sendable' type 'Invalidations.Constraints' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'constraints' 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
43 |
44 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:54:23: warning: static property 'intrinsicContentSize' is not concurrency-safe because non-'Sendable' type 'Invalidations.IntrinsicContentSize' may have shared mutable state; this is an error in the Swift 6 language mode
51 |   }
52 |
53 |   public struct IntrinsicContentSize: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'IntrinsicContentSize' conform to the 'Sendable' protocol
54 |     public static let intrinsicContentSize: Self = .init()
   |                       |- warning: static property 'intrinsicContentSize' is not concurrency-safe because non-'Sendable' type 'Invalidations.IntrinsicContentSize' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'intrinsicContentSize' 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
55 |
56 |     public func invalidate(view: InvalidatingViewType) {
/Users/admin/builder/spi-builder-workspace/Sources/Invalidating/Invalidations.swift:63:23: warning: static property 'restorableState' is not concurrency-safe because non-'Sendable' type 'Invalidations.RestorableState' may have shared mutable state; this is an error in the Swift 6 language mode
60 |
61 | #if os(macOS)
62 |   public struct RestorableState: InvalidatingViewProtocol {
   |                 `- note: consider making struct 'RestorableState' conform to the 'Sendable' protocol
63 |     public static let restorableState: Self = .init()
   |                       |- warning: static property 'restorableState' is not concurrency-safe because non-'Sendable' type 'Invalidations.RestorableState' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'restorableState' 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
64 |
65 |     public func invalidate(view: InvalidatingViewType) {
Build complete! (25.93s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Invalidating",
  "name" : "Invalidating",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "11.0"
    },
    {
      "name" : "tvos",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "10.11"
    }
  ],
  "products" : [
    {
      "name" : "Invalidating",
      "targets" : [
        "Invalidating"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "InvalidatingTests",
      "module_type" : "SwiftTarget",
      "name" : "InvalidatingTests",
      "path" : "Tests/InvalidatingTests",
      "sources" : [
        "InvalidatingTests.swift"
      ],
      "target_dependencies" : [
        "Invalidating"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Invalidating",
      "module_type" : "SwiftTarget",
      "name" : "Invalidating",
      "path" : "Sources/Invalidating",
      "product_memberships" : [
        "Invalidating"
      ],
      "sources" : [
        "AnyViewInvalidating.swift",
        "Imports.swift",
        "InvalidatingStaticMember+Extensions.swift",
        "InvalidatingStaticMember.swift",
        "Invalidations.swift",
        "Tuple.swift",
        "ViewInvalidating+Extensions.swift",
        "ViewInvalidating.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.