Reproducibility
runnable
makes reproducibility easy without any intervention from the developer.
Execution of the pipeline, in any environment, generates a run log
which stores meta information of the
execution.
Executions also stores the stdout
and stderr
of the task at the log level used during the run.
Code identity¶
For non-container based executions, the git
sha is captured along with
other necessary attributes.
Example¶
- Implies that the branch is not clean.
- Emits all the files that are different from the HEAD.
For container based executions, the container digest and name is captured.
Parameters¶
The input and output parameters at the point of execution of all the tasks is captured.
Example¶
Metrics¶
Any parameters marked as metrics
are stored too.
Example¶
Data¶
Any files
moved between tasks are stored in the catalog
along with
meta information stored in the run log
.
Example¶
Retrying failures¶
The structure of the run log remains the same independent of the executor
used to execute.
This enables to debug failures during the execution in complex environments to be easily
reproduced in local environments and fixed.
Make the catalog
and run log
generated during the failed execution
accessible to the retry
executor and the execution starts from the failed
step.
Refer to retry for more information.