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 UtilityKit, reference master (e4364f), with Swift 6.0 for macOS (SPM) on 31 Oct 2024 23:26:35 UTC.

Swift 6 data race errors: 4

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/Samasaur1/UtilityKit.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Samasaur1/UtilityKit
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at e4364f2 Various non-code fixes (#2)
Cloned https://github.com/Samasaur1/UtilityKit.git
Revision (git rev-parse @):
e4364f247d45bb5d103224464b9e6f8bcb6fb448
SUCCESS checkout https://github.com/Samasaur1/UtilityKit.git at master
========================================
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": "utilitykit",
      "name": "UtilityKit",
      "url": "https://github.com/Samasaur1/UtilityKit.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/UtilityKit",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/Samasaur1/UtilityKit.git
[1/107] Fetching utilitykit
Fetched https://github.com/Samasaur1/UtilityKit.git from cache (0.65s)
Creating working copy for https://github.com/Samasaur1/UtilityKit.git
Working copy of https://github.com/Samasaur1/UtilityKit.git resolved at master (e4364f2)
warning: '.resolve-product-dependencies': dependency 'utilitykit' 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/Samasaur1/UtilityKit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--7754E27361AE5C74.txt
[3/8] Compiling UtilityKit UtilityKit.swift
[4/8] Emitting module UtilityKit
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/Colors.swift:11:5: warning: 'public' modifier is redundant for initializer declared in a public extension
 9 |     ///   - green: The green component of the color, from 0-255.
10 |     ///   - blue: The blue component of the color, from 0-255.
11 |     public convenience init?(red: Int, green: Int, blue: Int) {
   |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
12 |         guard red >= 0 && red <= 255 else { return nil }
13 |         guard green >= 0 && green <= 255 else { return nil }
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/Colors.swift:21:5: warning: 'public' modifier is redundant for initializer declared in a public extension
19 |     ///
20 |     /// - Parameter hex: A hex value in the format RRGGBB.
21 |     public convenience init?(_ hex: Int) {
   |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
22 |         self.init(red:(hex >> 16) & 0xff, green:(hex >> 8) & 0xff, blue:hex & 0xff)
23 |     }
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/SKButton.swift:17:16: warning: main actor-isolated property 'onClick' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
  6 | public protocol SKButton {
  7 |     /// The closure to be called on a click.
  8 |     var onClick: () -> () { get set }
    |         `- note: 'onClick' declared here
  9 |     /// Called when this node is clicked. Should simply call the closure stored in `onClick`.
 10 |     ///
    :
 14 |
 15 | /// An SKSpriteNode that makes clicks easier to handle.
 16 | open class SKSpriteButton: SKSpriteNode, SKButton {
    |                                          `- note: add '@preconcurrency' to the 'SKButton' conformance to defer isolation checking to run time
 17 |     public var onClick: () -> ()
    |                `- warning: main actor-isolated property 'onClick' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 18 |     /// Called whenever this node is clicked. Simply calls the closure stored in `onClick`.
 19 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/SKButton.swift:21:24: warning: main actor-isolated instance method 'mouseDown(with:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 10 |     ///
 11 |     /// - Parameter event: An object encapsulating information about the mouse-down event.
 12 |     func mouseDown(with event: NSEvent)
    |          `- note: mark the protocol requirement 'mouseDown(with:)' 'async' to allow actor-isolated conformances
 13 | }
 14 |
    :
 19 |     ///
 20 |     /// - Parameter event: An object encapsulating information about the mouse-down event.
 21 |     open override func mouseDown(with event: NSEvent) {
    |                        |- warning: main actor-isolated instance method 'mouseDown(with:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                        `- note: add 'nonisolated' to 'mouseDown(with:)' to make this instance method not isolated to the actor
 22 |         onClick()
 23 |     }
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/SKButton.swift:75:16: warning: main actor-isolated property 'onClick' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
  6 | public protocol SKButton {
  7 |     /// The closure to be called on a click.
  8 |     var onClick: () -> () { get set }
    |         `- note: 'onClick' declared here
  9 |     /// Called when this node is clicked. Should simply call the closure stored in `onClick`.
 10 |     ///
    :
 72 |
 73 | /// An SKShapeNode that makes clicks easier to handle.
 74 | open class SKShapeButton: SKShapeNode, SKButton {
    |                                        `- note: add '@preconcurrency' to the 'SKButton' conformance to defer isolation checking to run time
 75 |     public var onClick: () -> ()
    |                `- warning: main actor-isolated property 'onClick' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 76 |     /// Called whenever this node is clicked. Simply calls the closure stored in `onClick`.
 77 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/SKButton.swift:79:24: warning: main actor-isolated instance method 'mouseDown(with:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 10 |     ///
 11 |     /// - Parameter event: An object encapsulating information about the mouse-down event.
 12 |     func mouseDown(with event: NSEvent)
    |          `- note: mark the protocol requirement 'mouseDown(with:)' 'async' to allow actor-isolated conformances
 13 | }
 14 |
    :
 77 |     ///
 78 |     /// - Parameter event: An object encapsulating information about the mouse-down event.
 79 |     open override func mouseDown(with event: NSEvent) {
    |                        |- warning: main actor-isolated instance method 'mouseDown(with:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                        `- note: add 'nonisolated' to 'mouseDown(with:)' to make this instance method not isolated to the actor
 80 |         onClick()
 81 |     }
[5/8] Compiling UtilityKit Colors.swift
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/Colors.swift:11:5: warning: 'public' modifier is redundant for initializer declared in a public extension
 9 |     ///   - green: The green component of the color, from 0-255.
10 |     ///   - blue: The blue component of the color, from 0-255.
11 |     public convenience init?(red: Int, green: Int, blue: Int) {
   |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
12 |         guard red >= 0 && red <= 255 else { return nil }
13 |         guard green >= 0 && green <= 255 else { return nil }
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/Colors.swift:21:5: warning: 'public' modifier is redundant for initializer declared in a public extension
19 |     ///
20 |     /// - Parameter hex: A hex value in the format RRGGBB.
21 |     public convenience init?(_ hex: Int) {
   |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
22 |         self.init(red:(hex >> 16) & 0xff, green:(hex >> 8) & 0xff, blue:hex & 0xff)
23 |     }
[6/8] Compiling UtilityKit ActionQueueManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/ActionQueueManager.swift:49:18: warning: call to main actor-isolated instance method 'run(_:completion:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
43 |
44 |     /// A method called every time the node finishes running an action. This method is only called if the ActionQueueManager was used to start the action.
45 |     private func actionCompleted() {
   |                  `- note: add '@MainActor' to make instance method 'actionCompleted()' part of global actor 'MainActor'
46 |         isRunning = false
47 |         queue.remove(at: 0)
48 |         if !queue.isEmpty {
49 |             node.run(queue[0], completion: self.actionCompleted)
   |                  `- warning: call to main actor-isolated instance method 'run(_:completion:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
50 |             isRunning = true
51 |         }
SpriteKit.SKNode:83:26: note: calls to instance method 'run(_:completion:)' from outside of its actor context are implicitly asynchronous
 81 |     @available(swift, obsoleted: 3, renamed: "run(_:)")
 82 |     open func runAction(_ action: SKAction)
 83 |     @MainActor open func run(_ action: SKAction, completion block: @escaping () -> Void)
    |                          `- note: calls to instance method 'run(_:completion:)' from outside of its actor context are implicitly asynchronous
 84 |     open func run(_ action: SKAction) async
 85 |     @available(swift, obsoleted: 3, renamed: "run(_:completion:)")
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/ActionQueueManager.swift:49:18: warning: sending task-isolated value of type 'SKAction' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
47 |         queue.remove(at: 0)
48 |         if !queue.isEmpty {
49 |             node.run(queue[0], completion: self.actionCompleted)
   |                  `- warning: sending task-isolated value of type 'SKAction' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
50 |             isRunning = true
51 |         }
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/ActionQueueManager.swift:49:18: warning: sending task-isolated value of type '() -> ()' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
47 |         queue.remove(at: 0)
48 |         if !queue.isEmpty {
49 |             node.run(queue[0], completion: self.actionCompleted)
   |                  `- warning: sending task-isolated value of type '() -> ()' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
50 |             isRunning = true
51 |         }
[7/8] Compiling UtilityKit SKButton.swift
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/SKButton.swift:17:16: warning: main actor-isolated property 'onClick' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
  6 | public protocol SKButton {
  7 |     /// The closure to be called on a click.
  8 |     var onClick: () -> () { get set }
    |         `- note: 'onClick' declared here
  9 |     /// Called when this node is clicked. Should simply call the closure stored in `onClick`.
 10 |     ///
    :
 14 |
 15 | /// An SKSpriteNode that makes clicks easier to handle.
 16 | open class SKSpriteButton: SKSpriteNode, SKButton {
    |                                          `- note: add '@preconcurrency' to the 'SKButton' conformance to defer isolation checking to run time
 17 |     public var onClick: () -> ()
    |                `- warning: main actor-isolated property 'onClick' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 18 |     /// Called whenever this node is clicked. Simply calls the closure stored in `onClick`.
 19 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/SKButton.swift:21:24: warning: main actor-isolated instance method 'mouseDown(with:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 10 |     ///
 11 |     /// - Parameter event: An object encapsulating information about the mouse-down event.
 12 |     func mouseDown(with event: NSEvent)
    |          `- note: mark the protocol requirement 'mouseDown(with:)' 'async' to allow actor-isolated conformances
 13 | }
 14 |
    :
 19 |     ///
 20 |     /// - Parameter event: An object encapsulating information about the mouse-down event.
 21 |     open override func mouseDown(with event: NSEvent) {
    |                        |- warning: main actor-isolated instance method 'mouseDown(with:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                        `- note: add 'nonisolated' to 'mouseDown(with:)' to make this instance method not isolated to the actor
 22 |         onClick()
 23 |     }
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/SKButton.swift:75:16: warning: main actor-isolated property 'onClick' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
  6 | public protocol SKButton {
  7 |     /// The closure to be called on a click.
  8 |     var onClick: () -> () { get set }
    |         `- note: 'onClick' declared here
  9 |     /// Called when this node is clicked. Should simply call the closure stored in `onClick`.
 10 |     ///
    :
 72 |
 73 | /// An SKShapeNode that makes clicks easier to handle.
 74 | open class SKShapeButton: SKShapeNode, SKButton {
    |                                        `- note: add '@preconcurrency' to the 'SKButton' conformance to defer isolation checking to run time
 75 |     public var onClick: () -> ()
    |                `- warning: main actor-isolated property 'onClick' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 76 |     /// Called whenever this node is clicked. Simply calls the closure stored in `onClick`.
 77 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/UtilityKit/SKButton.swift:79:24: warning: main actor-isolated instance method 'mouseDown(with:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 10 |     ///
 11 |     /// - Parameter event: An object encapsulating information about the mouse-down event.
 12 |     func mouseDown(with event: NSEvent)
    |          `- note: mark the protocol requirement 'mouseDown(with:)' 'async' to allow actor-isolated conformances
 13 | }
 14 |
    :
 77 |     ///
 78 |     /// - Parameter event: An object encapsulating information about the mouse-down event.
 79 |     open override func mouseDown(with event: NSEvent) {
    |                        |- warning: main actor-isolated instance method 'mouseDown(with:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                        `- note: add 'nonisolated' to 'mouseDown(with:)' to make this instance method not isolated to the actor
 80 |         onClick()
 81 |     }
[8/8] Compiling UtilityKit CGOperators.swift
Build complete! (10.28s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "UtilityKit",
  "name" : "UtilityKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "UtilityKit",
      "targets" : [
        "UtilityKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "UtilityKitTests",
      "module_type" : "SwiftTarget",
      "name" : "UtilityKitTests",
      "path" : "Tests/UtilityKitTests",
      "sources" : [
        "UtilityKitTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "UtilityKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "UtilityKit",
      "module_type" : "SwiftTarget",
      "name" : "UtilityKit",
      "path" : "Sources/UtilityKit",
      "product_memberships" : [
        "UtilityKit"
      ],
      "sources" : [
        "ActionQueueManager.swift",
        "CGOperators.swift",
        "Colors.swift",
        "SKButton.swift",
        "UtilityKit.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "4.0"
}
Done.