We want to begin capturing pipeline-level compute logs, not just the individual step
compute. This diff refactors a lot of the context management to the compute log manager, so
that we can become aware of potentially nested calls to the compute log manager within a given
A few things are included in this diff:
- Moves the mirror_step_io context manager to be the watch instance method on the ComputeLogManager.
- Restructures the compute_logs.py function apis to be based on files and streams instead of ComputeIOType, to clarify the test surface area
- Deprecates the dagster utils cli commands, in favor of a dedicated, thinner utility script used to poll compute logs on Windows (where tail is not available)
This is the base diff for further work, including nesting watch calls, with the outer pipeline-level watch happening in the core.execution.api api methods. This would then capture all of the pipeline logs (including non-step-specific logging), in a single pipeline log file.