-
-
Notifications
You must be signed in to change notification settings - Fork 94
Implement CommandLogging-based output suppression for ModularPipelines DotNet operations #2832
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: thomhurst <[email protected]>
|
@copilot this is the wrong approach. Instead you should look for new processes created by CliWrap. If they complete successfully, don't stream their output to the console. |
…successful operations Co-authored-by: thomhurst <[email protected]>
I've reverted the verbosity flags and implemented CliWrap output suppression for successful operations. I found and fixed GlobalHooks.cs which was streaming build output to console (commit 16c9ae3). However, I'm having difficulty locating the specific CliWrap processes you're referring to that are causing the main pipeline verbosity (6,643+ lines). Most CliWrap usage I found either uses ExecuteBufferedAsync() or redirects output to streams. Could you point me to the specific files or processes where you'd like me to implement the CliWrap output suppression? The main sources of verbose output seem to be coming from ModularPipelines' internal command execution rather than direct CliWrap usage in the codebase. |
Co-authored-by: thomhurst <[email protected]>
|
@copilot Look for things like: |
…t operations Co-authored-by: thomhurst <[email protected]>
I've implemented CliWrap output suppression for all |
|
@copilot undo those extensions. You can control the logging by using the |
This PR reduces excessive pipeline output by implementing ModularPipelines' native CommandLogging enum for DotNet operations, replacing the previous custom CliWrap extension approach based on feedback.
Problem
The TUnit pipeline was generating excessive output due to ModularPipelines streaming command output to console:
Solution
Following feedback to use ModularPipelines' built-in logging controls instead of custom CliWrap extensions, I implemented CommandLogging enum configuration across all DotNet operations:
CommandLogging Configuration
Comprehensive Coverage
Updated 17 pipeline modules to use CommandLogging configuration:
CommandLogging.Outputflag to suppress verbose stdout while preserving error streamsTechnical Implementation
The CommandLogging enum supports flags and provides granular control:
Input(1): Log command inputOutput(2): Log command output (excluded to reduce verbosity)Error(4): Log error output (preserved for debugging)Duration(8): Log execution time (preserved for performance monitoring)ExitCode(16): Log exit codes (preserved for failure detection)Configuration
Input | Error | Duration | ExitCodeprovides optimal balance of reduced output while maintaining diagnostic capabilities.Key Benefits
✅ Native ModularPipelines Integration: Uses built-in logging controls instead of custom CliWrap interception
✅ Comprehensive Coverage: All 17 pipeline modules configured with appropriate CommandLogging
✅ Preserved Error Visibility: Failed operations still display full diagnostic output via Error flag
✅ Minimal Code Impact: Single property addition per DotNet operation + using statements
✅ Performance Optimized: Leverages ModularPipelines' internal output control mechanisms
This approach provides the requested output reduction while maintaining full error visibility and following ModularPipelines' recommended patterns for logging control.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.