DataLad REMAKE allows the association of multiple compute instructions with individual files. Currently, there is no mechanism to prioritize the compute instructions.
A fallback behavior for files with multiple non-prioritized compute instructions, i.e. none of the labels appears in a priority specification.
Labelling individual compute instructions
datalad make receives an option to label compute instructions. The compute instruction will be labeled with the template name if the option is not used. Labels will be stored in the compute instructions, currently in the associated datalad remake-URL
Mechanism to specify priority
Label priorities should be set on a per user basis. That means they should be read from the user environment, e.g. from global or local git configurations.
Optionally the dataset could contain a default prioritization list, e.g. in .datalad/make/priorities
Fallback behavior
If a file has multiple compute instructions and none has a prioritized label, the system will randomly choose one of the available instructions.
DataLad REMAKE allows the association of multiple compute instructions with individual files. Currently, there is no mechanism to prioritize the compute instructions.
Prioritization requires:
Labelling individual compute instructions
datalad make
receives an option to label compute instructions. The compute instruction will be labeled with the template name if the option is not used. Labels will be stored in the compute instructions, currently in the associateddatalad remake
-URLMechanism to specify priority
Label priorities should be set on a per user basis. That means they should be read from the user environment, e.g. from global or local git configurations.
Optionally the dataset could contain a default prioritization list, e.g. in
.datalad/make/priorities
Fallback behavior
If a file has multiple compute instructions and none has a prioritized label, the system will randomly choose one of the available instructions.
Corner cases
Case 1: repeated prioritized label
Select one compute instruction randomly.
Case 2: only unprioritized labels
Select one compute instruction randomly.