From fa7bcaf7e0d82b5638e8ddd9586e7755cbf614db Mon Sep 17 00:00:00 2001 From: Karan Date: Sat, 20 Dec 2025 06:14:41 +0530 Subject: [PATCH] WIP: Fix output stream inconsistency in swiftbuild --- Sources/Commands/SwiftBuildCommand.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Sources/Commands/SwiftBuildCommand.swift b/Sources/Commands/SwiftBuildCommand.swift index 5c366090224..a5fc8da158c 100644 --- a/Sources/Commands/SwiftBuildCommand.swift +++ b/Sources/Commands/SwiftBuildCommand.swift @@ -187,6 +187,15 @@ public struct SwiftBuildCommand: AsyncSwiftCommand { productsBuildParameters: BuildParameters, toolsBuildParameters: BuildParameters ) async throws { + // Create stdout-based observability for build output consistency. + // All build output (progress and errors/diagnostics) should go to stdout for "swift build". + let buildOutputObservability = SwiftCommandObservabilityHandler( + outputStream: TSCBasic.stdoutStream, + logLevel: swiftCommandState.logLevel, + colorDiagnostics: swiftCommandState.options.logging.colorDiagnostics + ) + let buildObservabilitySystem = ObservabilitySystem(buildOutputObservability) + let buildSystem = try await swiftCommandState.createBuildSystem( explicitProduct: options.product, shouldLinkStaticSwiftStdlib: options.shouldLinkStaticSwiftStdlib, @@ -194,7 +203,8 @@ public struct SwiftBuildCommand: AsyncSwiftCommand { toolsBuildParameters: toolsBuildParameters, // command result output goes on stdout // ie "swift build" should output to stdout - outputStream: TSCBasic.stdoutStream + outputStream: TSCBasic.stdoutStream, + observabilityScope: buildObservabilitySystem.topScope ) do { try await buildSystem.build(subset: subset, buildOutputs: [])