← Back to issue list

Allow emitter to be paused

View original Github issue

Metadata

Project
craft-cli
Number
#67
Type
issue
State
closed
Author
cmatsuoka
Labels
—
Created
Updated
Closed

Current evaluation

Emitter pausing was implemented and merged in canonical/craft-cli#69 via b8cbbc6 (merge d8171ce), with pause-related fixes in #71.

Resolution: closed resolved

Reason: PR #69 added Emitter.pause(), releasing terminal control while paused and restoring it afterward. It was merged as d8171ce; follow-up PR #71 fixed pause behavior.

Evaluated by: mr-cal-bot

No scores available.

Issue body

There are situations where we may allow a process to execute with complex terminal output. A typical example would be a craft tool re-execution inside a build provider, which would use craft-cli to report the execution progress. In this case, we don't want the spinner from the outer instance to appear during the execution of the inner instance, which can have its own spinner. A possible implementation could be a context manager that pauses the emitter.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Emitter pausing was implemented and merged in canonical/craft-cli#69 via b8cbbc6 (merge d8171ce), with pause-related fixes in #71.
stealth/space-bunny-alpha — closed resolved Emitter pausing was merged in canonical/craft-cli#69 (commit d8171ce), adding pause/resume support so nested processes can control terminal output.
qwen/qwen3.6-35b-a3b — — Closed without implementation. Maintainers noted the spinner clash was already resolved for non-TTY environments and tracked timestamp concerns separately. The request was abandoned.
qwen/qwen3.6-35b-a3b — — Closed without implementation. Reviewers noted existing subprocess TTY handling and a separate issue for timestamp suppression address the concerns, rejecting the feature request.
qwen/qwen3.6-35b-a3b — — Closed without implementation. A maintainer questioned the need, citing existing spinner fixes and issue #61, while the author insisted it is required for Snapcraft. The feature was deferred or abandoned.

Update history

No update history recorded yet.

Related work

  • Likely Fixed By: canonical/craft-cli#69 (confidence 100%)

    Merged implementation of Emitter.pause() in b8cbbc6 and merge commit d8171ce.

  • Related To: canonical/craft-cli#71 (confidence 96%)

    Merged follow-up fixes for logs and emitter activity during pause.

Related issues

Issue Project State Summary Similarity
#69 Add a 'pause' method to the Emitter (CRAFT-907). craft-cli merged Merged PR #69 (commit b8cbbc6; merge commit d8171ce) added Emitter.pause(), releasing the terminal and suspending log retrieval while paused, with examples 21 and 22.
79%
#71 Improvements/fixes for the pause situation. craft-cli merged Merged in canonical/craft-cli#71 via 94338bd (implementation 187d900): logs append instead of truncating, and emitter activity is suppressed while paused or stopped.
76%
#753 Pause the emitter while launching the user-requested shell (CRAFT-871). charmcraft merged Merged #753 via 47832a45, pausing Charmcraft’s emitter during user-requested shell launches and fixing how flake8 issues are reported.
72%
#740 Pause the Emitter when asking the user for input (CRAFT-952). charmcraft merged Merged #740 (e70ed86f; implementation 9acf2caa), pausing Charmcraft's Emitter during user-input prompts; the author confirmed it was tested on Windows.
71%