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-levelbst
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):
- CLI flag
- User config
- 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.