Skip to content

Consistent UX for fetching and pulling

Background

See https://mail.gnome.org/archives/buildstream-list/2018-December/msg00000.html and its follow-ups for details on the discussion.

BuildStream should provide a consistent UX for pulling (or fetching, in case of sources) sources, artifacts, build trees, junctions etc. For all such things, we should provide the following:

  • Options for both --pull and --no-pull case (or, --fetch and --no-fetch in case of sources) should be added to the top-level bst command.
  • It should be possible for users to configure the default behavior, not just via CLI, but also using config files.
  • So long as it is non-intrusive, BuildStream should default for fetching/pulling things that are needed.
  • No matter what is the default provided by BuildStream, it should be possible to override it. The overrides should work in the following order (highest priority item listed first):
    1. CLI flag
    2. User config
    3. BuildStream default

Task description

  • Add --fetch/--no-fetch as top-level options, with support for user config, and remove similar options from existing commands.
  • Add --fetch-junctions/--no-fetch-junctions as top-level options, with support for user config.
  • Add --pull/--no-pull as top-level options, with support for user config, and remove similar options from existing commands.
  • Add --no-pull-buildtree as top-level option (--pull-buildtree already exists), with support for user config.

Acceptance Criteria


To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information