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 FileProxy, reference 6.0.0 (9d62eb), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 02:55:30 UTC.

Swift 6 data race errors: 1

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/michaelnisi/fileproxy.git
Reference: 6.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/michaelnisi/fileproxy
 * tag               6.0.0      -> FETCH_HEAD
HEAD is now at 9d62eb9 Rename
Cloned https://github.com/michaelnisi/fileproxy.git
Revision (git rev-parse @):
9d62eb93cb80bc8f6ac498929f9fc33651beddce
SUCCESS checkout https://github.com/michaelnisi/fileproxy.git at 6.0.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": "fileproxy",
      "name": "FileProxy",
      "url": "https://github.com/michaelnisi/fileproxy.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/fileproxy",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/michaelnisi/fileproxy.git
[1/345] Fetching fileproxy
Fetched https://github.com/michaelnisi/fileproxy.git from cache (0.73s)
Creating working copy for https://github.com/michaelnisi/fileproxy.git
Working copy of https://github.com/michaelnisi/fileproxy.git resolved at 6.0.0 (9d62eb9)
warning: '.resolve-product-dependencies': dependency 'fileproxy' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/michaelnisi/fileproxy.git
https://github.com/michaelnisi/fileproxy.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "FileProxy",
  "name" : "FileProxy",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    }
  ],
  "products" : [
    {
      "name" : "FileProxy",
      "targets" : [
        "FileProxy"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "FileProxyTests",
      "module_type" : "SwiftTarget",
      "name" : "FileProxyTests",
      "path" : "Tests/FileProxyTests",
      "sources" : [
        "fileproxyTests.swift"
      ],
      "target_dependencies" : [
        "FileProxy"
      ],
      "type" : "test"
    },
    {
      "c99name" : "FileProxy",
      "module_type" : "SwiftTarget",
      "name" : "FileProxy",
      "path" : "Sources/FileProxy",
      "product_memberships" : [
        "FileProxy"
      ],
      "sources" : [
        "FileLocator.swift",
        "FileProxy.swift",
        "FileProxyDelegate.swift",
        "FileProxying.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
warning: 'spi-builder-workspace': the target name FileProxyTests has different case on the filesystem and the Package.swift manifest file
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/7] Compiling FileProxy FileProxying.swift
[4/7] Compiling FileProxy FileProxyDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/FileProxy/FileProxyDelegate.swift:13:36: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 11 | private let log = OSLog.disabled
 12 |
 13 | public protocol FileProxyDelegate: class {
    |                                    `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 14 |
 15 |   func proxy(
[5/7] Compiling FileProxy FileProxy.swift
/Users/admin/builder/spi-builder-workspace/Sources/FileProxy/FileProxy.swift:28:19: warning: stored property 'delegate' of 'Sendable'-conforming class 'FileProxy' is mutable; this is an error in the Swift 6 language mode
 26 |   /// session delegate queues. Depending on the number of sessions, this can
 27 |   /// get hairy.
 28 |   public weak var delegate: FileProxyDelegate?
    |                   `- warning: stored property 'delegate' of 'Sendable'-conforming class 'FileProxy' is mutable; this is an error in the Swift 6 language mode
 29 |
 30 |   /// Synchronizes access to sessions, handlers, and our invalidation flag.
/Users/admin/builder/spi-builder-workspace/Sources/FileProxy/FileProxy.swift:235:9: warning: capture of 'find' with non-sendable type '([URLSession], [URLSessionDownloadTask]) -> ()' in a '@Sendable' closure
233 |
234 |       session.getTasksWithCompletionHandler { _, _, tasks in
235 |         find(Array(sessions.dropFirst()), acc + tasks.filter {
    |         |- warning: capture of 'find' with non-sendable type '([URLSession], [URLSessionDownloadTask]) -> ()' in a '@Sendable' closure
    |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
236 |           $0.originalRequest?.url == url
237 |         })
/Users/admin/builder/spi-builder-workspace/Sources/FileProxy/FileProxy.swift:228:10: warning: concurrently-executed local function 'find' must be marked as '@Sendable'
226 |     completion: @escaping ([URLSessionDownloadTask]) -> Void)
227 |   {
228 |     func find(_ sessions: [URLSession], _ acc: [URLSessionDownloadTask] = []) {
    |          `- warning: concurrently-executed local function 'find' must be marked as '@Sendable'
229 |       guard let session = sessions.first else {
230 |         completion(acc)
/Users/admin/builder/spi-builder-workspace/Sources/FileProxy/FileProxy.swift:295:13: warning: capture of 'find' with non-sendable type '([FileProxy.Session], Acc) -> ()' in a '@Sendable' closure
293 |           // The URL should be skipped if we find a matching task in-flight.
294 |           guard !tasks.contains(where: { $0.originalRequest?.url == url }) else {
295 |             find(
    |             |- warning: capture of 'find' with non-sendable type '([FileProxy.Session], Acc) -> ()' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
296 |               Array(sessions.dropFirst()),
297 |               Acc(good: acc.good, unused: acc.unused, skip: true)
/Users/admin/builder/spi-builder-workspace/Sources/FileProxy/FileProxy.swift:296:21: warning: capture of 'sessions' with non-sendable type '[FileProxy.Session]' in a '@Sendable' closure
 63 |   /// Notice the difference to `URLSessionConfiguration.background`, all our
 64 |   /// url sessions are background url sessions.
 65 |   private enum Session {
    |                `- note: consider making enum 'Session' conform to the 'Sendable' protocol
 66 |     case background(SessionIdentifier, URLSession, () -> Void)
 67 |     case transient(SessionIdentifier, URLSession)
    :
294 |           guard !tasks.contains(where: { $0.originalRequest?.url == url }) else {
295 |             find(
296 |               Array(sessions.dropFirst()),
    |                     `- warning: capture of 'sessions' with non-sendable type '[FileProxy.Session]' in a '@Sendable' closure
297 |               Acc(good: acc.good, unused: acc.unused, skip: true)
298 |             )
/Users/admin/builder/spi-builder-workspace/Sources/FileProxy/FileProxy.swift:277:10: warning: concurrently-executed local function 'find' must be marked as '@Sendable'
275 |     }
276 |
277 |     func find(
    |          `- warning: concurrently-executed local function 'find' must be marked as '@Sendable'
278 |       _ sessions: [Session],
279 |       _ acc: Acc = Acc(good: nil, unused: [], skip: false)
[6/7] Compiling FileProxy FileLocator.swift
[7/7] Emitting module FileProxy
/Users/admin/builder/spi-builder-workspace/Sources/FileProxy/FileProxy.swift:28:19: warning: stored property 'delegate' of 'Sendable'-conforming class 'FileProxy' is mutable; this is an error in the Swift 6 language mode
 26 |   /// session delegate queues. Depending on the number of sessions, this can
 27 |   /// get hairy.
 28 |   public weak var delegate: FileProxyDelegate?
    |                   `- warning: stored property 'delegate' of 'Sendable'-conforming class 'FileProxy' is mutable; this is an error in the Swift 6 language mode
 29 |
 30 |   /// Synchronizes access to sessions, handlers, and our invalidation flag.
/Users/admin/builder/spi-builder-workspace/Sources/FileProxy/FileProxyDelegate.swift:13:36: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 11 | private let log = OSLog.disabled
 12 |
 13 | public protocol FileProxyDelegate: class {
    |                                    `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
 14 |
 15 |   func proxy(
Build complete! (4.45s)
warning: 'spi-builder-workspace': the target name FileProxyTests has different case on the filesystem and the Package.swift manifest file
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "FileProxy",
  "name" : "FileProxy",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    }
  ],
  "products" : [
    {
      "name" : "FileProxy",
      "targets" : [
        "FileProxy"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "FileProxyTests",
      "module_type" : "SwiftTarget",
      "name" : "FileProxyTests",
      "path" : "Tests/FileProxyTests",
      "sources" : [
        "fileproxyTests.swift"
      ],
      "target_dependencies" : [
        "FileProxy"
      ],
      "type" : "test"
    },
    {
      "c99name" : "FileProxy",
      "module_type" : "SwiftTarget",
      "name" : "FileProxy",
      "path" : "Sources/FileProxy",
      "product_memberships" : [
        "FileProxy"
      ],
      "sources" : [
        "FileLocator.swift",
        "FileProxy.swift",
        "FileProxyDelegate.swift",
        "FileProxying.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
warning: 'spi-builder-workspace': the target name FileProxyTests has different case on the filesystem and the Package.swift manifest file
Done.