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 WebMIDIKit, reference master (6f3506), with Swift 6.0 for macOS (SPM) on 28 Nov 2024 19:19:08 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 -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.58.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/adamnemecek/webmidikit.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/adamnemecek/webmidikit
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 6f35069 Improve Xcode 12+ compatibility (#35)
Cloned https://github.com/adamnemecek/webmidikit.git
Revision (git rev-parse @):
6f3506937c141f04edaaa182502984d7baaa2e26
SUCCESS checkout https://github.com/adamnemecek/webmidikit.git at master
========================================
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": "webmidikit",
      "name": "WebMIDIKit",
      "url": "https://github.com/adamnemecek/webmidikit.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/webmidikit",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/adamnemecek/webmidikit.git
[1/1788] Fetching webmidikit
Fetched https://github.com/adamnemecek/webmidikit.git from cache (0.87s)
Creating working copy for https://github.com/adamnemecek/webmidikit.git
Working copy of https://github.com/adamnemecek/webmidikit.git resolved at master (6f35069)
warning: '.resolve-product-dependencies': dependency 'webmidikit' 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/adamnemecek/webmidikit.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 -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--7754E27361AE5C74.txt
[3/18] Compiling WebMIDIKit VirtualMIDIInput.swift
[4/18] Compiling WebMIDIKit VirtualMIDIOutput.swift
[5/18] Compiling WebMIDIKit MIDIInput.swift
[6/18] Compiling WebMIDIKit MIDIOutput.swift
[7/18] Compiling WebMIDIKit MIDIPort.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPort.swift:186:27: warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
184 |             type = "MIDIOutput"
185 |         }
186 |         return "\(type) \(name) by \(manufacturer), connection: \(connection) (id: \(id))"
    |                           |- warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
    |                           |- note: use 'String(describing:)' to silence this warning
    |                           `- note: provide a default value to avoid this warning
187 |     }
188 | }
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPort.swift:186:38: warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
184 |             type = "MIDIOutput"
185 |         }
186 |         return "\(type) \(name) by \(manufacturer), connection: \(connection) (id: \(id))"
    |                                      |- warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
    |                                      |- note: use 'String(describing:)' to silence this warning
    |                                      `- note: provide a default value to avoid this warning
187 |     }
188 | }
[8/18] Compiling WebMIDIKit MIDIPortMap.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPort.swift:186:27: warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
184 |             type = "MIDIOutput"
185 |         }
186 |         return "\(type) \(name) by \(manufacturer), connection: \(connection) (id: \(id))"
    |                           |- warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
    |                           |- note: use 'String(describing:)' to silence this warning
    |                           `- note: provide a default value to avoid this warning
187 |     }
188 | }
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPort.swift:186:38: warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
184 |             type = "MIDIOutput"
185 |         }
186 |         return "\(type) \(name) by \(manufacturer), connection: \(connection) (id: \(id))"
    |                                      |- warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
    |                                      |- note: use 'String(describing:)' to silence this warning
    |                                      `- note: provide a default value to avoid this warning
