Build Information
Successful build of ReefCalculator, reference 1.4.0 (62954c), with Swift 6.1 for Android on 28 May 2025 14:43:30 UTC.
Swift 6 data race errors: 8
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -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>&1Build Log
========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/reef-buddy/reef-calculator.git
Reference: 1.4.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/reef-buddy/reef-calculator
* tag 1.4.0 -> FETCH_HEAD
HEAD is now at 62954c0 Update doc
Cloned https://github.com/reef-buddy/reef-calculator.git
Revision (git rev-parse @):
62954c0794b8f9eda1b85ffe6d6283b1269d85fc
SUCCESS checkout https://github.com/reef-buddy/reef-calculator.git at 1.4.0
========================================
Build
========================================
Selected platform: android
Swift version: 6.1
Building package at path: $PWD
https://github.com/reef-buddy/reef-calculator.git
https://github.com/reef-buddy/reef-calculator.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"default_localization" : "en",
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin"
}
],
"manifest_display_name" : "ReefCalculator",
"name" : "ReefCalculator",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "12.0"
}
],
"products" : [
{
"name" : "ReefCalculator",
"targets" : [
"ReefCalculator"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ReefCalculatorTests",
"module_type" : "SwiftTarget",
"name" : "ReefCalculatorTests",
"path" : "Tests/ReefCalculatorTests",
"sources" : [
"Brand/ColumboTests.swift",
"Brand/HannaTests.swift",
"Brand/JBLTests.swift",
"Brand/SalifertTests.swift",
"Instructions/Builder/StepBuilderTests.swift",
"Instructions/InstructionsTests.swift",
"Instructions/Step/AddReagentTests.swift",
"Instructions/Step/AddWaterTests.swift",
"Instructions/Step/CountDropletsTests.swift",
"Instructions/Step/SpoonTests.swift",
"Instructions/Step/WaitTests.swift",
"MetricTypeTests.swift",
"ReefCalculatorTests.swift"
],
"target_dependencies" : [
"ReefCalculator"
],
"type" : "test"
},
{
"c99name" : "ReefCalculator",
"module_type" : "SwiftTarget",
"name" : "ReefCalculator",
"path" : "Sources/ReefCalculator",
"product_memberships" : [
"ReefCalculator"
],
"resources" : [
{
"path" : "/host/spi-builder-workspace/Sources/ReefCalculator/Resources/en.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en"
}
}
},
{
"path" : "/host/spi-builder-workspace/Sources/ReefCalculator/Resources/fr.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "fr"
}
}
}
],
"sources" : [
"Brand/Brand.swift",
"Brand/Colombo/Colombo+Calculate.swift",
"Brand/Colombo/Colombo+Explanation.swift",
"Brand/Colombo/Colombo+Instruction.swift",
"Brand/Colombo/Colombo.swift",
"Brand/Hanna/Hanna+Calculate.swift",
"Brand/Hanna/Hanna+Explanation.swift",
"Brand/Hanna/Hanna+Instruction.swift",
"Brand/Hanna/Hanna.swift",
"Brand/JBL/JBL+Calculate.swift",
"Brand/JBL/JBL+Explanation.swift",
"Brand/JBL/JBL+Instruction.swift",
"Brand/JBL/JBL.swift",
"Brand/Salifert/Salifert+Calculate.swift",
"Brand/Salifert/Salifert+Explanation.swift",
"Brand/Salifert/Salifert+Instruction.swift",
"Brand/Salifert/Salifert.swift",
"Error/InvalidMetricType.swift",
"Error/UnavailableInstruction.swift",
"Instructions/Builder/ReagentColor.swift",
"Instructions/Builder/StepBuilder.swift",
"Instructions/Instructions.swift",
"Instructions/Step/AddReagent.swift",
"Instructions/Step/AddWater.swift",
"Instructions/Step/CountDroplets.swift",
"Instructions/Step/FillFlask.swift",
"Instructions/Step/Shake.swift",
"Instructions/Step/Spoon.swift",
"Instructions/Step/Step.swift",
"Instructions/Step/Syringe.swift",
"Instructions/Step/Wait.swift",
"Lib/RedFieldResult.swift",
"Metric/MetricBaseElement.swift",
"Metric/MetricMajorElement.swift",
"Metric/MetricMinorElement.swift",
"Metric/MetricNutrientsElement.swift",
"Metric/MetricOtherElement.swift",
"Metric/MetricPollutantsElement.swift",
"MetricType.swift",
"Protocol/MetricProtocol.swift",
"Protocol/MetricValueProtocol.swift",
"Protocol/ReefMetricProtocol.swift",
"Protocol/TankProtocol.swift",
"ReefCalculator.swift",
"ResultBuilder/LocalizedStringBuilder.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -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
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Fetching https://github.com/apple/swift-docc-plugin
[1/2049] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-docc-plugin from cache (0.47s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.3 (1.13s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3391] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.42s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (4.14s)
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.4.3
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/7] Copying Localizable.strings
[2/7] Copying Info.plist
[2/7] Copying Localizable.strings
[5/7] Write sources
[6/7] Write swift-version-24593BA9C3E375BF.txt
[8/49] Compiling ReefCalculator JBL.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/InvalidMetricType.swift:3:7: warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class InvalidMetricType: Error {}
| `- warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[9/49] Compiling ReefCalculator Salifert+Calculate.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/InvalidMetricType.swift:3:7: warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class InvalidMetricType: Error {}
| `- warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[10/49] Compiling ReefCalculator Salifert+Explanation.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/InvalidMetricType.swift:3:7: warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class InvalidMetricType: Error {}
| `- warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[11/49] Compiling ReefCalculator Salifert+Instruction.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/InvalidMetricType.swift:3:7: warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class InvalidMetricType: Error {}
| `- warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[12/49] Compiling ReefCalculator Salifert.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/InvalidMetricType.swift:3:7: warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class InvalidMetricType: Error {}
| `- warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[13/49] Compiling ReefCalculator InvalidMetricType.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/InvalidMetricType.swift:3:7: warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class InvalidMetricType: Error {}
| `- warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[14/54] Compiling ReefCalculator Brand.swift
[15/54] Compiling ReefCalculator Colombo+Calculate.swift
[16/54] Compiling ReefCalculator Colombo+Explanation.swift
[17/54] Compiling ReefCalculator Colombo+Instruction.swift
[18/54] Compiling ReefCalculator Colombo.swift
[19/54] Compiling ReefCalculator Hanna+Calculate.swift
[20/54] Compiling ReefCalculator Wait.swift
[21/54] Compiling ReefCalculator RedFieldResult.swift
[22/54] Compiling ReefCalculator MetricBaseElement.swift
[23/54] Compiling ReefCalculator MetricMajorElement.swift
[24/54] Compiling ReefCalculator MetricMinorElement.swift
[25/54] Compiling ReefCalculator MetricNutrientsElement.swift
[26/54] Compiling ReefCalculator MetricOtherElement.swift
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:18:16: warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
| |- warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'base' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:19:16: warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
| |- warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'major' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:20:16: warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
| |- warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'minor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:21:16: warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
| |- warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'pollutant' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:22:16: warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
| |- warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'other' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
24 | // base
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:23:16: warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
:
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
| |- warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'nutrient' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | // base
25 | case density
[27/54] Compiling ReefCalculator MetricPollutantsElement.swift
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:18:16: warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
| |- warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'base' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:19:16: warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
| |- warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'major' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:20:16: warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
| |- warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'minor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:21:16: warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
| |- warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'pollutant' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:22:16: warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
| |- warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'other' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
24 | // base
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:23:16: warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
:
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
| |- warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'nutrient' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | // base
25 | case density
[28/54] Compiling ReefCalculator MetricType.swift
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:18:16: warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
| |- warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'base' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:19:16: warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
| |- warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'major' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:20:16: warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
| |- warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'minor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:21:16: warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
| |- warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'pollutant' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:22:16: warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
| |- warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'other' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
24 | // base
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:23:16: warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
:
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
| |- warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'nutrient' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | // base
25 | case density
[29/54] Compiling ReefCalculator MetricProtocol.swift
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:18:16: warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
| |- warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'base' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:19:16: warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
| |- warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'major' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:20:16: warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
| |- warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'minor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:21:16: warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
| |- warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'pollutant' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:22:16: warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
| |- warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'other' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
24 | // base
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:23:16: warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
:
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
| |- warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'nutrient' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | // base
25 | case density
[30/54] Compiling ReefCalculator MetricValueProtocol.swift
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:18:16: warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
| |- warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'base' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:19:16: warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
| |- warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'major' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:20:16: warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
| |- warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'minor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:21:16: warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
| |- warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'pollutant' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:22:16: warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
| |- warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'other' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
24 | // base
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:23:16: warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
:
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
| |- warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'nutrient' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | // base
25 | case density
[31/54] Compiling ReefCalculator UnavailableInstruction.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/UnavailableInstruction.swift:3:7: warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class UnavailableInstruction: Error {}
| `- warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[32/54] Compiling ReefCalculator ReagentColor.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/UnavailableInstruction.swift:3:7: warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class UnavailableInstruction: Error {}
| `- warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[33/54] Compiling ReefCalculator StepBuilder.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/UnavailableInstruction.swift:3:7: warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class UnavailableInstruction: Error {}
| `- warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[34/54] Compiling ReefCalculator Instructions.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/UnavailableInstruction.swift:3:7: warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class UnavailableInstruction: Error {}
| `- warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[35/54] Compiling ReefCalculator AddReagent.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/UnavailableInstruction.swift:3:7: warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class UnavailableInstruction: Error {}
| `- warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[36/54] Compiling ReefCalculator AddWater.swift
/host/spi-builder-workspace/Sources/ReefCalculator/Error/UnavailableInstruction.swift:3:7: warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class UnavailableInstruction: Error {}
| `- warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
[37/54] Emitting module ReefCalculator
/host/spi-builder-workspace/Sources/ReefCalculator/Error/InvalidMetricType.swift:3:7: warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class InvalidMetricType: Error {}
| `- warning: non-final class 'InvalidMetricType' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
/host/spi-builder-workspace/Sources/ReefCalculator/Error/UnavailableInstruction.swift:3:7: warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class UnavailableInstruction: Error {}
| `- warning: non-final class 'UnavailableInstruction' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:18:16: warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
| |- warning: static property 'base' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'base' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:19:16: warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
| |- warning: static property 'major' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'major' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:20:16: warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
| |- warning: static property 'minor' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'minor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:21:16: warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
| |- warning: static property 'pollutant' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'pollutant' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:22:16: warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
20 | static let minor: [MetricType] = [.li, .si, .i2, .ba, .mo, .ni, .mn, .as, .be, .cr, .co, .fe, .cu, .se, .ag, .v, .zn, .sn]
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
| |- warning: static property 'other' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'other' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
24 | // base
/host/spi-builder-workspace/Sources/ReefCalculator/MetricType.swift:23:16: warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
15 |
16 | // swiftlint:disable identifier_name
17 | public enum MetricType: String, ReefMetricProtocol {
| `- note: consider making enum 'MetricType' conform to the 'Sendable' protocol
18 | static let base: [MetricType] = [.density, .kh, .ph]
19 | static let major: [MetricType] = [.ci, .na, .mg, .s, .ca, .k, .br, .sr, .b, .f]
:
21 | static let pollutant: [MetricType] = [.no2, .al, .sb, .bi, .pb, .cd, .la, .tl, .ti, .w, .hg, .sio2, .nh4]
22 | static let other: [MetricType] = [.gh, .o2, .co2]
23 | static let nutrient: [MetricType] = [.no3, .p, .po4]
| |- warning: static property 'nutrient' is not concurrency-safe because non-'Sendable' type '[MetricType]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'nutrient' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | // base
25 | case density
[38/54] Compiling ReefCalculator CountDroplets.swift
[39/54] Compiling ReefCalculator FillFlask.swift
[40/54] Compiling ReefCalculator Shake.swift
[41/54] Compiling ReefCalculator Spoon.swift
[42/54] Compiling ReefCalculator Step.swift
[43/54] Compiling ReefCalculator Syringe.swift
[44/54] Compiling ReefCalculator Hanna+Explanation.swift
[45/54] Compiling ReefCalculator Hanna+Instruction.swift
[46/54] Compiling ReefCalculator Hanna.swift
[47/54] Compiling ReefCalculator JBL+Calculate.swift
[48/54] Compiling ReefCalculator JBL+Explanation.swift
[49/54] Compiling ReefCalculator JBL+Instruction.swift
[50/54] Compiling ReefCalculator ReefMetricProtocol.swift
[51/54] Compiling ReefCalculator TankProtocol.swift
[52/54] Compiling ReefCalculator ReefCalculator.swift
[53/54] Compiling ReefCalculator LocalizedStringBuilder.swift
[54/54] Compiling ReefCalculator resource_bundle_accessor.swift
Build complete! (39.13s)
Build complete.
{
"default_localization" : "en",
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin"
}
],
"manifest_display_name" : "ReefCalculator",
"name" : "ReefCalculator",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "12.0"
}
],
"products" : [
{
"name" : "ReefCalculator",
"targets" : [
"ReefCalculator"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ReefCalculatorTests",
"module_type" : "SwiftTarget",
"name" : "ReefCalculatorTests",
"path" : "Tests/ReefCalculatorTests",
"sources" : [
"Brand/ColumboTests.swift",
"Brand/HannaTests.swift",
"Brand/JBLTests.swift",
"Brand/SalifertTests.swift",
"Instructions/Builder/StepBuilderTests.swift",
"Instructions/InstructionsTests.swift",
"Instructions/Step/AddReagentTests.swift",
"Instructions/Step/AddWaterTests.swift",
"Instructions/Step/CountDropletsTests.swift",
"Instructions/Step/SpoonTests.swift",
"Instructions/Step/WaitTests.swift",
"MetricTypeTests.swift",
"ReefCalculatorTests.swift"
],
"target_dependencies" : [
"ReefCalculator"
],
"type" : "test"
},
{
"c99name" : "ReefCalculator",
"module_type" : "SwiftTarget",
"name" : "ReefCalculator",
"path" : "Sources/ReefCalculator",
"product_memberships" : [
"ReefCalculator"
],
"resources" : [
{
"path" : "/host/spi-builder-workspace/Sources/ReefCalculator/Resources/en.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en"
}
}
},
{
"path" : "/host/spi-builder-workspace/Sources/ReefCalculator/Resources/fr.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "fr"
}
}
}
],
"sources" : [
"Brand/Brand.swift",
"Brand/Colombo/Colombo+Calculate.swift",
"Brand/Colombo/Colombo+Explanation.swift",
"Brand/Colombo/Colombo+Instruction.swift",
"Brand/Colombo/Colombo.swift",
"Brand/Hanna/Hanna+Calculate.swift",
"Brand/Hanna/Hanna+Explanation.swift",
"Brand/Hanna/Hanna+Instruction.swift",
"Brand/Hanna/Hanna.swift",
"Brand/JBL/JBL+Calculate.swift",
"Brand/JBL/JBL+Explanation.swift",
"Brand/JBL/JBL+Instruction.swift",
"Brand/JBL/JBL.swift",
"Brand/Salifert/Salifert+Calculate.swift",
"Brand/Salifert/Salifert+Explanation.swift",
"Brand/Salifert/Salifert+Instruction.swift",
"Brand/Salifert/Salifert.swift",
"Error/InvalidMetricType.swift",
"Error/UnavailableInstruction.swift",
"Instructions/Builder/ReagentColor.swift",
"Instructions/Builder/StepBuilder.swift",
"Instructions/Instructions.swift",
"Instructions/Step/AddReagent.swift",
"Instructions/Step/AddWater.swift",
"Instructions/Step/CountDroplets.swift",
"Instructions/Step/FillFlask.swift",
"Instructions/Step/Shake.swift",
"Instructions/Step/Spoon.swift",
"Instructions/Step/Step.swift",
"Instructions/Step/Syringe.swift",
"Instructions/Step/Wait.swift",
"Lib/RedFieldResult.swift",
"Metric/MetricBaseElement.swift",
"Metric/MetricMajorElement.swift",
"Metric/MetricMinorElement.swift",
"Metric/MetricNutrientsElement.swift",
"Metric/MetricOtherElement.swift",
"Metric/MetricPollutantsElement.swift",
"MetricType.swift",
"Protocol/MetricProtocol.swift",
"Protocol/MetricValueProtocol.swift",
"Protocol/ReefMetricProtocol.swift",
"Protocol/TankProtocol.swift",
"ReefCalculator.swift",
"ResultBuilder/LocalizedStringBuilder.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Done.