WIP: Allow staging multiple elements in `bst shell`
Description
This makes changes to internal APIs, ABI and the CLI to make it possible to stage multiple elements.
Defining a pseudo-element that depended on all the elements on the CLI was considered over changing internal APIs, but the API surface of Element was too large to make a convincing mock and would have been at least as much effort.
Changes proposed in this merge request:
- Add
BST_GRANULAR_STAGE
flag for Elements to set if they support staging dependencies, running integration commands and other staging operations individually rather than all at once inElement.stage()
. - Port staging logic to prefer to call multiple staging methods if
BST_GRANULAR_STAGE
is set. - Port core Elements to support
BST_GRANULAR_STAGE
. - Move shell set-up code out of Element into Stream.
- Make
Stream.shell
support multiple elements - Add
-e
flag tobst shell
CLI to specify multiple elements.
This merge request, when approved, will close issue/bug: #422
CHANGELOG/Release Notes
- Initial WIP version, some comments and checking for having been passed no elements are yet to be addressed.
- Element checking, resolve WIP comments and update
NEWS
. - Fixed a rebasing error and lint warnings.