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 2 Nov 2024 08:31:56 UTC.

Swift 6 data race errors: 13

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/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 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.56.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-4609320-0":/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 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.24s)
Computing version for https://github.com/wickwirew/Runtime.git
Computed https://github.com/wickwirew/Runtime.git at 2.2.7 (0.42s)
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 MetadataType.swift
[6/45] Compiling Runtime NominalMetadataType.swift
[7/45] Compiling Runtime ProtocolMetadata.swift
[8/45] Compiling Runtime StructMetadata.swift
[9/45] Compiling Runtime TupleMetadata.swift
[10/45] Compiling Runtime Case.swift
[11/50] Compiling Runtime ProtocolMetadataLayout.swift
[12/50] Compiling Runtime ProtocolTypeContainer.swift
[13/50] Compiling Runtime StructMetadataLayout.swift
[14/50] Compiling Runtime StructTypeDescriptor.swift
[15/50] Compiling Runtime TargetTypeGenericContextDescriptorHeader.swift
[16/50] Compiling Runtime TupleMetadataLayout.swift
[17/50] Compiling Runtime Errors.swift
[18/50] Compiling Runtime FunctionInfo.swift
[19/50] Compiling Runtime Kind.swift
[20/50] Compiling Runtime PropertyInfo.swift
[21/50] Compiling Runtime TypeInfo.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 EnumTypeDescriptor.swift
[34/50] Compiling Runtime ExistentialContainter.swift
[35/50] Compiling Runtime FieldDescriptor.swift
[36/50] Compiling Runtime FunctionMetadataLayout.swift
[37/50] Compiling Runtime MetadataLayoutType.swift
[38/50] Compiling Runtime ProtocolDescriptor.swift
[39/50] Compiling Runtime Vector.swift
[40/50] Compiling Runtime GettersSetters.swift
[41/50] Compiling Runtime Pointer+Extensions.swift
[42/50] Compiling Runtime RetainCounts.swift
[43/50] Compiling Runtime String+Extensions.swift
[44/50] Emitting module Runtime
[45/50] Compiling Runtime DefaultValue.swift
[46/50] Compiling Runtime Factory.swift
[47/50] Compiling Runtime ClassHeader.swift
[48/50] Compiling Runtime ClassMetadataLayout.swift
[49/50] Compiling Runtime ClassTypeDescriptor.swift
[50/50] Compiling Runtime EnumMetadataLayout.swift
[52/60] Compiling Trellis Service+Builder.swift
[53/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)
[54/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)
[55/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 |
[56/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] = [:]
[57/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 |
[58/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 |         }
[59/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 |         }
[60/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 |
[61/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 |                             }
Build complete! (10.97s)
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.