The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Tonic, reference 2.1.2 (601eeb), with Swift 6.1 for macOS (SPM) on 6 Jul 2026 23:34:41 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: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/AudioKit/Tonic.git
Reference: 2.1.2
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/AudioKit/Tonic
 * tag               2.1.2      -> FETCH_HEAD
HEAD is now at 601eeb2 Merge branch 'main' of https://github.com/AudioKit/Tonic
Cloned https://github.com/AudioKit/Tonic.git
Revision (git rev-parse @):
601eeb26b06ff6edfa391b2fd2d8815ec8231a9b
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/AudioKit/Tonic.git at 2.1.2
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/AudioKit/Tonic.git
https://github.com/AudioKit/Tonic.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Tonic",
  "name" : "Tonic",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Tonic",
      "targets" : [
        "Tonic"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TonicTests",
      "module_type" : "SwiftTarget",
      "name" : "TonicTests",
      "path" : "Tests/TonicTests",
      "sources" : [
        "BitSetTests.swift",
        "ChordTests.swift",
        "IntervalTests.swift",
        "KeyTests.swift",
        "NoteTests.swift",
        "PerformanceTests.swift",
        "ReadMeTests.swift",
        "ScaleTests.swift",
        "TonicTests.swift"
      ],
      "target_dependencies" : [
        "Tonic"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Tonic",
      "module_type" : "SwiftTarget",
      "name" : "Tonic",
      "path" : "Sources/Tonic",
      "product_memberships" : [
        "Tonic"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Tonic/Tonic.docc",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Accidental.swift",
        "BitSet.swift",
        "Chord+Shortcuts.swift",
        "Chord.swift",
        "ChordTable.swift",
        "ChordType.swift",
        "Interval.swift",
        "Key+Shortcuts.swift",
        "Key.swift",
        "Letter.swift",
        "Note+MiddleCStandard.swift",
        "Note+Shortcuts.swift",
        "Note.swift",
        "NoteClass+Shortcuts.swift",
        "NoteClass.swift",
        "NoteSet.swift",
        "Octave.swift",
        "Pitch.swift",
        "PitchColor.swift",
        "Scale+Shortcuts.swift",
        "Scale.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
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/3] Write sources
[1/3] Copying Tonic.docc
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/24] Emitting module Tonic
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
 4 |
 5 | /// A table of note sets so we can look up chord names.
 6 | public class ChordTable {
   |              `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
 7 |     public static let shared = ChordTable()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     static func hash(_ noteClasses: [NoteClass]) -> Int {
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:71:62: warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
69 |
70 |     /// All chords include enharmonic (same NoteSet) - Use "chords" alternative when enharmonic chords are not needed
71 |     lazy var chordsIncludingEnharmonic: [Chord] = ChordTable.generateAllChordsIncludingEnharmonic()
   |                                                              |- warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
   |                                                              `- note: use 'getRankedChords()' instead
72 |
73 |     /// Returns all of the chord options (enharmonic chords) for a set a notes (slow but effective)
[5/26] Compiling Tonic Scale.swift
[6/26] Compiling Tonic resource_bundle_accessor.swift
[7/26] Compiling Tonic Key.swift
[8/26] Compiling Tonic Letter.swift
[9/26] Compiling Tonic NoteClass.swift
[10/26] Compiling Tonic NoteSet.swift
[11/26] Compiling Tonic Note+MiddleCStandard.swift
[12/26] Compiling Tonic Note+Shortcuts.swift
[13/26] Compiling Tonic Note.swift
[14/26] Compiling Tonic NoteClass+Shortcuts.swift
[15/26] Compiling Tonic PitchColor.swift
[16/26] Compiling Tonic Scale+Shortcuts.swift
[17/26] Compiling Tonic Octave.swift
[18/26] Compiling Tonic Pitch.swift
[19/26] Compiling Tonic Chord.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/Chord.swift:306:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
304 |     /// want to list the notes C, E, G, A as C6 if the C is in the bass
305 |     public static func getRankedChords(from notes: [Note]) -> [Chord] {
306 |         let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
    |                                                 |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
    |                                                 `- note: use 'getRankedChords' instead
307 |         if potentialChords.isEmpty { return [] }
308 |         let orderedNotes = notes.sorted(by: { f, s in  f.noteNumber < s.noteNumber })
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
 4 |
 5 | /// A table of note sets so we can look up chord names.
 6 | public class ChordTable {
   |              `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
 7 |     public static let shared = ChordTable()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     static func hash(_ noteClasses: [NoteClass]) -> Int {
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:71:62: warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
69 |
70 |     /// All chords include enharmonic (same NoteSet) - Use "chords" alternative when enharmonic chords are not needed
71 |     lazy var chordsIncludingEnharmonic: [Chord] = ChordTable.generateAllChordsIncludingEnharmonic()
   |                                                              |- warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
   |                                                              `- note: use 'getRankedChords()' instead
72 |
73 |     /// Returns all of the chord options (enharmonic chords) for a set a notes (slow but effective)
[20/26] Compiling Tonic ChordTable.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/Chord.swift:306:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
304 |     /// want to list the notes C, E, G, A as C6 if the C is in the bass
305 |     public static func getRankedChords(from notes: [Note]) -> [Chord] {
306 |         let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
    |                                                 |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
    |                                                 `- note: use 'getRankedChords' instead
307 |         if potentialChords.isEmpty { return [] }
308 |         let orderedNotes = notes.sorted(by: { f, s in  f.noteNumber < s.noteNumber })
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
 4 |
 5 | /// A table of note sets so we can look up chord names.
 6 | public class ChordTable {
   |              `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
 7 |     public static let shared = ChordTable()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     static func hash(_ noteClasses: [NoteClass]) -> Int {
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:71:62: warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
69 |
70 |     /// All chords include enharmonic (same NoteSet) - Use "chords" alternative when enharmonic chords are not needed
71 |     lazy var chordsIncludingEnharmonic: [Chord] = ChordTable.generateAllChordsIncludingEnharmonic()
   |                                                              |- warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
   |                                                              `- note: use 'getRankedChords()' instead
72 |
73 |     /// Returns all of the chord options (enharmonic chords) for a set a notes (slow but effective)
[21/26] Compiling Tonic ChordType.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/Chord.swift:306:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
304 |     /// want to list the notes C, E, G, A as C6 if the C is in the bass
305 |     public static func getRankedChords(from notes: [Note]) -> [Chord] {
306 |         let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
    |                                                 |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
    |                                                 `- note: use 'getRankedChords' instead
307 |         if potentialChords.isEmpty { return [] }
308 |         let orderedNotes = notes.sorted(by: { f, s in  f.noteNumber < s.noteNumber })
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
 4 |
 5 | /// A table of note sets so we can look up chord names.
 6 | public class ChordTable {
   |              `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
 7 |     public static let shared = ChordTable()
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     static func hash(_ noteClasses: [NoteClass]) -> Int {
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:71:62: warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
69 |
70 |     /// All chords include enharmonic (same NoteSet) - Use "chords" alternative when enharmonic chords are not needed
71 |     lazy var chordsIncludingEnharmonic: [Chord] = ChordTable.generateAllChordsIncludingEnharmonic()
   |                                                              |- warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
   |                                                              `- note: use 'getRankedChords()' instead
72 |
73 |     /// Returns all of the chord options (enharmonic chords) for a set a notes (slow but effective)
[22/26] Compiling Tonic Interval.swift
[23/26] Compiling Tonic Key+Shortcuts.swift
[24/26] Compiling Tonic Accidental.swift
[25/26] Compiling Tonic BitSet.swift
[26/26] Compiling Tonic Chord+Shortcuts.swift
Build complete! (4.71s)
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/Sources/Tonic/Chord.swift.orig
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Tonic",
  "name" : "Tonic",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Tonic",
      "targets" : [
        "Tonic"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TonicTests",
      "module_type" : "SwiftTarget",
      "name" : "TonicTests",
      "path" : "Tests/TonicTests",
      "sources" : [
        "BitSetTests.swift",
        "ChordTests.swift",
        "IntervalTests.swift",
        "KeyTests.swift",
        "NoteTests.swift",
        "PerformanceTests.swift",
        "ReadMeTests.swift",
        "ScaleTests.swift",
        "TonicTests.swift"
      ],
      "target_dependencies" : [
        "Tonic"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Tonic",
      "module_type" : "SwiftTarget",
      "name" : "Tonic",
      "path" : "Sources/Tonic",
      "product_memberships" : [
        "Tonic"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Tonic/Tonic.docc",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Accidental.swift",
        "BitSet.swift",
        "Chord+Shortcuts.swift",
        "Chord.swift",
        "ChordTable.swift",
        "ChordType.swift",
        "Interval.swift",
        "Key+Shortcuts.swift",
        "Key.swift",
        "Letter.swift",
        "Note+MiddleCStandard.swift",
        "Note+Shortcuts.swift",
        "Note.swift",
        "NoteClass+Shortcuts.swift",
        "NoteClass.swift",
        "NoteSet.swift",
        "Octave.swift",
        "Pitch.swift",
        "PitchColor.swift",
        "Scale+Shortcuts.swift",
        "Scale.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
Done.