2. General principles

2.1. What is a suite?

  • A definition of the workflow including tasks and their dependencies: This is captured in the ecFlow .def file, which is uploaded to an ecFlow server and displayed in the ecFlow UI.

  • Scripts and software to run the tasks: Each task needs a .ecf script which is expanded by ecFlow and can call other shell scripts or executables.

  • Code to generate and deploy the definition and scripts: This is typically a Python script based on suite building packages which reads a configuration file and generates the ecFlow .def file and the .ecf scripts.

2.2. TL;DR recommendations

  • Keep it simple: Complexity should always be weighed against maintainability and clarity for other users.

  • Tasks and scripts should be self-contained without side effects.

  • Document tasks in the manual pages enough so operators understand their purpose.

  • For suite construction use configuration files where possible.

  • Use version control for suite definitions, scripts, and configuration files.