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 FileMonitor, reference main (ef22f1), with Swift 6.0 for Linux on 5 Nov 2024 06:13:28 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/aus-der-Technik/FileMonitor.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/aus-der-Technik/FileMonitor
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at ef22f14 Adds support for AsyncStream (#4)
Cloned https://github.com/aus-der-Technik/FileMonitor.git
Revision (git rev-parse @):
ef22f1487d07fbff0a7a5f743d42611bfd03b5e8
SUCCESS checkout https://github.com/aus-der-Technik/FileMonitor.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/aus-der-Technik/FileMonitor.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/15] Write sources
[5/15] Write swift-version-24593BA9C3E375BF.txt
[7/19] Compiling FileMonitorShared Watcher.swift
[8/19] Compiling FileMonitorShared URL+isDirectory.swift
[9/19] Compiling FileMonitorShared FileChangeEvent.swift
[10/19] Emitting module FileMonitorShared
[11/20] Wrapping AST for FileMonitorShared for debugging
[13/24] Compiling FileMonitorLinux InotifyEvent.swift
[14/24] Compiling FileMonitorLinux LinuxWatcher.swift
[15/24] Emitting module FileMonitorLinux
[16/24] Compiling FileMonitorLinux FileSystemWatcher.swift
/host/spi-builder-workspace/Sources/FileMonitorLinux/FileSystemWatcher.swift:57:20: warning: capture of 'self' with non-sendable type 'FileSystemWatcher' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 9 |
10 | #if os(Linux)
11 | public class FileSystemWatcher {
   |              `- note: class 'FileSystemWatcher' does not conform to the 'Sendable' protocol
12 |     // inotify_init() initializes a new inotify instance and returns a
13 |     // file descriptor associated with a new inotify event queue.
   :
55 |             let buffer = UnsafeMutablePointer<CChar>.allocate(capacity: bufferLength)
56 |
57 |             while !self.shouldStopWatching {
   |                    `- warning: capture of 'self' with non-sendable type 'FileSystemWatcher' in a `@Sendable` closure; this is an error in the Swift 6 language mode
58 |                 var currentIndex: Int = 0
59 |                 let readLength = read(fileDescriptor, buffer, bufferLength)
/host/spi-builder-workspace/Sources/FileMonitorLinux/FileSystemWatcher.swift:78:29: warning: capture of 'callback' with non-sendable type '(InotifyEvent) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 |
77 |                         self.dispatchQueue.async() {
78 |                             callback(inotifyEvent)
   |                             |- warning: capture of 'callback' with non-sendable type '(InotifyEvent) -> 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'
79 |                         }
80 |                     }
/host/spi-builder-workspace/Sources/FileMonitorLinux/FileSystemWatcher.swift:78:29: warning: capture of 'callback' with non-sendable type '(InotifyEvent) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 |
77 |                         self.dispatchQueue.async() {
78 |                             callback(inotifyEvent)
   |                             |- warning: capture of 'callback' with non-sendable type '(InotifyEvent) -> 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'
79 |                         }
80 |                     }
/host/spi-builder-workspace/Sources/FileMonitorLinux/FileSystemWatcher.swift:78:38: warning: capture of 'inotifyEvent' with non-sendable type 'InotifyEvent' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 |
77 |                         self.dispatchQueue.async() {
78 |                             callback(inotifyEvent)
   |                                      `- warning: capture of 'inotifyEvent' with non-sendable type 'InotifyEvent' in a `@Sendable` closure; this is an error in the Swift 6 language mode
79 |                         }
80 |                     }
/host/spi-builder-workspace/Sources/FileMonitorLinux/InotifyEvent.swift:12:15: note: consider making struct 'InotifyEvent' conform to the 'Sendable' protocol
10 |
11 | /// A single Inotify event
12 | public struct InotifyEvent {
   |               `- note: consider making struct 'InotifyEvent' conform to the 'Sendable' protocol
13 |   // Watch descriptor
14 |   public let watchDescriptor: Int
[17/25] Wrapping AST for FileMonitorLinux for debugging
[19/28] Emitting module FileMonitor
[20/28] Compiling FileMonitor FileDidChangedDelegate.swift
[21/28] Compiling FileMonitor FileMonitor.swift
/host/spi-builder-workspace/Sources/FileMonitor/FileMonitor.swift:84:39: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
82 |     public func fileDidChanged(event: FileChangeEvent) {
83 |         delegate?.fileDidChanged(event: event)
84 |         fileChangeStream.continuation.yield(event)
   |                                       |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
   |                                       `- note: task-isolated 'event' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
85 |     }
86 |
[22/29] Wrapping AST for FileMonitor for debugging
[24/33] Emitting module FileMonitorDelegateExample
[25/33] Compiling FileMonitorDelegateExample FileMonitorDelegateExample.swift
[27/34] Emitting module FileMonitorAsyncStreamExample
[28/34] Compiling FileMonitorAsyncStreamExample FileMonitorAsyncStreamExample.swift
[28/35] Wrapping AST for FileMonitorDelegateExample for debugging
[30/35] Write Objects.LinkFileList
[31/35] Wrapping AST for FileMonitorAsyncStreamExample for debugging
[32/35] Write Objects.LinkFileList
[33/35] Linking FileMonitorDelegateExample
[34/35] Linking FileMonitorAsyncStreamExample
Build complete! (19.52s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "FileMonitor",
  "name" : "FileMonitor",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "FileMonitor",
      "targets" : [
        "FileMonitor"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "FileMonitorDelegateExample",
      "targets" : [
        "FileMonitorDelegateExample"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "FileMonitorAsyncStreamExample",
      "targets" : [
        "FileMonitorAsyncStreamExample"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "FileMonitorTests",
      "module_type" : "SwiftTarget",
      "name" : "FileMonitorTests",
      "path" : "Tests/FileMonitorTests",
      "sources" : [
        "Extensions/String+Random.swift",
        "FileMonitorExplicitAddTests.swift",
        "FileMonitorExplicitChangeTests.swift",
        "FileMonitorExplicitDeleteTests.swift",
        "FileMonitorFileHasPathTests.swift",
        "FileMonitorTests.swift"
      ],
      "target_dependencies" : [
        "FileMonitor"
      ],
      "type" : "test"
    },
    {
      "c99name" : "FileMonitorShared",
      "module_type" : "SwiftTarget",
      "name" : "FileMonitorShared",
      "path" : "Sources/FileMonitorShared",
      "product_memberships" : [
        "FileMonitor",
        "FileMonitorDelegateExample",
        "FileMonitorAsyncStreamExample"
      ],
      "sources" : [
        "FileChangeEvent.swift",
        "URL+isDirectory.swift",
        "Watcher.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "FileMonitorMacOS",
      "module_type" : "SwiftTarget",
      "name" : "FileMonitorMacOS",
      "path" : "Sources/FileMonitorMacOS",
      "product_memberships" : [
        "FileMonitor",
        "FileMonitorDelegateExample",
        "FileMonitorAsyncStreamExample"
      ],
      "sources" : [
        "FileWatcher+Action.swift",
        "FileWatcher+Type.swift",
        "FileWatcher.swift",
        "FileWatcherEvent.swift",
        "MacosWatcher.swift"
      ],
      "target_dependencies" : [
        "FileMonitorShared"
      ],
      "type" : "library"
    },
    {
      "c99name" : "FileMonitorLinux",
      "module_type" : "SwiftTarget",
      "name" : "FileMonitorLinux",
      "path" : "Sources/FileMonitorLinux",
      "product_memberships" : [
        "FileMonitor",
        "FileMonitorDelegateExample",
        "FileMonitorAsyncStreamExample"
      ],
      "sources" : [
        "FileSystemWatcher.swift",
        "InotifyEvent.swift",
        "LinuxWatcher.swift"
      ],
      "target_dependencies" : [
        "CInotify",
        "FileMonitorShared"
      ],
      "type" : "library"
    },
    {
      "c99name" : "FileMonitorDelegateExample",
      "module_type" : "SwiftTarget",
      "name" : "FileMonitorDelegateExample",
      "path" : "Sources/FileMonitorDelegateExample",
      "product_memberships" : [
        "FileMonitorDelegateExample"
      ],
      "sources" : [
        "FileMonitorDelegateExample.swift"
      ],
      "target_dependencies" : [
        "FileMonitor"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "FileMonitorAsyncStreamExample",
      "module_type" : "SwiftTarget",
      "name" : "FileMonitorAsyncStreamExample",
      "path" : "Sources/FileMonitorAsyncStreamExample",
      "product_memberships" : [
        "FileMonitorAsyncStreamExample"
      ],
      "sources" : [
        "FileMonitorAsyncStreamExample.swift"
      ],
      "target_dependencies" : [
        "FileMonitor"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "FileMonitor",
      "module_type" : "SwiftTarget",
      "name" : "FileMonitor",
      "path" : "Sources/FileMonitor",
      "product_memberships" : [
        "FileMonitor",
        "FileMonitorDelegateExample",
        "FileMonitorAsyncStreamExample"
      ],
      "sources" : [
        "FileDidChangedDelegate.swift",
        "FileMonitor.swift"
      ],
      "target_dependencies" : [
        "FileMonitorShared",
        "FileMonitorMacOS",
        "FileMonitorLinux"
      ],
      "type" : "library"
    },
    {
      "c99name" : "CInotify",
      "module_type" : "SystemLibraryTarget",
      "name" : "CInotify",
      "path" : "Sources/Inotify",
      "product_memberships" : [
        "FileMonitor",
        "FileMonitorDelegateExample",
        "FileMonitorAsyncStreamExample"
      ],
      "sources" : [
      ],
      "type" : "system-target"
    }
  ],
  "tools_version" : "5.9"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.