← Back to issue list

Brief Emitter mode still appears to be verbose when plugins are called ?

View original Github issue

Metadata

Project
craft-cli
Number
#243
Type
issue
State
open
Author
flotter
Labels
—
Created
Updated
Closed
—

Current evaluation

User asks whether BRIEF mode can suppress subprocess output passed through emit.open_stream(); maintainers confirmed subprocess output is intentionally echoed ephemerally in BRIEF and deferred the question of desired behaviour.

Suggested action: needs triage

Reason: lengau explicitly said "I'm not sure what the correct behaviour here is" and handed the decision to tigarmo after a meeting was scheduled; the issue is still unlabelled and unassigned with no follow-up in ~2.5 years. The code confirms open_stream() always writes to sys.stderr in BRIEF mode (messages.py:707-733, streaming_brief only adds prefixes), and lengau's own reproducer "works as intended" for him, so the root cause may lie in craft-parts' _create_and_run_script rather than a craft-cli defect — making this an unresolved expectation/design question needing a maintainer decision, not a confirmed bug.

Evaluated by: mr-cal-bot

Impact: 28 Quick Win: 4 Complexity: 58 Confidence: 72 Actionability: 30

Issue body

### What needs to get done I am not 100% sure if my observation is correct, but hopefully an expert could help me out ? I am starting the Emitter with ```streaming_brief=False``` In fact the CLI startup code in some secret craft project looks like this: ```python for lib_name in ("craft_providers", "craft_parts"): logger = logging.getLogger(lib_name) logger.setLevel(logging.DEBUG) emit.init( EmitterMode.BRIEF, "XXXcraft", f"Starting XXXcraft version {__version__}", log_filepath=logpath, streaming_brief=False, ) ``` and then inside my lifecycle code (not using craft-application, but doing the same thing) ```python with self._lcm.action_executor() as aex: emit.message("Processing firmware parts ...") for act in actions: emit.progress( f"{step_to_action(act.step, True)} {act.part_name!r} ..." ) with emit.open_stream() as stream: aex.execute([act], stdout=stream, stderr=stream) ``` However when I look at the plugin handler code, it looks like we are passing the stdout / stderr to the script so that whatever is processed by the script, will result in each shell line being echoed, and as a result, I see lots of lines: ```shell + ln ... .... + cp x .. y ``` See: craft-parts/craft_part/_create_and_run_script _create_and_run_script(..) I see the same detailed output from the **autotools** plugin. ### Why it needs to get done Am I missing a trick to suppress the detailed output while running a progress runner in BRIEF emitter mode ?

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 28
Quick Win: 4
Complexity: 58
Confidence: 72
Actionability: 30
needs triage User asks whether BRIEF mode can suppress subprocess output passed through emit.open_stream(); maintainers confirmed subprocess output is intentionally echoed ephemerally in BRIEF and deferred the question of desired behaviour.
qwen/qwen3.6-35b-a3b
Impact: 60
Quick Win: 21
Complexity: 30
Confidence: 80
Actionability: 50
keep open BRIEF mode with streaming_brief=False still shows verbose plugin output via open_stream. Maintainers are discussing expected behavior.
qwen/qwen3.8-27b
Impact: 35
Quick Win: 19
Staleness: 80
Complexity: 45
Confidence: 75
Support Request: 55
needs triage Question about whether open_stream() subprocess output should be suppressed in BRIEF emitter mode; moved from craft-parts to craft-cli, meeting scheduled to discuss expected behavior but no resolution recorded; code still shows subprocess output ephemerally in BRIEF mode.
qwen/qwen3.6-35b-a3b
Staleness: 92
Complexity: 65
Confidence: 88
Support Request: 85
close stale Cross-repo discussion from over two years ago about output suppression in BRIEF emitter mode. Stalled without maintainer resolution or labels, representing a support expectation mismatch rather than a clear bug.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 60
Confidence: 45
Support Request: 75
needs triage User reports verbose plugin output in BRIEF emitter mode despite streaming_brief=False. Discussion stalled over two years ago after a meeting was scheduled to clarify expected behavior. No labels or assignee.

Update history

No update history recorded yet.

Related work

  • Related To: craft-cli#166 (confidence 60%)

    Commit c7e4492 'emitter: add streaming brief feature' introduced the streaming_brief flag whose interaction with open_stream is at the centre of this report; it adds prefixing but does not suppress stream output.

  • Related To: craft-cli#444 (confidence 35%)

    Commit 2253735 'fix(messages): reset terminal style after open_stream' touches the same BRIEF-mode open_stream rendering path but only fixes terminal style reset, not output visibility.

Related issues

No related issues found above the similarity threshold.