Configuration

Configuration of gwf is project-specific and thus all configuration must be done in the project directory where the workflow file is located.

Commands for Configuration

To see the value of a configuration key, use:

$ gwf config get KEY

To set the value of a key (or update it, if it already exists):

$ gwf config set KEY VALUE

Keys are often of the form this.is.a.key. For example, to use the Slurm backend, run:

$ gwf config set backend slurm

The local backend has no host or port setting. Its scheduler communicates over a per-workflow Unix domain socket under $XDG_RUNTIME_DIR/gwf. If XDG_RUNTIME_DIR is unavailable, gwf uses a private directory under the system temporary directory.

Changed in version 3.0.0: The local backend now uses a per-workflow Unix domain socket. local.host and local.port have been removed.

Your configuration is stored in the current working directory, which will usually be your project directory, in a file called .gwfconf.json. This means that all configuration is project-specific, which helps with reproducibility. You can inspect and change the file directly, but this is not recommended unless you really know what you’re doing.

Core settings are listed in the section below. To see which options are available for a specific backend, refer to the Backends documentation.

Available Settings

This page lists settings that are used by gwf. Backends and plugins may define their own settings, but these are documented for each backend/plugin individually. See Configuration if in doubt about how to configure gwf.

Changed in version 3.0.0: The require_all_outputs setting was added for selective output checks during targeted runs.

  • backend (str): Set the backend. Corresponds to the --backend flag (default: local).

  • verbose (str): Set the verbosity. Corresponds to the --verbose flag (default: info).

  • no_color (bool): If true, colors will not be used (default: false).

  • require_all_outputs (bool): If true, a target is rerun when any declared output is missing, including outputs not needed by the requested targets (default: true). Set it to false to consider only the outputs needed by the requested targets and their dependencies. For example, gwf run B will not rerun a dependency solely because an output used only by another target is missing.