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 CoordinatorPlus, reference main (27dee8), with Swift 6.0 for macOS (SPM) on 2 Nov 2024 06:31:53 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/richardpiazza/CoordinatorPlus.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/richardpiazza/CoordinatorPlus
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 27dee8b Removes all deprecated type-aliases and methods. (#2)
Cloned https://github.com/richardpiazza/CoordinatorPlus.git
Revision (git rev-parse @):
27dee8b58d780df59d560e1f3d0f32ff8f4d603b
SUCCESS checkout https://github.com/richardpiazza/CoordinatorPlus.git at main
========================================
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": "coordinatorplus",
      "name": "CoordinatorPlus",
      "url": "https://github.com/richardpiazza/CoordinatorPlus.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/CoordinatorPlus",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/richardpiazza/CoordinatorPlus.git
[1/106] Fetching coordinatorplus
Fetched https://github.com/richardpiazza/CoordinatorPlus.git from cache (0.66s)
Creating working copy for https://github.com/richardpiazza/CoordinatorPlus.git
Working copy of https://github.com/richardpiazza/CoordinatorPlus.git resolved at main (27dee8b)
warning: '.resolve-product-dependencies': dependency 'coordinatorplus' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/richardpiazza/CoordinatorPlus.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun 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--7754E27361AE5C74.txt
[3/12] Compiling CoordinatorPlus NavigationFlowStepCoordinator.swift
[4/13] Compiling CoordinatorPlus SplitViewFlowStepCoordinator.swift
[5/13] Compiling CoordinatorPlus TabBarFlowStepCoordinator.swift
[6/13] Compiling CoordinatorPlus FlowStep.swift
[7/13] Emitting module CoordinatorPlus
[8/13] Compiling CoordinatorPlus FlowCoordinator.swift
[9/13] Compiling CoordinatorPlus FlowStepViewController.swift
[10/13] Compiling CoordinatorPlus Flow.swift
[11/13] Compiling CoordinatorPlus AppCoordinator.swift
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:123:17: warning: capture of 'currentCoordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
121 |         if let currentCoordinator = self.currentCoordinator, currentCoordinator.flow.isEqual(flow) {
122 |             DispatchQueue.main.async {
123 |                 currentCoordinator.resume()
    |                 `- warning: capture of 'currentCoordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 |             }
125 |             return
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/FlowCoordinator.swift:20:17: note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
18 | ///     the context of a UISplitViewController.
19 | ///
20 | public protocol FlowCoordinator: AnyObject {
   |                 `- note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
21 |
22 |     #if canImport(UIKit)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:128:17: warning: capture of 'modalCoordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
126 |         } else if let modalCoordinator = self.modalCoordinator, modalCoordinator.flow.isEqual(flow) {
127 |             DispatchQueue.main.async {
128 |                 modalCoordinator.resume()
    |                 `- warning: capture of 'modalCoordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
129 |             }
130 |             return
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/FlowCoordinator.swift:20:17: note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
18 | ///     the context of a UISplitViewController.
19 | ///
20 | public protocol FlowCoordinator: AnyObject {
   |                 `- note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
21 |
22 |     #if canImport(UIKit)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:146:17: warning: capture of 'modalCoordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
144 |         if let modalCoordinator = self.modalCoordinator, nextCoordinator.isModal {
145 |             DispatchQueue.main.async {
146 |                 modalCoordinator.end()
    |                 `- warning: capture of 'modalCoordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
147 |             }
148 |             dismiss(flowCoordinator: modalCoordinator, animated: animated) { [unowned self] in
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/FlowCoordinator.swift:20:17: note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
18 | ///     the context of a UISplitViewController.
19 | ///
20 | public protocol FlowCoordinator: AnyObject {
   |                 `- note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
21 |
22 |     #if canImport(UIKit)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:154:17: warning: capture of 'currentCoordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
152 |         } else if let currentCoordinator = self.currentCoordinator, !nextCoordinator.isModal {
153 |             DispatchQueue.main.async {
154 |                 currentCoordinator.end()
    |                 `- warning: capture of 'currentCoordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
155 |             }
156 |             dismiss(flowCoordinator: currentCoordinator, animated: animated) { [unowned self] in
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/FlowCoordinator.swift:20:17: note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
18 | ///     the context of a UISplitViewController.
19 | ///
20 | public protocol FlowCoordinator: AnyObject {
   |                 `- note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
21 |
22 |     #if canImport(UIKit)
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:162:17: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |         } else {
161 |             DispatchQueue.main.async {
162 |                 self.currentCoordinator?.pause()
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
163 |                 nextCoordinator.begin(with: data)
164 |             }
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:163:17: warning: capture of 'nextCoordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
161 |             DispatchQueue.main.async {
162 |                 self.currentCoordinator?.pause()
163 |                 nextCoordinator.begin(with: data)
    |                 `- warning: capture of 'nextCoordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
164 |             }
165 |             present(flowCoordinator: nextCoordinator, animated: animated, completion: nil)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/FlowCoordinator.swift:20:17: note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
18 | ///     the context of a UISplitViewController.
19 | ///
20 | public protocol FlowCoordinator: AnyObject {
   |                 `- note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
21 |
22 |     #if canImport(UIKit)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:163:45: warning: capture of 'data' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
161 |             DispatchQueue.main.async {
162 |                 self.currentCoordinator?.pause()
163 |                 nextCoordinator.begin(with: data)
    |                                             `- warning: capture of 'data' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
164 |             }
165 |             present(flowCoordinator: nextCoordinator, animated: animated, completion: nil)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:172:17: warning: capture of 'coordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
170 |         if let coordinator = self.currentCoordinator, coordinator.flow.isEqual(flow) {
171 |             DispatchQueue.main.async {
172 |                 coordinator.end()
    |                 `- warning: capture of 'coordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
173 |             }
174 |             dismiss(flowCoordinator: coordinator, animated: true, completion: nil)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/FlowCoordinator.swift:20:17: note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
18 | ///     the context of a UISplitViewController.
19 | ///
20 | public protocol FlowCoordinator: AnyObject {
   |                 `- note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
21 |
22 |     #if canImport(UIKit)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:178:17: warning: capture of 'coordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
176 |         } else if let coordinator = self.modalCoordinator, coordinator.flow.isEqual(flow) {
177 |             DispatchQueue.main.async {
178 |                 coordinator.end()
    |                 `- warning: capture of 'coordinator' with non-sendable type 'any FlowCoordinator' in a `@Sendable` closure; this is an error in the Swift 6 language mode
179 |             }
180 |             dismiss(flowCoordinator: coordinator, animated: true, completion: nil)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/FlowCoordinator.swift:20:17: note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
18 | ///     the context of a UISplitViewController.
19 | ///
20 | public protocol FlowCoordinator: AnyObject {
   |                 `- note: protocol 'FlowCoordinator' does not conform to the 'Sendable' protocol
21 |
22 |     #if canImport(UIKit)
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:183:17: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
181 |             self.modalCoordinator = nil
182 |             DispatchQueue.main.async {
183 |                 self.currentCoordinator?.resume()
    |                 `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
184 |             }
185 |         }
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:123:17: warning: sending 'currentCoordinator' risks causing data races; this is an error in the Swift 6 language mode
121 |         if let currentCoordinator = self.currentCoordinator, currentCoordinator.flow.isEqual(flow) {
122 |             DispatchQueue.main.async {
123 |                 currentCoordinator.resume()
    |                 |- warning: sending 'currentCoordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'currentCoordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
124 |             }
125 |             return
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:128:17: warning: sending 'modalCoordinator' risks causing data races; this is an error in the Swift 6 language mode
126 |         } else if let modalCoordinator = self.modalCoordinator, modalCoordinator.flow.isEqual(flow) {
127 |             DispatchQueue.main.async {
128 |                 modalCoordinator.resume()
    |                 |- warning: sending 'modalCoordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'modalCoordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
129 |             }
130 |             return
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:146:17: warning: sending 'modalCoordinator' risks causing data races; this is an error in the Swift 6 language mode
144 |         if let modalCoordinator = self.modalCoordinator, nextCoordinator.isModal {
145 |             DispatchQueue.main.async {
146 |                 modalCoordinator.end()
    |                 |- warning: sending 'modalCoordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'modalCoordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
147 |             }
148 |             dismiss(flowCoordinator: modalCoordinator, animated: animated) { [unowned self] in
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:154:17: warning: sending 'currentCoordinator' risks causing data races; this is an error in the Swift 6 language mode
152 |         } else if let currentCoordinator = self.currentCoordinator, !nextCoordinator.isModal {
153 |             DispatchQueue.main.async {
154 |                 currentCoordinator.end()
    |                 |- warning: sending 'currentCoordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'currentCoordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
155 |             }
156 |             dismiss(flowCoordinator: currentCoordinator, animated: animated) { [unowned self] in
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:162:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
160 |         } else {
161 |             DispatchQueue.main.async {
162 |                 self.currentCoordinator?.pause()
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
163 |                 nextCoordinator.begin(with: data)
164 |             }
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:163:17: warning: sending 'nextCoordinator' risks causing data races; this is an error in the Swift 6 language mode
161 |             DispatchQueue.main.async {
162 |                 self.currentCoordinator?.pause()
163 |                 nextCoordinator.begin(with: data)
    |                 |- warning: sending 'nextCoordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'nextCoordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
164 |             }
165 |             present(flowCoordinator: nextCoordinator, animated: animated, completion: nil)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:163:45: warning: sending 'data' risks causing data races; this is an error in the Swift 6 language mode
161 |             DispatchQueue.main.async {
162 |                 self.currentCoordinator?.pause()
163 |                 nextCoordinator.begin(with: data)
    |                                             |- warning: sending 'data' risks causing data races; this is an error in the Swift 6 language mode
    |                                             `- note: task-isolated 'data' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
164 |             }
165 |             present(flowCoordinator: nextCoordinator, animated: animated, completion: nil)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:172:17: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
170 |         if let coordinator = self.currentCoordinator, coordinator.flow.isEqual(flow) {
171 |             DispatchQueue.main.async {
172 |                 coordinator.end()
    |                 |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
173 |             }
174 |             dismiss(flowCoordinator: coordinator, animated: true, completion: nil)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:178:17: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
176 |         } else if let coordinator = self.modalCoordinator, coordinator.flow.isEqual(flow) {
177 |             DispatchQueue.main.async {
178 |                 coordinator.end()
    |                 |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
179 |             }
180 |             dismiss(flowCoordinator: coordinator, animated: true, completion: nil)
/Users/admin/builder/spi-builder-workspace/Sources/CoordinatorPlus/AppCoordinator.swift:183:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
181 |             self.modalCoordinator = nil
182 |             DispatchQueue.main.async {
183 |                 self.currentCoordinator?.resume()
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
184 |             }
185 |         }
[12/13] Compiling CoordinatorPlus FlowStepCoordinator.swift
[13/13] Compiling CoordinatorPlus FlowCoordinatorDelegate.swift
Build complete! (12.27s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "CoordinatorPlus",
  "name" : "CoordinatorPlus",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "CoordinatorPlus",
      "targets" : [
        "CoordinatorPlus"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CoordinatorPlusTests",
      "module_type" : "SwiftTarget",
      "name" : "CoordinatorPlusTests",
      "path" : "Tests/CoordinatorPlusTests",
      "sources" : [
        "TaskTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "CoordinatorPlus"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CoordinatorPlus",
      "module_type" : "SwiftTarget",
      "name" : "CoordinatorPlus",
      "path" : "Sources/CoordinatorPlus",
      "product_memberships" : [
        "CoordinatorPlus"
      ],
      "sources" : [
        "AppCoordinator.swift",
        "Flow.swift",
        "FlowCoordinator.swift",
        "FlowCoordinatorDelegate.swift",
        "FlowStep.swift",
        "FlowStepCoordinator.swift",
        "FlowStepViewController.swift",
        "NavigationFlowStepCoordinator.swift",
        "SplitViewFlowStepCoordinator.swift",
        "TabBarFlowStepCoordinator.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
Done.