Build Information
Successful build of SwiftGopher, reference v3.1.0 (a537a1), with Swift 6.4 for macOS (SPM) on 13 Oct 2026 01:10:55 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/navanchauhan/swift-gopher.git
Reference: v3.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/navanchauhan/swift-gopher
* tag v3.1.0 -> FETCH_HEAD
HEAD is now at a537a1a Add built-in HTTP proxy for browsing gopher in a browser (v3.1.0) [skip release]
Cloned https://github.com/navanchauhan/swift-gopher.git
Revision (git rev-parse @):
a537a1ac07de2371c222b147ffabf3b57a934fb2
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/navanchauhan/swift-gopher.git at v3.1.0
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/navanchauhan/swift-gopher.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Constructing description]
[Pre-planning 1 / 983]
[Planning deferred tasks]
[184 / 398]
[189 / 398]
[207 / 406] ArgumentParserToolInfo
[209 / 425] CNIOWindows
[218 / 444] CNIOLinux
[232 / 455]
[248 / 515] ArgumentParserToolInfo
[276 / 515]
[283 / 535]
[287 / 535]
[301 / 535]
[310 / 535] SpanPreview
[319 / 535] _NIOBase64
[326 / 535] Atomics
[334 / 537] Atomics
[339 / 537] CNIODarwin
[344 / 537] CNIODarwin
[346 / 537]
[351 / 537] _NIODataStructures
[381 / 537] NIOConcurrencyHelpers
[385 / 537] Logging
[387 / 537]
[395 / 537]
[401 / 537] CNIODarwin
[408 / 538]
[421 / 543] Atomics
[431 / 555] DequeModule
[436 / 568] Logging
[441 / 568] DequeModule
[441 / 568]
[447 / 568] ArgumentParser
[449 / 568] GopherHelpers
[456 / 568] GopherHelpers
[460 / 568] ArgumentParser
[467 / 568] DequeModule
[475 / 569] ArgumentParser
[477 / 569] GopherHelpers
[479 / 582]
[486 / 582] NIOCore
[489 / 582] NIOCore
[491 / 582] ArgumentParser
[492 / 582] NIOCore
[492 / 582] CNIOAtomics
[494 / 582] NIOCore
[505 / 585] NIOEmbedded
[509 / 589] NIOFoundationEssentialsCompat
[516 / 607]
[536 / 607] NIOPosix
[537 / 607] NIOPosix
[539 / 607] NIOPosix
[540 / 607] NIOFoundationEssentialsCompat
[543 / 607] NIOPosix
[550 / 608] NIOPosix
[550 / 608] NIO
[558 / 610]
[561 / 612] NIOTLS
[567 / 618] NIOFoundationCompat
[577 / 622] NIOFoundationCompat
[585 / 623] NIOTLS
[586 / 623] NIOTransportServices
[588 / 636]
[598 / 636] NIOTransportServices
[606 / 637] NIOTransportServices
[607 / 637] SwiftGopherClient
[611 / 641] SwiftGopherClient
[618 / 642] SwiftGopherClient
[619 / 642] GopherProxy
[626 / 649] GopherProxy
[635 / 650] GopherProxy
[636 / 650] NIOPosix
[641 / 650] NIOFoundationCompat
[653 / 659] GopherProxy
[654 / 659] swift-gopher-product
[655 / 659] swift-gopher-product
[657 / 659] swift-gopher-product
Build complete! (18.01 sec)
Fetching https://github.com/apple/swift-nio-transport-services.git
Fetching https://github.com/apple/swift-log.git
Fetching https://github.com/apple/swift-nio
Fetching https://github.com/apple/swift-argument-parser.git
[1/8281] Fetching swift-log
[2/11148] Fetching swift-log, swift-nio-transport-services
[11149/30260] Fetching swift-log, swift-nio-transport-services, swift-argument-parser
[11150/116657] Fetching swift-log, swift-nio-transport-services, swift-argument-parser, swift-nio
Fetched https://github.com/apple/swift-nio-transport-services.git (10.22s)
Fetched https://github.com/apple/swift-log.git (10.22s)
Fetched https://github.com/apple/swift-argument-parser.git (10.22s)
[81214/86397] Fetching swift-nio
Fetched https://github.com/apple/swift-nio (12.03s)
Computing version for https://github.com/apple/swift-nio-transport-services.git
Computed https://github.com/apple/swift-nio-transport-services.git at 1.28.0 (12.63s)
Fetching https://github.com/apple/swift-atomics.git
[1/1889] Fetching swift-atomics
Fetched https://github.com/apple/swift-atomics.git (1.08s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.3.1 (1.68s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.16.1 (0.56s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.8.2 (0.55s)
Computing version for https://github.com/apple/swift-nio
Computed https://github.com/apple/swift-nio at 2.104.0 (0.76s)
Fetching https://github.com/apple/swift-system.git
Fetching https://github.com/apple/swift-collections.git
[1/7287] Fetching swift-system
[1022/36031] Fetching swift-system, swift-collections
Fetched https://github.com/apple/swift-collections.git (3.41s)
Fetched https://github.com/apple/swift-system.git (3.41s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.8.1 (4.01s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.7.3 (0.65s)
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.7.3
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.16.1
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.8.1
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.8.2
Creating working copy for https://github.com/apple/swift-nio-transport-services.git
Working copy of https://github.com/apple/swift-nio-transport-services.git resolved at 1.28.0
Creating working copy for https://github.com/apple/swift-nio
Working copy of https://github.com/apple/swift-nio resolved at 2.104.0
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.3.1
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGopherClient/gopherClient.swift:355:53: [1;33mwarning: [1;39mtype 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m353 |[0;0m .channelOption(ChannelOptions.socketOption(.so_reuseaddr), value: 1)
[0;36m354 |[0;0m .channelInitializer { channel in
[0;36m355 |[0;0m channel.pipeline.addHandler(handler)
[0;36m|[0;0m `- [1;33mwarning: [1;39mtype 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m356 |[0;0m }
[0;36m357 |[0;0m } else {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGopherClient/GopherDataResponseHandler.swift:7:13: [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m5 |[0;0m import NIO
[0;36m6 |[0;0m
[0;36m7 |[0;0m final class GopherDataResponseHandler: ChannelInboundHandler {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m8 |[0;0m typealias InboundIn = ByteBuffer
[0;36m9 |[0;0m typealias OutboundOut = ByteBuffer
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGopherClient/gopherClient.swift:361:53: [1;33mwarning: [1;39mtype 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m359 |[0;0m .channelOption(ChannelOptions.socketOption(.so_reuseaddr), value: 1)
[0;36m360 |[0;0m .channelInitializer { channel in
[0;36m361 |[0;0m channel.pipeline.addHandler(handler)
[0;36m|[0;0m `- [1;33mwarning: [1;39mtype 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m362 |[0;0m }
[0;36m363 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGopherClient/GopherDataResponseHandler.swift:7:13: [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m5 |[0;0m import NIO
[0;36m6 |[0;0m
[0;36m7 |[0;0m final class GopherDataResponseHandler: ChannelInboundHandler {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m8 |[0;0m typealias InboundIn = ByteBuffer
[0;36m9 |[0;0m typealias OutboundOut = ByteBuffer
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGopherClient/gopherClient.swift:355:53: [1;33mwarning: [1;39mcapture of 'handler' with non-Sendable type 'GopherDataResponseHandler' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m353 |[0;0m .channelOption(ChannelOptions.socketOption(.so_reuseaddr), value: 1)
[0;36m354 |[0;0m .channelInitializer { channel in
[0;36m355 |[0;0m channel.pipeline.addHandler(handler)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'handler' with non-Sendable type 'GopherDataResponseHandler' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m356 |[0;0m }
[0;36m357 |[0;0m } else {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGopherClient/GopherDataResponseHandler.swift:7:13: [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m5 |[0;0m import NIO
[0;36m6 |[0;0m
[0;36m7 |[0;0m final class GopherDataResponseHandler: ChannelInboundHandler {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m8 |[0;0m typealias InboundIn = ByteBuffer
[0;36m9 |[0;0m typealias OutboundOut = ByteBuffer
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGopherClient/gopherClient.swift:361:53: [1;33mwarning: [1;39mcapture of 'handler' with non-Sendable type 'GopherDataResponseHandler' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m359 |[0;0m .channelOption(ChannelOptions.socketOption(.so_reuseaddr), value: 1)
[0;36m360 |[0;0m .channelInitializer { channel in
[0;36m361 |[0;0m channel.pipeline.addHandler(handler)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'handler' with non-Sendable type 'GopherDataResponseHandler' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m362 |[0;0m }
[0;36m363 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGopherClient/GopherDataResponseHandler.swift:7:13: [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m5 |[0;0m import NIO
[0;36m6 |[0;0m
[0;36m7 |[0;0m final class GopherDataResponseHandler: ChannelInboundHandler {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m8 |[0;0m typealias InboundIn = ByteBuffer
[0;36m9 |[0;0m typealias OutboundOut = ByteBuffer
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
/Users/admin/builder/spi-builder-workspace/Sources/swift-gopher/gopherHandler.swift:53:13: [1;33mwarning: [1;39mcapture of 'context' with non-Sendable type 'ChannelHandlerContext' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m51 |[0;0m let outputBuffer = context.channel.allocator.buffer(bytes: response.data)
[0;36m52 |[0;0m context.writeAndFlush(wrapOutboundOut(outputBuffer)).whenComplete { _ in
[0;36m53 |[0;0m context.close(mode: .all, promise: nil)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'context' with non-Sendable type 'ChannelHandlerContext' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m54 |[0;0m }
[0;36m55 |[0;0m }
NIOCore.ChannelHandlerContext:1:20: [1;39mnote: [1;39mclass 'ChannelHandlerContext' does not conform to the 'Sendable' protocol[0;0m
[0;36m1 |[0;0m final public class ChannelHandlerContext : NIOCore.ChannelInvoker {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'ChannelHandlerContext' does not conform to the 'Sendable' protocol[0;0m
[0;36m2 |[0;0m public let pipeline: NIOCore.ChannelPipeline
[0;36m3 |[0;0m public var channel: any NIOCore.Channel { get }
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
/Users/admin/builder/spi-builder-workspace/Sources/swift-gopher/server.swift:120:17: [1;33mwarning: [1;39mtype 'GopherHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m118 |[0;0m .childChannelInitializer { channel in
[0;36m119 |[0;0m channel.pipeline.addHandlers([
[0;36m120 |[0;0m GopherHandler(
[0;36m|[0;0m `- [1;33mwarning: [1;39mtype 'GopherHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m121 |[0;0m logger: logger,
[0;36m122 |[0;0m gopherdata_dir: localGopherDataDir,
/Users/admin/builder/spi-builder-workspace/Sources/swift-gopher/gopherHandler.swift:7:13: [1;39mnote: [1;39mclass 'GopherHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m5 |[0;0m import NIO
[0;36m6 |[0;0m
[0;36m7 |[0;0m final class GopherHandler: ChannelInboundHandler {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'GopherHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m8 |[0;0m typealias InboundIn = ByteBuffer
[0;36m9 |[0;0m typealias OutboundOut = ByteBuffer
Build complete.
{
"dependencies" : [
{
"identity" : "swift-nio",
"requirement" : {
"range" : [
{
"lower_bound" : "2.0.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio"
},
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.9.1",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
},
{
"identity" : "swift-nio-transport-services",
"requirement" : {
"range" : [
{
"lower_bound" : "1.20.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio-transport-services.git"
}
],
"manifest_display_name" : "SwiftGopher",
"name" : "SwiftGopher",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "6.0"
}
],
"products" : [
{
"name" : "SwiftGopherClient",
"targets" : [
"SwiftGopherClient"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "swift-gopher",
"targets" : [
"swift-gopher"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "swift_gopher",
"module_type" : "SwiftTarget",
"name" : "swift-gopher",
"path" : "Sources/swift-gopher",
"product_dependencies" : [
"NIO",
"ArgumentParser",
"Logging"
],
"product_memberships" : [
"swift-gopher"
],
"sources" : [
"GopherRequestProcessor.swift",
"HTTPProxyHandler.swift",
"HTTPProxySupport.swift",
"WindowsGopherServer.swift",
"WindowsHTTPProxyServer.swift",
"gopherHandler.swift",
"helpers.swift",
"server.swift"
],
"target_dependencies" : [
"GopherHelpers",
"GopherProxy"
],
"type" : "executable"
},
{
"c99name" : "SwiftGopherServerTests",
"module_type" : "SwiftTarget",
"name" : "SwiftGopherServerTests",
"path" : "Tests/SwiftGopherServerTests",
"product_dependencies" : [
"Logging"
],
"sources" : [
"ServerHelpersTests.swift",
"SwiftGopherServerTests.swift",
"WindowsGopherRequestProcessorTests.swift"
],
"target_dependencies" : [
"swift-gopher"
],
"type" : "test"
},
{
"c99name" : "SwiftGopherClientTests",
"module_type" : "SwiftTarget",
"name" : "SwiftGopherClientTests",
"path" : "Tests/SwiftGopherClientTests",
"sources" : [
"GopherHelpersTests.swift",
"GopherResponseParserTests.swift",
"SwiftGopherClientTests.swift"
],
"target_dependencies" : [
"SwiftGopherClient"
],
"type" : "test"
},
{
"c99name" : "SwiftGopherClient",
"module_type" : "SwiftTarget",
"name" : "SwiftGopherClient",
"path" : "Sources/SwiftGopherClient",
"product_dependencies" : [
"NIO",
"NIOTransportServices",
"Logging"
],
"product_memberships" : [
"SwiftGopherClient",
"swift-gopher"
],
"sources" : [
"GopherDataResponseHandler.swift",
"GopherResponseParser.swift",
"gopherClient.swift"
],
"target_dependencies" : [
"GopherHelpers"
],
"type" : "library"
},
{
"c99name" : "GopherProxyTests",
"module_type" : "SwiftTarget",
"name" : "GopherProxyTests",
"path" : "Tests/GopherProxyTests",
"sources" : [
"GopherProxyTests.swift"
],
"target_dependencies" : [
"GopherProxy"
],
"type" : "test"
},
{
"c99name" : "GopherProxy",
"module_type" : "SwiftTarget",
"name" : "GopherProxy",
"path" : "Sources/GopherProxy",
"product_dependencies" : [
"Logging"
],
"product_memberships" : [
"swift-gopher"
],
"sources" : [
"GopherFetching.swift",
"GopherHTTPProxy.swift",
"GopherLocation.swift",
"HTMLRenderer.swift",
"HTTPMessage.swift",
"ProxyPolicy.swift"
],
"target_dependencies" : [
"GopherHelpers",
"SwiftGopherClient"
],
"type" : "library"
},
{
"c99name" : "GopherHelpers",
"module_type" : "SwiftTarget",
"name" : "GopherHelpers",
"path" : "Sources/GopherHelpers",
"product_memberships" : [
"SwiftGopherClient",
"swift-gopher"
],
"sources" : [
"GopherHelpers.swift"
],
"type" : "library"
}
],
"tools_version" : "6.1"
}
Done.