# 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.
#

# Whether elements must be rebuilt when their dependencies have changed
strict: True

# 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

#
#    Scheduler
#
scheduler:

  # Maximum number of simultaneous source downloading tasks.
  fetchers: 10

  # Maximum number of simultaneous build tasks.
  builders: 4

  # Maximum number of simultaneous artifact 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

#
#    Artifacts
#
artifacts:

  # A url from which to download prebuilt artifacts
  pull-url: ''

  # A url to upload built artifacts to
  # (must point to the same repository as pull-url)
  push-url: ''

  # Specify the port number for pushing artifacts, if it's
  # not the default port 22
  push-port: 22

#
#    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} %{key} %{name} %{workspace-dirs}

#
#    Per project overrides
#
# Some settings defined in the project configuration can be overridden by
# the user configuration.
#
# projects:
#
#   project1:
#     artifacts:
#       pull-url: https://artifacts.com
#       push-url: artifacts@artifacts.com:artifacts
#       push-port: 443
#
#   project2:
#     ...
