Process execution and parsing for easy integration of cli tools#61
Merged
Conversation
Introduce a new `CreativeCoders.ProcessUtils` library to provide process handling and execution abstractions. Features include `IProcess` interface, `DefaultProcess` implementation, process factories, executors, and output parsers (e.g., JSON, strings). Update solution file to include the new project.
…sUtils library - Introduced detailed C# coding standards and development practices, covering naming conventions, formatting, project structure, and more. - Included new unit tests for `ProcessExecutor` in the `CreativeCoders.ProcessUtils` library to validate synchronous and asynchronous process execution, output parsing, and proper disposal. - Updated test project references to include `CreativeCoders.ProcessUtils`.
- Add guidelines for using `AwesomeAssertions`, `xUnit`, and `FakeItEasy` in C# testing. - Update solution file to include new organizational folders (`__ai`, `copilot`, `junie`) and related Markdown files.
- Added tests for `ProcessExecutor` covering synchronous and asynchronous behavior, including output parsing and process disposal. - Updated C# testing guidelines to recommend the Arrange-Act-Assert pattern.
…itting, and passthrough output parsers - Deleted unused `StringListOutputParser` implementation. - Added `SplitLinesOutputParser` class for processing output into trimmed, split lines. - Added thorough unit tests for `JsonOutputParser`, `SplitLinesOutputParser`, and `PassThroughProcessOutputParser`. - Enhanced `ProcessExecutorBuilder` to automatically configure output parsing with improved exception handling. - Applied [PublicAPI] annotations across `IProcess`, `IProcessExecutor`, and related interfaces for better IDE support.
- Updated C# testing guidelines to enforce the Arrange-Act-Assert pattern and added comments for clarity. - Refactored `PassThroughProcessOutputParserTests`, `JsonOutputParserTests`, and `SplitLinesOutputParserTests` to adhere to the updated pattern. - Added annotations and suppression attributes for better IDE integration and readability. - Revised test inputs to improve consistency and maintainability.
…ocessUtils` - Introduced the `ProcessUtilsSampleApp` project showcasing usage of `ProcessExecutor` and output parsers. - Updated `CreativeCoders.ProcessUtils` library with `AddProcessUtils` DI extensions for streamlined service registration. - Included the new sample application and references in the solution file.
…oders.ProcessUtils` - Added comprehensive unit tests for `ProcessExecutor`, including synchronous and asynchronous methods, output parsing, exit code validation, and process disposal. - Introduced `ProcessExecutionResult` for encapsulating processes and results with proper disposal. - Refactored existing implementations to improve code readability and align with testing best practices. - Applied minor formatting updates across classes and sample projects for consistency.
…ssUtils` tests - Added comprehensive tests for `AddProcessUtils` to verify DI registrations, lifetimes, idempotency, and TryAdd semantics. - Refactored and updated namespaces for `ProcessUtils` tests to improve organizational structure and align with the project's conventions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.