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 DiffableDataSources, reference master (a457cf), with Swift 6.0 for macOS (SPM) on 2 Nov 2024 13:48:52 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ra1028/DiffableDataSources.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/ra1028/DiffableDataSources
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at a457cf6 Merge pull request #38 from ra1028/v0.5.0
Submodule path 'Carthage/Checkouts/DifferenceKit': checked out '62745d7780deef4a023a792a1f8f763ec7bf9705'
Submodule 'Carthage/Checkouts/DifferenceKit' (https://github.com/ra1028/DifferenceKit.git) registered for path 'Carthage/Checkouts/DifferenceKit'
Cloning into '/Users/admin/builder/spi-builder-workspace/Carthage/Checkouts/DifferenceKit'...
Cloned https://github.com/ra1028/DiffableDataSources.git
Revision (git rev-parse @):
a457cf63456b3aeec2a3626af0230c98b0733927
SUCCESS checkout https://github.com/ra1028/DiffableDataSources.git at master
Fetching https://github.com/ra1028/DifferenceKit.git
[1/2319] Fetching differencekit
Fetched https://github.com/ra1028/DifferenceKit.git from cache (1.33s)
Computing version for https://github.com/ra1028/DifferenceKit.git
Computed https://github.com/ra1028/DifferenceKit.git at 1.2.0 (0.66s)
Creating working copy for https://github.com/ra1028/DifferenceKit.git
Working copy of https://github.com/ra1028/DifferenceKit.git resolved at 1.2.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": "diffabledatasources",
      "name": "DiffableDataSources",
      "url": "https://github.com/ra1028/DiffableDataSources.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/DiffableDataSources",
      "dependencies": [
        {
          "identity": "differencekit",
          "name": "DifferenceKit",
          "url": "https://github.com/ra1028/DifferenceKit.git",
          "version": "1.2.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/DifferenceKit",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/ra1028/DiffableDataSources.git
[1/449] Fetching diffabledatasources
Fetched https://github.com/ra1028/DiffableDataSources.git from cache (1.26s)
Fetching https://github.com/ra1028/DifferenceKit.git from cache
Fetched https://github.com/ra1028/DifferenceKit.git from cache (0.46s)
Computing version for https://github.com/ra1028/DifferenceKit.git
Computed https://github.com/ra1028/DifferenceKit.git at 1.2.0 (0.03s)
Creating working copy for https://github.com/ra1028/DiffableDataSources.git
Working copy of https://github.com/ra1028/DiffableDataSources.git resolved at master (a457cf6)
Creating working copy for https://github.com/ra1028/DifferenceKit.git
Working copy of https://github.com/ra1028/DifferenceKit.git resolved at 1.2.0
warning: '.resolve-product-dependencies': dependency 'diffabledatasources' is not used by any target
Found 1 product dependencies
  - DifferenceKit
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/ra1028/DiffableDataSources.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/3] Write sources
[2/3] Write swift-version--7754E27361AE5C74.txt
[4/15] Compiling DifferenceKit ElementPath.swift
[5/16] Compiling DifferenceKit Differentiable.swift
[6/16] Compiling DifferenceKit UIKitExtension.swift
[7/16] Emitting module DifferenceKit
[8/16] Compiling DifferenceKit Algorithm.swift
[9/16] Compiling DifferenceKit AnyDifferentiable.swift
[10/16] Compiling DifferenceKit ArraySection.swift
[11/16] Compiling DifferenceKit Changeset.swift
[12/16] Compiling DifferenceKit StagedChangeset.swift
[13/16] Compiling DifferenceKit DifferentiableSection.swift
[14/16] Compiling DifferenceKit AppKitExtension.swift
[15/16] Compiling DifferenceKit ContentIdentifiable.swift
[16/16] Compiling DifferenceKit ContentEquatable.swift
[17/26] Compiling DiffableDataSources CollectionViewDiffableDataSource.swift
[18/26] Compiling DiffableDataSources TableViewDiffableDataSource.swift
[19/26] Compiling DiffableDataSources DiffableDataSourceCore.swift
[20/26] Compiling DiffableDataSources MainThreadSerialDispatcher.swift
/Users/admin/builder/spi-builder-workspace/Sources/Internal/MainThreadSerialDispatcher.swift:24:34: warning: capture of 'self' with non-sendable type 'MainThreadSerialDispatcher?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | final class MainThreadSerialDispatcher {
   |             `- note: class 'MainThreadSerialDispatcher' does not conform to the 'Sendable' protocol
 4 |     private let executingCount = UnsafeMutablePointer<Int32>.allocate(capacity: 1)
 5 |
   :
22 |         else {
23 |             DispatchQueue.main.async { [weak self] in
24 |                 guard let self = self else {
   |                                  `- warning: capture of 'self' with non-sendable type 'MainThreadSerialDispatcher?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 |                     return
26 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Internal/MainThreadSerialDispatcher.swift:28:17: warning: capture of 'action' with non-sendable type '() -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 |                 }
27 |
28 |                 action()
   |                 |- warning: capture of 'action' with non-sendable type '() -> 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'
29 |                 OSAtomicDecrement32(self.executingCount)
30 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Internal/MainThreadSerialDispatcher.swift:24:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
22 |         else {
23 |             DispatchQueue.main.async { [weak self] in
24 |                 guard let self = self else {
   |                                  |- 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
25 |                     return
26 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Internal/MainThreadSerialDispatcher.swift:28:17: warning: sending 'action' risks causing data races; this is an error in the Swift 6 language mode
26 |                 }
27 |
28 |                 action()
   |                 |- warning: sending 'action' risks causing data races; this is an error in the Swift 6 language mode
   |                 `- note: task-isolated 'action' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
29 |                 OSAtomicDecrement32(self.executingCount)
30 |             }
[21/26] Compiling DiffableDataSources HashableExtension.swift
[22/26] Emitting module DiffableDataSources
[23/26] Compiling DiffableDataSources SnapshotStructure.swift
[24/26] Compiling DiffableDataSources CocoaCollectionViewDiffableDataSource.swift
/Users/admin/builder/spi-builder-workspace/Sources/AppKit/CocoaCollectionViewDiffableDataSource.swift:27:24: warning: main actor-isolated property 'dataSource' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 25 |         super.init()
 26 |
 27 |         collectionView.dataSource = self
    |                        `- warning: main actor-isolated property 'dataSource' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 28 |     }
 29 |
AppKit.NSCollectionView:4:30: note: mutation of this property is only permitted within the actor
  2 | @MainActor open class NSCollectionView : NSView, NSDraggingSource, NSDraggingDestination {
  3 |     @available(macOS 10.11, *)
  4 |     @MainActor weak open var dataSource: (any NSCollectionViewDataSource)? { get set }
    |                              `- note: mutation of this property is only permitted within the actor
  5 |     @available(macOS 10.13, *)
  6 |     weak open var prefetchDataSource: (any NSCollectionViewPrefetching)? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/AppKit/CocoaCollectionViewDiffableDataSource.swift:44:32: warning: call to main actor-isolated instance method 'reload(using:interrupt:setData:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 42 |             animatingDifferences: animatingDifferences,
 43 |             performUpdates: { collectionView, changeset, setSections in
 44 |                 collectionView.reload(using: changeset, setData: setSections)
    |                                `- warning: call to main actor-isolated instance method 'reload(using:interrupt:setData:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 45 |         },
 46 |             completion: completion
/Users/admin/builder/spi-builder-workspace/.build/checkouts/DifferenceKit/Sources/Extensions/AppKitExtension.swift:107:10: note: calls to instance method 'reload(using:interrupt:setData:)' from outside of its actor context are implicitly asynchronous
105 |     ///   - setData: A closure that takes the collection as a parameter.
106 |     ///              The collection should be set to data-source of NSCollectionView.
107 |     func reload<C>(
    |          `- note: calls to instance method 'reload(using:interrupt:setData:)' from outside of its actor context are implicitly asynchronous
108 |         using stagedChangeset: StagedChangeset<C>,
109 |         interrupt: ((Changeset<C>) -> Bool)? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/AppKit/CocoaCollectionViewDiffableDataSource.swift:44:32: warning: sending 'changeset' risks causing data races; this is an error in the Swift 6 language mode
 42 |             animatingDifferences: animatingDifferences,
 43 |             performUpdates: { collectionView, changeset, setSections in
 44 |                 collectionView.reload(using: changeset, setData: setSections)
    |                                |- warning: sending 'changeset' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending task-isolated 'changeset' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 45 |         },
 46 |             completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/AppKit/CocoaCollectionViewDiffableDataSource.swift:44:32: warning: sending 'setSections' risks causing data races; this is an error in the Swift 6 language mode
 42 |             animatingDifferences: animatingDifferences,
 43 |             performUpdates: { collectionView, changeset, setSections in
 44 |                 collectionView.reload(using: changeset, setData: setSections)
    |                                |- warning: sending 'setSections' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending task-isolated 'setSections' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
 45 |         },
 46 |             completion: completion
[25/26] Compiling DiffableDataSources UniversalError.swift
[26/26] Compiling DiffableDataSources DiffableDataSourceSnapshot.swift
Build complete! (16.35s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "differencekit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.0",
            "upper_bound" : "1.3.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/ra1028/DifferenceKit.git"
    }
  ],
  "manifest_display_name" : "DiffableDataSources",
  "name" : "DiffableDataSources",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "9.0"
    },
    {
      "name" : "macos",
      "version" : "10.11"
    },
    {
      "name" : "tvos",
      "version" : "9.0"
    }
  ],
  "products" : [
    {
      "name" : "DiffableDataSources",
      "targets" : [
        "DiffableDataSources"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "DiffableDataSourcesTests",
      "module_type" : "SwiftTarget",
      "name" : "DiffableDataSourcesTests",
      "path" : "Tests",
      "sources" : [
        "CocoaCollectionViewDiffableDataSourceTests.swift",
        "CollectionViewDiffableDataSourceTests.swift",
        "DiffableDataSourceTests.swift",
        "MainThreadSerialDispatcherTests.swift",
        "TableViewDiffableDataSourceTests.swift"
      ],
      "target_dependencies" : [
        "DiffableDataSources"
      ],
      "type" : "test"
    },
    {
      "c99name" : "DiffableDataSources",
      "module_type" : "SwiftTarget",
      "name" : "DiffableDataSources",
      "path" : "Sources",
      "product_dependencies" : [
        "DifferenceKit"
      ],
      "product_memberships" : [
        "DiffableDataSources"
      ],
      "sources" : [
        "AppKit/CocoaCollectionViewDiffableDataSource.swift",
        "DiffableDataSourceSnapshot.swift",
        "Internal/DiffableDataSourceCore.swift",
        "Internal/HashableExtension.swift",
        "Internal/MainThreadSerialDispatcher.swift",
        "Internal/SnapshotStructure.swift",
        "Internal/UniversalError.swift",
        "UIKit/CollectionViewDiffableDataSource.swift",
        "UIKit/TableViewDiffableDataSource.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
Done.