Skip to content

Implement task-configuration mechanism

Let's implement the task-configuration mechanism: see https://freexian-team.pages.debian.net/debusine/reference/devel-blueprints/task-configuration.html for the design.

Implementation plan:

  • Implement the new task-configuration collection with its task-configuration bare data item (!1592 (merged), !1588 (merged))
  • Extend BaseTaskData, BaseDynamicTaskData, WorkRequest as described in the first 3 points of the implementation plan (!1627 (merged))
  • Make use of those new fields where relevant (points 4 and 5 of the described implementation plan
    • Extend TaskDatabase to perform all the required updates on the work request (!1630 (merged))
    • Implement TaskDatabase.apply_configuration() (!1630 (merged))
    • Create the described Task.configure_on_server() (!1595 (merged))
    • Update the scheduler to call configure_on_server instead of compute_dynamic_data. (!1595 (merged))
    • Update GetNextWorkRequestView to return the new "configured_task_data" in place of the current "task_data". (!1602 (merged))
    • Show configured_task_data in views that show work requests (#707 (closed)) (!1648 (merged))
    • Provide a better comment describing BaseDynamicTaskData.configuration_context in debusine/tasks/models.py (!1627 (merged))
  • Update the sbuild task and autopkgtest tasks to properly set subject/contexts (part in !1581 (merged), #679 (closed))
  • Document subject/contexts for the tasks/workflows

The remaining tasks will be updated through another issue.

Edited by Raphaël Hertzog
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information