# Default BuildStream user configuration.

#
#    Work Directories
#
#
# Note that BuildStream forces the XDG Base Directory names
# into the environment if they are not already set, and allows
# expansion of '~' and environment variables when specifying
# paths.
#

# Location to store sources
sourcedir: ${XDG_CACHE_HOME}/buildstream/sources

# Location to perform builds
builddir: ${XDG_CACHE_HOME}/buildstream/build

# Location to store local binary artifacts
artifactdir: ${XDG_CACHE_HOME}/buildstream/artifacts

# Location to store build logs
logdir: ${XDG_CACHE_HOME}/buildstream/logs

#
#    Cache
#
cache:
  # Size of the artifact cache in bytes - BuildStream will attempt to keep the
  # artifact cache within this size.
  # If the value is suffixed with K, M, G or T, the specified memory size is
  # parsed as Kilobytes, Megabytes, Gigabytes, or Terabytes (with the base
  # 1024), respectively.
  # Alternatively, a percentage value may be specified, which is taken relative
  # to the isize of the file system containing the cache.
  quota: infinity

#
#    Scheduler
#
scheduler:

  # Maximum number of simultaneous downloading tasks.
  fetchers: 10

  # Maximum number of simultaneous build tasks.
  builders: 4

  # Maximum number of simultaneous uploading tasks.
  pushers: 4

  # Maximum number of retries for network tasks.
  network-retries: 2

  # What to do when an element fails, if not running in
  # interactive mode:
  #
  #  continue  - Continue queueing jobs as much as possible
  #  quit      - Exit after all ongoing jobs complete
  #  terminate - Terminate any ongoing jobs and exit
  #
  on-error: quit


#
# Build related configuration
#
build:

  #
  # Maximum number of jobs to run per build task.
  #
  # The default behavior when this is set to 0, is to use the
  # maximum number of threads available, with a maximum of 8.
  #
  max-jobs: 0


#
#    Logging
#
logging:

  # The abbreviated cache key length to display in the UI
  key-length: 8

  # Whether to show extra detailed messages
  verbose: True

  # Maximum number of lines to print from the
  # end of a failing build log
  error-lines: 20

  # Maximum number of lines to print in a detailed
  # message on the console or in the master log (the full
  # messages are always recorded in the individual build
  # logs)
  message-lines: 20

  # Whether to enable debugging messages
  debug: False

  # Format string for printing the pipeline at startup, this
  # also determines the default display format for `bst show`
  element-format: |

    %{state: >12} %{full-key} %{name} %{workspace-dirs}

  # Format string for all log messages.
  message-format: |

    [%{elapsed}][%{key}][%{element}] %{action} %{message}

