Caches§

Makex provides a uniform filesystem based cache for all of a Task’s outputs.

The default location of the cache is ~/.cache/makex. The location of this cache may be configured.

When Makex and Tasks are run, a link to the cache folder (named _output_) is produced next to the Makex File in which Tasks are defined. This is a convenience, so that output files may be located and inspected easily.

With the correct configuration, the cache may be shared by multiple processes of Makex; potentially running across different machines.

Task Output Caching§

An identifier is generated for each Task which we’ll call task_output_id.

A Workspace identifier (workspace_id) is generated by hashing the Workspace in a stable manner (currently, by its absolute path).

A Task’s output path may be defined by argument, otherwise it will be automatically generated.

Automatically generated paths are stored into a cache with the following example structure:

  • ~/.cache/makex/:

    • The default path to the cache.

    • Can be controlled with the --cache argument to makex.

    • Makex may store additional files/databases in this directory.

  • ~/.cache/makex/{workspace_id}/:

    • The Workspace in the cache.

  • ~/.cache/makex/{workspace_id}/_output_/{task_output_id}/:

    • The output folder of a Task in the root directory of the Workspace (e.g. {task_name}://).

  • ~/.cache/makex/{workspace_id}/path/to/task/_output_/{task_output_id}/:

    • The output folder of a Task {task_name}://path/to/task in the Workspace.