Repository navigation
feat(cli): print the summary on stdout and remove EndOutput - #1273
Merged
Conversation
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## dylan/trunk-22400-fix-cli-output-inconsistencies-log-stream-qqq-deprecation #1273 +/- ##
===============================================================================================================
+ Coverage 85.82% 85.84% +0.01%
===============================================================================================================
Files 86 85 -1
Lines 19238 19232 -6
===============================================================================================================
- Hits 16511 16509 -2
+ Misses 2727 2723 -4 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This was referenced Oct 29, 2026
acatxnamedvirtue
approved these changes
Nov 2, 2026
acatxnamedvirtue
left a comment
Contributor
There was a problem hiding this comment.
Seems like reasonable changes
dfrankland
force-pushed
the
dylan/trunk-22404-print-the-cli-summary-on-stdout-and-remove-endoutput
branch
from
November 4, 2026 18:34
194d13a to
f5fd8c5
Compare
|
Stacked PR 1277 failed testing in the merge queue. Please investigate the failure and re-submit the stack. |
run() returns a Report, and main sends each part of it to its own stream: the summary goes to stdout with superconsole's emit_aux, while notices (deprecation warnings, BEP parse errors), the error of a run that fails outright, the test command header and the summary file message go to stderr. DisplayMessage::Final and the EndOutput trait are replaced by Report and Notice variants that carry the rendered lines. Scripts that capture only stderr will lose the summary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
main's #1287 printed Deprecation and UploadSkipped notices inside the upload summary. This branch already prints every notice on stderr through render_notices, so render UploadSkipped there and drop the copy in the summary, which would have printed each notice twice. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dfrankland
force-pushed
the
dylan/trunk-22404-print-the-cli-summary-on-stdout-and-remove-endoutput
branch
from
November 4, 2026 19:55
f5fd8c5 to
37da644
Compare
|
This pull request was merged into |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes TRUNK-22404 (part of TRUNK-18881).
The CLI's summary now goes to stdout. Logs, progress, warnings and errors stay on stderr. This is what lets TRUNK-22405 put JSON on stdout.
run()returns aReport.DisplayMessage::Final(Arc<dyn EndOutput>)and theEndOutputtrait are gone.DisplayMessage::Reportcarries the summary lines andDisplayMessage::Noticecarries everything else.Reportis written with superconsole'semit_aux, which writes to stdout after it clears the progress line on stderr.Noticeis written withemit, on stderr.testcommand's "📒 Test command outputs" header--summary-output-filemessage⚠️ BEP file had a parse error: …). They used to be oneDebug-formatted list at the top of the validate summary.cli/testsassertions that read the summary from stderr now read it from stdout. Command-line argument errors stay on stderr.upload_writes_summary_to_stdout_and_notices_to_stderr,test_command_writes_summary_to_stdout_and_its_header_to_stderrandvalidate_writes_summary_to_stdout_and_notices_to_stderr.upload_bundle_invalid_repo_rootnow checks that a run that fails outright prints its error on stderr and nothing on stdout.Stacked on #1266 (TRUNK-22400, logs on stderr). It needs that PR so logs don't mix with the summary on stdout. Merge #1266 first.
Release note
Scripts that capture only stderr will lose the summary. The analytics-uploader GitHub Action runs the CLI with
stdio: "inherit", so it isn't affected.Testing
cargo test -p trunk-analytics-cli -p displaypasses, except for the three Swift xunit tests incli/tests/upload.rs, which are known to fail locally and are unrelated to this change.🤖 Generated with Claude Code