Build Information
Successful build of Citadel, reference main (66be8c
), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 19:53:02 UTC.
Swift 6 data race errors: 34
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -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
Build Log
600 | let promise = context.eventLoop.makePromise(of: T.self)
601 | promise.completeWithTask {
602 | try await perform(file)
| `- warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure; this is an error in the Swift 6 language mode
603 | }
604 | return promise.futureResult
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:7:17: note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
5 |
6 | /// Represents a file in the SFTP subsystem.
7 | public protocol SFTPFileHandle {
| `- note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
8 | /// Reads data from the file. The length of the data read is determined by the length parameter. The data is read from the given offset in the file.
9 | func read(at offset: UInt64, length: UInt32) async throws -> ByteBuffer
[839/845] Compiling Citadel SFTPServerInboundHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:34:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
32 | guard command.version >= .v3 else {
33 | return context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).whenComplete { _ in
34 | context.channel.close(promise: nil)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
35 | }
36 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:56:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
54 | let promise = context.eventLoop.makePromise(of: SFTPFileHandle.self)
55 | promise.completeWithTask {
56 | try await self.delegate.openFile(
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
57 | command.filePath,
58 | withAttributes: command.attributes,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:65:26: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
63 |
64 | _ = promise.futureResult.map { file -> SFTPMessage in
65 | let handle = self.currentHandleID
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
66 | self.files[handle] = file
67 | self.currentHandleID &+= 1
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:76:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
74 | )
75 | }.flatMap { handle in
76 | context.writeAndFlush(NIOAny(handle))
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
77 | }
78 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:88:31: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
86 | if let file = files[id] {
87 | previousTask = previousTask.flatMap {
88 | let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
89 | promise.completeWithTask {
90 | try await file.close()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:90:31: warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure
88 | let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
89 | promise.completeWithTask {
90 | try await file.close()
| `- warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure
91 | }
92 | self.files[id] = nil
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:7:17: note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
5 |
6 | /// Represents a file in the SFTP subsystem.
7 | public protocol SFTPFileHandle {
| `- note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
8 | /// Reads data from the file. The length of the data read is determined by the length parameter. The data is read from the given offset in the file.
9 | func read(at offset: UInt64, length: UInt32) async throws -> ByteBuffer
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:92:17: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
90 | try await file.close()
91 | }
92 | self.files[id] = nil
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
93 | return promise.futureResult.flatMap { status in
94 | context.channel.writeAndFlush(
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:90:31: warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure; this is an error in the Swift 6 language mode
88 | let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
89 | promise.completeWithTask {
90 | try await file.close()
| `- warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure; this is an error in the Swift 6 language mode
91 | }
92 | self.files[id] = nil
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:7:17: note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
5 |
6 | /// Represents a file in the SFTP subsystem.
7 | public protocol SFTPFileHandle {
| `- note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
8 | /// Reads data from the file. The length of the data read is determined by the length parameter. The data is read from the given offset in the file.
9 | func read(at offset: UInt64, length: UInt32) async throws -> ByteBuffer
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:94:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
92 | self.files[id] = nil
93 | return promise.futureResult.flatMap { status in
94 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
95 | SFTPMessage.status(
96 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:105:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
103 | )
104 | }.flatMapError { _ in
105 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
106 | context.channel.close()
107 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:106:25: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
104 | }.flatMapError { _ in
105 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
106 | context.channel.close()
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
107 | }
108 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:115:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
113 |
114 | previousTask = previousTask.flatMap {
115 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
116 | SFTPMessage.status(
117 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:133:13: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
131 | func readFile(command: SFTPMessage.ReadFile, context: ChannelHandlerContext) {
132 | previousTask = previousTask.flatMap {
133 | self.withFileHandle(command.handle, context: context) { file -> ByteBuffer in
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
134 | try await file.read(at: command.offset, length: command.length)
135 | }.flatMap { data -> EventLoopFuture<Void> in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:133:58: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
131 | func readFile(command: SFTPMessage.ReadFile, context: ChannelHandlerContext) {
132 | previousTask = previousTask.flatMap {
133 | self.withFileHandle(command.handle, context: context) { file -> ByteBuffer in
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
134 | try await file.read(at: command.offset, length: command.length)
135 | }.flatMap { data -> EventLoopFuture<Void> in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:137:28: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
135 | }.flatMap { data -> EventLoopFuture<Void> in
136 | if data.readableBytes == 0 {
137 | return context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
138 | SFTPMessage.status(
139 | .init(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:158:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
156 | }
157 | }.flatMapError { _ in
158 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
159 | context.channel.close()
160 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:159:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
157 | }.flatMapError { _ in
158 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
159 | context.channel.close()
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
160 | }
161 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:167:13: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
165 | func writeFile(command: SFTPMessage.WriteFile, context: ChannelHandlerContext) {
166 | previousTask = previousTask.flatMap {
167 | self.withFileHandle(command.handle, context: context) { file -> SFTPStatusCode in
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
168 | try await file.write(command.data, atOffset: command.offset)
169 | }.flatMap { status -> EventLoopFuture<Void> in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:167:58: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
165 | func writeFile(command: SFTPMessage.WriteFile, context: ChannelHandlerContext) {
166 | previousTask = previousTask.flatMap {
167 | self.withFileHandle(command.handle, context: context) { file -> SFTPStatusCode in
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
168 | try await file.write(command.data, atOffset: command.offset)
169 | }.flatMap { status -> EventLoopFuture<Void> in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:170:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
168 | try await file.write(command.data, atOffset: command.offset)
169 | }.flatMap { status -> EventLoopFuture<Void> in
170 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
171 | SFTPMessage.status(
172 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:181:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
179 | )
180 | }.flatMapError { _ in
181 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
182 | context.channel.close()
183 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:182:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
180 | }.flatMapError { _ in
181 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
182 | context.channel.close()
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
183 | }
184 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:191:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
189 | let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
190 | promise.completeWithTask {
191 | try await self.delegate.createDirectory(
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
192 | command.filePath,
193 | withAttributes: command.attributes,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:199:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
197 |
198 | _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
199 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
200 | SFTPMessage.status(
201 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:210:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
208 | )
209 | }.flatMapError { _ in
210 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
211 | context.channel.close()
212 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:211:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
209 | }.flatMapError { _ in
210 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
211 | context.channel.close()
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
212 | }
213 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:219:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
217 | let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
218 | promise.completeWithTask {
219 | try await self.delegate.removeDirectory(
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
220 | command.filePath,
221 | context: self.makeContext()
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:226:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
224 |
225 | _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
226 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
227 | SFTPMessage.status(
228 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:237:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
235 | )
236 | }.flatMapError { _ in
237 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
238 | context.channel.close()
239 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:238:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
236 | }.flatMapError { _ in
237 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
238 | context.channel.close()
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
239 | }
240 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:246:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
244 | let promise = context.eventLoop.makePromise(of: SFTPFileAttributes.self)
245 | promise.completeWithTask {
246 | try await self.delegate.fileAttributes(atPath: command.path, context: self.makeContext())
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
247 | }
248 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:250:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
248 |
249 | _ = promise.futureResult.flatMap { attributes -> EventLoopFuture<Void> in
250 | context.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
251 | NIOAny(SFTPMessage.attributes(
252 | .init(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:264:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
262 | let promise = context.eventLoop.makePromise(of: SFTPFileAttributes.self)
263 | promise.completeWithTask {
264 | try await self.delegate.fileAttributes(atPath: command.path, context: self.makeContext())
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
265 | }
266 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:268:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
266 |
267 | _ = promise.futureResult.flatMap { attributes -> EventLoopFuture<Void> in
268 | context.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
269 | NIOAny(SFTPMessage.attributes(
270 | .init(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:282:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
280 | let promise = context.eventLoop.makePromise(of: [SFTPPathComponent].self)
281 | promise.completeWithTask {
282 | try await self.delegate.realPath(for: command.path, context: self.makeContext())
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
283 | }
284 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:286:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
284 |
285 | _ = promise.futureResult.flatMap { components -> EventLoopFuture<Void> in
286 | context.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
287 | NIOAny(SFTPMessage.name(
288 | .init(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:300:36: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
298 | let promise = context.eventLoop.makePromise(of: (SFTPDirectoryHandle, SFTPDirectoryHandleIterator).self)
299 | promise.completeWithTask {
300 | let handle = try await self.delegate.openDirectory(atPath: command.handle, context: self.makeContext())
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
301 | let files = try await handle.listFiles(context: self.makeContext())
302 | let iterator = SFTPDirectoryHandleIterator(listing: files)
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:307:26: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
305 |
306 | _ = promise.futureResult.map { (directory, listing) -> SFTPMessage in
307 | let handle = self.currentHandleID
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
308 | self.directories[handle] = directory
309 | self.directoryListing[handle] = listing
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:319:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
317 | )
318 | }.flatMap { handle in
319 | context.writeAndFlush(NIOAny(handle))
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
320 | }.flatMapErrorThrowing { _ in }
321 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:355:13: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
353 | self.directoryListing[id] = listing
354 | _ = result.flatMapError { error -> EventLoopFuture<Void> in
355 | self.logger.error("\(error)")
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure
356 | return context.channel.writeAndFlush(
357 | SFTPMessage.status(
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:356:20: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
354 | _ = result.flatMapError { error -> EventLoopFuture<Void> in
355 | self.logger.error("\(error)")
356 | return context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
357 | SFTPMessage.status(
358 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:373:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
371 | try await file.readFileAttributes()
372 | }.flatMap { attributes -> EventLoopFuture<Void> in
373 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
374 | SFTPMessage.attributes(
375 | .init(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:382:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
380 | )
381 | }.flatMapError { _ -> EventLoopFuture<Void> in
382 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
383 | SFTPMessage.status(
384 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:398:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
396 | let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
397 | promise.completeWithTask {
398 | try await self.delegate.removeFile(command.filename, context: self.makeContext())
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
399 | }
400 | _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:401:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
399 | }
400 | _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
401 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
402 | SFTPMessage.status(
403 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:418:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
416 | try await handle.setFileAttributes(to: command.attributes)
417 | }.flatMap { () -> EventLoopFuture<Void> in
418 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
419 | SFTPMessage.status(
420 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:429:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
427 | )
428 | }.flatMapError { _ -> EventLoopFuture<Void> in
429 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
430 | SFTPMessage.status(
431 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:445:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
443 | let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
444 | promise.completeWithTask {
445 | try await self.delegate.setFileAttributes(
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
446 | to: command.attributes,
447 | atPath: command.path,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:452:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
450 | }
451 | _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
452 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
453 | SFTPMessage.status(
454 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:468:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
466 | let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
467 | promise.completeWithTask {
468 | try await self.delegate.addSymlink(
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
469 | linkPath: command.linkPath,
470 | targetPath: command.targetPath,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:475:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
473 | }
474 | _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
475 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
476 | SFTPMessage.status(
477 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:491:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
489 | let promise = context.eventLoop.makePromise(of: SFTPStatusCode.self)
490 | promise.completeWithTask {
491 | try await self.delegate.rename(
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
492 | oldPath: command.oldPath,
493 | newPath: command.newPath,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:499:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
497 | }
498 | _ = promise.futureResult.flatMap { status -> EventLoopFuture<Void> in
499 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
500 | SFTPMessage.status(
501 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:515:23: warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | }
9 |
10 | final class SFTPServerInboundHandler: ChannelInboundHandler {
| `- note: class 'SFTPServerInboundHandler' does not conform to the 'Sendable' protocol
11 | typealias InboundIn = SFTPMessage
12 |
:
513 | let promise = context.eventLoop.makePromise(of: [SFTPPathComponent].self)
514 | promise.completeWithTask {
515 | try await self.delegate.readSymlink(
| `- warning: capture of 'self' with non-sendable type 'SFTPServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
516 | atPath: command.path,
517 | context: self.makeContext()
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:521:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
519 | }
520 | _ = promise.futureResult.flatMap { components -> EventLoopFuture<Void> in
521 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
522 | SFTPMessage.name(
523 | SFTPMessage.Name(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:530:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
528 | )
529 | }.flatMapError { _ -> EventLoopFuture<Void> in
530 | context.channel.writeAndFlush(
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
531 | SFTPMessage.status(
532 | SFTPMessage.Status(
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:586:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
584 | // Client cannot send these messages
585 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).whenComplete { _ in
586 | context.channel.close(promise: nil)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
587 | }
588 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift:602:31: warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure; this is an error in the Swift 6 language mode
600 | let promise = context.eventLoop.makePromise(of: T.self)
601 | promise.completeWithTask {
602 | try await perform(file)
| `- warning: capture of 'file' with non-sendable type 'any SFTPFileHandle' in a '@Sendable' closure; this is an error in the Swift 6 language mode
603 | }
604 | return promise.futureResult
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:7:17: note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
5 |
6 | /// Represents a file in the SFTP subsystem.
7 | public protocol SFTPFileHandle {
| `- note: protocol 'SFTPFileHandle' does not conform to the 'Sendable' protocol
8 | /// Reads data from the file. The length of the data read is determined by the length parameter. The data is read from the given offset in the file.
9 | func read(at offset: UInt64, length: UInt32) async throws -> ByteBuffer
[840/845] Compiling Citadel Server.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:40:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
38 | func handlerAdded(context: ChannelHandlerContext) {
39 | context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
40 | context.fireErrorCaught(error)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
41 | }
42 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:59:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
18 | }
19 |
20 | final class SubsystemHandler: ChannelDuplexHandler {
| `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
21 | typealias InboundIn = SSHChannelData
22 | typealias InboundOut = SSHChannelData
:
57 | guard let shell = shell, let parent = context.channel.parent else {
58 | _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
59 | self.configured.succeed(())
| `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
60 | return context.channel.close()
61 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:60:28: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
58 | _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
59 | self.configured.succeed(())
60 | return context.channel.close()
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
61 | }
62 | return
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:67:30: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
65 | parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
66 | ShellServerSubsystem.setupChannelHanders(
67 | channel: context.channel,
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
68 | shell: shell,
69 | logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:73:31: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
71 | )
72 | }.flatMap { () -> EventLoopFuture<Void> in
73 | let promise = context.eventLoop.makePromise(of: Void.self)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
74 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
75 | self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:75:17: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
18 | }
19 |
20 | final class SubsystemHandler: ChannelDuplexHandler {
| `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
21 | typealias InboundIn = SSHChannelData
22 | typealias InboundOut = SSHChannelData
:
73 | let promise = context.eventLoop.makePromise(of: Void.self)
74 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
75 | self.configured.succeed(())
| `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
76 | return promise.futureResult
77 | }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:78:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
76 | return promise.futureResult
77 | }.whenFailure { _ in
78 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
79 | }
80 | case let event as SSHChannelRequestEvent.SubsystemRequest:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:91:34: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
89 | parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
90 | SFTPServerSubsystem.setupChannelHanders(
91 | channel: context.channel,
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
92 | sftp: sftp,
93 | logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:97:35: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
95 | )
96 | }.flatMap { () -> EventLoopFuture<Void> in
97 | let promise = context.eventLoop.makePromise(of: Void.self)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
98 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
99 | self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:99:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
18 | }
19 |
20 | final class SubsystemHandler: ChannelDuplexHandler {
| `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
21 | typealias InboundIn = SSHChannelData
22 | typealias InboundOut = SSHChannelData
:
97 | let promise = context.eventLoop.makePromise(of: Void.self)
98 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
99 | self.configured.succeed(())
| `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
100 | return promise.futureResult
101 | }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:102:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
100 | return promise.futureResult
101 | }.whenFailure { _ in
102 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
103 | }
104 | default:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
112 | func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 | configured.futureResult.whenSuccess {
114 | context.fireChannelRead(data)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:37: warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
112 | func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 | configured.futureResult.whenSuccess {
114 | context.fireChannelRead(data)
| `- warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/NIOAny.swift:45:15: note: struct 'NIOAny' does not conform to the 'Sendable' protocol
43 | /// }
44 | /// }
45 | public struct NIOAny {
| `- note: struct 'NIOAny' does not conform to the 'Sendable' protocol
46 | @usableFromInline
47 | /* private but _versioned */ let _storage: _NIOAny
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:102:47: warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
100 | }
101 |
102 | done.futureResult.whenFailure(context.fireErrorCaught)
| `- warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
103 | }
104 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | group.addTask {
76 | try await self.delegate.startShell(
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
33 | }
34 |
35 | public struct SSHShellContext {
| `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
36 | public struct WindowSize {
37 | public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | group.addTask {
76 | try await self.delegate.startShell(
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
33 | }
34 |
35 | public struct SSHShellContext {
| `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
36 | public struct WindowSize {
37 | public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | group.addTask {
76 | try await self.delegate.startShell(
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
33 | }
34 |
35 | public struct SSHShellContext {
| `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
36 | public struct WindowSize {
37 | public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:84:46: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
82 |
83 | group.addTask {
84 | for try await message in self.outbound.stream {
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
85 | switch message.event {
86 | case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:124:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
122 | context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
123 | self.logger.debug("Failed to set allowRemoteHalfClosure: \(error)")
124 | context.fireErrorCaught(error)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:285:17: warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
283 | streamContinuation.yield(.stderr(stderr))
284 | case .eof(let error):
285 | self.logger.debug("EOF triggered, ending the command stream.")
| `- warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
286 | if let error {
287 | streamContinuation.finish(throwing: error)
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:112:20: note: class 'SSHClient' does not conform to the 'Sendable' protocol
110 |
111 | /// Represents an SSH connection.
112 | public final class SSHClient {
| `- note: class 'SSHClient' does not conform to the 'Sendable' protocol
113 | private(set) var session: SSHClientSession
114 | private var userInitiatedClose = false
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:75:31: 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
73 | done.completeWithTask {
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | 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
76 | try await self.delegate.startShell(
| `- note: closure captures non-Sendable 'self'
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- note: closure captures non-Sendable 'shellContext'
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:83:31: 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
81 | }
82 |
83 | 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
84 | for try await message in self.outbound.stream {
| `- note: closure captures 'self' which is accessible to code in the current task
85 | switch message.event {
86 | case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:467:14: 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
465 | )
466 |
467 | 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
468 | do {
469 | let stream = try await executeCommandStream(command, inShell: inShell)
| `- note: closure captures 'self' which is accessible to code in the current task
470 | for try await chunk in stream {
471 | switch chunk {
[841/845] Compiling Citadel ShellDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:40:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
38 | func handlerAdded(context: ChannelHandlerContext) {
39 | context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
40 | context.fireErrorCaught(error)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
41 | }
42 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:59:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
18 | }
19 |
20 | final class SubsystemHandler: ChannelDuplexHandler {
| `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
21 | typealias InboundIn = SSHChannelData
22 | typealias InboundOut = SSHChannelData
:
57 | guard let shell = shell, let parent = context.channel.parent else {
58 | _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
59 | self.configured.succeed(())
| `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
60 | return context.channel.close()
61 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:60:28: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
58 | _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
59 | self.configured.succeed(())
60 | return context.channel.close()
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
61 | }
62 | return
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:67:30: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
65 | parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
66 | ShellServerSubsystem.setupChannelHanders(
67 | channel: context.channel,
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
68 | shell: shell,
69 | logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:73:31: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
71 | )
72 | }.flatMap { () -> EventLoopFuture<Void> in
73 | let promise = context.eventLoop.makePromise(of: Void.self)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
74 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
75 | self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:75:17: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
18 | }
19 |
20 | final class SubsystemHandler: ChannelDuplexHandler {
| `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
21 | typealias InboundIn = SSHChannelData
22 | typealias InboundOut = SSHChannelData
:
73 | let promise = context.eventLoop.makePromise(of: Void.self)
74 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
75 | self.configured.succeed(())
| `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
76 | return promise.futureResult
77 | }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:78:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
76 | return promise.futureResult
77 | }.whenFailure { _ in
78 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
79 | }
80 | case let event as SSHChannelRequestEvent.SubsystemRequest:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:91:34: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
89 | parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
90 | SFTPServerSubsystem.setupChannelHanders(
91 | channel: context.channel,
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
92 | sftp: sftp,
93 | logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:97:35: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
95 | )
96 | }.flatMap { () -> EventLoopFuture<Void> in
97 | let promise = context.eventLoop.makePromise(of: Void.self)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
98 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
99 | self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:99:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
18 | }
19 |
20 | final class SubsystemHandler: ChannelDuplexHandler {
| `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
21 | typealias InboundIn = SSHChannelData
22 | typealias InboundOut = SSHChannelData
:
97 | let promise = context.eventLoop.makePromise(of: Void.self)
98 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
99 | self.configured.succeed(())
| `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
100 | return promise.futureResult
101 | }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:102:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
100 | return promise.futureResult
101 | }.whenFailure { _ in
102 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
103 | }
104 | default:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
112 | func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 | configured.futureResult.whenSuccess {
114 | context.fireChannelRead(data)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:37: warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
112 | func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 | configured.futureResult.whenSuccess {
114 | context.fireChannelRead(data)
| `- warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/NIOAny.swift:45:15: note: struct 'NIOAny' does not conform to the 'Sendable' protocol
43 | /// }
44 | /// }
45 | public struct NIOAny {
| `- note: struct 'NIOAny' does not conform to the 'Sendable' protocol
46 | @usableFromInline
47 | /* private but _versioned */ let _storage: _NIOAny
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:102:47: warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
100 | }
101 |
102 | done.futureResult.whenFailure(context.fireErrorCaught)
| `- warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
103 | }
104 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | group.addTask {
76 | try await self.delegate.startShell(
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
33 | }
34 |
35 | public struct SSHShellContext {
| `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
36 | public struct WindowSize {
37 | public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | group.addTask {
76 | try await self.delegate.startShell(
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
33 | }
34 |
35 | public struct SSHShellContext {
| `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
36 | public struct WindowSize {
37 | public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | group.addTask {
76 | try await self.delegate.startShell(
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
33 | }
34 |
35 | public struct SSHShellContext {
| `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
36 | public struct WindowSize {
37 | public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:84:46: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
82 |
83 | group.addTask {
84 | for try await message in self.outbound.stream {
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
85 | switch message.event {
86 | case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:124:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
122 | context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
123 | self.logger.debug("Failed to set allowRemoteHalfClosure: \(error)")
124 | context.fireErrorCaught(error)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:285:17: warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
283 | streamContinuation.yield(.stderr(stderr))
284 | case .eof(let error):
285 | self.logger.debug("EOF triggered, ending the command stream.")
| `- warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
286 | if let error {
287 | streamContinuation.finish(throwing: error)
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:112:20: note: class 'SSHClient' does not conform to the 'Sendable' protocol
110 |
111 | /// Represents an SSH connection.
112 | public final class SSHClient {
| `- note: class 'SSHClient' does not conform to the 'Sendable' protocol
113 | private(set) var session: SSHClientSession
114 | private var userInitiatedClose = false
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:75:31: 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
73 | done.completeWithTask {
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | 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
76 | try await self.delegate.startShell(
| `- note: closure captures non-Sendable 'self'
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- note: closure captures non-Sendable 'shellContext'
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:83:31: 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
81 | }
82 |
83 | 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
84 | for try await message in self.outbound.stream {
| `- note: closure captures 'self' which is accessible to code in the current task
85 | switch message.event {
86 | case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:467:14: 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
465 | )
466 |
467 | 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
468 | do {
469 | let stream = try await executeCommandStream(command, inShell: inShell)
| `- note: closure captures 'self' which is accessible to code in the current task
470 | for try await chunk in stream {
471 | switch chunk {
[842/845] Compiling Citadel TTY.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:40:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
38 | func handlerAdded(context: ChannelHandlerContext) {
39 | context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
40 | context.fireErrorCaught(error)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
41 | }
42 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:59:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
18 | }
19 |
20 | final class SubsystemHandler: ChannelDuplexHandler {
| `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
21 | typealias InboundIn = SSHChannelData
22 | typealias InboundOut = SSHChannelData
:
57 | guard let shell = shell, let parent = context.channel.parent else {
58 | _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
59 | self.configured.succeed(())
| `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
60 | return context.channel.close()
61 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:60:28: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
58 | _ = context.channel.triggerUserOutboundEvent(ChannelFailureEvent()).flatMap {
59 | self.configured.succeed(())
60 | return context.channel.close()
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
61 | }
62 | return
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:67:30: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
65 | parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
66 | ShellServerSubsystem.setupChannelHanders(
67 | channel: context.channel,
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
68 | shell: shell,
69 | logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:73:31: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
71 | )
72 | }.flatMap { () -> EventLoopFuture<Void> in
73 | let promise = context.eventLoop.makePromise(of: Void.self)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
74 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
75 | self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:75:17: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
18 | }
19 |
20 | final class SubsystemHandler: ChannelDuplexHandler {
| `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
21 | typealias InboundIn = SSHChannelData
22 | typealias InboundOut = SSHChannelData
:
73 | let promise = context.eventLoop.makePromise(of: Void.self)
74 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
75 | self.configured.succeed(())
| `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
76 | return promise.futureResult
77 | }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:78:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
76 | return promise.futureResult
77 | }.whenFailure { _ in
78 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
79 | }
80 | case let event as SSHChannelRequestEvent.SubsystemRequest:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:91:34: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
89 | parent.pipeline.handler(type: NIOSSHHandler.self).flatMap { handler in
90 | SFTPServerSubsystem.setupChannelHanders(
91 | channel: context.channel,
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
92 | sftp: sftp,
93 | logger: .init(label: "nl.orlandos.citadel.sftp-server"),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:97:35: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
95 | )
96 | }.flatMap { () -> EventLoopFuture<Void> in
97 | let promise = context.eventLoop.makePromise(of: Void.self)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
98 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
99 | self.configured.succeed(())
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:99:21: warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
18 | }
19 |
20 | final class SubsystemHandler: ChannelDuplexHandler {
| `- note: class 'SubsystemHandler' does not conform to the 'Sendable' protocol
21 | typealias InboundIn = SSHChannelData
22 | typealias InboundOut = SSHChannelData
:
97 | let promise = context.eventLoop.makePromise(of: Void.self)
98 | context.channel.triggerUserOutboundEvent(ChannelSuccessEvent(), promise: promise)
99 | self.configured.succeed(())
| `- warning: capture of 'self' with non-sendable type 'SubsystemHandler' in a '@Sendable' closure
100 | return promise.futureResult
101 | }.whenFailure { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:102:21: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
100 | return promise.futureResult
101 | }.whenFailure { _ in
102 | context.channel.triggerUserOutboundEvent(ChannelFailureEvent(), promise: nil)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
103 | }
104 | default:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
112 | func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 | configured.futureResult.whenSuccess {
114 | context.fireChannelRead(data)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:114:37: warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
112 | func channelRead(context: ChannelHandlerContext, data: NIOAny) {
113 | configured.futureResult.whenSuccess {
114 | context.fireChannelRead(data)
| `- warning: capture of 'data' with non-sendable type 'NIOAny' in a '@Sendable' closure
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/NIOAny.swift:45:15: note: struct 'NIOAny' does not conform to the 'Sendable' protocol
43 | /// }
44 | /// }
45 | public struct NIOAny {
| `- note: struct 'NIOAny' does not conform to the 'Sendable' protocol
46 | @usableFromInline
47 | /* private but _versioned */ let _storage: _NIOAny
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:102:47: warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
100 | }
101 |
102 | done.futureResult.whenFailure(context.fireErrorCaught)
| `- warning: converting non-sendable function value to '@Sendable (any Error) -> Void' may introduce data races
103 | }
104 |
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | group.addTask {
76 | try await self.delegate.startShell(
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in a '@Sendable' closure; this is an error in the Swift 6 language mode
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
33 | }
34 |
35 | public struct SSHShellContext {
| `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
36 | public struct WindowSize {
37 | public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | group.addTask {
76 | try await self.delegate.startShell(
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
33 | }
34 |
35 | public struct SSHShellContext {
| `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
36 | public struct WindowSize {
37 | public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:76:31: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | group.addTask {
76 | try await self.delegate.startShell(
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:79:34: warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- warning: capture of 'shellContext' with non-sendable type 'SSHShellContext' in an isolated closure; this is an error in the Swift 6 language mode
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/SFTP/Server/SFTPServer.swift:35:15: note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
33 | }
34 |
35 | public struct SSHShellContext {
| `- note: consider making struct 'SSHShellContext' conform to the 'Sendable' protocol
36 | public struct WindowSize {
37 | public let columns: Int
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:84:46: warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
43 | }
44 |
45 | final class ShellServerInboundHandler: ChannelInboundHandler {
| `- note: class 'ShellServerInboundHandler' does not conform to the 'Sendable' protocol
46 | typealias InboundIn = ByteBuffer
47 |
:
82 |
83 | group.addTask {
84 | for try await message in self.outbound.stream {
| `- warning: capture of 'self' with non-sendable type 'ShellServerInboundHandler' in an isolated closure; this is an error in the Swift 6 language mode
85 | switch message.event {
86 | case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:124:13: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
122 | context.channel.setOption(ChannelOptions.allowRemoteHalfClosure, value: true).whenFailure { error in
123 | self.logger.debug("Failed to set allowRemoteHalfClosure: \(error)")
124 | context.fireErrorCaught(error)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1456:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1454 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1455 | /// `ChannelHandler`.
1456 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1457 | // visible for ChannelPipeline to modify
1458 | fileprivate var next: Optional<ChannelHandlerContext>
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:285:17: warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
283 | streamContinuation.yield(.stderr(stderr))
284 | case .eof(let error):
285 | self.logger.debug("EOF triggered, ending the command stream.")
| `- warning: capture of 'self' with non-sendable type 'SSHClient' in a '@Sendable' closure; this is an error in the Swift 6 language mode
286 | if let error {
287 | streamContinuation.finish(throwing: error)
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:112:20: note: class 'SSHClient' does not conform to the 'Sendable' protocol
110 |
111 | /// Represents an SSH connection.
112 | public final class SSHClient {
| `- note: class 'SSHClient' does not conform to the 'Sendable' protocol
113 | private(set) var session: SSHClientSession
114 | private var userInitiatedClose = false
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:75:31: 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
73 | done.completeWithTask {
74 | try await withThrowingTaskGroup(of: Void.self) { group in
75 | 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
76 | try await self.delegate.startShell(
| `- note: closure captures non-Sendable 'self'
77 | inbound: self.inbound.stream,
78 | outbound: ShellOutboundWriter(continuation: self.outbound.continuation),
79 | context: shellContext
| `- note: closure captures non-Sendable 'shellContext'
80 | )
81 | }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Shell/Server/ShellDelegate.swift:83:31: 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
81 | }
82 |
83 | 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
84 | for try await message in self.outbound.stream {
| `- note: closure captures 'self' which is accessible to code in the current task
85 | switch message.event {
86 | case .stdout(let data):
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/TTY/Client/TTY.swift:467:14: 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
465 | )
466 |
467 | 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
468 | do {
469 | let stream = try await executeCommandStream(command, inShell: inShell)
| `- note: closure captures 'self' which is accessible to code in the current task
470 | for try await chunk in stream {
471 | switch chunk {
[843/852] Compiling CitadelServerExample Terminal.swift
[844/852] Compiling CitadelServerExample HostKeyFile.swift
[845/852] Compiling CitadelServerExample Extensions.swift
[846/852] Compiling CitadelServerExample Server.swift
/Users/admin/builder/spi-builder-workspace/Sources/CitadelServerExample/Server.swift:24:42: warning: non-sendable result type 'SSHServer' cannot be sent from nonisolated context in call to static method 'host(host:port:hostKeys:algorithms:protocolOptions:logger:authenticationDelegate:group:)'; this is an error in the Swift 6 language mode
22 | }
23 |
24 | let server = try await SSHServer.host(
| `- warning: non-sendable result type 'SSHServer' cannot be sent from nonisolated context in call to static method 'host(host:port:hostKeys:algorithms:protocolOptions:logger:authenticationDelegate:group:)'; this is an error in the Swift 6 language mode
25 | host: "localhost",
26 | port: 2323,
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Server.swift:186:20: note: class 'SSHServer' does not conform to the 'Sendable' protocol
184 | /// The server can be closed using the `close()` method.
185 | /// - Note: This class is not thread safe.
186 | public final class SSHServer {
| `- note: class 'SSHServer' does not conform to the 'Sendable' protocol
187 | let channel: Channel
188 | let delegate: CitadelServerDelegate
/Users/admin/builder/spi-builder-workspace/Sources/CitadelServerExample/Server.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Citadel'
1 | import Citadel
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Citadel'
2 | import Crypto
3 | import Foundation
[847/852] Compiling CitadelServerExample EchoShell.swift
[848/852] Compiling CitadelServerExample BasicCommands.swift
[849/852] Emitting module CitadelServerExample
[849/852] Write Objects.LinkFileList
[850/852] Linking CitadelServerExample
[851/852] Applying CitadelServerExample
Build complete! (25.30s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-nio-ssh",
"requirement" : {
"range" : [
{
"lower_bound" : "0.3.2",
"upper_bound" : "0.4.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Joannis/swift-nio-ssh.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
},
{
"identity" : "bigint",
"requirement" : {
"range" : [
{
"lower_bound" : "5.2.0",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/attaswift/BigInt.git"
},
{
"identity" : "swift-crypto",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.1.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-crypto.git"
},
{
"identity" : "colorizeswift",
"requirement" : {
"range" : [
{
"lower_bound" : "1.5.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/mtynior/ColorizeSwift.git"
}
],
"manifest_display_name" : "Citadel",
"name" : "Citadel",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "ios",
"version" : "14.0"
}
],
"products" : [
{
"name" : "Citadel",
"targets" : [
"Citadel"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "CitadelServerExample",
"targets" : [
"CitadelServerExample"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "CitadelTests",
"module_type" : "SwiftTarget",
"name" : "CitadelTests",
"path" : "Tests/CitadelTests",
"product_dependencies" : [
"NIOSSH",
"BigInt",
"Logging"
],
"sources" : [
"Citadel2Tests.swift",
"EndToEndTests.swift",
"KeyTests.swift"
],
"target_dependencies" : [
"Citadel"
],
"type" : "test"
},
{
"c99name" : "CitadelServerExample",
"module_type" : "SwiftTarget",
"name" : "CitadelServerExample",
"path" : "Sources/CitadelServerExample",
"product_dependencies" : [
"ColorizeSwift"
],
"product_memberships" : [
"CitadelServerExample"
],
"sources" : [
"EchoShell/BasicCommands.swift",
"EchoShell/EchoShell.swift",
"EchoShell/Extensions.swift",
"EchoShell/Terminal.swift",
"HostKeyFile.swift",
"Server.swift"
],
"target_dependencies" : [
"Citadel"
],
"type" : "executable"
},
{
"c99name" : "Citadel",
"module_type" : "SwiftTarget",
"name" : "Citadel",
"path" : "Sources/Citadel",
"product_dependencies" : [
"NIOSSH",
"Crypto",
"_CryptoExtras",
"BigInt",
"Logging"
],
"product_memberships" : [
"Citadel",
"CitadelServerExample"
],
"sources" : [
"Algorithms/AES.swift",
"Algorithms/DH-Helpers.swift",
"Algorithms/DiffieHellmanGroup14Sha1.swift",
"Algorithms/DiffieHellmanGroup14Sha256.swift",
"Algorithms/RSA.swift",
"BCrypt.swift",
"ByteBufferHelpers.swift",
"ChannelUnwrapper.swift",
"Client.swift",
"ClientSession.swift",
"DirectTCPIP/Client/DirectTCPIP+Client.swift",
"DirectTCPIP/Server/DirectTCPIP+Server.swift",
"Errors.swift",
"Exec/Client/ExecClient.swift",
"Exec/Server/ExecDelegate.swift",
"Exec/Server/ExecHandler.swift",
"NIOGlueHandler.swift",
"OpenSSHKey.swift",
"SFTP/Client/SFTPClient.swift",
"SFTP/Client/SFTPClientInboundHandler.swift",
"SFTP/Client/SFTPFile.swift",
"SFTP/SFTPBasicEnums.swift",
"SFTP/SFTPFileFlags.swift",
"SFTP/SFTPMessage.swift",
"SFTP/SFTPMessageParser.swift",
"SFTP/SFTPSerializer.swift",
"SFTP/Server/SFTPServer.swift",
"SFTP/Server/SFTPServerInboundHandler.swift",
"SSHAuthenticationMethod.swift",
"SSHCert.swift",
"SSHConnectionPoolSettings.swift",
"Server.swift",
"Shell/Server/ShellDelegate.swift",
"TTY/Client/TTY.swift"
],
"target_dependencies" : [
"CCitadelBcrypt"
],
"type" : "library"
},
{
"c99name" : "CCitadelBcrypt",
"module_type" : "ClangTarget",
"name" : "CCitadelBcrypt",
"path" : "Sources/CCitadelBcrypt",
"product_memberships" : [
"Citadel",
"CitadelServerExample"
],
"sources" : [
"bcrypt-kdf.c",
"bcrypt.c",
"blf.c"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/orlandos-nl/citadel/main
Repository: orlandos-nl/Citadel
Swift version used: 6.1
Target: Citadel
Extracting symbol information for 'Citadel'...
Finished extracting symbol information for 'Citadel'. (13.57s)
Building documentation for 'Citadel'...
Finished building documentation for 'Citadel' (0.49s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/orlandos-nl/citadel/main
Updating https://github.com/Joannis/swift-nio-ssh.git
Updating https://github.com/attaswift/BigInt.git
Updating https://github.com/apple/swift-atomics.git
Updating https://github.com/apple/swift-nio.git
Updating https://github.com/apple/swift-system.git
Updating https://github.com/apple/swift-log.git
Updating https://github.com/apple/swift-crypto.git
Updated https://github.com/apple/swift-atomics.git (0.43s)
Updating https://github.com/mtynior/ColorizeSwift.git
Updated https://github.com/Joannis/swift-nio-ssh.git (0.48s)
Updating https://github.com/apple/swift-collections.git
Updated https://github.com/attaswift/BigInt.git (0.53s)
Updated https://github.com/apple/swift-crypto.git (0.53s)
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Updated https://github.com/apple/swift-nio.git (0.80s)
Updated https://github.com/apple/swift-log.git (0.80s)
Updated https://github.com/apple/swift-system.git (0.80s)
Updated https://github.com/mtynior/ColorizeSwift.git (0.41s)
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.46s)
Computing version for https://github.com/mtynior/ColorizeSwift.git
Updated https://github.com/apple/swift-collections.git (0.54s)
Computed https://github.com/mtynior/ColorizeSwift.git at 1.6.0 (1.66s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 2.0.5 (0.73s)
Computing version for https://github.com/attaswift/BigInt.git
Computed https://github.com/attaswift/BigInt.git at 5.3.0 (0.82s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.5.4 (0.61s)
Computing version for https://github.com/Joannis/swift-nio-ssh.git
Computed https://github.com/Joannis/swift-nio-ssh.git at 0.3.2 (0.60s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.2.0 (0.47s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.65.0 (0.53s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.2.1 (0.56s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.1.0 (0.64s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.3 (0.55s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.73s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.40s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.3
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Building for debugging...
[0/7] Write snippet-extract-tool-entitlement.plist
[1/8] Write sources
[4/8] Write swift-version-2F0A5646E1D333AE.txt
[6/53] Compiling SymbolKit Identifier.swift
[7/53] Compiling SymbolKit KindIdentifier.swift
[8/53] Compiling SymbolKit Location.swift
[9/53] Compiling SymbolKit Mutability.swift
[10/57] Compiling SymbolKit Mixin+Equals.swift
[11/57] Compiling SymbolKit Mixin+Hash.swift
[12/57] Compiling SymbolKit Mixin.swift
[13/57] Compiling SymbolKit LineList.swift
[14/57] Compiling SymbolKit Position.swift
[15/57] Compiling SymbolKit SemanticVersion.swift
[16/57] Compiling SymbolKit AccessControl.swift
[17/57] Compiling SymbolKit Availability.swift
[18/57] Compiling SymbolKit AvailabilityItem.swift
[19/57] Compiling SymbolKit Domain.swift
[20/57] Emitting module SymbolKit
[21/57] Compiling SymbolKit DeclarationFragments.swift
[22/57] Compiling SymbolKit Fragment.swift
[23/57] Compiling SymbolKit FragmentKind.swift
[24/57] Compiling SymbolKit FunctionParameter.swift
[25/57] Compiling SymbolKit FunctionSignature.swift
[26/57] Compiling SymbolKit Names.swift
[27/57] Compiling SymbolKit SPI.swift
[28/57] Compiling SymbolKit Snippet.swift
[29/57] Compiling SymbolKit Extension.swift
[30/57] Compiling SymbolKit SourceRange.swift
[31/57] Compiling SymbolKit Metadata.swift
[32/57] Compiling SymbolKit Module.swift
[33/57] Compiling SymbolKit OperatingSystem.swift
[34/57] Compiling SymbolKit Platform.swift
[35/57] Compiling SymbolKit Relationship.swift
[36/57] Compiling SymbolKit RelationshipKind.swift
[37/57] Compiling SymbolKit SourceOrigin.swift
[38/57] Compiling SymbolKit GenericConstraints.swift
[39/57] Compiling SymbolKit Swift.swift
[40/57] Compiling SymbolKit GenericConstraint.swift
[41/57] Compiling SymbolKit GenericParameter.swift
[42/57] Compiling SymbolKit Generics.swift
[43/57] Compiling SymbolKit Namespace.swift
[44/57] Compiling SymbolKit Symbol.swift
[45/57] Compiling SymbolKit SymbolKind.swift
[46/57] Compiling SymbolKit SymbolGraph.swift
[47/57] Compiling SymbolKit GraphCollector.swift
[48/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[49/57] Compiling SymbolKit UnifiedSymbol.swift
[50/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[51/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[52/57] Compiling Snippets SnippetParser.swift
[53/57] Compiling Snippets Snippet.swift
[54/57] Emitting module Snippets
[55/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[56/61] Compiling snippet_extract URL+Status.swift
[57/61] Emitting module snippet_extract
[58/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (5.45s)
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/133] Compiling _CollectionsUtilities UnsafeBufferPointer+Extras.swift
[3/133] Compiling BigInt Floating Point Conversion.swift
[4/133] Compiling BigInt Addition.swift
[5/134] Compiling BigInt Shifts.swift
[6/134] Compiling BigInt Square Root.swift
[7/134] Compiling BigInt Comparable.swift
[8/134] Compiling BigInt Exponentiation.swift
[9/134] Compiling BigInt BigInt.swift
[10/134] Compiling BigInt BigUInt.swift
[13/136] Compiling BigInt Bitwise Ops.swift
[14/136] Compiling BigInt Codable.swift
[17/136] Compiling Logging MetadataProvider.swift
[18/136] Compiling BigInt GCD.swift
[19/136] Compiling BigInt Hashable.swift
[20/136] Compiling Crypto Digest.swift
[21/136] Compiling Crypto Digests.swift
[22/136] Compiling Crypto HashFunctions.swift
[23/136] Compiling Crypto HashFunctions_SHA2.swift
[24/136] Compiling Crypto Insecure.swift
[25/136] Compiling Crypto Insecure_HashFunctions.swift
[26/142] Compiling _NIODataStructures PriorityQueue.swift
[27/142] Compiling _NIODataStructures _TinyArray.swift
[28/142] Compiling _NIOBase64 Base64.swift
[29/142] Emitting module _NIOBase64
[30/142] Compiling BigInt Division.swift
[41/142] Compiling _CollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[42/142] Compiling Atomics IntegerOperations.swift
[43/142] Compiling Atomics Unmanaged extensions.swift
[46/142] Compiling BigInt Strideable.swift
[47/142] Compiling BigInt String Conversion.swift
[48/142] Compiling BigInt Integer Conversion.swift
[49/142] Compiling BigInt Multiplication.swift
[50/142] Compiling BigInt Data Conversion.swift
[51/142] Compiling _NIODataStructures Heap.swift
[52/142] Emitting module _NIODataStructures
[55/142] Compiling NIOConcurrencyHelpers lock.swift
[60/142] Compiling Crypto ECDH_boring.swift
[61/142] Compiling Crypto DH.swift
[62/142] Compiling Crypto ECDH.swift
[63/142] Compiling Crypto HKDF.swift
[64/142] Compiling Crypto AESWrap.swift
[65/142] Compiling Crypto AESWrap_boring.swift
[66/142] Compiling Crypto Ed25519_boring.swift
[67/142] Compiling Crypto EllipticCurvePoint_boring.swift
[68/142] Compiling Crypto EllipticCurve_boring.swift
[69/142] Compiling Crypto NISTCurvesKeys_boring.swift
[70/142] Compiling Crypto X25519Keys_boring.swift
[71/142] Compiling Crypto Curve25519.swift
[72/142] Emitting module _CollectionsUtilities
[73/142] Compiling Crypto Ed25519.swift
[74/142] Compiling Crypto NISTCurvesKeys.swift
[75/142] Compiling Crypto X25519Keys.swift
[76/142] Compiling Crypto SymmetricKeys.swift
[77/142] Compiling Crypto HMAC.swift
[78/142] Compiling Crypto MACFunctions.swift
[79/142] Compiling Crypto MessageAuthenticationCode.swift
[80/142] Compiling Crypto AES.swift
[81/142] Compiling Crypto ECDSASignature_boring.swift
[82/142] Compiling Crypto ECDSA_boring.swift
[83/142] Compiling Crypto EdDSA_boring.swift
[84/142] Compiling Crypto ECDSA.swift
[85/142] Emitting module Crypto
[86/142] Emitting module NIOConcurrencyHelpers
[87/142] Compiling NIOConcurrencyHelpers NIOAtomic.swift
[88/142] Compiling NIOConcurrencyHelpers NIOLock.swift
[89/142] Compiling NIOConcurrencyHelpers atomics.swift
[90/142] Compiling NIOConcurrencyHelpers NIOLockedValueBox.swift
[93/144] Emitting module BigInt
[98/144] Compiling Crypto EdDSA.swift
[99/144] Compiling Crypto Signature.swift
[100/144] Compiling Crypto ArbitraryPrecisionInteger_boring.swift
[101/144] Compiling Crypto CryptoKitErrors_boring.swift
[102/144] Compiling Crypto FiniteFieldArithmeticContext_boring.swift
[103/144] Compiling Crypto RNG_boring.swift
[122/144] Compiling Logging LogHandler.swift
[123/144] Emitting module Logging
[124/144] Compiling Logging Logging.swift
[125/144] Compiling Logging Locks.swift
[126/144] Compiling Crypto SafeCompare_boring.swift
[127/144] Compiling Crypto Zeroization_boring.swift
[128/144] Compiling Crypto PrettyBytes.swift
[129/144] Compiling Crypto SafeCompare.swift
[130/144] Compiling Crypto SecureBytes.swift
[131/144] Compiling Crypto Zeroization.swift
[142/161] Compiling DequeModule _DequeBufferHeader.swift
[143/161] Compiling DequeModule _DequeSlot.swift
[144/161] Compiling DequeModule Deque.swift
[145/161] Compiling DequeModule _DequeBuffer.swift
[146/171] Compiling DequeModule _UnsafeWrappedBuffer.swift
[147/171] Compiling BigInt Subtraction.swift
[148/171] Compiling BigInt Words and Bits.swift
[149/171] Emitting module Atomics
[150/171] Emitting module _CryptoExtras
[151/171] Compiling DequeModule Deque+Sendable.swift
[152/171] Compiling DequeModule Deque+Testing.swift
[153/171] Compiling DequeModule Deque+Extras.swift
[154/171] Compiling DequeModule Deque+Hashable.swift
[155/171] Compiling DequeModule Deque._Storage.swift
[156/171] Compiling DequeModule Deque._UnsafeHandle.swift
[157/171] Compiling DequeModule Deque+Equatable.swift
[158/171] Compiling DequeModule Deque+ExpressibleByArrayLiteral.swift
[159/171] Compiling _CryptoExtras Error.swift
[160/171] Compiling _CryptoExtras DigestType.swift
[161/171] Compiling _CryptoExtras PEMDocument.swift
[162/171] Compiling _CryptoExtras CryptoKitErrors_boring.swift
[163/171] Compiling DequeModule Deque+Codable.swift
[164/171] Compiling DequeModule Deque+Collection.swift
[165/171] Compiling DequeModule Deque+CustomReflectable.swift
[166/171] Compiling DequeModule Deque+Descriptions.swift
[167/171] Emitting module DequeModule
[168/171] Compiling _CryptoExtras RSA.swift
[169/171] Compiling _CryptoExtras RSA_boring.swift
[170/171] Compiling _CryptoExtras RSA_security.swift
[171/171] Compiling _CryptoExtras BoringSSLHelpers.swift
[172/231] Compiling NIOCore GlobalSingletons.swift
[173/231] Compiling NIOCore IO.swift
[174/231] Compiling NIOCore IOData.swift
[175/231] Compiling NIOCore IPProtocol.swift
[176/231] Compiling NIOCore IntegerBitPacking.swift
[177/231] Compiling NIOCore IntegerTypes.swift
[178/237] Compiling NIOCore Interfaces.swift
[179/237] Compiling NIOCore Linux.swift
[180/237] Compiling NIOCore MarkedCircularBuffer.swift
[181/237] Compiling NIOCore MulticastChannel.swift
[182/237] Compiling NIOCore NIOAny.swift
[183/237] Compiling NIOCore NIOCloseOnErrorHandler.swift
[184/237] Compiling NIOCore AddressedEnvelope.swift
[185/237] Compiling NIOCore AsyncAwaitSupport.swift
[186/237] Compiling NIOCore AsyncChannel.swift
[187/237] Compiling NIOCore AsyncChannelInboundStream.swift
[188/237] Compiling NIOCore AsyncChannelInboundStreamChannelHandler.swift
[189/237] Compiling NIOCore AsyncChannelOutboundWriter.swift
[190/237] Compiling NIOCore AsyncChannelOutboundWriterHandler.swift
[191/237] Compiling NIOCore NIOLoopBound.swift
[192/237] Compiling NIOCore NIOSendable.swift
[193/237] Compiling NIOCore PointerHelpers.swift
[194/237] Compiling NIOCore RecvByteBufferAllocator.swift
[195/237] Compiling NIOCore SingleStepByteToMessageDecoder.swift
[196/237] Compiling NIOCore SocketAddresses.swift
[197/237] Compiling NIOCore SocketOptionProvider.swift
[198/237] Compiling NIOCore SystemCallHelpers.swift
[199/237] Compiling NIOCore TimeAmount+Duration.swift
[200/237] Compiling NIOCore TypeAssistedChannelHandler.swift
[201/237] Compiling NIOCore UniversalBootstrapSupport.swift
[202/237] Compiling NIOCore Utilities.swift
[203/237] Compiling NIOCore NIOAsyncSequenceProducer.swift
[204/237] Compiling NIOCore NIOAsyncSequenceProducerStrategies.swift
[205/237] Compiling NIOCore NIOAsyncWriter.swift
[206/237] Compiling NIOCore NIOThrowingAsyncSequenceProducer.swift
[207/237] Compiling NIOCore BSDSocketAPI.swift
[208/237] Compiling NIOCore ByteBuffer-aux.swift
[209/237] Compiling NIOCore ByteBuffer-conversions.swift
[210/237] Compiling NIOCore ConvenienceOptionSupport.swift
[211/237] Compiling NIOCore DeadChannel.swift
[212/237] Compiling NIOCore DispatchQueue+WithFuture.swift
[213/237] Compiling NIOCore EventLoop+Deprecated.swift
[214/237] Compiling NIOCore EventLoop+SerialExecutor.swift
[215/237] Compiling NIOCore EventLoop.swift
[216/237] Compiling NIOCore EventLoopFuture+AssumeIsolated.swift
[217/237] Compiling NIOCore ChannelHandler.swift
[218/237] Compiling NIOCore ChannelHandlers.swift
[219/237] Compiling NIOCore ChannelInvoker.swift
[220/237] Compiling NIOCore ChannelOption.swift
[221/237] Compiling NIOCore ChannelPipeline.swift
[222/237] Compiling NIOCore CircularBuffer.swift
[223/237] Compiling NIOCore Codec.swift
[224/237] Compiling NIOCore ByteBuffer-core.swift
[225/237] Compiling NIOCore ByteBuffer-hexdump.swift
[226/237] Compiling NIOCore ByteBuffer-int.swift
[227/237] Compiling NIOCore ByteBuffer-lengthPrefix.swift
[228/237] Compiling NIOCore ByteBuffer-multi-int.swift
[229/237] Compiling NIOCore ByteBuffer-views.swift
[230/237] Compiling NIOCore Channel.swift
[231/237] Emitting module NIOCore
[232/237] Compiling NIOCore EventLoopFuture+Deprecated.swift
[233/237] Compiling NIOCore EventLoopFuture+WithEventLoop.swift
[234/237] Compiling NIOCore EventLoopFuture.swift
[235/237] Compiling NIOCore FileDescriptor.swift
[236/237] Compiling NIOCore FileHandle.swift
[237/237] Compiling NIOCore FileRegion.swift
[238/290] Compiling NIOEmbedded AsyncTestingEventLoop.swift
[239/290] Compiling NIOEmbedded AsyncTestingChannel.swift
[240/290] Emitting module NIOEmbedded
[241/290] Compiling NIOEmbedded Embedded.swift
[242/290] Compiling NIOPosix SocketProtocols.swift
[243/290] Compiling NIOPosix System.swift
[244/290] Compiling NIOPosix Thread.swift
[245/290] Compiling NIOPosix ThreadPosix.swift
[246/290] Compiling NIOPosix ThreadWindows.swift
[247/295] Emitting module NIOPosix
[248/295] Compiling NIOPosix HappyEyeballs.swift
[249/295] Compiling NIOPosix IO.swift
[250/295] Compiling NIOPosix IntegerBitPacking.swift
[251/295] Compiling NIOPosix IntegerTypes.swift
[252/295] Compiling NIOPosix Linux.swift
[253/295] Compiling NIOPosix LinuxCPUSet.swift
[254/295] Compiling NIOPosix BSDSocketAPICommon.swift
[255/295] Compiling NIOPosix BSDSocketAPIPosix.swift
[256/295] Compiling NIOPosix BSDSocketAPIWindows.swift
[257/295] Compiling NIOPosix BaseSocket.swift
[258/295] Compiling NIOPosix BaseSocketChannel+SocketOptionProvider.swift
[259/295] Compiling NIOPosix BaseSocketChannel.swift
[260/295] Compiling NIOPosix SelectorKqueue.swift
[261/295] Compiling NIOPosix SelectorUring.swift
[262/295] Compiling NIOPosix ServerSocket.swift
[263/295] Compiling NIOPosix Socket.swift
[264/295] Compiling NIOPosix SocketChannel.swift
[265/295] Compiling NIOPosix BaseStreamSocketChannel.swift
[266/295] Compiling NIOPosix Bootstrap.swift
[267/295] Compiling NIOPosix ControlMessage.swift
[268/295] Compiling NIOPosix DatagramVectorReadManager.swift
[269/295] Compiling NIOPosix FileDescriptor.swift
[270/295] Compiling NIOPosix GetaddrinfoResolver.swift
[271/295] Compiling NIOPosix Selectable.swift
[272/295] Compiling NIOPosix SelectableChannel.swift
[273/295] Compiling NIOPosix SelectableEventLoop.swift
[274/295] Compiling NIOPosix SelectorEpoll.swift
[275/295] Compiling NIOPosix SelectorGeneric.swift
[276/295] Compiling NIOPosix PooledRecvBufferAllocator.swift
[277/295] Compiling NIOPosix PosixSingletons+ConcurrencyTakeOver.swift
[278/295] Compiling NIOPosix PosixSingletons.swift
[279/295] Compiling NIOPosix RawSocketBootstrap.swift
[280/295] Compiling NIOPosix Resolver.swift
[281/295] Compiling NIOPosix PendingWritesManager.swift
[282/295] Compiling NIOPosix PipeChannel.swift
[283/295] Compiling NIOPosix PipePair.swift
[284/295] Compiling NIOPosix PointerHelpers.swift
[285/295] Compiling NIOPosix Pool.swift
[286/295] Compiling NIOPosix UnsafeTransfer.swift
[287/295] Compiling NIOPosix Utilities.swift
[288/295] Compiling NIOPosix VsockAddress.swift
[289/295] Compiling NIOPosix VsockChannelEvents.swift
[290/295] Compiling NIOPosix resource_bundle_accessor.swift
[291/295] Compiling NIOPosix LinuxUring.swift
[292/295] Compiling NIOPosix MultiThreadedEventLoopGroup.swift
[293/295] Compiling NIOPosix NIOThreadPool.swift
[294/295] Compiling NIOPosix NonBlockingFileIO.swift
[295/295] Compiling NIOPosix PendingDatagramWritesManager.swift
[296/297] Compiling NIO Exports.swift
[297/297] Emitting module NIO
[298/301] Compiling NIOFoundationCompat Codable+ByteBuffer.swift
[299/301] Compiling NIOFoundationCompat JSONSerialization+ByteBuffer.swift
[300/301] Emitting module NIOFoundationCompat
[301/301] Compiling NIOFoundationCompat ByteBuffer-foundation.swift
[302/362] Compiling NIOSSH ActiveState.swift
[303/362] Compiling NIOSSH IdleState.swift
[304/362] Compiling NIOSSH KeyExchangeState.swift
[305/362] Compiling NIOSSH ReceivedKexInitWhenActiveState.swift
[306/362] Compiling NIOSSH ReceivedNewKeysState.swift
[307/362] Compiling NIOSSH RekeyingReceivedNewKeysState.swift
[308/362] Compiling NIOSSH RekeyingSentNewKeysState.swift
[309/368] Emitting module NIOSSH
[310/368] Compiling NIOSSH ByteBuffer+SSH.swift
[311/368] Compiling NIOSSH CSPRNG.swift
[312/368] Compiling NIOSSH ChildChannelOptions.swift
[313/368] Compiling NIOSSH ChildChannelStateMachine.swift
[314/368] Compiling NIOSSH ChildChannelUserEvents.swift
[315/368] Compiling NIOSSH ChildChannelWindowManager.swift
[316/368] Compiling NIOSSH ChildChannelWritabilityManager.swift
[317/368] Compiling NIOSSH OutboundFlowController.swift
[318/368] Compiling NIOSSH SSHChannelData.swift
[319/368] Compiling NIOSSH SSHChannelIdentifier.swift
[320/368] Compiling NIOSSH SSHChannelMultiplexer.swift
[321/368] Compiling NIOSSH SSHChannelType.swift
[322/368] Compiling NIOSSH SSHChildChannel.swift
[323/368] Compiling NIOSSH AcceptsChannelMessages.swift
[324/368] Compiling NIOSSH AcceptsKeyExchangeMessages.swift
[325/368] Compiling NIOSSH AcceptsUserAuthMessages.swift
[326/368] Compiling NIOSSH AcceptsVersionMessages.swift
[327/368] Compiling NIOSSH SendsChannelMessages.swift
[328/368] Compiling NIOSSH SendsKeyExchangeMessages.swift
[329/368] Compiling NIOSSH SendsUserAuthMessages.swift
[330/368] Compiling NIOSSH SSHConnectionStateMachine.swift
[331/368] Compiling NIOSSH ServerUserAuthenticationDelegate.swift
[332/368] Compiling NIOSSH SimplePasswordDelegate.swift
[333/368] Compiling NIOSSH UserAuthDelegate.swift
[334/368] Compiling NIOSSH UserAuthSignablePayload.swift
[335/368] Compiling NIOSSH UserAuthenticationMethod.swift
[336/368] Compiling NIOSSH UserAuthenticationStateMachine.swift
[337/368] Compiling NIOSSH SSHServerConfiguration.swift
[338/368] Compiling NIOSSH SSHTerminalModes.swift
[339/368] Compiling NIOSSH AESGCM.swift
[340/368] Compiling NIOSSH SSHTransportProtection.swift
[341/368] Compiling NIOSSH ClientUserAuthenticationDelegate.swift
[342/368] Compiling NIOSSH DenyAllServerAuthDelegate.swift
[343/368] Compiling NIOSSH RekeyingState.swift
[344/368] Compiling NIOSSH SentKexInitWhenActiveState.swift
[345/368] Compiling NIOSSH SentNewKeysState.swift
[346/368] Compiling NIOSSH SentVersionState.swift
[347/368] Compiling NIOSSH UserAuthenticationState.swift
[348/368] Compiling NIOSSH Constants.swift
[349/368] Compiling NIOSSH GlobalRequestDelegate.swift
[350/368] Compiling NIOSSH ECDHCompatibleKey.swift
[351/368] Compiling NIOSSH EllipticCurveKeyExchange.swift
[352/368] Compiling NIOSSH SSHKeyExchangeResult.swift
[353/368] Compiling NIOSSH SSHKeyExchangeStateMachine.swift
[354/368] Compiling NIOSSH ClientServerAuthenticationDelegate.swift
[355/368] Compiling NIOSSH CustomKeys.swift
[356/368] Compiling NIOSSH NIOSSHCertifiedPublicKey.swift
[357/368] Compiling NIOSSH NIOSSHPrivateKey.swift
[358/368] Compiling NIOSSH NIOSSHPublicKey.swift
[359/368] Compiling NIOSSH NIOSSHSignature.swift
[360/368] Compiling NIOSSH NIOSSHError.swift
[361/368] Compiling NIOSSH NIOSSHHandler.swift
[362/368] Compiling NIOSSH NIOSSHSendable.swift
[363/368] Compiling NIOSSH Role.swift
[364/368] Compiling NIOSSH SSHClientConfiguration.swift
[365/368] Compiling NIOSSH SSHEncryptablePacketPayload.swift
[366/368] Compiling NIOSSH SSHMessages.swift
[367/368] Compiling NIOSSH SSHPacketParser.swift
[368/368] Compiling NIOSSH SSHPacketSerializer.swift
[369/400] Compiling Citadel Client.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:183:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
181 | let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
182 | let session = try await handshakeHandler.authenticated.map {
183 | SSHClientSession(channel: channel, sshHandler: sshHandler)
| `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
184 | }.get()
185 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
24 | /// other usage models, including port forwarding. It is also able to construct somewhat
25 | /// arbitrary secure multiplexed channels.
26 | public final class NIOSSHHandler {
| `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
27 | internal var channel: Channel? {
28 | self.context.map { $0.channel }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
2 | import Crypto
3 | import Logging
4 | import NIOSSH
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
5 |
6 | extension SSHAlgorithms.Modification<NIOSSHTransportProtection.Type> {
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:213:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
211 | let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
212 | let session = try await handshakeHandler.authenticated.map {
213 | SSHClientSession(channel: channel, sshHandler: sshHandler)
| `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
214 | }.get()
215 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
24 | /// other usage models, including port forwarding. It is also able to construct somewhat
25 | /// arbitrary secure multiplexed channels.
26 | public final class NIOSSHHandler {
| `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
27 | internal var channel: Channel? {
28 | self.context.map { $0.channel }
[370/400] Compiling Citadel ClientSession.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:183:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
181 | let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
182 | let session = try await handshakeHandler.authenticated.map {
183 | SSHClientSession(channel: channel, sshHandler: sshHandler)
| `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
184 | }.get()
185 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
24 | /// other usage models, including port forwarding. It is also able to construct somewhat
25 | /// arbitrary secure multiplexed channels.
26 | public final class NIOSSHHandler {
| `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
27 | internal var channel: Channel? {
28 | self.context.map { $0.channel }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
2 | import Crypto
3 | import Logging
4 | import NIOSSH
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
5 |
6 | extension SSHAlgorithms.Modification<NIOSSHTransportProtection.Type> {
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:213:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
211 | let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
212 | let session = try await handshakeHandler.authenticated.map {
213 | SSHClientSession(channel: channel, sshHandler: sshHandler)
| `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
214 | }.get()
215 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
24 | /// other usage models, including port forwarding. It is also able to construct somewhat
25 | /// arbitrary secure multiplexed channels.
26 | public final class NIOSSHHandler {
| `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
27 | internal var channel: Channel? {
28 | self.context.map { $0.channel }
[371/400] Compiling Citadel DirectTCPIP+Client.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:183:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
181 | let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
182 | let session = try await handshakeHandler.authenticated.map {
183 | SSHClientSession(channel: channel, sshHandler: sshHandler)
| `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
184 | }.get()
185 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
24 | /// other usage models, including port forwarding. It is also able to construct somewhat
25 | /// arbitrary secure multiplexed channels.
26 | public final class NIOSSHHandler {
| `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
27 | internal var channel: Channel? {
28 | self.context.map { $0.channel }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
2 | import Crypto
3 | import Logging
4 | import NIOSSH
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
5 |
6 | extension SSHAlgorithms.Modification<NIOSSHTransportProtection.Type> {
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:213:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
211 | let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
212 | let session = try await handshakeHandler.authenticated.map {
213 | SSHClientSession(channel: channel, sshHandler: sshHandler)
| `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
214 | }.get()
215 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
24 | /// other usage models, including port forwarding. It is also able to construct somewhat
25 | /// arbitrary secure multiplexed channels.
26 | public final class NIOSSHHandler {
| `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
27 | internal var channel: Channel? {
28 | self.context.map { $0.channel }
[372/400] Compiling Citadel DirectTCPIP+Server.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:183:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
181 | let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
182 | let session = try await handshakeHandler.authenticated.map {
183 | SSHClientSession(channel: channel, sshHandler: sshHandler)
| `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
184 | }.get()
185 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
24 | /// other usage models, including port forwarding. It is also able to construct somewhat
25 | /// arbitrary secure multiplexed channels.
26 | public final class NIOSSHHandler {
| `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
27 | internal var channel: Channel? {
28 | self.context.map { $0.channel }
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
2 | import Crypto
3 | import Logging
4 | import NIOSSH
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIOSSH'
5 |
6 | extension SSHAlgorithms.Modification<NIOSSHTransportProtection.Type> {
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Client.swift:213:60: warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
211 | let handshakeHandler = try await channel.pipeline.handler(type: ClientHandshakeHandler.self).get()
212 | let session = try await handshakeHandler.authenticated.map {
213 | SSHClientSession(channel: channel, sshHandler: sshHandler)
| `- warning: capture of 'sshHandler' with non-sendable type 'NIOSSHHandler' in a '@Sendable' closure
214 | }.get()
215 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-nio-ssh/Sources/NIOSSH/NIOSSHHandler.swift:26:20: note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
24 | /// other usage models, including port forwarding. It is also able to construct somewhat
25 | /// arbitrary secure multiplexed channels.
26 | public final class NIOSSHHandler {
| `- note: class 'NIOSSHHandler' does not conform to the 'Sendable' protocol
27 | internal var channel: Channel? {
28 | self.context.map { $0.channel }
[373/403] Compiling Citadel Errors.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Exec/Server/ExecHandler.swift:143:19: warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
141 | .channelInitializer { pipeChannel in
142 | pipeChannel.pipeline.addHandlers(SSHInboundChannelDataWrapper(), theirs)
143 | }.withPipes(
| |- warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
| `- note: use 'takingOwnershipOfDescriptors(input:output:)' instead
144 | inputDescriptor: dup(handler.stdoutPipe.fileHandleForReading.fileDescriptor),
145 | outputDescriptor: dup(handler.stdinPipe.fileHandleForWriting.fileDescriptor)
[374/403] Compiling Citadel ExecClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Exec/Server/ExecHandler.swift:143:19: warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
141 | .channelInitializer { pipeChannel in
142 | pipeChannel.pipeline.addHandlers(SSHInboundChannelDataWrapper(), theirs)
143 | }.withPipes(
| |- warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
| `- note: use 'takingOwnershipOfDescriptors(input:output:)' instead
144 | inputDescriptor: dup(handler.stdoutPipe.fileHandleForReading.fileDescriptor),
145 | outputDescriptor: dup(handler.stdinPipe.fileHandleForWriting.fileDescriptor)
[375/403] Compiling Citadel ExecDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Exec/Server/ExecHandler.swift:143:19: warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
141 | .channelInitializer { pipeChannel in
142 | pipeChannel.pipeline.addHandlers(SSHInboundChannelDataWrapper(), theirs)
143 | }.withPipes(
| |- warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
| `- note: use 'takingOwnershipOfDescriptors(input:output:)' instead
144 | inputDescriptor: dup(handler.stdoutPipe.fileHandleForReading.fileDescriptor),
145 | outputDescriptor: dup(handler.stdinPipe.fileHandleForWriting.fileDescriptor)
[376/403] Compiling Citadel ExecHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Exec/Server/ExecHandler.swift:143:19: warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
141 | .channelInitializer { pipeChannel in
142 | pipeChannel.pipeline.addHandlers(SSHInboundChannelDataWrapper(), theirs)
143 | }.withPipes(
| |- warning: 'withPipes(inputDescriptor:outputDescriptor:)' is deprecated: renamed to 'takingOwnershipOfDescriptors(input:output:)'
| `- note: use 'takingOwnershipOfDescriptors(input:output:)' instead
144 | inputDescriptor: dup(handler.stdoutPipe.fileHandleForReading.fileDescriptor),
145 | outputDescriptor: dup(handler.stdinPipe.fileHandleForWriting.fileDescriptor)
[377/403] Emitting module Citadel
[378/403] Compiling Citadel SFTPClientInboundHandler.swift
[379/403] Compiling Citadel SFTPFile.swift
[380/403] Compiling Citadel SFTPBasicEnums.swift
[381/403] Compiling Citadel RSA.swift
[382/403] Compiling Citadel BCrypt.swift
[383/403] Compiling Citadel ByteBufferHelpers.swift
[384/403] Compiling Citadel ChannelUnwrapper.swift
[385/403] Compiling Citadel SSHAuthenticationMethod.swift
[386/403] Compiling Citadel SSHCert.swift
[387/403] Compiling Citadel SSHConnectionPoolSettings.swift
[388/403] Compiling Citadel SFTPFileFlags.swift
[389/403] Compiling Citadel SFTPMessage.swift
[390/403] Compiling Citadel SFTPMessageParser.swift
[391/403] Compiling Citadel SFTPSerializer.swift
[392/403] Compiling Citadel SFTPServer.swift
[393/403] Compiling Citadel SFTPServerInboundHandler.swift
[394/403] Compiling Citadel AES.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Algorithms/DH-Helpers.swift:98:18: warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
96 | let serialized = Array(bignum.serialize())
97 | (buffer.baseAddress! + 1)
98 | .assign(from: serialized, count: serialized.count)
| |- warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
| `- note: use 'update(from:count:)' instead
99 |
100 | if buffer[1] & 0x80 != 0 {
[395/403] Compiling Citadel DH-Helpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Algorithms/DH-Helpers.swift:98:18: warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
96 | let serialized = Array(bignum.serialize())
97 | (buffer.baseAddress! + 1)
98 | .assign(from: serialized, count: serialized.count)
| |- warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
| `- note: use 'update(from:count:)' instead
99 |
100 | if buffer[1] & 0x80 != 0 {
[396/403] Compiling Citadel DiffieHellmanGroup14Sha1.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Algorithms/DH-Helpers.swift:98:18: warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
96 | let serialized = Array(bignum.serialize())
97 | (buffer.baseAddress! + 1)
98 | .assign(from: serialized, count: serialized.count)
| |- warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
| `- note: use 'update(from:count:)' instead
99 |
100 | if buffer[1] & 0x80 != 0 {
[397/403] Compiling Citadel DiffieHellmanGroup14Sha256.swift
/Users/admin/builder/spi-builder-workspace/Sources/Citadel/Algorithms/DH-Helpers.swift:98:18: warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
96 | let serialized = Array(bignum.serialize())
97 | (buffer.baseAddress! + 1)
98 | .assign(from: serialized, count: serialized.count)
| |- warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
| `- note: use 'update(from:count:)' instead
99 |
100 | if buffer[1] & 0x80 != 0 {
[398/403] Compiling Citadel NIOGlueHandler.swift
[399/403] Compiling Citadel OpenSSHKey.swift
[400/403] Compiling Citadel SFTPClient.swift
[401/403] Compiling Citadel Server.swift
[402/403] Compiling Citadel ShellDelegate.swift
[403/403] Compiling Citadel TTY.swift
Build of target: 'Citadel' complete! (11.40s)
1458
9 /Users/admin/builder/spi-builder-workspace/.docs/orlandos-nl/citadel/main
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/orlandos-nl/citadel/main
File count: 1458
Doc size: 9.0MB
Preparing doc bundle ...
Uploading prod-orlandos-nl-citadel-main-342479d2.zip to s3://spi-docs-inbox/prod-orlandos-nl-citadel-main-342479d2.zip
Copying... [10%]
Copying... [21%]
Copying... [31%]
Copying... [41%]
Copying... [52%]
Copying... [62%]
Copying... [73%]
Copying... [83%]
Copying... [93%]
Copying... [100%]
Done.