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

Failed to build Cluster, reference 3.0.3 (3c7056), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 20:07:19 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/efremidze/Cluster.git
Reference: 3.0.3
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/efremidze/Cluster
 * tag               3.0.3      -> FETCH_HEAD
HEAD is now at 3c70568 3.0.3
Cloned https://github.com/efremidze/Cluster.git
Revision (git rev-parse @):
3c70568c779456355895adf354a01e7fe5440ebf
SUCCESS checkout https://github.com/efremidze/Cluster.git at 3.0.3
========================================
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": "cluster",
      "name": "Cluster",
      "url": "https://github.com/efremidze/Cluster.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Cluster",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/efremidze/Cluster.git
[1/1927] Fetching cluster
Fetched https://github.com/efremidze/Cluster.git from cache (1.10s)
Creating working copy for https://github.com/efremidze/Cluster.git
Working copy of https://github.com/efremidze/Cluster.git resolved at 3.0.3 (3c70568)
warning: '.resolve-product-dependencies': dependency 'cluster' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/efremidze/Cluster.git
https://github.com/efremidze/Cluster.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Cluster",
  "name" : "Cluster",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "Cluster",
      "targets" : [
        "Cluster"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ClusterTests",
      "module_type" : "SwiftTarget",
      "name" : "ClusterTests",
      "path" : "Tests",
      "sources" : [
        "Tests.swift"
      ],
      "target_dependencies" : [
        "Cluster"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Cluster",
      "module_type" : "SwiftTarget",
      "name" : "Cluster",
      "path" : "Sources",
      "product_memberships" : [
        "Cluster"
      ],
      "sources" : [
        "Annotation.swift",
        "Atomic.swift",
        "Cluster.swift",
        "Extensions.swift",
        "QuadTree.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
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/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/8] Compiling Cluster QuadTree.swift
[4/8] Compiling Cluster Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions.swift:27:1: warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
 25 | let MKMapPointMax = MKMapPoint(CLLocationCoordinate2DMax)
 26 |
 27 | extension CLLocationCoordinate2D: Hashable {
    | |- warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 28 |     public func hash(into hasher: inout Hasher) {
 29 |         hasher.combine(latitude)
/Users/admin/builder/spi-builder-workspace/Sources/Extensions.swift:108:13: warning: capture of 'block' with non-sendable type '(BlockOperation) -> Void' in a '@Sendable' closure
106 |         operation.addExecutionBlock { [weak operation] in
107 |             guard let operation = operation else { return }
108 |             block(operation)
    |             |- warning: capture of 'block' with non-sendable type '(BlockOperation) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
109 |         }
110 |         self.addOperation(operation)
[5/8] Compiling Cluster Cluster.swift
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:12:41: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 10 | import MapKit
 11 |
 12 | public protocol ClusterManagerDelegate: class {
    |                                         `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 13 |     /**
 14 |      The size of each cell on the grid (The larger the size, the better the performance) at a given zoom level.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:161:13: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
 42 | }
 43 |
 44 | open class ClusterManager {
    |            `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
 45 |
 46 |     var tree = QuadTree(rect: .world)
    :
159 |         operationQueue.cancelAllOperations()
160 |         dispatchQueue.async(flags: .barrier) { [weak self] in
161 |             self?.tree.add(annotation)
    |             `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
162 |         }
163 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:161:28: warning: capture of 'annotation' with non-sendable type 'any MKAnnotation' in a '@Sendable' closure
159 |         operationQueue.cancelAllOperations()
160 |         dispatchQueue.async(flags: .barrier) { [weak self] in
161 |             self?.tree.add(annotation)
    |                            `- warning: capture of 'annotation' with non-sendable type 'any MKAnnotation' in a '@Sendable' closure
162 |         }
163 |     }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
   |           `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'MapKit'
  8 |
  9 | import CoreLocation
 10 | import MapKit
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'MapKit'
 11 |
 12 | public protocol ClusterManagerDelegate: class {
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:174:31: warning: capture of 'annotations' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
172 |         operationQueue.cancelAllOperations()
173 |         dispatchQueue.async(flags: .barrier) { [weak self] in
174 |             for annotation in annotations {
    |                               `- warning: capture of 'annotations' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
175 |                 self?.tree.add(annotation)
176 |             }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
   |           `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:175:17: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
 42 | }
 43 |
 44 | open class ClusterManager {
    |            `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
 45 |
 46 |     var tree = QuadTree(rect: .world)
    :
173 |         dispatchQueue.async(flags: .barrier) { [weak self] in
174 |             for annotation in annotations {
175 |                 self?.tree.add(annotation)
    |                 `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
176 |             }
177 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:189:13: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
 42 | }
 43 |
 44 | open class ClusterManager {
    |            `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
 45 |
 46 |     var tree = QuadTree(rect: .world)
    :
187 |         operationQueue.cancelAllOperations()
188 |         dispatchQueue.async(flags: .barrier) { [weak self] in
189 |             self?.tree.remove(annotation)
    |             `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
190 |         }
191 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:189:31: warning: capture of 'annotation' with non-sendable type 'any MKAnnotation' in a '@Sendable' closure
187 |         operationQueue.cancelAllOperations()
188 |         dispatchQueue.async(flags: .barrier) { [weak self] in
189 |             self?.tree.remove(annotation)
    |                               `- warning: capture of 'annotation' with non-sendable type 'any MKAnnotation' in a '@Sendable' closure
190 |         }
191 |     }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
   |           `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:202:31: warning: capture of 'annotations' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
200 |         operationQueue.cancelAllOperations()
201 |         dispatchQueue.async(flags: .barrier) { [weak self] in
202 |             for annotation in annotations {
    |                               `- warning: capture of 'annotations' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
203 |                 self?.tree.remove(annotation)
204 |             }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
   |           `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:203:17: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
 42 | }
 43 |
 44 | open class ClusterManager {
    |            `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
 45 |
 46 |     var tree = QuadTree(rect: .world)
    :
201 |         dispatchQueue.async(flags: .barrier) { [weak self] in
202 |             for annotation in annotations {
203 |                 self?.tree.remove(annotation)
    |                 `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
204 |             }
205 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:214:13: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
 42 | }
 43 |
 44 | open class ClusterManager {
    |            `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
 45 |
 46 |     var tree = QuadTree(rect: .world)
    :
212 |         operationQueue.cancelAllOperations()
213 |         dispatchQueue.async(flags: .barrier) { [weak self] in
214 |             self?.tree = QuadTree(rect: .world)
    |             `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
215 |         }
216 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:238:33: warning: main actor-isolated property 'bounds' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
235 |         - completion: A closure to be executed when the reload finishes. The closure has no return value and takes a single Boolean argument that indicates whether or not the reload actually finished before the completion handler was called.
236 |      */
237 |     open func reload(mapView: MKMapView, completion: @escaping (Bool) -> Void = { finished in }) {
    |               `- note: add '@MainActor' to make instance method 'reload(mapView:completion:)' part of global actor 'MainActor'
238 |         let mapBounds = mapView.bounds
    |                                 `- warning: main actor-isolated property 'bounds' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
239 |         let visibleMapRect = mapView.visibleMapRect
240 |         let visibleMapRectWidth = visibleMapRect.size.width
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:139:18: note: property declared here
137 | - (void)scaleUnitSquareToSize:(NSSize)newUnitSize;
138 | - (void)rotateByAngle:(CGFloat)angle;
139 | @property NSRect bounds;
    |                  `- note: property declared here
140 |
141 | @property (getter=isFlipped, readonly) BOOL flipped;
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:239:38: warning: main actor-isolated property 'visibleMapRect' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
235 |         - completion: A closure to be executed when the reload finishes. The closure has no return value and takes a single Boolean argument that indicates whether or not the reload actually finished before the completion handler was called.
236 |      */
237 |     open func reload(mapView: MKMapView, completion: @escaping (Bool) -> Void = { finished in }) {
    |               `- note: add '@MainActor' to make instance method 'reload(mapView:completion:)' part of global actor 'MainActor'
238 |         let mapBounds = mapView.bounds
239 |         let visibleMapRect = mapView.visibleMapRect
    |                                      `- warning: main actor-isolated property 'visibleMapRect' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
240 |         let visibleMapRectWidth = visibleMapRect.size.width
241 |         let zoomScale = Double(mapBounds.width) / visibleMapRectWidth
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKMapView.h:104:33: note: property declared here
102 |
103 | // Access the visible region of the map in projected coordinates.
104 | @property (nonatomic) MKMapRect visibleMapRect;
    |                                 `- note: property declared here
105 | - (void)setVisibleMapRect:(MKMapRect)mapRect animated:(BOOL)animate;
106 |
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:288:13: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
 42 | }
 43 |
 44 | open class ClusterManager {
    |            `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
 45 |
 46 |     var tree = QuadTree(rect: .world)
    :
286 |
287 |         dispatchQueue.async(flags: .barrier) { [weak self] in
288 |             self?.visibleAnnotations.subtract(toRemove)
    |             `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
289 |             self?.visibleAnnotations.add(toAdd)
290 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:288:47: warning: capture of 'toRemove' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
286 |
287 |         dispatchQueue.async(flags: .barrier) { [weak self] in
288 |             self?.visibleAnnotations.subtract(toRemove)
    |                                               `- warning: capture of 'toRemove' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
289 |             self?.visibleAnnotations.add(toAdd)
290 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
   |           `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:289:42: warning: capture of 'toAdd' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
287 |         dispatchQueue.async(flags: .barrier) { [weak self] in
288 |             self?.visibleAnnotations.subtract(toRemove)
289 |             self?.visibleAnnotations.add(toAdd)
    |                                          `- warning: capture of 'toAdd' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
290 |         }
291 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
   |           `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:288:47: warning: reference to captured var 'toRemove' in concurrently-executing code
286 |
287 |         dispatchQueue.async(flags: .barrier) { [weak self] in
288 |             self?.visibleAnnotations.subtract(toRemove)
    |                                               `- warning: reference to captured var 'toRemove' in concurrently-executing code
289 |             self?.visibleAnnotations.add(toAdd)
290 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:330:26: warning: capture of 'hash' with non-sendable type '[CLLocationCoordinate2D : [any MKAnnotation]]' in a '@Sendable' closure
328 |         let hash = Dictionary(grouping: annotations) { $0.coordinate }
329 |         dispatchQueue.async(flags: .barrier) {
330 |             for value in hash.values where value.count > 1 {
    |                          `- warning: capture of 'hash' with non-sendable type '[CLLocationCoordinate2D : [any MKAnnotation]]' in a '@Sendable' closure
331 |                 for (index, annotation) in value.enumerated() {
332 |                     tree.remove(annotation)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
   |           `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:332:21: warning: capture of 'tree' with non-sendable type 'QuadTree' in a '@Sendable' closure
330 |             for value in hash.values where value.count > 1 {
331 |                 for (index, annotation) in value.enumerated() {
332 |                     tree.remove(annotation)
    |                     `- warning: capture of 'tree' with non-sendable type 'QuadTree' in a '@Sendable' closure
333 |                     let radiansBetweenAnnotations = (.pi * 2) / Double(value.count)
334 |                     let bearing = radiansBetweenAnnotations * Double(index)
/Users/admin/builder/spi-builder-workspace/Sources/QuadTree.swift:149:14: note: class 'QuadTree' does not conform to the 'Sendable' protocol
147 | }
148 |
149 | public class QuadTree: AnnotationsContainer {
    |              `- note: class 'QuadTree' does not conform to the 'Sendable' protocol
150 |
151 |     let root: QuadTreeNode
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:335:152: warning: capture of 'self' with non-sendable type 'ClusterManager' in a '@Sendable' closure
 42 | }
 43 |
 44 | open class ClusterManager {
    |            `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
 45 |
 46 |     var tree = QuadTree(rect: .world)
    :
333 |                     let radiansBetweenAnnotations = (.pi * 2) / Double(value.count)
334 |                     let bearing = radiansBetweenAnnotations * Double(index)
335 |                     (annotation as? MKPointAnnotation)?.coordinate = annotation.coordinate.coordinate(onBearingInRadians: bearing, atDistanceInMeters: self.distanceFromContestedLocation)
    |                                                                                                                                                        `- warning: capture of 'self' with non-sendable type 'ClusterManager' in a '@Sendable' closure
336 |                     tree.add(annotation)
337 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:385:17: warning: call to main actor-isolated instance method 'removeAnnotations' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
381 |     }
382 |
383 |     open func display(mapView: MKMapView, toAdd: [MKAnnotation], toRemove: [MKAnnotation]) {
    |               `- note: add '@MainActor' to make instance method 'display(mapView:toAdd:toRemove:)' part of global actor 'MainActor'
384 |         assert(Thread.isMainThread, "This function must be called from the main thread.")
385 |         mapView.removeAnnotations(toRemove)
    |                 `- warning: call to main actor-isolated instance method 'removeAnnotations' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
386 |         mapView.addAnnotations(toAdd)
387 |     }
MapKit.MKMapView.removeAnnotations:2:22: note: calls to instance method 'removeAnnotations' from outside of its actor context are implicitly asynchronous
1 | class MKMapView {
2 | @MainActor open func removeAnnotations(_ annotations: [any MKAnnotation])}
  |                      |- note: calls to instance method 'removeAnnotations' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSView'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:386:17: warning: call to main actor-isolated instance method 'addAnnotations' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
381 |     }
382 |
383 |     open func display(mapView: MKMapView, toAdd: [MKAnnotation], toRemove: [MKAnnotation]) {
    |               `- note: add '@MainActor' to make instance method 'display(mapView:toAdd:toRemove:)' part of global actor 'MainActor'
384 |         assert(Thread.isMainThread, "This function must be called from the main thread.")
385 |         mapView.removeAnnotations(toRemove)
386 |         mapView.addAnnotations(toAdd)
    |                 `- warning: call to main actor-isolated instance method 'addAnnotations' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
387 |     }
388 |
MapKit.MKMapView.addAnnotations:2:22: note: calls to instance method 'addAnnotations' from outside of its actor context are implicitly asynchronous
1 | class MKMapView {
2 | @MainActor open func addAnnotations(_ annotations: [any MKAnnotation])}
  |                      |- note: calls to instance method 'addAnnotations' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSView'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
 82 |      - `radius`: The radius of the annotation circle
 83 |      */
 84 |     case color(UIColor, radius: CGFloat)
    |                `- error: cannot find type 'UIColor' in scope
 85 |
 86 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
 87 |      Displays the annotation as an image.
 88 |      */
 89 |     case image(UIImage?)
    |                `- error: cannot find type 'UIImage' in scope
 90 | }
 91 |
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:248:38: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
246 |                 let (toAdd, toRemove) = self.clusteredAnnotations(zoomScale: zoomScale, visibleMapRect: visibleMapRect, operation: operation)
247 |                 DispatchQueue.main.async { [weak self, weak mapView] in
248 |                     guard let self = self, let mapView = mapView else { return completion(false) }
    |                                      |- 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
249 |                     self.display(mapView: mapView, toAdd: toAdd, toRemove: toRemove)
250 |                     completion(true)
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:248:80: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
246 |                 let (toAdd, toRemove) = self.clusteredAnnotations(zoomScale: zoomScale, visibleMapRect: visibleMapRect, operation: operation)
247 |                 DispatchQueue.main.async { [weak self, weak mapView] in
248 |                     guard let self = self, let mapView = mapView else { return completion(false) }
    |                                                                                |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                                `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
249 |                     self.display(mapView: mapView, toAdd: toAdd, toRemove: toRemove)
250 |                     completion(true)
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:249:59: warning: sending 'toAdd' risks causing data races; this is an error in the Swift 6 language mode
247 |                 DispatchQueue.main.async { [weak self, weak mapView] in
248 |                     guard let self = self, let mapView = mapView else { return completion(false) }
249 |                     self.display(mapView: mapView, toAdd: toAdd, toRemove: toRemove)
    |                                                           |- warning: sending 'toAdd' risks causing data races; this is an error in the Swift 6 language mode
    |                                                           `- note: task-isolated 'toAdd' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
250 |                     completion(true)
251 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:249:76: warning: sending 'toRemove' risks causing data races; this is an error in the Swift 6 language mode
247 |                 DispatchQueue.main.async { [weak self, weak mapView] in
248 |                     guard let self = self, let mapView = mapView else { return completion(false) }
249 |                     self.display(mapView: mapView, toAdd: toAdd, toRemove: toRemove)
    |                                                                            |- warning: sending 'toRemove' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                            `- note: task-isolated 'toRemove' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
250 |                     completion(true)
251 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:385:17: warning: sending 'toRemove._bridgeToObjectiveC' risks causing data races; this is an error in the Swift 6 language mode
383 |     open func display(mapView: MKMapView, toAdd: [MKAnnotation], toRemove: [MKAnnotation]) {
384 |         assert(Thread.isMainThread, "This function must be called from the main thread.")
385 |         mapView.removeAnnotations(toRemove)
    |                 |- warning: sending 'toRemove._bridgeToObjectiveC' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: sending task-isolated 'toRemove._bridgeToObjectiveC' to main actor-isolated instance method 'removeAnnotations' risks causing data races between main actor-isolated and task-isolated uses
386 |         mapView.addAnnotations(toAdd)
387 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:386:17: warning: sending 'toAdd._bridgeToObjectiveC' risks causing data races; this is an error in the Swift 6 language mode
384 |         assert(Thread.isMainThread, "This function must be called from the main thread.")
385 |         mapView.removeAnnotations(toRemove)
386 |         mapView.addAnnotations(toAdd)
    |                 |- warning: sending 'toAdd._bridgeToObjectiveC' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: sending task-isolated 'toAdd._bridgeToObjectiveC' to main actor-isolated instance method 'addAnnotations' risks causing data races between main actor-isolated and task-isolated uses
387 |     }
388 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/8] Compiling Cluster Atomic.swift
/Users/admin/builder/spi-builder-workspace/Sources/Atomic.swift:23:46: warning: capture of 'self' with non-sendable type 'Atomic<Value>' in a '@Sendable' closure
10 |
11 | @propertyWrapper
12 | class Atomic<Value> {
   |       `- note: generic class 'Atomic' does not conform to the 'Sendable' protocol
13 |     private let queue = DispatchQueue(label: "Atomic serial queue", attributes: .concurrent)
14 |
   :
21 |     var wrappedValue: Value {
22 |         get { return queue.sync { _value } }
23 |         set { queue.async(flags: .barrier) { self._value = newValue } }
   |                                              `- warning: capture of 'self' with non-sendable type 'Atomic<Value>' in a '@Sendable' closure
24 |     }
25 | }
/Users/admin/builder/spi-builder-workspace/Sources/Atomic.swift:23:60: warning: capture of 'newValue' with non-sendable type 'Value' in a '@Sendable' closure
10 |
11 | @propertyWrapper
12 | class Atomic<Value> {
   |              `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
13 |     private let queue = DispatchQueue(label: "Atomic serial queue", attributes: .concurrent)
14 |
   :
21 |     var wrappedValue: Value {
22 |         get { return queue.sync { _value } }
23 |         set { queue.async(flags: .barrier) { self._value = newValue } }
   |                                                            `- warning: capture of 'newValue' with non-sendable type 'Value' in a '@Sendable' closure
24 |     }
25 | }
[7/8] Emitting module Cluster
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:47:31: error: cannot find type 'UILabel' in scope
 45 |  */
 46 | open class ClusterAnnotationView: MKAnnotationView {
 47 |     open lazy var countLabel: UILabel = {
    |                               `- error: cannot find type 'UILabel' in scope
 48 |         let label = UILabel()
 49 |         label.autoresizingMask = [.flexibleWidth, .flexibleHeight]
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
 82 |      - `radius`: The radius of the annotation circle
 83 |      */
 84 |     case color(UIColor, radius: CGFloat)
    |                `- error: cannot find type 'UIColor' in scope
 85 |
 86 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
 87 |      Displays the annotation as an image.
 88 |      */
 89 |     case image(UIImage?)
    |                `- error: cannot find type 'UIImage' in scope
 90 | }
 91 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:145:24: error: method does not override any method from its superclass
143 |     }
144 |
145 |     override open func layoutSubviews() {
    |                        `- error: method does not override any method from its superclass
146 |         super.layoutSubviews()
147 |
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:12:41: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 10 | import MapKit
 11 |
 12 | public protocol ClusterManagerDelegate: class {
    |                                         `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 13 |     /**
 14 |      The size of each cell on the grid (The larger the size, the better the performance) at a given zoom level.
/Users/admin/builder/spi-builder-workspace/Sources/Extensions.swift:27:1: warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
 25 | let MKMapPointMax = MKMapPoint(CLLocationCoordinate2DMax)
 26 |
 27 | extension CLLocationCoordinate2D: Hashable {
    | |- warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 28 |     public func hash(into hasher: inout Hasher) {
 29 |         hasher.combine(latitude)
[8/8] Compiling Cluster Annotation.swift
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:47:31: error: cannot find type 'UILabel' in scope
 45 |  */
 46 | open class ClusterAnnotationView: MKAnnotationView {
 47 |     open lazy var countLabel: UILabel = {
    |                               `- error: cannot find type 'UILabel' in scope
 48 |         let label = UILabel()
 49 |         label.autoresizingMask = [.flexibleWidth, .flexibleHeight]
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
 82 |      - `radius`: The radius of the annotation circle
 83 |      */
 84 |     case color(UIColor, radius: CGFloat)
    |                `- error: cannot find type 'UIColor' in scope
 85 |
 86 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
 87 |      Displays the annotation as an image.
 88 |      */
 89 |     case image(UIImage?)
    |                `- error: cannot find type 'UIImage' in scope
 90 | }
 91 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:145:24: error: method does not override any method from its superclass
143 |     }
144 |
145 |     override open func layoutSubviews() {
    |                        `- error: method does not override any method from its superclass
146 |         super.layoutSubviews()
147 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:127:13: error: cannot find 'backgroundColor' in scope
125 |         switch style {
126 |         case let .image(image):
127 |             backgroundColor = .clear
    |             `- error: cannot find 'backgroundColor' in scope
128 |             self.image = image
129 |         case let .color(color, radius):
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:131:13: error: cannot find 'backgroundColor' in scope
129 |         case let .color(color, radius):
130 |             let count = annotation.annotations.count
131 |             backgroundColor = color
    |             `- error: cannot find 'backgroundColor' in scope
132 |             var diameter = radius * 2
133 |             switch count {
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:146:15: error: value of type 'ClusterAnnotationView' has no member 'layoutSubviews'
144 |
145 |     override open func layoutSubviews() {
146 |         super.layoutSubviews()
    |               `- error: value of type 'ClusterAnnotationView' has no member 'layoutSubviews'
147 |
148 |         if case .color = style {
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:149:13: error: value of optional type 'CALayer?' must be unwrapped to refer to member 'masksToBounds' of wrapped base type 'CALayer'
147 |
148 |         if case .color = style {
149 |             layer.masksToBounds = true
    |             |- error: value of optional type 'CALayer?' must be unwrapped to refer to member 'masksToBounds' of wrapped base type 'CALayer'
    |             |- note: chain the optional using '?' to access member 'masksToBounds' only for non-'nil' base values
    |             `- note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
150 |             layer.cornerRadius = image == nil ? bounds.width / 2 : 0
151 |             countLabel.frame = bounds
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:150:13: error: value of optional type 'CALayer?' must be unwrapped to refer to member 'cornerRadius' of wrapped base type 'CALayer'
148 |         if case .color = style {
149 |             layer.masksToBounds = true
150 |             layer.cornerRadius = image == nil ? bounds.width / 2 : 0
    |             |- error: value of optional type 'CALayer?' must be unwrapped to refer to member 'cornerRadius' of wrapped base type 'CALayer'
    |             |- note: chain the optional using '?' to access member 'cornerRadius' only for non-'nil' base values
    |             `- note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
151 |             countLabel.frame = bounds
152 |         }
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/7] Compiling Cluster QuadTree.swift
[3/7] Compiling Cluster Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions.swift:27:1: warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
 25 | let MKMapPointMax = MKMapPoint(CLLocationCoordinate2DMax)
 26 |
 27 | extension CLLocationCoordinate2D: Hashable {
    | |- warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 28 |     public func hash(into hasher: inout Hasher) {
 29 |         hasher.combine(latitude)
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/7] Emitting module Cluster
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:47:31: error: cannot find type 'UILabel' in scope
 45 |  */
 46 | open class ClusterAnnotationView: MKAnnotationView {
 47 |     open lazy var countLabel: UILabel = {
    |                               `- error: cannot find type 'UILabel' in scope
 48 |         let label = UILabel()
 49 |         label.autoresizingMask = [.flexibleWidth, .flexibleHeight]
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
 82 |      - `radius`: The radius of the annotation circle
 83 |      */
 84 |     case color(UIColor, radius: CGFloat)
    |                `- error: cannot find type 'UIColor' in scope
 85 |
 86 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
 87 |      Displays the annotation as an image.
 88 |      */
 89 |     case image(UIImage?)
    |                `- error: cannot find type 'UIImage' in scope
 90 | }
 91 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:145:24: error: method does not override any method from its superclass
143 |     }
144 |
145 |     override open func layoutSubviews() {
    |                        `- error: method does not override any method from its superclass
146 |         super.layoutSubviews()
147 |
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:12:41: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 10 | import MapKit
 11 |
 12 | public protocol ClusterManagerDelegate: class {
    |                                         `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 13 |     /**
 14 |      The size of each cell on the grid (The larger the size, the better the performance) at a given zoom level.
/Users/admin/builder/spi-builder-workspace/Sources/Extensions.swift:27:1: warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
 25 | let MKMapPointMax = MKMapPoint(CLLocationCoordinate2DMax)
 26 |
 27 | extension CLLocationCoordinate2D: Hashable {
    | |- warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 28 |     public func hash(into hasher: inout Hasher) {
 29 |         hasher.combine(latitude)
[5/7] Compiling Cluster Atomic.swift
[6/7] Compiling Cluster Annotation.swift
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:47:31: error: cannot find type 'UILabel' in scope
 45 |  */
 46 | open class ClusterAnnotationView: MKAnnotationView {
 47 |     open lazy var countLabel: UILabel = {
    |                               `- error: cannot find type 'UILabel' in scope
 48 |         let label = UILabel()
 49 |         label.autoresizingMask = [.flexibleWidth, .flexibleHeight]
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
 82 |      - `radius`: The radius of the annotation circle
 83 |      */
 84 |     case color(UIColor, radius: CGFloat)
    |                `- error: cannot find type 'UIColor' in scope
 85 |
 86 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
 87 |      Displays the annotation as an image.
 88 |      */
 89 |     case image(UIImage?)
    |                `- error: cannot find type 'UIImage' in scope
 90 | }
 91 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:145:24: error: method does not override any method from its superclass
143 |     }
144 |
145 |     override open func layoutSubviews() {
    |                        `- error: method does not override any method from its superclass
146 |         super.layoutSubviews()
147 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:127:13: error: cannot find 'backgroundColor' in scope
125 |         switch style {
126 |         case let .image(image):
127 |             backgroundColor = .clear
    |             `- error: cannot find 'backgroundColor' in scope
128 |             self.image = image
129 |         case let .color(color, radius):
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:131:13: error: cannot find 'backgroundColor' in scope
129 |         case let .color(color, radius):
130 |             let count = annotation.annotations.count
131 |             backgroundColor = color
    |             `- error: cannot find 'backgroundColor' in scope
132 |             var diameter = radius * 2
133 |             switch count {
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:146:15: error: value of type 'ClusterAnnotationView' has no member 'layoutSubviews'
144 |
145 |     override open func layoutSubviews() {
146 |         super.layoutSubviews()
    |               `- error: value of type 'ClusterAnnotationView' has no member 'layoutSubviews'
147 |
148 |         if case .color = style {
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:149:13: error: value of optional type 'CALayer?' must be unwrapped to refer to member 'masksToBounds' of wrapped base type 'CALayer'
147 |
148 |         if case .color = style {
149 |             layer.masksToBounds = true
    |             |- error: value of optional type 'CALayer?' must be unwrapped to refer to member 'masksToBounds' of wrapped base type 'CALayer'
    |             |- note: chain the optional using '?' to access member 'masksToBounds' only for non-'nil' base values
    |             `- note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
150 |             layer.cornerRadius = image == nil ? bounds.width / 2 : 0
151 |             countLabel.frame = bounds
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:150:13: error: value of optional type 'CALayer?' must be unwrapped to refer to member 'cornerRadius' of wrapped base type 'CALayer'
148 |         if case .color = style {
149 |             layer.masksToBounds = true
150 |             layer.cornerRadius = image == nil ? bounds.width / 2 : 0
    |             |- error: value of optional type 'CALayer?' must be unwrapped to refer to member 'cornerRadius' of wrapped base type 'CALayer'
    |             |- note: chain the optional using '?' to access member 'cornerRadius' only for non-'nil' base values
    |             `- note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
151 |             countLabel.frame = bounds
152 |         }
[7/7] Compiling Cluster Cluster.swift
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:12:41: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 10 | import MapKit
 11 |
 12 | public protocol ClusterManagerDelegate: class {
    |                                         `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 13 |     /**
 14 |      The size of each cell on the grid (The larger the size, the better the performance) at a given zoom level.
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
 82 |      - `radius`: The radius of the annotation circle
 83 |      */
 84 |     case color(UIColor, radius: CGFloat)
    |                `- error: cannot find type 'UIColor' in scope
 85 |
 86 |     /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
 87 |      Displays the annotation as an image.
 88 |      */
 89 |     case image(UIImage?)
    |                `- error: cannot find type 'UIImage' in scope
 90 | }
 91 |
BUILD FAILURE 6.1 macosSpm