Build Information
Successful build of Tonic, reference 2.1.0 (227c89
), with Swift 6.1 for Linux on 4 Jun 2025 03:18:17 UTC.
Swift 6 data race errors: 1
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/AudioKit/Tonic.git
Reference: 2.1.0
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/AudioKit/Tonic
* tag 2.1.0 -> FETCH_HEAD
HEAD is now at 227c89e test: romanNumeralNotation throws on index out of range (#53)
Cloned https://github.com/AudioKit/Tonic.git
Revision (git rev-parse @):
227c89ea047f928787bec571e487239547f21fe6
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/AudioKit/Tonic.git at 2.1.0
========================================
Build
========================================
Selected platform: linux
Swift version: 6.1
Building package at path: $PWD
https://github.com/AudioKit/Tonic.git
https://github.com/AudioKit/Tonic.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
],
"manifest_display_name" : "Tonic",
"name" : "Tonic",
"path" : "/host/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" : "/host/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 ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:2b296aa7156f49efc57252cdf9ed4bb21d0f92fc98d88800e255491ba2db3116
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/host/spi-builder-workspace/Sources/Tonic/Chord.swift.orig
Building for debugging...
[0/3] Write sources
[0/3] Copying Tonic.docc
[2/3] Write swift-version-24593BA9C3E375BF.txt
[4/24] Emitting module Tonic
/host/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 {
/host/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 Accidental.swift
[8/26] Compiling Tonic BitSet.swift
[9/26] Compiling Tonic Chord+Shortcuts.swift
[10/26] Compiling Tonic Interval.swift
[11/26] Compiling Tonic Key+Shortcuts.swift
[12/26] Compiling Tonic Key.swift
[13/26] Compiling Tonic Letter.swift
[14/26] Compiling Tonic Note+MiddleCStandard.swift
[15/26] Compiling Tonic Note+Shortcuts.swift
[16/26] Compiling Tonic PitchColor.swift
[17/26] Compiling Tonic Scale+Shortcuts.swift
[18/26] Compiling Tonic Chord.swift
/host/spi-builder-workspace/Sources/Tonic/Chord.swift:292:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
290 | /// want to list the notes C, E, G, A as C6 if the C is in the bass
291 | public static func getRankedChords(from notes: [Note]) -> [Chord] {
292 | let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
| |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
| `- note: use 'getRankedChords' instead
293 | if potentialChords.isEmpty { return [] }
294 | let orderedNotes = notes.sorted(by: { f, s in f.noteNumber < s.noteNumber })
/host/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 {
/host/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)
[19/26] Compiling Tonic ChordTable.swift
/host/spi-builder-workspace/Sources/Tonic/Chord.swift:292:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
290 | /// want to list the notes C, E, G, A as C6 if the C is in the bass
291 | public static func getRankedChords(from notes: [Note]) -> [Chord] {
292 | let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
| |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
| `- note: use 'getRankedChords' instead
293 | if potentialChords.isEmpty { return [] }
294 | let orderedNotes = notes.sorted(by: { f, s in f.noteNumber < s.noteNumber })
/host/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 {
/host/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 ChordType.swift
/host/spi-builder-workspace/Sources/Tonic/Chord.swift:292:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
290 | /// want to list the notes C, E, G, A as C6 if the C is in the bass
291 | public static func getRankedChords(from notes: [Note]) -> [Chord] {
292 | let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
| |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
| `- note: use 'getRankedChords' instead
293 | if potentialChords.isEmpty { return [] }
294 | let orderedNotes = notes.sorted(by: { f, s in f.noteNumber < s.noteNumber })
/host/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 {
/host/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 NoteSet.swift
[22/26] Compiling Tonic Octave.swift
[23/26] Compiling Tonic Pitch.swift
[24/26] Compiling Tonic Note.swift
[25/26] Compiling Tonic NoteClass+Shortcuts.swift
[26/26] Compiling Tonic NoteClass.swift
Build complete! (13.64s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Tonic",
"name" : "Tonic",
"path" : "/host/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" : "/host/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"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:2b296aa7156f49efc57252cdf9ed4bb21d0f92fc98d88800e255491ba2db3116
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.