Build Information
Successful build of KMPObservableViewModel, reference v1.0.0-BETA-6-kotlin-2.1.0-Beta1 (fb4042
), with Swift 6.0 for macOS (SPM) on 25 Sep 2024 21:15:11 UTC.
Swift 6 data race errors: 1
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.0.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
========================================
RunAll
========================================
Builder version: 4.54.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/rickclephas/KMP-ObservableViewModel.git
Reference: v1.0.0-BETA-6-kotlin-2.1.0-Beta1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/rickclephas/KMP-ObservableViewModel
* tag v1.0.0-BETA-6-kotlin-2.1.0-Beta1 -> FETCH_HEAD
HEAD is now at fb4042b Update kotlinx.atomicfu to 0.25.0
Cloned https://github.com/rickclephas/KMP-ObservableViewModel.git
Revision (git rev-parse @):
fb4042b2bf68c7440af11aa35132140fcde4de0e
SUCCESS checkout https://github.com/rickclephas/KMP-ObservableViewModel.git at v1.0.0-BETA-6-kotlin-2.1.0-Beta1
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
https://github.com/rickclephas/KMP-ObservableViewModel.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.0.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/4] Write sources
[2/4] Compiling KMPObservableViewModelCoreObjC KMPObservableViewModelCoreObjC.m
[3/4] Write swift-version--4A847ED0836F2485.txt
[5/10] Compiling KMPObservableViewModelCore ViewModel.swift
[6/10] Compiling KMPObservableViewModelCore ObservableViewModelPublisher.swift
[7/10] Compiling KMPObservableViewModelCore ObservableViewModelPublishers.swift
/Users/admin/builder/spi-builder-workspace/KMPObservableViewModelCore/ObservableViewModelPublishers.swift:10:13: warning: var 'observableViewModelPublishersKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
8 | import Foundation
9 |
10 | private var observableViewModelPublishersKey: Void?
| |- warning: var 'observableViewModelPublishersKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'observableViewModelPublishersKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'observableViewModelPublishersKey' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 |
12 | private class WeakObservableViewModelPublishers {
[8/10] Compiling KMPObservableViewModelCore ObservableViewModel.swift
[9/10] Emitting module KMPObservableViewModelCore
/Users/admin/builder/spi-builder-workspace/KMPObservableViewModelCore/ObservableViewModelPublishers.swift:10:13: warning: var 'observableViewModelPublishersKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
8 | import Foundation
9 |
10 | private var observableViewModelPublishersKey: Void?
| |- warning: var 'observableViewModelPublishersKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'observableViewModelPublishersKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'observableViewModelPublishersKey' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 |
12 | private class WeakObservableViewModelPublishers {
[10/10] Compiling KMPObservableViewModelCore ChildViewModels.swift
[11/15] Compiling KMPObservableViewModelSwiftUI ObservableViewModelProjection.swift
/Users/admin/builder/spi-builder-workspace/KMPObservableViewModelSwiftUI/ObservableViewModelProjection.swift:25:17: warning: capture of 'self' with non-sendable type 'ObservableViewModel<VM>.Projection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
13 | /// A projection of a `ViewModel` that creates bindings to its properties using dynamic member lookup.
14 | @dynamicMemberLookup
15 | struct Projection {
| `- note: consider making struct 'Projection' conform to the 'Sendable' protocol
16 |
17 | internal let observableObject: ObservableViewModel<VM>
:
23 | public subscript<T>(dynamicMember keyPath: WritableKeyPath<VM, T>) -> Binding<T> {
24 | Binding {
25 | observableObject.viewModel[keyPath: keyPath]
| `- warning: capture of 'self' with non-sendable type 'ObservableViewModel<VM>.Projection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | } set: { value in
27 | var viewModel = observableObject.viewModel
/Users/admin/builder/spi-builder-workspace/KMPObservableViewModelSwiftUI/ObservableViewModelProjection.swift:25:53: warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<VM, T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 | public subscript<T>(dynamicMember keyPath: WritableKeyPath<VM, T>) -> Binding<T> {
24 | Binding {
25 | observableObject.viewModel[keyPath: keyPath]
| `- warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<VM, T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | } set: { value in
27 | var viewModel = observableObject.viewModel
Swift.WritableKeyPath:1:14: note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
1 | public class WritableKeyPath<Root, Value> : KeyPath<Root, Value> {
| `- note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
2 | @objc deinit
3 | }
/Users/admin/builder/spi-builder-workspace/KMPObservableViewModelSwiftUI/ObservableViewModelProjection.swift:27:33: warning: capture of 'self' with non-sendable type 'ObservableViewModel<VM>.Projection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
13 | /// A projection of a `ViewModel` that creates bindings to its properties using dynamic member lookup.
14 | @dynamicMemberLookup
15 | struct Projection {
| `- note: consider making struct 'Projection' conform to the 'Sendable' protocol
16 |
17 | internal let observableObject: ObservableViewModel<VM>
:
25 | observableObject.viewModel[keyPath: keyPath]
26 | } set: { value in
27 | var viewModel = observableObject.viewModel
| `- warning: capture of 'self' with non-sendable type 'ObservableViewModel<VM>.Projection' in a `@Sendable` closure; this is an error in the Swift 6 language mode
28 | viewModel[keyPath: keyPath] = value
29 | }
/Users/admin/builder/spi-builder-workspace/KMPObservableViewModelSwiftUI/ObservableViewModelProjection.swift:28:36: warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<VM, T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | } set: { value in
27 | var viewModel = observableObject.viewModel
28 | viewModel[keyPath: keyPath] = value
| `- warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<VM, T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | }
30 | }
Swift.WritableKeyPath:1:14: note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
1 | public class WritableKeyPath<Root, Value> : KeyPath<Root, Value> {
| `- note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
2 | @objc deinit
3 | }
[12/15] Emitting module KMPObservableViewModelSwiftUI
[13/15] Compiling KMPObservableViewModelSwiftUI ObservedViewModel.swift
[14/15] Compiling KMPObservableViewModelSwiftUI StateViewModel.swift
[15/15] Compiling KMPObservableViewModelSwiftUI EnvironmentViewModel.swift
Build complete! (13.70s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "KMPObservableViewModel",
"name" : "KMPObservableViewModel",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "6.0"
}
],
"products" : [
{
"name" : "KMPObservableViewModelCore",
"targets" : [
"KMPObservableViewModelCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "KMPObservableViewModelSwiftUI",
"targets" : [
"KMPObservableViewModelSwiftUI"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "KMPObservableViewModelSwiftUI",
"module_type" : "SwiftTarget",
"name" : "KMPObservableViewModelSwiftUI",
"path" : "KMPObservableViewModelSwiftUI",
"product_memberships" : [
"KMPObservableViewModelSwiftUI"
],
"sources" : [
"EnvironmentViewModel.swift",
"ObservableViewModelProjection.swift",
"ObservedViewModel.swift",
"StateViewModel.swift"
],
"target_dependencies" : [
"KMPObservableViewModelCore"
],
"type" : "library"
},
{
"c99name" : "KMPObservableViewModelCoreObjC",
"module_type" : "ClangTarget",
"name" : "KMPObservableViewModelCoreObjC",
"path" : "KMPObservableViewModelCoreObjC",
"product_memberships" : [
"KMPObservableViewModelCore",
"KMPObservableViewModelSwiftUI"
],
"sources" : [
"KMPObservableViewModelCoreObjC.m"
],
"type" : "library"
},
{
"c99name" : "KMPObservableViewModelCore",
"module_type" : "SwiftTarget",
"name" : "KMPObservableViewModelCore",
"path" : "KMPObservableViewModelCore",
"product_memberships" : [
"KMPObservableViewModelCore",
"KMPObservableViewModelSwiftUI"
],
"sources" : [
"ChildViewModels.swift",
"ObservableViewModel.swift",
"ObservableViewModelPublisher.swift",
"ObservableViewModelPublishers.swift",
"ViewModel.swift"
],
"target_dependencies" : [
"KMPObservableViewModelCoreObjC"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
Done.