CSCI128 / 128Autograder

Source Code for CSCI128 Autograder at Colorado School of Mines
0 stars 1 forks source link

[ENHANCEMENT] Migrate Python / C Runners to composition #84

Closed gregbell26 closed 1 month ago

gregbell26 commented 2 months ago

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