The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of GeoProjector, reference main (41587f), with Swift 6.0 for macOS (SPM) on 30 Nov 2024 07:23:31 UTC.

Swift 6 data race errors: 3

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 -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/maparoni/GeoProjector.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/maparoni/GeoProjector
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 41587f7 Fix regression in GHA by building for iOS simulator instead
Cloned https://github.com/maparoni/GeoProjector.git
Revision (git rev-parse @):
41587f7cd1b00b0a8930495ab8eb9bce28073c1a
SUCCESS checkout https://github.com/maparoni/GeoProjector.git at main
Fetching https://github.com/maparoni/geojsonkit-turf
Fetching https://github.com/apple/swift-algorithms.git
Fetching https://github.com/apple/swift-numerics.git
Fetching https://github.com/apple/swift-argument-parser
Fetching https://github.com/maparoni/geojsonkit.git
[1/362] Fetching geojsonkit
[244/3426] Fetching geojsonkit, geojsonkit-turf
[367/9002] Fetching geojsonkit, geojsonkit-turf, swift-numerics
[616/14593] Fetching geojsonkit, geojsonkit-turf, swift-numerics, swift-algorithms
[3285/26988] Fetching geojsonkit, geojsonkit-turf, swift-numerics, swift-algorithms, swift-argument-parser
Fetched https://github.com/apple/swift-numerics.git from cache (1.21s)
[10753/21412] Fetching geojsonkit, geojsonkit-turf, swift-algorithms, swift-argument-parser
Fetched https://github.com/apple/swift-algorithms.git from cache (1.51s)
Fetched https://github.com/apple/swift-argument-parser from cache (1.51s)
Fetched https://github.com/maparoni/geojsonkit.git from cache (1.51s)
Fetched https://github.com/maparoni/geojsonkit-turf from cache (1.51s)
Computing version for https://github.com/apple/swift-algorithms.git
Computed https://github.com/apple/swift-algorithms.git at 1.2.0 (0.59s)
Computing version for https://github.com/maparoni/geojsonkit-turf
Computed https://github.com/maparoni/geojsonkit-turf at 0.4.1 (0.59s)
Computing version for https://github.com/maparoni/geojsonkit.git
Computed https://github.com/maparoni/geojsonkit.git at 0.6.0 (0.57s)
Computing version for https://github.com/apple/swift-numerics.git
Computed https://github.com/apple/swift-numerics.git at 1.0.2 (0.59s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.0 (0.46s)
Creating working copy for https://github.com/apple/swift-numerics.git
Working copy of https://github.com/apple/swift-numerics.git resolved at 1.0.2
Creating working copy for https://github.com/maparoni/geojsonkit.git
Working copy of https://github.com/maparoni/geojsonkit.git resolved at 0.6.0
Creating working copy for https://github.com/apple/swift-algorithms.git
Working copy of https://github.com/apple/swift-algorithms.git resolved at 1.2.0
Creating working copy for https://github.com/maparoni/geojsonkit-turf
Working copy of https://github.com/maparoni/geojsonkit-turf resolved at 0.4.1
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.5.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "geoprojector",
      "name": "GeoProjector",
      "url": "https://github.com/maparoni/GeoProjector.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/GeoProjector",
      "dependencies": [
        {
          "identity": "geojsonkit",
          "name": "GeoJSONKit",
          "url": "https://github.com/maparoni/geojsonkit.git",
          "version": "0.6.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/geojsonkit",
          "dependencies": [
          ]
        },
        {
          "identity": "geojsonkit-turf",
          "name": "GeoJSONKitTurf",
          "url": "https://github.com/maparoni/geojsonkit-turf",
          "version": "0.4.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/geojsonkit-turf",
          "dependencies": [
            {
              "identity": "geojsonkit",
              "name": "GeoJSONKit",
              "url": "https://github.com/maparoni/geojsonkit.git",
              "version": "0.6.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/geojsonkit",
              "dependencies": [
              ]
            },
            {
              "identity": "swift-argument-parser",
              "name": "swift-argument-parser",
              "url": "https://github.com/apple/swift-argument-parser",
              "version": "1.5.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-argument-parser",
              "dependencies": [
              ]
            }
          ]
        },
        {
          "identity": "swift-algorithms",
          "name": "swift-algorithms",
          "url": "https://github.com/apple/swift-algorithms.git",
          "version": "1.2.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-algorithms",
          "dependencies": [
            {
              "identity": "swift-numerics",
              "name": "swift-numerics",
              "url": "https://github.com/apple/swift-numerics.git",
              "version": "1.0.2",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-numerics",
              "dependencies": [
              ]
            }
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/maparoni/GeoProjector.git
[1/780] Fetching geoprojector
Fetched https://github.com/maparoni/GeoProjector.git from cache (1.03s)
Fetching https://github.com/maparoni/geojsonkit-turf from cache
Fetching https://github.com/maparoni/geojsonkit.git from cache
Fetching https://github.com/apple/swift-algorithms.git from cache
Fetched https://github.com/apple/swift-algorithms.git from cache (0.48s)
Fetched https://github.com/maparoni/geojsonkit-turf from cache (0.48s)
Fetched https://github.com/maparoni/geojsonkit.git from cache (0.48s)
Computing version for https://github.com/apple/swift-algorithms.git
Computed https://github.com/apple/swift-algorithms.git at 1.2.0 (0.02s)
Fetching https://github.com/apple/swift-numerics.git from cache
Fetched https://github.com/apple/swift-numerics.git from cache (0.46s)
Computing version for https://github.com/apple/swift-numerics.git
Computed https://github.com/apple/swift-numerics.git at 1.0.2 (0.02s)
Computing version for https://github.com/maparoni/geojsonkit.git
Computed https://github.com/maparoni/geojsonkit.git at 0.6.0 (0.02s)
Computing version for https://github.com/maparoni/geojsonkit-turf
Computed https://github.com/maparoni/geojsonkit-turf at 0.4.1 (0.02s)
Fetching https://github.com/apple/swift-argument-parser from cache
Fetched https://github.com/apple/swift-argument-parser from cache (0.58s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.0 (0.03s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.5.0
Creating working copy for https://github.com/maparoni/geojsonkit-turf
Working copy of https://github.com/maparoni/geojsonkit-turf resolved at 0.4.1
Creating working copy for https://github.com/apple/swift-algorithms.git
Working copy of https://github.com/apple/swift-algorithms.git resolved at 1.2.0
Creating working copy for https://github.com/maparoni/GeoProjector.git
Working copy of https://github.com/maparoni/GeoProjector.git resolved at main (41587f7)
Creating working copy for https://github.com/maparoni/geojsonkit.git
Working copy of https://github.com/maparoni/geojsonkit.git resolved at 0.6.0
Creating working copy for https://github.com/apple/swift-numerics.git
Working copy of https://github.com/apple/swift-numerics.git resolved at 1.0.2
warning: '.resolve-product-dependencies': dependency 'geoprojector' is not used by any target
Found 3 product dependencies
  - GeoJSONKit
  - GeoJSONKitTurf
  - swift-algorithms
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/maparoni/GeoProjector.git
{
  "dependencies" : [
    {
      "identity" : "geojsonkit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.5.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/maparoni/geojsonkit.git"
    },
    {
      "identity" : "geojsonkit-turf",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.1.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/maparoni/geojsonkit-turf"
    },
    {
      "identity" : "swift-algorithms",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-algorithms.git"
    }
  ],
  "manifest_display_name" : "GeoProjector",
  "name" : "GeoProjector",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    },
    {
      "name" : "xros",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "GeoProjector",
      "targets" : [
        "GeoProjector"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "GeoDrawer",
      "targets" : [
        "GeoDrawer"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "GeoProjectorTests",
      "module_type" : "SwiftTarget",
      "name" : "GeoProjectorTests",
      "path" : "Tests/GeoProjectorTests",
      "sources" : [
        "MapBoundsTests.swift",
        "ProjectionTests.swift",
        "TranslationTests.swift"
      ],
      "target_dependencies" : [
        "GeoProjector"
      ],
      "type" : "test"
    },
    {
      "c99name" : "GeoProjector",
      "module_type" : "SwiftTarget",
      "name" : "GeoProjector",
      "path" : "Sources/GeoProjector",
      "product_dependencies" : [
        "GeoJSONKit",
        "GeoJSONKitTurf"
      ],
      "product_memberships" : [
        "GeoProjector",
        "GeoDrawer"
      ],
      "sources" : [
        "Interpolator.swift",
        "Projection.swift",
        "ProjectionMode.swift",
        "Projections+Azimuthal.swift",
        "Projections+Cylindrical.swift",
        "Projections+Orthographic.swift",
        "Projections+Pseudocylindrical.swift",
        "Projections.swift",
        "Structs.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "GeoDrawer",
      "module_type" : "SwiftTarget",
      "name" : "GeoDrawer",
      "path" : "Sources/GeoDrawer",
      "product_dependencies" : [
        "Algorithms"
      ],
      "product_memberships" : [
        "GeoDrawer"
      ],
      "sources" : [
        "GeoDrawer+CoreGraphics.swift",
        "GeoDrawer+Image.swift",
        "GeoDrawer.swift",
        "GeoJSON+Continents.swift",
        "GeoMap+AppKit.swift",
        "GeoMap+UIKit.swift",
        "styling/GeoDrawerContent+Style.swift"
      ],
      "target_dependencies" : [
        "GeoProjector"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
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 -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
[1/1] Compiling plugin GenerateManual
Building for debugging...
[1/9] Write sources
[7/9] Compiling _NumericsShims _NumericsShims.c
[8/9] Write swift-version--7754E27361AE5C74.txt
[10/22] Compiling RealModule Real.swift
[11/23] Compiling RealModule RealFunctions.swift
[12/23] Compiling RealModule Float16+Real.swift
[13/23] Compiling RealModule Float80+Real.swift
[14/23] Emitting module RealModule
[15/23] Compiling RealModule AlgebraicField.swift
[16/23] Compiling RealModule AugmentedArithmetic.swift
[17/23] Compiling RealModule ElementaryFunctions.swift
[18/23] Compiling RealModule Double+Real.swift
[19/23] Compiling RealModule Float+Real.swift
[20/23] Compiling RealModule ApproximateEquality.swift
[21/49] Compiling Algorithms Combinations.swift
[22/49] Compiling Algorithms Compacted.swift
[23/49] Compiling Algorithms Cycle.swift
[24/51] Compiling Algorithms Unique.swift
[25/51] Compiling Algorithms Windows.swift
[26/51] Emitting module GeoJSONKit
[27/51] Compiling GeoJSONKit GeoJSON.swift
[28/51] Compiling GeoJSONKit GeoJSON+Codable.swift
[29/68] Compiling Algorithms Grouped.swift
[30/68] Compiling Algorithms Indexed.swift
[31/68] Compiling Algorithms Intersperse.swift
[32/68] Compiling Algorithms EitherSequence.swift
[33/68] Compiling Algorithms FirstNonNil.swift
[34/68] Compiling Algorithms FlattenCollection.swift
[35/68] Compiling Algorithms Partition.swift
[36/68] Compiling Algorithms Permutations.swift
[37/68] Compiling Algorithms Product.swift
[38/68] Compiling GeoJSONKitTurf Turf+BoundingBox.swift
[39/68] Compiling Algorithms Chain.swift
[40/68] Compiling Algorithms Chunked.swift
[41/68] Compiling GeoJSONKitTurf Turf+GeometryObject.swift
[42/68] Compiling GeoJSONKitTurf Turf+LineString.swift
[43/68] Compiling GeoJSONKitTurf Turf.swift
[44/68] Compiling GeoJSONKitTurf DouglasPeucker.swift
[45/68] Compiling GeoJSONKitTurf Simplify.swift
[46/68] Compiling GeoJSONKitTurf Turf+LinearRing.swift
[47/68] Compiling GeoJSONKitTurf Turf+Polygon.swift
[48/68] Compiling GeoJSONKitTurf GeoJSON+Helpers.swift
[49/68] Compiling GeoJSONKitTurf Position+Helpers.swift
[50/68] Compiling GeoJSONKitTurf RadianCoordinate2D.swift
[51/68] Emitting module Algorithms
[52/68] Compiling GeoJSONKitTurf Spline.swift
[53/69] Compiling GeoJSONKitTurf MonotoneChain.swift
[58/69] Compiling GeoJSONKitTurf SutherlandHodgeman.swift
[61/69] Compiling GeoJSONKitTurf CoreLocation.swift
[63/69] Compiling GeoJSONKitTurf ClosestCoordinate.swift
[64/69] Compiling GeoJSONKitTurf ConvexHull.swift
[67/69] Emitting module GeoJSONKitTurf
[70/79] Compiling GeoProjector Projections+Pseudocylindrical.swift
[71/79] Compiling GeoProjector Projections.swift
[72/79] Compiling GeoProjector Projections+Orthographic.swift
[73/79] Compiling GeoProjector Projections+Azimuthal.swift
[74/79] Compiling GeoProjector ProjectionMode.swift
[75/79] Compiling GeoProjector Projections+Cylindrical.swift
[76/79] Emitting module GeoProjector
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:85:21: warning: static property 'zero' is not concurrency-safe because non-'Sendable' type 'EdgeInsets' may have shared mutable state; this is an error in the Swift 6 language mode
 82 | }
 83 |
 84 | public struct EdgeInsets: Hashable {
    |               `- note: consider making struct 'EdgeInsets' conform to the 'Sendable' protocol
 85 |   public static let zero = EdgeInsets()
    |                     |- warning: static property 'zero' is not concurrency-safe because non-'Sendable' type 'EdgeInsets' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: annotate 'zero' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 86 |
 87 |   public init(top: Double = 0, left: Double = 0, bottom: Double = 0, right: Double = 0) {
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:13:21: warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 | public struct Point: Hashable {
 13 |   public static var zero = Point(x: 0, y: 0)
    |                     |- warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: convert 'zero' to a 'let' constant to make 'Sendable' shared state immutable
    |                     |- note: annotate 'zero' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 |
 15 |   public init(x: Double, y: Double) {
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:30:21: warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 | public struct Size: Hashable {
 30 |   public static var zero = Size(width: 0, height: 0)
    |                     |- warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: convert 'zero' to a 'let' constant to make 'Sendable' shared state immutable
    |                     |- note: annotate 'zero' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |
 32 |   public init(width: Double, height: Double) {
[77/79] Compiling GeoProjector Structs.swift
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:13:21: warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 11 |
 12 | public struct Point: Hashable {
 13 |   public static var zero = Point(x: 0, y: 0)
    |                     |- warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: convert 'zero' to a 'let' constant to make 'Sendable' shared state immutable
    |                     |- note: annotate 'zero' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 |
 15 |   public init(x: Double, y: Double) {
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:30:21: warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 | public struct Size: Hashable {
 30 |   public static var zero = Size(width: 0, height: 0)
    |                     |- warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: convert 'zero' to a 'let' constant to make 'Sendable' shared state immutable
    |                     |- note: annotate 'zero' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |
 32 |   public init(width: Double, height: Double) {
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:85:21: warning: static property 'zero' is not concurrency-safe because non-'Sendable' type 'EdgeInsets' may have shared mutable state; this is an error in the Swift 6 language mode
 82 | }
 83 |
 84 | public struct EdgeInsets: Hashable {
    |               `- note: consider making struct 'EdgeInsets' conform to the 'Sendable' protocol
 85 |   public static let zero = EdgeInsets()
    |                     |- warning: static property 'zero' is not concurrency-safe because non-'Sendable' type 'EdgeInsets' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: annotate 'zero' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 86 |
 87 |   public init(top: Double = 0, left: Double = 0, bottom: Double = 0, right: Double = 0) {
[78/79] Compiling GeoProjector Projection.swift
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:85:21: warning: static property 'zero' is not concurrency-safe because non-'Sendable' type 'EdgeInsets' may have shared mutable state; this is an error in the Swift 6 language mode
 82 | }
 83 |
 84 | public struct EdgeInsets: Hashable {
    |               `- note: consider making struct 'EdgeInsets' conform to the 'Sendable' protocol
 85 |   public static let zero = EdgeInsets()
    |                     |- warning: static property 'zero' is not concurrency-safe because non-'Sendable' type 'EdgeInsets' may have shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: annotate 'zero' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 86 |
 87 |   public init(top: Double = 0, left: Double = 0, bottom: Double = 0, right: Double = 0) {
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:30:21: warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 | public struct Size: Hashable {
 30 |   public static var zero = Size(width: 0, height: 0)
    |                     |- warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                     |- note: convert 'zero' to a 'let' constant to make 'Sendable' shared state immutable
    |                     |- note: annotate 'zero' with '@MainActor' if property should only be accessed from the main actor
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 |
 32 |   public init(width: Double, height: Double) {
[79/79] Compiling GeoProjector Interpolator.swift
[80/87] Compiling GeoDrawer GeoDrawer.swift
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:88:49: warning: reference to static property 'zero' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
 86 |           return acc
 87 |         } else if let first = points.first {
 88 |           var rect = Rect(origin: first, size: .zero)
    |                                                 `- warning: reference to static property 'zero' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
 89 |           for point in points.dropFirst() {
 90 |             rect.absorb(point)
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:30:21: note: static property declared here
 28 |
 29 | public struct Size: Hashable {
 30 |   public static var zero = Size(width: 0, height: 0)
    |                     `- note: static property declared here
 31 |
 32 |   public init(width: Double, height: Double) {
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:246:15: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 |   }
231 |
232 |   struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
    |          `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 |     let offset: Int
234 |     let element: Element
    :
244 |
245 |   func projectInParallel(_ contents: [Content]) async throws -> [ProjectedContent] {
246 |     try await withThrowingTaskGroup(of: [OffsettedElement<ProjectedContent>].self) { group in
    |               `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
247 |       let chunks = Array(contents.enumerated()).chunks(ofCount: 25)
248 |       for chunk in chunks {
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:246:84: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 |   }
231 |
232 |   struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
    |          `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 |     let offset: Int
234 |     let element: Element
    :
244 |
245 |   func projectInParallel(_ contents: [Content]) async throws -> [ProjectedContent] {
246 |     try await withThrowingTaskGroup(of: [OffsettedElement<ProjectedContent>].self) { group in
    |                                                                                    `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
247 |       let chunks = Array(contents.enumerated()).chunks(ofCount: 25)
248 |       for chunk in chunks {
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:249:27: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 |   }
231 |
232 |   struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
    |          `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 |     let offset: Int
234 |     let element: Element
    :
247 |       let chunks = Array(contents.enumerated()).chunks(ofCount: 25)
248 |       for chunk in chunks {
249 |         let added = group.addTaskUnlessCancelled {
    |                           `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
250 |           await Task {
251 |             return chunk.compactMap { input in
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:250:17: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 |   }
231 |
232 |   struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
    |          `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 |     let offset: Int
234 |     let element: Element
    :
248 |       for chunk in chunks {
249 |         let added = group.addTaskUnlessCancelled {
250 |           await Task {
    |                 `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
251 |             return chunk.compactMap { input in
252 |               guard !Task.isCancelled, let projected = project(input.element) else { return nil }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:250:17: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 |   }
231 |
232 |   struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
    |          `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 |     let offset: Int
234 |     let element: Element
    :
248 |       for chunk in chunks {
249 |         let added = group.addTaskUnlessCancelled {
250 |           await Task {
    |                 `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
251 |             return chunk.compactMap { input in
252 |               guard !Task.isCancelled, let projected = project(input.element) else { return nil }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:255:13: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 |   }
231 |
232 |   struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
    |          `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 |     let offset: Int
234 |     let element: Element
    :
253 |               return OffsettedElement(offset: input.offset, element: projected)
254 |             }
255 |           }.value
    |             `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
256 |         }
257 |         if !added {
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:262:38: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 |   }
231 |
232 |   struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
    |          `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 |     let offset: Int
234 |     let element: Element
    :
260 |       }
261 |
262 |       let unsorted = try await group.reduce(into: []) { $0.append(contentsOf: $1) }
    |                                      `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
263 |       return unsorted.sorted(by: <).map(\.element)
264 |     }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:262:55: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 |   }
231 |
232 |   struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
    |          `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 |     let offset: Int
234 |     let element: Element
    :
260 |       }
261 |
262 |       let unsorted = try await group.reduce(into: []) { $0.append(contentsOf: $1) }
    |                                                       `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
263 |       return unsorted.sorted(by: <).map(\.element)
264 |     }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:262:55: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 |   }
231 |
232 |   struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
    |          `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 |     let offset: Int
234 |     let element: Element
    :
260 |       }
261 |
262 |       let unsorted = try await group.reduce(into: []) { $0.append(contentsOf: $1) }
    |                                                       `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
263 |       return unsorted.sorted(by: <).map(\.element)
264 |     }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:249:50: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
247 |       let chunks = Array(contents.enumerated()).chunks(ofCount: 25)
248 |       for chunk in chunks {
249 |         let added = group.addTaskUnlessCancelled {
    |                                                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
250 |           await Task {
251 |             return chunk.compactMap { input in
    |                    `- note: closure captures non-Sendable 'chunk'
252 |               guard !Task.isCancelled, let projected = project(input.element) else { return nil }
    |                                                        `- note: closure captures non-Sendable 'self'
253 |               return OffsettedElement(offset: input.offset, element: projected)
254 |             }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:250:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
248 |       for chunk in chunks {
249 |         let added = group.addTaskUnlessCancelled {
250 |           await Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
251 |             return chunk.compactMap { input in
    |                    `- note: closure captures non-Sendable 'chunk'
252 |               guard !Task.isCancelled, let projected = project(input.element) else { return nil }
    |                                                        `- note: closure captures non-Sendable 'self'
253 |               return OffsettedElement(offset: input.offset, element: projected)
254 |             }
[81/87] Compiling GeoDrawer GeoMap+UIKit.swift
[82/87] Compiling GeoDrawer GeoDrawerContent+Style.swift
[83/87] Emitting module GeoDrawer
[84/87] Compiling GeoDrawer GeoDrawer+Image.swift
[85/87] Compiling GeoDrawer GeoDrawer+CoreGraphics.swift
[86/87] Compiling GeoDrawer GeoJSON+Continents.swift
[87/87] Compiling GeoDrawer GeoMap+AppKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoMap+AppKit.swift:143:42: warning: non-sendable type '[GeoDrawer.ProjectedContent]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
141 |       guard let self else { return }
142 |       do {
143 |         let projected = try await drawer.projectInParallel(contents)
    |                                          `- warning: non-sendable type '[GeoDrawer.ProjectedContent]' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
144 |         await MainActor.run {
145 |           self.projectProgress = .finished(projected)
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:199:8: note: consider making enum 'ProjectedContent' conform to the 'Sendable' protocol
197 |   }
198 |
199 |   enum ProjectedContent: Hashable {
    |        `- note: consider making enum 'ProjectedContent' conform to the 'Sendable' protocol
200 |     case line([ProjectedLineString], stroke: Color, strokeWidth: Double)
201 |     case polygon([ProjectedPolygon], fill: Color, stroke: Color?, strokeWidth: Double)
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoMap+AppKit.swift:143:42: warning: sending 'self.contents' risks causing data races; this is an error in the Swift 6 language mode
141 |       guard let self else { return }
142 |       do {
143 |         let projected = try await drawer.projectInParallel(contents)
    |                                          |- warning: sending 'self.contents' risks causing data races; this is an error in the Swift 6 language mode
    |                                          `- note: sending main actor-isolated 'self.contents' to nonisolated callee risks causing data races between nonisolated and main actor-isolated uses
144 |         await MainActor.run {
145 |           self.projectProgress = .finished(projected)
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoMap+AppKit.swift:143:42: warning: sending main actor-isolated value of type 'GeoDrawer' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
141 |       guard let self else { return }
142 |       do {
143 |         let projected = try await drawer.projectInParallel(contents)
    |                                          `- warning: sending main actor-isolated value of type 'GeoDrawer' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
144 |         await MainActor.run {
145 |           self.projectProgress = .finished(projected)
Build complete! (27.25s)
warning: 'swift-algorithms': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-algorithms/Sources/Algorithms/Documentation.docc
Build complete.
{
  "dependencies" : [
    {
      "identity" : "geojsonkit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.5.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/maparoni/geojsonkit.git"
    },
    {
      "identity" : "geojsonkit-turf",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.1.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/maparoni/geojsonkit-turf"
    },
    {
      "identity" : "swift-algorithms",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-algorithms.git"
    }
  ],
  "manifest_display_name" : "GeoProjector",
  "name" : "GeoProjector",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    },
    {
      "name" : "xros",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "GeoProjector",
      "targets" : [
        "GeoProjector"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "GeoDrawer",
      "targets" : [
        "GeoDrawer"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "GeoProjectorTests",
      "module_type" : "SwiftTarget",
      "name" : "GeoProjectorTests",
      "path" : "Tests/GeoProjectorTests",
      "sources" : [
        "MapBoundsTests.swift",
        "ProjectionTests.swift",
        "TranslationTests.swift"
      ],
      "target_dependencies" : [
        "GeoProjector"
      ],
      "type" : "test"
    },
    {
      "c99name" : "GeoProjector",
      "module_type" : "SwiftTarget",
      "name" : "GeoProjector",
      "path" : "Sources/GeoProjector",
      "product_dependencies" : [
        "GeoJSONKit",
        "GeoJSONKitTurf"
      ],
      "product_memberships" : [
        "GeoProjector",
        "GeoDrawer"
      ],
      "sources" : [
        "Interpolator.swift",
        "Projection.swift",
        "ProjectionMode.swift",
        "Projections+Azimuthal.swift",
        "Projections+Cylindrical.swift",
        "Projections+Orthographic.swift",
        "Projections+Pseudocylindrical.swift",
        "Projections.swift",
        "Structs.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "GeoDrawer",
      "module_type" : "SwiftTarget",
      "name" : "GeoDrawer",
      "path" : "Sources/GeoDrawer",
      "product_dependencies" : [
        "Algorithms"
      ],
      "product_memberships" : [
        "GeoDrawer"
      ],
      "sources" : [
        "GeoDrawer+CoreGraphics.swift",
        "GeoDrawer+Image.swift",
        "GeoDrawer.swift",
        "GeoJSON+Continents.swift",
        "GeoMap+AppKit.swift",
        "GeoMap+UIKit.swift",
        "styling/GeoDrawerContent+Style.swift"
      ],
      "target_dependencies" : [
        "GeoProjector"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.