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
--pulland--no-pullcase (or,--fetchand--no-fetchin case of sources) should be added to the top-levelbstcommand. - 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):
- CLI flag
- User config
- BuildStream default
Task description
-
Add --fetch/--no-fetchas top-level options, with support for user config, and remove similar options from existing commands. -
Add --fetch-junctions/--no-fetch-junctionsas top-level options, with support for user config. -
Add --pull/--no-pullas top-level options, with support for user config, and remove similar options from existing commands. -
Add --no-pull-buildtreeas top-level option (--pull-buildtreealready exists), with support for user config.