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.0 for macOS (SPM) on 3 Nov 2024 14:03:42 UTC.

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/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.36s)
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.0
Building package at path:  $PWD
https://github.com/efremidze/Cluster.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
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/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)
[4/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 |         }
[5/8] Compiling Cluster QuadTree.swift
[6/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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
109 |         }
110 |         self.addOperation(operation)
[7/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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
24 |     }
25 | }
[8/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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
162 |         }
163 |     }
MapKit.MKAnnotation:1:17: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
1 | public protocol MKAnnotation : NSObjectProtocol {
  |                 `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
2 |     var coordinate: CLLocationCoordinate2D { get }
3 |     optional var title: String? { get }
/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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
175 |                 self?.tree.add(annotation)
176 |             }
MapKit.MKAnnotation:1:17: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
1 | public protocol MKAnnotation : NSObjectProtocol {
  |                 `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
2 |     var coordinate: CLLocationCoordinate2D { get }
3 |     optional var title: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:175:17: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
190 |         }
191 |     }
MapKit.MKAnnotation:1:17: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
1 | public protocol MKAnnotation : NSObjectProtocol {
  |                 `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
2 |     var coordinate: CLLocationCoordinate2D { get }
3 |     optional var title: String? { get }
/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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
203 |                 self?.tree.remove(annotation)
204 |             }
MapKit.MKAnnotation:1:17: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
1 | public protocol MKAnnotation : NSObjectProtocol {
  |                 `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
2 |     var coordinate: CLLocationCoordinate2D { get }
3 |     optional var title: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:203:17: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
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
AppKit.NSView:76:25: note: property declared here
 74 |     @available(swift, obsoleted: 3, renamed: "rotate(byDegrees:)")
 75 |     open func rotateByAngle(_ angle: CGFloat)
 76 |     @MainActor 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/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
MapKit.MKMapView:15:25: note: property declared here
 13 |     open func setCenterCoordinate(_ coordinate: CLLocationCoordinate2D, animated: Bool)
 14 |     open func regionThatFits(_ region: MKCoordinateRegion) -> MKCoordinateRegion
 15 |     @MainActor open var visibleMapRect: MKMapRect { get set }
    |                         `- note: property declared here
 16 |     open func setVisibleMapRect(_ mapRect: MKMapRect, animated animate: Bool)
 17 |     open func mapRectThatFits(_ mapRect: MKMapRect) -> MKMapRect
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:248:38: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 42 | }
 43 |
 44 | open class ClusterManager {
    |            `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
 45 |
 46 |     var tree = QuadTree(rect: .world)
    :
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: capture of 'self' with non-sendable type 'ClusterManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
249 |                     self.display(mapView: mapView, toAdd: toAdd, toRemove: toRemove)
250 |                     completion(true)
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:248:80: warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a `@Sendable` closure; 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: capture of 'completion' with non-sendable type '(Bool) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
249 |                     self.display(mapView: mapView, toAdd: toAdd, toRemove: toRemove)
250 |                     completion(true)
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:249:59: warning: capture of 'toAdd' with non-sendable type '[any MKAnnotation]' in a `@Sendable` closure; 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: capture of 'toAdd' with non-sendable type '[any MKAnnotation]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
250 |                     completion(true)
251 |                 }
MapKit.MKAnnotation:1:17: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
1 | public protocol MKAnnotation : NSObjectProtocol {
  |                 `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
2 |     var coordinate: CLLocationCoordinate2D { get }
3 |     optional var title: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:249:76: warning: capture of 'toRemove' with non-sendable type '[any MKAnnotation]' in a `@Sendable` closure; 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: capture of 'toRemove' with non-sendable type '[any MKAnnotation]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
250 |                     completion(true)
251 |                 }
MapKit.MKAnnotation:1:17: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
1 | public protocol MKAnnotation : NSObjectProtocol {
  |                 `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
2 |     var coordinate: CLLocationCoordinate2D { get }
3 |     optional var title: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:288:13: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
289 |             self?.visibleAnnotations.add(toAdd)
290 |         }
MapKit.MKAnnotation:1:17: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
1 | public protocol MKAnnotation : NSObjectProtocol {
  |                 `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
2 |     var coordinate: CLLocationCoordinate2D { get }
3 |     optional var title: String? { get }
/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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
290 |         }
291 |
MapKit.MKAnnotation:1:17: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
1 | public protocol MKAnnotation : NSObjectProtocol {
  |                 `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
2 |     var coordinate: CLLocationCoordinate2D { get }
3 |     optional var title: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:288:47: warning: reference to captured var 'toRemove' in concurrently-executing code; this is an error in the Swift 6 language mode
286 |
287 |         dispatchQueue.async(flags: .barrier) { [weak self] in
288 |             self?.visibleAnnotations.subtract(toRemove)
    |                                               `- warning: reference to captured var 'toRemove' in concurrently-executing code; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
331 |                 for (index, annotation) in value.enumerated() {
332 |                     tree.remove(annotation)
MapKit.MKAnnotation:1:17: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
1 | public protocol MKAnnotation : NSObjectProtocol {
  |                 `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
2 |     var coordinate: CLLocationCoordinate2D { get }
3 |     optional var title: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:332:21: warning: capture of 'tree' with non-sendable type 'QuadTree' in a `@Sendable` closure; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
 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; this is an error in the Swift 6 language mode
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:94:15: note: calls to instance method 'removeAnnotations' from outside of its actor context are implicitly asynchronous
 92 |     open func addAnnotations(_ annotations: [any MKAnnotation])
 93 |     open func removeAnnotation(_ annotation: any MKAnnotation)
 94 |     open func removeAnnotations(_ annotations: [any MKAnnotation])
    |               `- note: calls to instance method 'removeAnnotations' from outside of its actor context are implicitly asynchronous
 95 |     open var annotations: [any MKAnnotation] { get }
 96 |     @available(macOS 10.9, *)
/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:92:15: note: calls to instance method 'addAnnotations' from outside of its actor context are implicitly asynchronous
 90 |     open var userLocationVisible: Bool { get }
 91 |     open func addAnnotation(_ annotation: any MKAnnotation)
 92 |     open func addAnnotations(_ annotations: [any MKAnnotation])
    |               `- note: calls to instance method 'addAnnotations' from outside of its actor context are implicitly asynchronous
 93 |     open func removeAnnotation(_ annotation: any MKAnnotation)
 94 |     open func removeAnnotations(_ annotations: [any MKAnnotation])
/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 |
BUILD FAILURE 6.0 macosSpm