Skip to content

Conversation

@cgwalters
Copy link
Collaborator

There really isn't any kind of single default way to run a subprocess, that's why it's tricky. Sometimes one wants to have them be async, sometimes synchronous. Sometimes one wants to capture stdout, other times not etc.

The run() name implies it's a default but it can't really be because some use cases we really do want to directly copy stderr instead of capturing it.

It happens that most cases here inside bootc we're fine to only show stderr on error I think; I only changed the editor case to use the new run_inherited().

But in contrast many use cases in e.g.
coreos/rpm-ostree#5439
wanted run_inherited().

Unit tests: Assisted-by: Claude Code

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the command execution helpers by splitting the generic run() method into run_inherited() and run_capture_stderr() for more explicit control over subprocess stream handling. The changes are applied consistently across the codebase. My review focuses on ensuring the new API is consistent and the documentation is accurate. I've found a few areas for improvement in crates/utils/src/command.rs regarding API consistency for asynchronous commands and documentation accuracy.

@cgwalters cgwalters force-pushed the command-run-cleanups branch from fa5c8fa to 9e40c48 Compare July 29, 2025 20:44
There really isn't any kind of single default way to run a subprocess,
that's why it's tricky. Sometimes one wants to have them be async,
sometimes synchronous. Sometimes one wants to capture stdout,
other times not etc.

The `run()` name implies it's a default but it can't really be
because some use cases we really do want to directly copy
stderr instead of capturing it.

It happens that *most* cases here inside bootc we're fine
to only show stderr on error I think; I only changed the editor
case to use the new `run_inherited()`.

But in contrast many use cases in e.g.
coreos/rpm-ostree#5439
wanted `run_inherited()`.

Unit tests: Assisted-by: Claude Code
Signed-off-by: Colin Walters <[email protected]>
@cgwalters cgwalters force-pushed the command-run-cleanups branch from 9e40c48 to 634e038 Compare July 29, 2025 22:14
@cgwalters cgwalters enabled auto-merge July 29, 2025 23:50
Copy link
Contributor

@jmarrero jmarrero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@cgwalters cgwalters merged commit 47aad72 into bootc-dev:main Jul 30, 2025
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants