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 Omnibar, reference 1.0.0 (19509e), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 06:46:45 UTC.

Swift 6 data race errors: 3

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.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/CleanCocoa/Omnibar.git
Reference: 1.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/CleanCocoa/Omnibar
 * tag               1.0.0      -> FETCH_HEAD
HEAD is now at 19509e2 remove RxOmnibar from package in favor of separate repository
Cloned https://github.com/CleanCocoa/Omnibar.git
Revision (git rev-parse @):
19509e2fd4adcf790c881ddbbf717c3b595d242f
SUCCESS checkout https://github.com/CleanCocoa/Omnibar.git at 1.0.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/CleanCocoa/Omnibar.git
https://github.com/CleanCocoa/Omnibar.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Omnibar",
  "name" : "Omnibar",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.13"
    }
  ],
  "products" : [
    {
      "name" : "Omnibar",
      "targets" : [
        "Omnibar"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "OmnibarTests",
      "module_type" : "SwiftTarget",
      "name" : "OmnibarTests",
      "path" : "Tests/OmnibarTests",
      "sources" : [
        "ChangeMethodTests.swift",
        "NSRange+EquatableTests.swift",
        "NSText+FieldEditorTests.swift",
        "OmnibarContentChangeTests.swift",
        "OmnibarContentTests.swift",
        "OmnibarTests.swift",
        "TextFieldTextChangeTests.swift",
        "TextReplacementTests.swift"
      ],
      "target_dependencies" : [
        "Omnibar"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Omnibar",
      "module_type" : "SwiftTarget",
      "name" : "Omnibar",
      "path" : "Sources/Omnibar",
      "product_memberships" : [
        "Omnibar"
      ],
      "sources" : [
        "ChangeMethod.swift",
        "EditableText.swift",
        "FieldEditor.swift",
        "NSText+FieldEditor.swift",
        "NSView+constrainToSuperviewBounds.swift",
        "Omnibar.swift",
        "OmnibarContent.swift",
        "OmnibarContentChange.swift",
        "OmnibarDelegate.swift",
        "OmnibarTextFieldCell.swift",
        "TextFieldTextChange.swift",
        "TextReplacement.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
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/14] Compiling Omnibar OmnibarDelegate.swift
[4/14] Compiling Omnibar OmnibarContent.swift
[5/14] Compiling Omnibar OmnibarContentChange.swift
[6/14] Compiling Omnibar TextFieldTextChange.swift
[7/15] Compiling Omnibar TextReplacement.swift
[8/15] Compiling Omnibar OmnibarTextFieldCell.swift
[9/15] Compiling Omnibar NSView+constrainToSuperviewBounds.swift
[10/15] Compiling Omnibar FieldEditor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/NSText+FieldEditor.swift:12:10: warning: main actor-isolated instance method 'replaceAllCharacters(with:)' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
 3 | import Cocoa
 4 |
 5 | extension NSText: FieldEditor {
   |                   `- note: add '@preconcurrency' to the 'FieldEditor' conformance to defer isolation checking to run time
 6 |
 7 |     func selectRange(_ range: NSRange) {
   :
10 |     }
11 |
12 |     func replaceAllCharacters(with string: String) {
   |          |- warning: main actor-isolated instance method 'replaceAllCharacters(with:)' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
   |          `- note: add 'nonisolated' to 'replaceAllCharacters(with:)' to make this instance method not isolated to the actor
13 |
14 |         self.string = string
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/FieldEditor.swift:6:10: note: mark the protocol requirement 'replaceAllCharacters(with:)' 'async' to allow actor-isolated conformances
4 |
5 | protocol FieldEditor {
6 |     func replaceAllCharacters(with string: String)
  |          `- note: mark the protocol requirement 'replaceAllCharacters(with:)' 'async' to allow actor-isolated conformances
7 |     func selectRange(_ range: NSRange)
8 | }
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/NSText+FieldEditor.swift:7:10: warning: main actor-isolated instance method 'selectRange' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
 5 | extension NSText: FieldEditor {
 6 |
 7 |     func selectRange(_ range: NSRange) {
   |          |- warning: main actor-isolated instance method 'selectRange' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
   |          `- note: add 'nonisolated' to 'selectRange' to make this instance method not isolated to the actor
 8 |
 9 |         self.selectedRange = range
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/FieldEditor.swift:7:10: note: mark the protocol requirement 'selectRange' 'async' to allow actor-isolated conformances
5 | protocol FieldEditor {
6 |     func replaceAllCharacters(with string: String)
7 |     func selectRange(_ range: NSRange)
  |          `- note: mark the protocol requirement 'selectRange' 'async' to allow actor-isolated conformances
8 | }
9 |
[11/15] Compiling Omnibar NSText+FieldEditor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/NSText+FieldEditor.swift:12:10: warning: main actor-isolated instance method 'replaceAllCharacters(with:)' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
 3 | import Cocoa
 4 |
 5 | extension NSText: FieldEditor {
   |                   `- note: add '@preconcurrency' to the 'FieldEditor' conformance to defer isolation checking to run time
 6 |
 7 |     func selectRange(_ range: NSRange) {
   :
10 |     }
11 |
12 |     func replaceAllCharacters(with string: String) {
   |          |- warning: main actor-isolated instance method 'replaceAllCharacters(with:)' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
   |          `- note: add 'nonisolated' to 'replaceAllCharacters(with:)' to make this instance method not isolated to the actor
13 |
14 |         self.string = string
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/FieldEditor.swift:6:10: note: mark the protocol requirement 'replaceAllCharacters(with:)' 'async' to allow actor-isolated conformances
4 |
5 | protocol FieldEditor {
6 |     func replaceAllCharacters(with string: String)
  |          `- note: mark the protocol requirement 'replaceAllCharacters(with:)' 'async' to allow actor-isolated conformances
7 |     func selectRange(_ range: NSRange)
8 | }
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/NSText+FieldEditor.swift:7:10: warning: main actor-isolated instance method 'selectRange' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
 5 | extension NSText: FieldEditor {
 6 |
 7 |     func selectRange(_ range: NSRange) {
   |          |- warning: main actor-isolated instance method 'selectRange' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
   |          `- note: add 'nonisolated' to 'selectRange' to make this instance method not isolated to the actor
 8 |
 9 |         self.selectedRange = range
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/FieldEditor.swift:7:10: note: mark the protocol requirement 'selectRange' 'async' to allow actor-isolated conformances
5 | protocol FieldEditor {
6 |     func replaceAllCharacters(with string: String)
7 |     func selectRange(_ range: NSRange)
  |          `- note: mark the protocol requirement 'selectRange' 'async' to allow actor-isolated conformances
8 | }
9 |
[12/15] Compiling Omnibar Omnibar.swift
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/Omnibar.swift:123:17: warning: main actor-isolated instance method 'display(content:)' cannot be used to satisfy nonisolated requirement from protocol 'DisplaysOmnibarContent'; this is an error in the Swift 6 language mode
119 | // MARK: - Input
120 |
121 | extension Omnibar: DisplaysOmnibarContent {
    |                    `- note: add '@preconcurrency' to the 'DisplaysOmnibarContent' conformance to defer isolation checking to run time
122 |
123 |     public func display(content: OmnibarContent) {
    |                 |- warning: main actor-isolated instance method 'display(content:)' cannot be used to satisfy nonisolated requirement from protocol 'DisplaysOmnibarContent'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'display(content:)' to make this instance method not isolated to the actor
124 |
125 |         editableText.replace(replacement: TextReplacement(omnibarContent: content))
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/OmnibarContent.swift:6:10: note: mark the protocol requirement 'display(content:)' 'async' to allow actor-isolated conformances
 4 |
 5 | public protocol DisplaysOmnibarContent: AnyObject {
 6 |     func display(content: OmnibarContent)
   |          `- note: mark the protocol requirement 'display(content:)' 'async' to allow actor-isolated conformances
 7 | }
 8 |
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/Omnibar.swift:112:9: warning: cannot access property 'controlTextChangeSubscription' with a non-sendable type 'Any?' from nonisolated deinit; this is an error in the Swift 6 language mode
110 |
111 |     deinit {
112 |         if let subscription = controlTextChangeSubscription {
    |         `- warning: cannot access property 'controlTextChangeSubscription' with a non-sendable type 'Any?' from nonisolated deinit; this is an error in the Swift 6 language mode
113 |             NotificationCenter.default.removeObserver(subscription)
114 |         }
[13/15] Compiling Omnibar ChangeMethod.swift
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/EditableText.swift:19:21: warning: call to main actor-isolated instance method 'currentEditor()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
16 | extension EditableText where Self: NSControl {
17 |
18 |     func fieldEditor() -> FieldEditor? {
   |          `- note: add '@MainActor' to make instance method 'fieldEditor()' part of global actor 'MainActor'
19 |         return self.currentEditor()
   |                     `- warning: call to main actor-isolated instance method 'currentEditor()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
20 |     }
21 |
AppKit.NSControl.currentEditor:2:22: note: calls to instance method 'currentEditor()' from outside of its actor context are implicitly asynchronous
1 | class NSControl {
2 | @MainActor open func currentEditor() -> NSText?}
  |                      |- note: calls to instance method 'currentEditor()' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSView'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/EditableText.swift:27:18: warning: main actor-isolated property 'stringValue' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
20 |     }
21 |
22 |     func replace(replacement: TextReplacement) {
   |          `- note: add '@MainActor' to make instance method 'replace(replacement:)' part of global actor 'MainActor'
23 |
24 |         // Do not set `stringValue` in an active editing session because that
25 |         // "aborts all editing before setting the value." (See docs.)
26 |         guard let fieldEditor = self.fieldEditor() else {
27 |             self.stringValue = replacement.text
   |                  `- warning: main actor-isolated property 'stringValue' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
28 |             return
29 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSControl.h:36:28: note: mutation of this property is only permitted within the actor
 34 |
 35 | @property (nullable, copy) id  /* id<NSCopying> */ objectValue;
 36 | @property (copy) NSString *stringValue;
    |                            `- note: mutation of this property is only permitted within the actor
 37 | @property (copy) NSAttributedString *attributedStringValue;
 38 | @property int intValue;
[14/15] Compiling Omnibar EditableText.swift
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/EditableText.swift:19:21: warning: call to main actor-isolated instance method 'currentEditor()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
16 | extension EditableText where Self: NSControl {
17 |
18 |     func fieldEditor() -> FieldEditor? {
   |          `- note: add '@MainActor' to make instance method 'fieldEditor()' part of global actor 'MainActor'
19 |         return self.currentEditor()
   |                     `- warning: call to main actor-isolated instance method 'currentEditor()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
20 |     }
21 |
AppKit.NSControl.currentEditor:2:22: note: calls to instance method 'currentEditor()' from outside of its actor context are implicitly asynchronous
1 | class NSControl {
2 | @MainActor open func currentEditor() -> NSText?}
  |                      |- note: calls to instance method 'currentEditor()' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSView'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/EditableText.swift:27:18: warning: main actor-isolated property 'stringValue' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
20 |     }
21 |
22 |     func replace(replacement: TextReplacement) {
   |          `- note: add '@MainActor' to make instance method 'replace(replacement:)' part of global actor 'MainActor'
23 |
24 |         // Do not set `stringValue` in an active editing session because that
25 |         // "aborts all editing before setting the value." (See docs.)
26 |         guard let fieldEditor = self.fieldEditor() else {
27 |             self.stringValue = replacement.text
   |                  `- warning: main actor-isolated property 'stringValue' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
28 |             return
29 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSControl.h:36:28: note: mutation of this property is only permitted within the actor
 34 |
 35 | @property (nullable, copy) id  /* id<NSCopying> */ objectValue;
 36 | @property (copy) NSString *stringValue;
    |                            `- note: mutation of this property is only permitted within the actor
 37 | @property (copy) NSAttributedString *attributedStringValue;
 38 | @property int intValue;
[15/15] Emitting module Omnibar
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/NSText+FieldEditor.swift:12:10: warning: main actor-isolated instance method 'replaceAllCharacters(with:)' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
 3 | import Cocoa
 4 |
 5 | extension NSText: FieldEditor {
   |                   `- note: add '@preconcurrency' to the 'FieldEditor' conformance to defer isolation checking to run time
 6 |
 7 |     func selectRange(_ range: NSRange) {
   :
10 |     }
11 |
12 |     func replaceAllCharacters(with string: String) {
   |          |- warning: main actor-isolated instance method 'replaceAllCharacters(with:)' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
   |          `- note: add 'nonisolated' to 'replaceAllCharacters(with:)' to make this instance method not isolated to the actor
13 |
14 |         self.string = string
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/FieldEditor.swift:6:10: note: mark the protocol requirement 'replaceAllCharacters(with:)' 'async' to allow actor-isolated conformances
4 |
5 | protocol FieldEditor {
6 |     func replaceAllCharacters(with string: String)
  |          `- note: mark the protocol requirement 'replaceAllCharacters(with:)' 'async' to allow actor-isolated conformances
7 |     func selectRange(_ range: NSRange)
8 | }
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/NSText+FieldEditor.swift:7:10: warning: main actor-isolated instance method 'selectRange' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
 5 | extension NSText: FieldEditor {
 6 |
 7 |     func selectRange(_ range: NSRange) {
   |          |- warning: main actor-isolated instance method 'selectRange' cannot be used to satisfy nonisolated requirement from protocol 'FieldEditor'; this is an error in the Swift 6 language mode
   |          `- note: add 'nonisolated' to 'selectRange' to make this instance method not isolated to the actor
 8 |
 9 |         self.selectedRange = range
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/FieldEditor.swift:7:10: note: mark the protocol requirement 'selectRange' 'async' to allow actor-isolated conformances
5 | protocol FieldEditor {
6 |     func replaceAllCharacters(with string: String)
7 |     func selectRange(_ range: NSRange)
  |          `- note: mark the protocol requirement 'selectRange' 'async' to allow actor-isolated conformances
8 | }
9 |
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/Omnibar.swift:123:17: warning: main actor-isolated instance method 'display(content:)' cannot be used to satisfy nonisolated requirement from protocol 'DisplaysOmnibarContent'; this is an error in the Swift 6 language mode
119 | // MARK: - Input
120 |
121 | extension Omnibar: DisplaysOmnibarContent {
    |                    `- note: add '@preconcurrency' to the 'DisplaysOmnibarContent' conformance to defer isolation checking to run time
122 |
123 |     public func display(content: OmnibarContent) {
    |                 |- warning: main actor-isolated instance method 'display(content:)' cannot be used to satisfy nonisolated requirement from protocol 'DisplaysOmnibarContent'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'display(content:)' to make this instance method not isolated to the actor
124 |
125 |         editableText.replace(replacement: TextReplacement(omnibarContent: content))
/Users/admin/builder/spi-builder-workspace/Sources/Omnibar/OmnibarContent.swift:6:10: note: mark the protocol requirement 'display(content:)' 'async' to allow actor-isolated conformances
 4 |
 5 | public protocol DisplaysOmnibarContent: AnyObject {
 6 |     func display(content: OmnibarContent)
   |          `- note: mark the protocol requirement 'display(content:)' 'async' to allow actor-isolated conformances
 7 | }
 8 |
Build complete! (6.74s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Omnibar",
  "name" : "Omnibar",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.13"
    }
  ],
  "products" : [
    {
      "name" : "Omnibar",
      "targets" : [
        "Omnibar"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "OmnibarTests",
      "module_type" : "SwiftTarget",
      "name" : "OmnibarTests",
      "path" : "Tests/OmnibarTests",
      "sources" : [
        "ChangeMethodTests.swift",
        "NSRange+EquatableTests.swift",
        "NSText+FieldEditorTests.swift",
        "OmnibarContentChangeTests.swift",
        "OmnibarContentTests.swift",
        "OmnibarTests.swift",
        "TextFieldTextChangeTests.swift",
        "TextReplacementTests.swift"
      ],
      "target_dependencies" : [
        "Omnibar"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Omnibar",
      "module_type" : "SwiftTarget",
      "name" : "Omnibar",
      "path" : "Sources/Omnibar",
      "product_memberships" : [
        "Omnibar"
      ],
      "sources" : [
        "ChangeMethod.swift",
        "EditableText.swift",
        "FieldEditor.swift",
        "NSText+FieldEditor.swift",
        "NSView+constrainToSuperviewBounds.swift",
        "Omnibar.swift",
        "OmnibarContent.swift",
        "OmnibarContentChange.swift",
        "OmnibarDelegate.swift",
        "OmnibarTextFieldCell.swift",
        "TextFieldTextChange.swift",
        "TextReplacement.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.