diff --git a/README.md b/README.md index e25c7f7..f86938d 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,9 @@ [![TestSuite](https://github.com/NOAA-GSL/rocoto/actions/workflows/test-suite.yaml/badge.svg)](https://github.com/NOAA-GSL/rocoto/actions/workflows/test-suite.yaml) +## Documentation +Detailed documentation is provided at https://noaa-gsl.github.io/rocoto/ + ## Introduction Workflow Management is a concept that originated in the 1970's to handle business process management. Workflow management systems were developed to manage complex collections of business processes that need to be carried out in a certain way with complex interdependencies and requirements. Scientific Workflow Management is much newer, and is very much like its business counterpart, except that it is usually data oriented instead of process oriented. That is, scientific workflows are driven by the scientific data that "flows" through them. Scientific workflow tasks are usually triggered by the availability of some kind of input data, and a task's result is usually some kind of data that is fed as input to another task in the workflow. The individual tasks themselves are scientific codes that perform some kind of computation or retrieve or store some type of data for a computation. So, whereas a business workflow is comprised of a diverse set of processes that have to be completed in a certain way, sometimes carried out by a machine, sometimes carried out by a human being, a scientific workflow is usually comprised of a set of computations that are driven by the availability of input data. @@ -131,9 +134,6 @@ Depending on how the components of a modeling system are designed and how existi Each workflow task must correctly check for its successful completion, and must return a non-zero exit status upon failure. An exit status of 0 means success, regardless of what actually happened. No workflow task should contain automation features. Automation is the workflow management system's responsibility. A workflow management system cannot manage tasks or jobs that it is not aware of. Enable reuse of workflow tasks by using principles of modular design to build autonomous model components with well-defined interfaces for input and output that can be run stand-alone. Prefer the construction of small model components that do only one thing. It is easy to combine several small, well-designed, components together to build a larger, more complex workflow task. It is generally much more difficult to divide large, complex, model components into smaller ones to form multiple workflow tasks. Avoid combining serial and parallel processing in the same workflow task unless the serial processing is very short in duration. -## Documentation -Detailed documentation is provided at https://noaa-gsl.github.io/rocoto/ - ## Code Linting and Style (RuboCop) Rocoto uses [RuboCop](https://github.com/rubocop/rubocop) for Ruby code linting and style enforcement. RuboCop checks for code quality, formatting, and common errors.