Allow emitter to be paused
Metadata
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. | |
| #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. | |
| #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. | |
| #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. |