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.1 for Linux on 26 Apr 2025 22:13:08 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.1-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.61.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.1
Building package at path:  $PWD
https://github.com/valentinradu/Trellis.git
https://github.com/valentinradu/Trellis.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "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"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Fetching https://github.com/wickwirew/Runtime.git
[1/1966] Fetching runtime
Fetched https://github.com/wickwirew/Runtime.git from cache (0.21s)
Computing version for https://github.com/wickwirew/Runtime.git
Computed https://github.com/wickwirew/Runtime.git at 2.2.7 (0.66s)
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] Emitting module Runtime
[6/50] Compiling Runtime TypeDescriptor.swift
[7/50] Compiling Runtime ValueWitnessTable.swift
[8/50] Compiling Runtime ClassMetadata.swift
[9/50] Compiling Runtime EnumMetadata.swift
[10/50] Compiling Runtime FuntionMetadata.swift
[11/50] Compiling Runtime Metadata.swift
[12/50] Compiling Runtime MetadataType.swift
[13/50] Compiling Runtime NominalMetadataType.swift
[14/50] Compiling Runtime ProtocolMetadata.swift
[15/50] Compiling Runtime StructMetadata.swift
[16/50] Compiling Runtime TupleMetadata.swift
[17/50] Compiling Runtime Case.swift
[18/50] Compiling Runtime TypeInfoConvertible.swift
[19/50] Compiling Runtime Pointers.swift
[20/50] Compiling Runtime RelativePointer.swift
[21/50] Compiling Runtime RelativeVectorPointer.swift
[22/50] Compiling Runtime Union.swift
[23/50] Compiling Runtime Vector.swift
[24/50] Compiling Runtime GettersSetters.swift
[25/50] Compiling Runtime Pointer+Extensions.swift
[26/50] Compiling Runtime RetainCounts.swift
[27/50] Compiling Runtime String+Extensions.swift
[28/50] Compiling Runtime EnumTypeDescriptor.swift
[29/50] Compiling Runtime ExistentialContainter.swift
[30/50] Compiling Runtime FieldDescriptor.swift
[31/50] Compiling Runtime FunctionMetadataLayout.swift
[32/50] Compiling Runtime MetadataLayoutType.swift
[33/50] Compiling Runtime ProtocolDescriptor.swift
[34/50] Compiling Runtime ProtocolMetadataLayout.swift
[35/50] Compiling Runtime ProtocolTypeContainer.swift
[36/50] Compiling Runtime StructMetadataLayout.swift
[37/50] Compiling Runtime StructTypeDescriptor.swift
[38/50] Compiling Runtime TargetTypeGenericContextDescriptorHeader.swift
[39/50] Compiling Runtime TupleMetadataLayout.swift
[40/50] Compiling Runtime Errors.swift
[41/50] Compiling Runtime FunctionInfo.swift
[42/50] Compiling Runtime Kind.swift
[43/50] Compiling Runtime PropertyInfo.swift
[44/50] Compiling Runtime TypeInfo.swift
[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] 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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                       `- 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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: add '@MainActor' to make static property 'environments' part of global actor 'MainActor'
    |                `- 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
    |                `- 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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                       `- 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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- 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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- 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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 Group.swift
/host/spi-builder-workspace/Sources/Trellis/Service.swift:63:10: warning: non-sendable parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 |
[55/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: add '@MainActor' to make static property 'environments' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 17 |
 18 |     private var _values: [ObjectIdentifier: Any] = [:]
[56/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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                       `- 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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)
[57/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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                       `- 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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)
[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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
    |                `- 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 result type '(((any Action) async throws -> Void, C) async throws -> Void)?' cannot be sent from main actor-isolated context in call to instance method 'update'; 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 result type '(((any Action) async throws -> Void, C) async throws -> Void)?' cannot be sent from main actor-isolated context in call to instance method 'update'; 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 result type '(((any Action) async throws -> Void, C) async throws -> Void)?' cannot be sent from main actor-isolated context in call to instance method 'update'; 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 result type '(((any Action) async throws -> Void, C) async throws -> Void)?' cannot be sent from main actor-isolated context in call to instance method 'update'; 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 value of non-Sendable type '(inout S) -> (((any Action) async throws -> Void, C) async throws -> Void)?' 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 value of non-Sendable type '(inout S) -> (((any Action) async throws -> Void, C) async throws -> Void)?' risks causing data races; this is an error in the Swift 6 language mode
    |                                       `- note: sending task-isolated value of non-Sendable type '(inout S) -> (((any Action) async throws -> Void, C) async throws -> Void)?' to main actor-isolated instance method 'update' risks causing races in between task-isolated and main actor-isolated uses
 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 value of non-Sendable type '(inout S) -> (((any Action) async throws -> Void, C) async throws -> Void)?' 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 value of non-Sendable type '(inout S) -> (((any Action) async throws -> Void, C) async throws -> Void)?' risks causing data races; this is an error in the Swift 6 language mode
    |                                       `- note: sending task-isolated value of non-Sendable type '(inout S) -> (((any Action) async throws -> Void, C) async throws -> Void)?' to main actor-isolated instance method 'update' risks causing races in between task-isolated and main actor-isolated uses
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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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 parameter type 'EnvironmentValues' cannot be sent from caller of protocol requirement 'inject(environment:from:)' into nonisolated implementation; 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: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 value of non-Sendable type 'Self.Body' 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 value of non-Sendable type 'Self.Body' risks causing data races; this is an error in the Swift 6 language mode
    |                            `- note: sending task-isolated value of non-Sendable type 'Self.Body' to main actor-isolated instance method 'inject(environment:from:)' risks causing races in between task-isolated and main actor-isolated uses
 73 |                                   from: id)
 74 |         }
[60/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 |                             }
[61/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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                       `- 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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- 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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- 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: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | }
39 |
Build complete! (8.03s)
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.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.