cbrain icon indicating copy to clipboard operation
cbrain copied to clipboard

Document somewhere the special cbrain flag for Boutiques descriptors

Open prioux opened this issue 4 years ago • 6 comments

The CBRAIN Boutiques integrator supports a set of special flags in the "custom" field of the descriptor.

Document them all somewhere?

At the top of my head:

"custom": {
  "cbrain:author": "descriptor author",
  "cbrain:inherits-from-class": "ClassName",
  "cbrain:can-submit-new-tasks": truefalse,
  "cbrain:ignore-exit-status": truefalse,
  "cbrain:ignore_outputs": [id, id, id],
  "cbrain:save_back_inputs": [id, id, id],
  "cbrain:readonly-input-files": truefalse,
  "cbrain:alters-input-files": truefalse
}

prioux avatar Jun 09 '21 14:06 prioux

Also code bases (templates) contain cbrain:alters-input-files

I see also

  • cbrain:boutiques_bosh_exec_mode
  • cbrain:walltime-estimate
  • also multiple cbrain:integrator_modules

Could go somewhere into developer's wiki, readme of cbrain-neuro-plugins or cbrain.ca. Also I believe @natacha-beck had a wiki on boutiques integration, not sure why it did not get into the main wiki.

Update, checked today

MontrealSergiy avatar Aug 23 '22 19:08 MontrealSergiy

@MontrealSergiy here is the page you are refering: https://github.com/natacha-beck/cbrain-wiki/wiki/Tasks-Integration-With-Boutiques

It was document about old Boutiques integration. We should at least have documentation about both way to integrate Boutiques (in cbrain_task_descriptors and in boutiques_descriptors).

natacha-beck avatar Aug 24 '22 12:08 natacha-beck

actually there is a designated CBRAIN Boutiques wiki section now, is it a good place for it? https://github.com/aces/cbrain/wiki/Tool-integration-with-Boutiques-or-Scientific-tool-integration-in-CBRAIN

MontrealSergiy avatar Nov 17 '23 20:11 MontrealSergiy

The current draft documentation is at https://docs.google.com/spreadsheets/d/1GdetgwsxfX9dXDXpqlwi_CU2_Shvn1u1L5yVcZU31g0

MontrealSergiy avatar Jan 17 '24 21:01 MontrealSergiy

I want this documentation to be part of the codebase.

I am not sure which file is more appropriate, but given we have a library for loading and accessing Boutiques descriptor files, maybe we should put it there.

A larger comment block should enumerate them all in a table. Then we could have a nice new set of accessor methods for each of the special flags, something like

# Return the CBRAIN author of the descripto from the custom field
#    "custom": { "cbrain:author": "Name of person" }
def custom_cbrain_author
   self.custom['cbain:author']
end

This would also allow us to handle gracefully the inconsistencies we have in these custom sections (e.g. some descriptors have cbrain:author as a string, some as an array of strings).

prioux avatar Jan 18 '24 17:01 prioux

Once the methods are all nicely created, we can modify the integration code to use these methods instead of trying to directly access the custom structure.

prioux avatar Jan 18 '24 17:01 prioux