Skip to content

WIP: Allow staging multiple elements in `bst shell`

richardmaw-codethink requested to merge richardmaw/shell-multi-stage into master

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 in Element.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 to bst 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.
Edited by Jürg Billeter

Merge request reports