nipype / pydra

Pydra Dataflow Engine
https://nipype.github.io/pydra/
Other
120 stars 59 forks source link

Handling support for multiple versions of underlying tools #600

Open tclose opened 1 year ago

tclose commented 1 year ago

From the discussion in this mornings meeting with @djarecka @effigies @ghisvail @mahdieh-dst @yibeichan, I thought I would create an issue as a place for further discussion/ideas.

Nipype has the concept of min/max_ver to handle forwards/backwards incompatible changes to command line interfaces of the underlying packages (e.g. FSL, MRtrix, ANTs, etc...). We could look to adopt this logic in Pydra but there might be a better way to handle it by having separate versions of the Pydra interfaces that map to each version of the underlying package.

This could potentially be handled by

  1. Separate packages, e.g. pydra-fsl5, pydra-fsl6, ...
  2. Submodules of a single package, e.g. pydra.tasks.fsl.v5, pydra.tasks.fsl.v6, ... pydra.tasks.fsl.latest
  3. A combination of these strategies plus min/max_ver

Some things to consider: