feat: split executor and reader #2366
Draft
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.
Currently, Task's
Executor
does everything. In some ways this keeps things simple as you only have to initialise one thing, but in other ways it makes things much more difficult as it essentially creates one giant black box with a single input and output. Our tests tend to encompass the entire process, from reading a file to parsing and merging it, to executing it and checking the output.This PR starts to break out components of the executor into smaller chunks that are more easily undestandable and testable. The first items is the
Reader
. Next, will be the formatter which is a precursor to working on #2091.One side effect of this change is that the package API surface increases slightly and a lot of our tests need to be fixed as a result. However, I think this also has the benefit of making it easier to understand what is actually happening when using the task package.