Decouple BaseTask and TaskDatabaseInterface completely (#1316)

With this proposed refactoring, debusine/tasks/_task.py does not mention, nor use, TaskDatabaseInterface anymore.

The values for the task input fields are injected externally by TaskDatabaseInterface prior to computing dynamic task data. This should disentangle BaseTask from the database quite significantly, as now it should only care about describing what it needs, not how it gets it.

It doesn't quite move away build_dynamic_data from BaseTask, which I'd like to do as it's not something that runs on the worker, but so far I prioritize avoiding to scatter a task implementation in different pieces around Debusine/

Note that this opens the way to getting rid of FakeTaskDatabaseInterface, replaced with simpler code that injects values into the task fields as needed

Edited by Enrico Zini

Merge request reports

Loading