Support multiple elements in checkout and source-checkout
Background
As pointed out in !820 (comment 111756025), it might make sense to support multiple elements in the newly added source-chechout command. Similarly, it would also make sense to support multiple elements in the checkout command as well.
Possible solutions
The current format for both these commands is bst COMMAND ELEMENT DIRECTORY. Depending on how we choose to do it, it may or may not be an API break. I am sure there are other options, but I can see the following two options at present:
bst COMMAND ELEMENT [ELEMENT..] --dir DIRECTORYbst COMMAND ELEMENT DIRECTORY [-e ELEMENT DIRECTORY...]
The first option will be similar to how workspace open will soon handle multiple elements, see !897 (merged). But, for it to work properly, we may first need to add an option for configuring default location for checking out elements. Alternatively, we can support --directory for multiple elements by creating directories named after each element and checking it out under that subdirectory. (This is similar to how source-checkout currently handles dependencies.
EDIT: The consensus seems to be in favor of this option.
The second option option avoids breaking the API but is more clunky IMO. That said, it is similar to how multiple elements are planned to be handled in bst shell, see !909 (closed).
Task description
-
Support multiple elements in bst checkout/bst artifact checkout -
Support multiple elements in bst source checkout
Acceptance Criteria
It is possible to checkout multiple elements (or sources in case of source-checkout) using a single bst invocation.