task_info.json always comes out with "commit": null, for every task, because
get_task_info hardcodes it:
|
commit = jsonlite::unbox(NA_character_), # TODO: Add when available in task_info.yaml |
commit = jsonlite::unbox(NA_character_), # TODO: Add when available in task_info.yaml
From a report I rendered yesterday (task_spatial_simulators, run
run_2026-07-29_13-06-59):
{
"name": "spatial_simulators",
"commit": null,
"label": "Spatial Simulators",
...
"version": "build_main",
version is the revision (build_main), so as it stands there is nothing in the
published results that pins a task to the code that produced it. Methods and
datasets both already carry one:
# get_method_info/script.R
commit = jsonlite::unbox(.config$build_info$git_commit %||% "missing-sha"),
# get_dataset_info/script.R
commit = jsonlite::unbox(.dataset$dataset_commit %||% "missing-sha"),
Proposal
The TODO's precondition is easy to satisfy on the task side -- workflow.commitId
is available in run_benchmark, so the task can write the commit into
task_info.yaml alongside everything else it already copies out of _viash.yaml.
I have done that in task_spatial_simulators
(openproblems-bio/task_spatial_simulators#33) and am happy to send the same change
to task_template.
That leaves this side, which would become:
commit = jsonlite::unbox(task_info_yaml$commit %||% "missing-sha"),
matching what get_method_info does, so a task whose workflow predates the change
degrades to "missing-sha" rather than breaking.
task_info.jsonalways comes out with"commit": null, for every task, becauseget_task_infohardcodes it:openproblems/src/reporting/get_task_info/script.R
Line 45 in 9fe740d
From a report I rendered yesterday (
task_spatial_simulators, runrun_2026-07-29_13-06-59):{ "name": "spatial_simulators", "commit": null, "label": "Spatial Simulators", ... "version": "build_main",versionis the revision (build_main), so as it stands there is nothing in thepublished results that pins a task to the code that produced it. Methods and
datasets both already carry one:
Proposal
The TODO's precondition is easy to satisfy on the task side --
workflow.commitIdis available in
run_benchmark, so the task can write the commit intotask_info.yamlalongside everything else it already copies out of_viash.yaml.I have done that in
task_spatial_simulators(openproblems-bio/task_spatial_simulators#33) and am happy to send the same change
to
task_template.That leaves this side, which would become:
matching what
get_method_infodoes, so a task whose workflow predates the changedegrades to
"missing-sha"rather than breaking.