The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of Trellis, reference v0.2.1 (17d110), with Swift 6.0 for Linux on 28 Nov 2024 14:55:50 UTC.

Swift 6 data race errors: 13

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-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.58.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/valentinradu/Trellis.git
Reference: v0.2.1
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/valentinradu/Trellis
 * tag               v0.2.1     -> FETCH_HEAD
HEAD is now at 17d1104 Updated README.md
Cloned https://github.com/valentinradu/Trellis.git
Revision (git rev-parse @):
17d11044b66b2f6b9bf8036e00e26388f39c027d
SUCCESS checkout https://github.com/valentinradu/Trellis.git at v0.2.1
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/valentinradu/Trellis.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-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.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Fetching https://github.com/wickwirew/Runtime.git
[1/1966] Fetching runtime
Fetched https://github.com/wickwirew/Runtime.git from cache (0.23s)
Computing version for https://github.com/wickwirew/Runtime.git
Computed https://github.com/wickwirew/Runtime.git at 2.2.7 (0.48s)
Creating working copy for https://github.com/wickwirew/Runtime.git
Working copy of https://github.com/wickwirew/Runtime.git resolved at 2.2.7
Building for debugging...
[0/4] Write sources
[2/4] Compiling CRuntime dummy.c
[3/4] Write swift-version-24593BA9C3E375BF.txt
[5/45] Compiling Runtime Errors.swift
[6/45] Compiling Runtime FunctionInfo.swift
[7/45] Compiling Runtime Kind.swift
[8/45] Compiling Runtime PropertyInfo.swift
[9/45] Compiling Runtime TypeInfo.swift
[10/50] Compiling Runtime MetadataType.swift
[11/50] Compiling Runtime NominalMetadataType.swift
[12/50] Compiling Runtime ProtocolMetadata.swift
[13/50] Compiling Runtime StructMetadata.swift
[14/50] Compiling Runtime TupleMetadata.swift
[15/50] Compiling Runtime Case.swift
[16/50] Compiling Runtime ProtocolMetadataLayout.swift
[17/50] Compiling Runtime ProtocolTypeContainer.swift
[18/50] Compiling Runtime StructMetadataLayout.swift
[19/50] Compiling Runtime StructTypeDescriptor.swift
[20/50] Compiling Runtime TargetTypeGenericContextDescriptorHeader.swift
[21/50] Compiling Runtime TupleMetadataLayout.swift
[22/50] Compiling Runtime TypeInfoConvertible.swift
[23/50] Compiling Runtime Pointers.swift
[24/50] Compiling Runtime RelativePointer.swift
[25/50] Compiling Runtime RelativeVectorPointer.swift
[26/50] Compiling Runtime Union.swift
[27/50] Compiling Runtime TypeDescriptor.swift
[28/50] Compiling Runtime ValueWitnessTable.swift
[29/50] Compiling Runtime ClassMetadata.swift
[30/50] Compiling Runtime EnumMetadata.swift
[31/50] Compiling Runtime FuntionMetadata.swift
[32/50] Compiling Runtime Metadata.swift
[33/50] Compiling Runtime Vector.swift
[34/50] Compiling Runtime GettersSetters.swift
[35/50] Compiling Runtime Pointer+Extensions.swift
[36/50] Compiling Runtime RetainCounts.swift
[37/50] Compiling Runtime String+Extensions.swift
[38/50] Compiling Runtime EnumTypeDescriptor.swift
[39/50] Compiling Runtime ExistentialContainter.swift
[40/50] Compiling Runtime FieldDescriptor.swift
[41/50] Compiling Runtime FunctionMetadataLayout.swift
[42/50] Compiling Runtime MetadataLayoutType.swift
[43/50] Compiling Runtime ProtocolDescriptor.swift
[44/50] Compiling Runtime DefaultValue.swift
[45/50] Compiling Runtime Factory.swift
[46/50] Compiling Runtime ClassHeader.swift
[47/50] Compiling Runtime ClassMetadataLayout.swift
[48/50] Compiling Runtime ClassTypeDescriptor.swift
[49/50] Compiling Runtime EnumMetadataLayout.swift
[50/50] Emitting module Runtime
[52/60] Compiling Trellis Service+Builder.swift
[53/61] Emitting module Trellis
/host/spi-builder-workspace/Sources/Trellis/Bootstrap.swift:13:23: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | private struct DispatchKey: EnvironmentKey {
13 |     public static var defaultValue: Dispatch = { _ in }
   |                       |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'defaultValue' 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
14 | }
15 |
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 61 |     }
 62 |
 63 |     func inject(environment: EnvironmentValues, from parentId: Int) async throws {
    |          `- warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 64 |         var environment = environment
 65 |         environment.id = parentId
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:15:15: note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 13 | }
 14 |
 15 | public struct EnvironmentValues {
    |               `- note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
 17 |
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:16:16: warning: static property 'environments' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 14 |
 15 | public struct EnvironmentValues {
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
    |                |- warning: static property 'environments' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'environments' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'environments' 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
 17 |
 18 |     private var _values: [ObjectIdentifier: Any] = [:]
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 61 |     }
 62 |
 63 |     func inject(environment: EnvironmentValues, from parentId: Int) async throws {
    |          `- warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 64 |         var environment = environment
 65 |         environment.id = parentId
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:15:15: note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 13 | }
 14 |
 15 | public struct EnvironmentValues {
    |               `- note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
 17 |
/host/spi-builder-workspace/Sources/Trellis/Reducer.swift:27:33: warning: generic parameter 'C' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
 24 | public struct EmptyReducerState {}
 25 |
 26 | public struct Reducer<S, C, A>: Service where A: Action {
    |                          `- note: 'C' previously declared here
 27 |     public typealias SideEffect<C> = (Dispatch, C) async throws -> Void
    |                                 `- warning: generic parameter 'C' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
 28 |     public typealias Reduce = (inout S, A) -> SideEffect<C>?
 29 |     private let _store: Store<S>
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 61 |     }
 62 |
 63 |     func inject(environment: EnvironmentValues, from parentId: Int) async throws {
    |          `- warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 64 |         var environment = environment
 65 |         environment.id = parentId
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:15:15: note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 13 | }
 14 |
 15 | public struct EnvironmentValues {
    |               `- note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
 17 |
/host/spi-builder-workspace/Sources/Trellis/Reducer.swift:123:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
121 |
122 | private struct StateWatchersKey: EnvironmentKey {
123 |     static var defaultValue: [ObjectIdentifier: AnyStateWatcher] = [:]
    |                |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'defaultValue' 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
124 | }
125 |
/host/spi-builder-workspace/Sources/Trellis/Service+Environment.swift:18:23: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | private struct ConcurrencyStrategyKey: EnvironmentKey {
18 |     public static var defaultValue: ConcurrencyStrategy = .concurrent
   |                       |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'defaultValue' 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
19 | }
20 |
/host/spi-builder-workspace/Sources/Trellis/Service+Environment.swift:27:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
25 |
26 | private struct FailureStrategyKey: EnvironmentKey {
27 |     static var defaultValue: FailureStrategy = .fail
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' 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
28 | }
29 |
/host/spi-builder-workspace/Sources/Trellis/Service+Environment.swift:33:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | private struct BootstrapKey: EnvironmentKey {
33 |     static var defaultValue: BootstrapHandler? = nil
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' 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
34 | }
35 |
/host/spi-builder-workspace/Sources/Trellis/Service+Environment.swift:37:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 |
36 | private struct IdKey: EnvironmentKey {
37 |     static var defaultValue: Int = 0
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' 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
38 | }
39 |
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 61 |     }
 62 |
 63 |     func inject(environment: EnvironmentValues, from parentId: Int) async throws {
    |          `- warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 64 |         var environment = environment
 65 |         environment.id = parentId
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:15:15: note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 13 | }
 14 |
 15 | public struct EnvironmentValues {
    |               `- note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
 17 |
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 61 |     }
 62 |
 63 |     func inject(environment: EnvironmentValues, from parentId: Int) async throws {
    |          `- warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 64 |         var environment = environment
 65 |         environment.id = parentId
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:15:15: note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 13 | }
 14 |
 15 | public struct EnvironmentValues {
    |               `- note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
 17 |
[54/61] Compiling Trellis Bootstrap.swift
/host/spi-builder-workspace/Sources/Trellis/Bootstrap.swift:13:23: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | private struct DispatchKey: EnvironmentKey {
13 |     public static var defaultValue: Dispatch = { _ in }
   |                       |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'defaultValue' 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
14 | }
15 |
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 61 |     }
 62 |
 63 |     func inject(environment: EnvironmentValues, from parentId: Int) async throws {
    |          `- warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 64 |         var environment = environment
 65 |         environment.id = parentId
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:15:15: note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 13 | }
 14 |
 15 | public struct EnvironmentValues {
    |               `- note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
 17 |
/host/spi-builder-workspace/Sources/Trellis/Bootstrap.swift:33:14: warning: sending 'environment' risks causing data races; this is an error in the Swift 6 language mode
31 |         environment.dispatch = send
32 |         try await _items
33 |             .inject(environment: environment,
   |              |- warning: sending 'environment' risks causing data races; this is an error in the Swift 6 language mode
   |              `- note: sending 'environment' to main actor-isolated instance method 'inject(environment:from:)' risks causing data races between main actor-isolated and local nonisolated uses
34 |                     from: rootHashValue)
35 |     }
   |     `- note: access can happen concurrently
36 |
37 |     public func send(action: any Action) async throws {
/host/spi-builder-workspace/Sources/Trellis/Bootstrap.swift:33:14: warning: sending 'self._items' risks causing data races; this is an error in the Swift 6 language mode
31 |         environment.dispatch = send
32 |         try await _items
33 |             .inject(environment: environment,
   |              |- warning: sending 'self._items' risks causing data races; this is an error in the Swift 6 language mode
   |              `- note: sending 'self._items' to main actor-isolated instance method 'inject(environment:from:)' risks causing data races between main actor-isolated and local nonisolated uses
34 |                     from: rootHashValue)
35 |     }
   |     `- note: access can happen concurrently
36 |
37 |     public func send(action: any Action) async throws {
/host/spi-builder-workspace/Sources/Trellis/Emitter.swift:36:33: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
34 |         _items
35 |             .bootstrap {
36 |                 let task = Task {
   |                                 `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
37 |                     for await action in _stream {
   |                                         `- note: closure captures 'self' which is accessible to code in the current task
38 |                         try await send(action: action,
39 |                                        from: _id)
[55/61] Compiling Trellis Emitter.swift
/host/spi-builder-workspace/Sources/Trellis/Bootstrap.swift:13:23: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | private struct DispatchKey: EnvironmentKey {
13 |     public static var defaultValue: Dispatch = { _ in }
   |                       |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'defaultValue' 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
14 | }
15 |
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 61 |     }
 62 |
 63 |     func inject(environment: EnvironmentValues, from parentId: Int) async throws {
    |          `- warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 64 |         var environment = environment
 65 |         environment.id = parentId
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:15:15: note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 13 | }
 14 |
 15 | public struct EnvironmentValues {
    |               `- note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
 17 |
/host/spi-builder-workspace/Sources/Trellis/Bootstrap.swift:33:14: warning: sending 'environment' risks causing data races; this is an error in the Swift 6 language mode
31 |         environment.dispatch = send
32 |         try await _items
33 |             .inject(environment: environment,
   |              |- warning: sending 'environment' risks causing data races; this is an error in the Swift 6 language mode
   |              `- note: sending 'environment' to main actor-isolated instance method 'inject(environment:from:)' risks causing data races between main actor-isolated and local nonisolated uses
34 |                     from: rootHashValue)
35 |     }
   |     `- note: access can happen concurrently
36 |
37 |     public func send(action: any Action) async throws {
/host/spi-builder-workspace/Sources/Trellis/Bootstrap.swift:33:14: warning: sending 'self._items' risks causing data races; this is an error in the Swift 6 language mode
31 |         environment.dispatch = send
32 |         try await _items
33 |             .inject(environment: environment,
   |              |- warning: sending 'self._items' risks causing data races; this is an error in the Swift 6 language mode
   |              `- note: sending 'self._items' to main actor-isolated instance method 'inject(environment:from:)' risks causing data races between main actor-isolated and local nonisolated uses
34 |                     from: rootHashValue)
35 |     }
   |     `- note: access can happen concurrently
36 |
37 |     public func send(action: any Action) async throws {
/host/spi-builder-workspace/Sources/Trellis/Emitter.swift:36:33: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
34 |         _items
35 |             .bootstrap {
36 |                 let task = Task {
   |                                 `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
37 |                     for await action in _stream {
   |                                         `- note: closure captures 'self' which is accessible to code in the current task
38 |                         try await send(action: action,
39 |                                        from: _id)
[56/61] Compiling Trellis Service+Environment.swift
/host/spi-builder-workspace/Sources/Trellis/Service+Environment.swift:18:23: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | private struct ConcurrencyStrategyKey: EnvironmentKey {
18 |     public static var defaultValue: ConcurrencyStrategy = .concurrent
   |                       |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'defaultValue' 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
19 | }
20 |
/host/spi-builder-workspace/Sources/Trellis/Service+Environment.swift:27:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
25 |
26 | private struct FailureStrategyKey: EnvironmentKey {
27 |     static var defaultValue: FailureStrategy = .fail
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' 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
28 | }
29 |
/host/spi-builder-workspace/Sources/Trellis/Service+Environment.swift:33:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | private struct BootstrapKey: EnvironmentKey {
33 |     static var defaultValue: BootstrapHandler? = nil
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' 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
34 | }
35 |
/host/spi-builder-workspace/Sources/Trellis/Service+Environment.swift:37:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 |
36 | private struct IdKey: EnvironmentKey {
37 |     static var defaultValue: Int = 0
   |                |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'defaultValue' 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
38 | }
39 |
[57/61] Compiling Trellis Service+Tuple.swift
/host/spi-builder-workspace/Sources/Trellis/Service+Tuple.swift:140:39: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
138 |                 try await withThrowingTaskGroup(of: Void.self) { [_children] group in
139 |                     for child in _children {
140 |                         group.addTask {
    |                                       `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
141 |                             try await child.send(action: action,
    |                                       |                  `- note: closure captures non-Sendable 'action'
    |                                       `- note: closure captures non-Sendable 'child'
142 |                                                  from: id)
143 |                         }
/host/spi-builder-workspace/Sources/Trellis/Service+Tuple.swift:151:39: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
149 |                 await withThrowingTaskGroup(of: Void.self) { [_children] group in
150 |                     for child in _children {
151 |                         group.addTask {
    |                                       `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
152 |                             try await child.send(action: action,
    |                                       |                  `- note: closure captures non-Sendable 'action'
    |                                       `- note: closure captures non-Sendable 'child'
153 |                                                  from: id)
154 |                         }
/host/spi-builder-workspace/Sources/Trellis/Service+Tuple.swift:159:43: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
157 |                     while let result = await group.nextResult() {
158 |                         if case let .failure(error) = result {
159 |                             group.addTask {
    |                                           `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
160 |                                 try await send(action: handler(error),
    |                                                        `- note: closure captures 'handler' which is accessible to code in the current task
161 |                                                from: parentId)
162 |                             }
[58/61] Compiling Trellis Service.swift
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 61 |     }
 62 |
 63 |     func inject(environment: EnvironmentValues, from parentId: Int) async throws {
    |          `- warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 64 |         var environment = environment
 65 |         environment.id = parentId
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:15:15: note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 13 | }
 14 |
 15 | public struct EnvironmentValues {
    |               `- note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
 17 |
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 61 |     }
 62 |
 63 |     func inject(environment: EnvironmentValues, from parentId: Int) async throws {
    |          `- warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 64 |         var environment = environment
 65 |         environment.id = parentId
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:15:15: note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 13 | }
 14 |
 15 | public struct EnvironmentValues {
    |               `- note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
 17 |
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:16:16: warning: static property 'environments' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 14 |
 15 | public struct EnvironmentValues {
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
    |                |- warning: static property 'environments' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'environments' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'environments' 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
 17 |
 18 |     private var _values: [ObjectIdentifier: Any] = [:]
/host/spi-builder-workspace/Sources/Trellis/Service.swift:72:28: warning: sending 'environment' risks causing data races; this is an error in the Swift 6 language mode
 70 |
 71 |         if Body.self != Never.self {
 72 |             try await body.inject(environment: environment,
    |                            |- warning: sending 'environment' risks causing data races; this is an error in the Swift 6 language mode
    |                            `- note: sending task-isolated 'environment' to main actor-isolated instance method 'inject(environment:from:)' risks causing data races between main actor-isolated and task-isolated uses
 73 |                                   from: id)
 74 |         }
/host/spi-builder-workspace/Sources/Trellis/Service.swift:72:28: warning: sending task-isolated value of type 'Self.Body' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
 70 |
 71 |         if Body.self != Never.self {
 72 |             try await body.inject(environment: environment,
    |                            `- warning: sending task-isolated value of type 'Self.Body' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
 73 |                                   from: id)
 74 |         }
[59/61] Compiling Trellis Group.swift
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 61 |     }
 62 |
 63 |     func inject(environment: EnvironmentValues, from parentId: Int) async throws {
    |          `- warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 64 |         var environment = environment
 65 |         environment.id = parentId
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:15:15: note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 13 | }
 14 |
 15 | public struct EnvironmentValues {
    |               `- note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
 17 |
[60/61] Compiling Trellis Reducer.swift
/host/spi-builder-workspace/Sources/Trellis/Reducer.swift:27:33: warning: generic parameter 'C' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
 24 | public struct EmptyReducerState {}
 25 |
 26 | public struct Reducer<S, C, A>: Service where A: Action {
    |                          `- note: 'C' previously declared here
 27 |     public typealias SideEffect<C> = (Dispatch, C) async throws -> Void
    |                                 `- warning: generic parameter 'C' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
 28 |     public typealias Reduce = (inout S, A) -> SideEffect<C>?
 29 |     private let _store: Store<S>
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 61 |     }
 62 |
 63 |     func inject(environment: EnvironmentValues, from parentId: Int) async throws {
    |          `- warning: non-sendable type 'EnvironmentValues' in parameter of the protocol requirement satisfied by nonisolated instance method 'inject(environment:from:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
 64 |         var environment = environment
 65 |         environment.id = parentId
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:15:15: note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 13 | }
 14 |
 15 | public struct EnvironmentValues {
    |               `- note: consider making struct 'EnvironmentValues' conform to the 'Sendable' protocol
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
 17 |
/host/spi-builder-workspace/Sources/Trellis/Reducer.swift:123:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
121 |
122 | private struct StateWatchersKey: EnvironmentKey {
123 |     static var defaultValue: [ObjectIdentifier: AnyStateWatcher] = [:]
    |                |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'defaultValue' 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
124 | }
125 |
/host/spi-builder-workspace/Sources/Trellis/Reducer.swift:83:39: warning: non-sendable type '(((any Action) async throws -> Void, C) async throws -> Void)?' returned by call to main actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
 81 |
 82 |     private func storeUpdate(action: A) async throws -> SideEffect<C>? {
 83 |         let sideEffect = await _store.update {
    |                                       |- warning: non-sendable type '(((any Action) async throws -> Void, C) async throws -> Void)?' returned by call to main actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
    |                                       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 84 |             _reduce(&$0, action)
 85 |         }
/host/spi-builder-workspace/Sources/Trellis/Reducer.swift:100:39: warning: non-sendable type '(((any Action) async throws -> Void, C) async throws -> Void)?' returned by call to main actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
 98 |         let preState = _store.state
 99 |
100 |         let sideEffect = await _store.update {
    |                                       |- warning: non-sendable type '(((any Action) async throws -> Void, C) async throws -> Void)?' returned by call to main actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
    |                                       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
101 |             _reduce(&$0, action)
102 |         }
/host/spi-builder-workspace/Sources/Trellis/Reducer.swift:83:39: warning: sending task-isolated value of type '(inout S) -> (((any Action) async throws -> Void, C) async throws -> Void)?' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
 81 |
 82 |     private func storeUpdate(action: A) async throws -> SideEffect<C>? {
 83 |         let sideEffect = await _store.update {
    |                                       `- warning: sending task-isolated value of type '(inout S) -> (((any Action) async throws -> Void, C) async throws -> Void)?' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
 84 |             _reduce(&$0, action)
 85 |         }
/host/spi-builder-workspace/Sources/Trellis/Reducer.swift:83:39: warning: sending 'self._store' risks causing data races; this is an error in the Swift 6 language mode
 81 |
 82 |     private func storeUpdate(action: A) async throws -> SideEffect<C>? {
 83 |         let sideEffect = await _store.update {
    |                                       |- warning: sending 'self._store' risks causing data races; this is an error in the Swift 6 language mode
    |                                       `- note: sending task-isolated 'self._store' to main actor-isolated instance method 'update' risks causing data races between main actor-isolated and task-isolated uses
 84 |             _reduce(&$0, action)
 85 |         }
/host/spi-builder-workspace/Sources/Trellis/Reducer.swift:100:39: warning: sending task-isolated value of type '(inout S) -> (((any Action) async throws -> Void, C) async throws -> Void)?' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
 98 |         let preState = _store.state
 99 |
100 |         let sideEffect = await _store.update {
    |                                       `- warning: sending task-isolated value of type '(inout S) -> (((any Action) async throws -> Void, C) async throws -> Void)?' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
101 |             _reduce(&$0, action)
102 |         }
/host/spi-builder-workspace/Sources/Trellis/Reducer.swift:100:39: warning: sending 'self._store' risks causing data races; this is an error in the Swift 6 language mode
 98 |         let preState = _store.state
 99 |
100 |         let sideEffect = await _store.update {
    |                                       |- warning: sending 'self._store' risks causing data races; this is an error in the Swift 6 language mode
    |                                       `- note: sending task-isolated 'self._store' to main actor-isolated instance method 'update' risks causing data races between main actor-isolated and task-isolated uses
101 |             _reduce(&$0, action)
102 |         }
[61/61] Compiling Trellis Environment.swift
/host/spi-builder-workspace/Sources/Trellis/Environment.swift:16:16: warning: static property 'environments' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 14 |
 15 | public struct EnvironmentValues {
 16 |     static var environments: [AnyHashable: EnvironmentValues] = [:]
    |                |- warning: static property 'environments' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'environments' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'environments' 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
 17 |
 18 |     private var _values: [ObjectIdentifier: Any] = [:]
Build complete! (14.10s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "runtime",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.2.4",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/wickwirew/Runtime.git"
    }
  ],
  "manifest_display_name" : "Trellis",
  "name" : "Trellis",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "tvos",
      "version" : "14.0"
    },
    {
      "name" : "maccatalyst",
      "version" : "14.0"
    },
    {
      "name" : "watchos",
      "version" : "7.0"
    },
    {
      "name" : "driverkit",
      "version" : "20.0"
    }
  ],
  "products" : [
    {
      "name" : "Trellis",
      "targets" : [
        "Trellis"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TrellisTests",
      "module_type" : "SwiftTarget",
      "name" : "TrellisTests",
      "path" : "Tests/TrellisTests",
      "sources" : [
        "Fixtures.swift",
        "ServiceTests.swift"
      ],
      "target_dependencies" : [
        "Trellis"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Trellis",
      "module_type" : "SwiftTarget",
      "name" : "Trellis",
      "path" : "Sources/Trellis",
      "product_dependencies" : [
        "Runtime"
      ],
      "product_memberships" : [
        "Trellis"
      ],
      "sources" : [
        "Bootstrap.swift",
        "Emitter.swift",
        "Environment.swift",
        "Group.swift",
        "Reducer.swift",
        "Service+Builder.swift",
        "Service+Environment.swift",
        "Service+Tuple.swift",
        "Service.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.