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.0 for macOS (SPM) on 4 Jan 2025 09:09:23 UTC.

Swift 6 data race errors: 3

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.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.60.0
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
========================================
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": "omnibar",
      "name": "Omnibar",
      "url": "https://github.com/CleanCocoa/Omnibar.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Omnibar",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/CleanCocoa/Omnibar.git
[1/2260] Fetching omnibar
Fetched https://github.com/CleanCocoa/Omnibar.git from cache (1.20s)
Creating working copy for https://github.com/CleanCocoa/Omnibar.git
Working copy of https://github.com/CleanCocoa/Omnibar.git resolved at 1.0.0 (19509e2)
warning: '.resolve-product-dependencies': dependency 'omnibar' 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/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.2.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-5BDAB9E9C0126B9D.txt
[3/14] Compiling Omnibar OmnibarContentChange.swift
[4/14] Compiling Omnibar TextFieldTextChange.swift
[5/14] Compiling Omnibar OmnibarTextFieldCell.swift
[6/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 protocol requirement; 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 protocol requirement; 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 |         }
[7/15] Compiling Omnibar OmnibarDelegate.swift
[8/15] Compiling Omnibar OmnibarContent.swift
[9/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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 |
[10/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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 NSView+constrainToSuperviewBounds.swift
[12/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:2:26: note: calls to instance method 'currentEditor()' from outside of its actor context are implicitly asynchronous
 1 | extension NSControl {
 2 |     @MainActor open func currentEditor() -> NSText?
   |                          `- note: calls to instance method 'currentEditor()' from outside of its actor context are implicitly asynchronous
 3 |     open func abortEditing() -> Bool
 4 |     open func validateEditing()
/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 |         }
AppKit.NSControl:24:25: note: mutation of this property is only permitted within the actor
22 |     open var formatter: Formatter? { get set }
23 |     open var objectValue: Any? { get set }
24 |     @MainActor open var stringValue: String { get set }
   |                         `- note: mutation of this property is only permitted within the actor
25 |     @NSCopying open var attributedStringValue: NSAttributedString { get set }
26 |     open var intValue: Int32 { get set }
[13/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:2:26: note: calls to instance method 'currentEditor()' from outside of its actor context are implicitly asynchronous
 1 | extension NSControl {
 2 |     @MainActor open func currentEditor() -> NSText?
   |                          `- note: calls to instance method 'currentEditor()' from outside of its actor context are implicitly asynchronous
 3 |     open func abortEditing() -> Bool
 4 |     open func validateEditing()
/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 |         }
AppKit.NSControl:24:25: note: mutation of this property is only permitted within the actor
22 |     open var formatter: Formatter? { get set }
23 |     open var objectValue: Any? { get set }
24 |     @MainActor open var stringValue: String { get set }
   |                         `- note: mutation of this property is only permitted within the actor
25 |     @NSCopying open var attributedStringValue: NSAttributedString { get set }
26 |     open var intValue: Int32 { get set }
[14/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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 |
[15/15] Compiling Omnibar TextReplacement.swift
Build complete! (12.18s)
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.