Currently the runners interface has been largely unchanged since beta 0.5.0.
Runners currently use a moderately complex inheritance structure that has grown in complexity as new runners have been added.
We should migrate this to a composition system that uses a builder to describe the functionality that is requested for running the students submission.
This is a breaking change.
Suggestion
Moving to a builder pattern for this will fix a lot of the redundancies that currently exist as well as reduce the inheritance complexity as they will now only inherit form one parent, IRunner.
This will also make it a lot easier to add functionality down the line, should the need arise, as we will no longer have to create subclasses or write assignment specific runners.
(See A13 in Fall23 and Spr24 for an example)
Acceptance Criteria
[x] Runners are replaced with builder + one implementation of IRunner interface.
[x] New builder supports running main, running functions, running classes
Description
Issue
Currently the runners interface has been largely unchanged since beta 0.5.0.
Runners currently use a moderately complex inheritance structure that has grown in complexity as new runners have been added.
We should migrate this to a composition system that uses a builder to describe the functionality that is requested for running the students submission.
This is a breaking change.
Suggestion
Moving to a builder pattern for this will fix a lot of the redundancies that currently exist as well as reduce the inheritance complexity as they will now only inherit form one parent,
IRunner
.This will also make it a lot easier to add functionality down the line, should the need arise, as we will no longer have to create subclasses or write assignment specific runners.
(See A13 in Fall23 and Spr24 for an example)
Acceptance Criteria