187 |     }
188 | }
[9/18] Compiling WebMIDIKit CoreMIDI.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/CoreMIDI.swift:3:1: warning: extension declares a conformance of imported type 'MIDIObjectAddRemoveNotification' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
  1 | import CoreMIDI
  2 |
  3 | extension MIDIObjectAddRemoveNotification: CustomStringConvertible {
    | |- warning: extension declares a conformance of imported type 'MIDIObjectAddRemoveNotification' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
  4 |
  5 |     public var description: String {
[10/18] Compiling WebMIDIKit Enums.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/CoreMIDI.swift:3:1: warning: extension declares a conformance of imported type 'MIDIObjectAddRemoveNotification' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
  1 | import CoreMIDI
  2 |
  3 | extension MIDIObjectAddRemoveNotification: CustomStringConvertible {
    | |- warning: extension declares a conformance of imported type 'MIDIObjectAddRemoveNotification' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
  4 |
  5 |     public var description: String {
[11/18] Compiling WebMIDIKit MIDIPacketList.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketList.swift:133:1: warning: extension declares a conformance of imported type 'MIDIPacketList' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
131 | // }
132 |
133 | extension MIDIPacketList: Sequence {
    | |- warning: extension declares a conformance of imported type 'MIDIPacketList' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
134 |     public typealias Element = UnsafeMutablePointer<MIDIPacket>
135 |
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketList.swift:220:1: warning: extension declares a conformance of imported type 'UnsafePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
218 | // }
219 |
220 | extension UnsafePointer: Sequence where Pointee == MIDIPacketList {
    | |- warning: extension declares a conformance of imported type 'UnsafePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
221 |     public typealias Element = UnsafeMutablePointer<MIDIPacket>
222 |
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketListBuilder.swift:194:1: warning: extension declares a conformance of imported type 'UnsafeMutablePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
192 |
193 |
194 | extension UnsafeMutablePointer: Sequence where Pointee == MIDIPacketList {
    | |- warning: extension declares a conformance of imported type 'UnsafeMutablePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
195 |     public typealias Element = UnsafePointer<MIDIPacket>
196 |
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketListBuilder.swift:216:1: warning: extension declares a conformance of imported type 'UnsafeRawBufferPointer' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
214 | }
215 |
216 | extension UnsafeRawBufferPointer : Equatable {
    | |- warning: extension declares a conformance of imported type 'UnsafeRawBufferPointer' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
217 |     @inline(__always)
218 |     public static func ==(lhs: Self, rhs: Self) -> Bool {
[12/18] Compiling WebMIDIKit MIDIPacketListBuilder.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketList.swift:133:1: warning: extension declares a conformance of imported type 'MIDIPacketList' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
131 | // }
132 |
133 | extension MIDIPacketList: Sequence {
    | |- warning: extension declares a conformance of imported type 'MIDIPacketList' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
134 |     public typealias Element = UnsafeMutablePointer<MIDIPacket>
135 |
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketList.swift:220:1: warning: extension declares a conformance of imported type 'UnsafePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
218 | // }
219 |
220 | extension UnsafePointer: Sequence where Pointee == MIDIPacketList {
    | |- warning: extension declares a conformance of imported type 'UnsafePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
221 |     public typealias Element = UnsafeMutablePointer<MIDIPacket>
222 |
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketListBuilder.swift:194:1: warning: extension declares a conformance of imported type 'UnsafeMutablePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
192 |
193 |
194 | extension UnsafeMutablePointer: Sequence where Pointee == MIDIPacketList {
    | |- warning: extension declares a conformance of imported type 'UnsafeMutablePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
195 |     public typealias Element = UnsafePointer<MIDIPacket>
196 |
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketListBuilder.swift:216:1: warning: extension declares a conformance of imported type 'UnsafeRawBufferPointer' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
214 | }
215 |
216 | extension UnsafeRawBufferPointer : Equatable {
    | |- warning: extension declares a conformance of imported type 'UnsafeRawBufferPointer' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
217 |     @inline(__always)
218 |     public static func ==(lhs: Self, rhs: Self) -> Bool {
[13/18] Compiling WebMIDIKit MIDIStatus.swift
[14/18] Compiling WebMIDIKit Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/Extensions.swift:10:1: warning: extension declares a conformance of imported type 'MIDIObjectType' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
 8 | }
 9 |
10 | extension MIDIObjectType: CustomStringConvertible {
   | |- warning: extension declares a conformance of imported type 'MIDIObjectType' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
11 |     public var description: String {
12 |         switch self {
[15/18] Compiling WebMIDIKit MIDIClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/Extensions.swift:10:1: warning: extension declares a conformance of imported type 'MIDIObjectType' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
 8 | }
 9 |
10 | extension MIDIObjectType: CustomStringConvertible {
   | |- warning: extension declares a conformance of imported type 'MIDIObjectType' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
11 |     public var description: String {
12 |         switch self {
[16/18] Emitting module WebMIDIKit
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/CoreMIDI.swift:3:1: warning: extension declares a conformance of imported type 'MIDIObjectAddRemoveNotification' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
  1 | import CoreMIDI
  2 |
  3 | extension MIDIObjectAddRemoveNotification: CustomStringConvertible {
    | |- warning: extension declares a conformance of imported type 'MIDIObjectAddRemoveNotification' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
  4 |
  5 |     public var description: String {
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/Extensions.swift:10:1: warning: extension declares a conformance of imported type 'MIDIObjectType' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
 8 | }
 9 |
10 | extension MIDIObjectType: CustomStringConvertible {
   | |- warning: extension declares a conformance of imported type 'MIDIObjectType' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
11 |     public var description: String {
12 |         switch self {
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketList.swift:133:1: warning: extension declares a conformance of imported type 'MIDIPacketList' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
131 | // }
132 |
133 | extension MIDIPacketList: Sequence {
    | |- warning: extension declares a conformance of imported type 'MIDIPacketList' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
134 |     public typealias Element = UnsafeMutablePointer<MIDIPacket>
135 |
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketList.swift:220:1: warning: extension declares a conformance of imported type 'UnsafePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
218 | // }
219 |
220 | extension UnsafePointer: Sequence where Pointee == MIDIPacketList {
    | |- warning: extension declares a conformance of imported type 'UnsafePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
221 |     public typealias Element = UnsafeMutablePointer<MIDIPacket>
222 |
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketListBuilder.swift:194:1: warning: extension declares a conformance of imported type 'UnsafeMutablePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
192 |
193 |
194 | extension UnsafeMutablePointer: Sequence where Pointee == MIDIPacketList {
    | |- warning: extension declares a conformance of imported type 'UnsafeMutablePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
195 |     public typealias Element = UnsafePointer<MIDIPacket>
196 |
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketListBuilder.swift:216:1: warning: extension declares a conformance of imported type 'UnsafeRawBufferPointer' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
214 | }
215 |
216 | extension UnsafeRawBufferPointer : Equatable {
    | |- warning: extension declares a conformance of imported type 'UnsafeRawBufferPointer' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
217 |     @inline(__always)
218 |     public static func ==(lhs: Self, rhs: Self) -> Bool {
[17/18] Compiling WebMIDIKit MIDIEndpoint.swift
[18/18] Compiling WebMIDIKit MIDIEvent.swift
[19/19] Compiling WebMIDIKit WebMIDIKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/WebMIDIKit.swift:126:17: warning: capture of 'callback' with non-sendable type '(MIDIEndpoint, MIDIEndpointNotificationType) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 |         return addObserver(forName: .MIDISetupNotification, object: nil, queue: nil) {
125 |             _ = ($0.object as? MIDIObjectAddRemoveNotification).map {
126 |                 callback(.init(notification: $0),
    |                 |- warning: capture of 'callback' with non-sendable type '(MIDIEndpoint, MIDIEndpointNotificationType) -> 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'
127 |                          MIDIEndpointNotificationType($0.messageID))
128 |             }
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/WebMIDIKit.swift:126:17: warning: capture of 'callback' with non-sendable type '(MIDIEndpoint, MIDIEndpointNotificationType) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
124 |         return addObserver(forName: .MIDISetupNotification, object: nil, queue: nil) {
125 |             _ = ($0.object as? MIDIObjectAddRemoveNotification).map {
126 |                 callback(.init(notification: $0),
    |                 |- warning: capture of 'callback' with non-sendable type '(MIDIEndpoint, MIDIEndpointNotificationType) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
127 |                          MIDIEndpointNotificationType($0.messageID))
128 |             }
Build complete! (13.51s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "WebMIDIKit",
  "name" : "WebMIDIKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    }
  ],
  "products" : [
    {
      "name" : "WebMIDIKit",
      "targets" : [
        "WebMIDIKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "WebMIDIKitTests",
      "module_type" : "SwiftTarget",
      "name" : "WebMIDIKitTests",
      "path" : "Tests/WebMIDIKitTests",
      "sources" : [
        "MIDIPacketListBuilderTests.swift",
        "WebMIDIKitTests.swift"
      ],
      "target_dependencies" : [
        "WebMIDIKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "WebMIDIKit",
      "module_type" : "SwiftTarget",
      "name" : "WebMIDIKit",
      "path" : "Sources/WebMIDIKit",
      "product_memberships" : [
        "WebMIDIKit"
      ],
      "sources" : [
        "CoreMIDI.swift",
        "Enums.swift",
        "Extensions.swift",
        "MIDIClient.swift",
        "MIDIEndpoint.swift",
        "MIDIEvent.swift",
        "MIDIInput.swift",
        "MIDIOutput.swift",
        "MIDIPacketList.swift",
        "MIDIPacketListBuilder.swift",
        "MIDIPort.swift",
        "MIDIPortMap.swift",
        "MIDIStatus.swift",
        "VirtualMIDIInput.swift",
        "VirtualMIDIOutput.swift",
        "WebMIDIKit.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.