Ketrew: FAQ

Frequently Asked Questions

These are some more specific explanations that can be useful to read. If you have more questions submit a Github issue (with the “questions” label).

Optional `make? Argument

Why is ?make, the Build_process.t argument, optional in EDSL.workflow_node?
What's the use case for having "no-ops" as default targets?

There are many use cases,

  • one may want to make sure a condition is there and fail early to tell the user (like some software configuration that requires human intervention, e.g. using google/skicka for backups requires setting up authentication manually),
  • a target can be used only to put dependencies together (that's often the case to submit a common ancestor for a bunch of stuff to do, for instance, see Biokepi's demo), or
  • one may want to treat input data in a uniform way (“everything is a workflow node” there).

Trakeva Missing Backends

While configuring Ketrew and trying to start a server it may fail with:

[ketrew: ERROR]
    The "sqlite" backend was not available at Trakeva's compile time (available
    backends: [ ...  ])

It means that Trakeva was not compiled with support for the database backend you are requesting via the config-file.

Solutions:

  • Read the documentation about DB Backends.
  • Use another backend (the error message tells which ones are available, between brackets, maybe empty).
  • Install the backend you want:
    • opam install postgresql or opam install sqlite3 (opam will then catch the change and recompile trakeva and ketrew).
    • If you are installing sqlite3 on MacOSX you should read this.

Which Dependency Failed?

Sometimes you submit a 2000-nodes pipeline, and when it fails you want to see the node that “really” failed; i.e. that didn't fail because one of its dependencies failed.

Solution: use (and (is-failed) (not (is-dependency-dead))) as part of the filter in the WebUI.

There is an example ready to try in the Help section:

Screen Shot Of The Filter's Help Section

See also more discussion at issue #345.